Modbus簇主要有三种协议: Modbus-RTU、Modbus-ASCII、Modbus-TCP
工控行业通常的设备组网看,三者应用的范围如下:
三者报文格式的区别如下:
RTU相比较ASCII具备更紧凑的报文流,传输效率更高,目前MODBUS-ASCII已经应用较少。
Modbus的 *** 作对象有4种: 线圈、离散输入、保持寄存器、输入寄存器 。
modbus_rtuc
程序流程图
外围设备与计算机通讯的方式很多,modbus通讯协议只是其中的一种。两个外围设备之间也可以实现modbus通讯,前提是外围设备内置有modbus通讯协议和接口。
DDE用于计算机的应用程序之间交换数据。一个应用程序与外围设备之间,只能通过驱动程序(可以modbus通讯方式)交换数据。另一个没有该设备驱动的应用程序,则只能通过DDE方式与有该设备驱动的应用程序交换数据。需要注意的是:不同的应用程序提供的DDE数据格式可能是不同的,没有统一的标准。
opc也是用于计算机的应用程序之间交换数据。它是按照OPC规范的标准,把外围设备的驱动程序设计成一个特殊的应用程序——可称为OPC服务程序。其他应用程序也是按照OPC规范的标准,与OPC服务程序交换数据。
拥有rs485的接口,不表示仪器支持modbus协议。只有仪器支持,才能用modbus通讯。
如果仪器支持modbus,厂家应该给出一个地址表,说明仪器中的数据的位置,比如40001地址是电压,诸如此类。拿到仪器的地址表,还需要知道仪器的通讯设置,比如RTU格式,9600,8E1,等等。
知道以上这些信息,找一个arduino的modbus主机协议栈,连接到你的应用程序中,配置好。
主程序中,用协议栈的API读取40001地址就可以得到仪器的电压。
主机不能随意的往从机中发送数据,必须是往确定存在的地址里写,或者读确定存在的地址,如果仪器中没有说明40001地址是存在的,读写这个地址会出错。
arduino 有开源的modbus 协议栈,百度直接搜索就能找到。
以上就是关于libmodbus学习(一)之Modbus RTU-master全部的内容,包括:libmodbus学习(一)之Modbus RTU-master、modbus DDE opc 这几种通讯方式 区别在于、arduino 怎么发送modbus协议等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)