Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
modbus协议讲解及实现_modbus tcp协议,希望能够帮助你!!!。
目前,Modbus协议已成为工业控制行业的接口协议。莫迪康公司(Modicon)开发的,后来被施耐德回收成为子品牌,现在已经成为施耐德的接口协议。如今,Modbus已经成为世界上最受欢迎的工业应用协议。该协议支持传统RS-232、RS-422、RS-以太网接口485和TCP机械设备。许多机械设备,包括plc,dcs,Modbus协议被用作两个人之间的通信规范。有了这个,不同厂家制造的控制系统可以连接到工业网络,进行智能运维。
ASCII包含Modbus协议。、RTU、TCP等。选择Maser(主)/Slave(从)方法,数据请求信息从Master端传输,在Slave端接收到合适的信息后,可以将数据传输到Master端以响应要求;Master端可以直接发送信息,改变Slave端的数据信息,完成双读写能力。
Modbus协议必须对数据进行检查。在串行通信协议中,ASCII方式选择LRC检查,RTU方式选择16位CRC检查,但TCP方式不需要额外的检查,因为TCP协议是一个面向连接的可靠协议。
特殊工具/原材料
计算机计算机计算机,包括RS232串口通信和USB接口。
RS232转向RS485通信转换器
或者USB转换RS485通信转换器
一台RS485机械设备(仪表盘,PLC,任何机器设备,如触摸屏、变频调速器等)
或通过虚拟串口软件组装两个虚拟串口软件
手机软件串口调试助手或commix1.3
方式/流程
MODBUS串口通信协议基本标准:每个MODBUS数据文件由以下五个组成:(1)站点详细地址;(2)要实施的功能码;(3)存储器地址(变量地址);(4)数据信息;(5)CRC验证;
(1)从站详细地址:详细地址长度为1个字符,高效的从站地址范围为1-247,从站假如接受到一帧地址信息和自身详细地址相一致的数据时,就实行数据文件其中包含的命令。
(2)功能码:MODBUS数据信息包中功能码长度为一个字节,用于通告从站理应实行哪种实际操作,从站回应数据文件中理应包括域名所要求操控的同样功能码字节数。相关功能码参考下列:
(3)寄存器地址:从机实行合理指令时数据信息地区存放位置。不一样自变量占有不一样存储器数量,有一些详细地址自变量占有2个存储器,4字节数据,有一些自变量占有一个存储器,2字节数据,请结合实际情况应用。有一些占有大量存储器,按照实际数据信息而定。
(4)数据区:数据区包括了终端设备实行特殊作用所需的数据信息或是终端设备回应查看时采集到的数据信息。这些信息内容有可能是标值、参照详细地址或是设定值;比如:功能码告知终端设备载入一个存储器,数据区就需要指出从哪存储器逐渐及载入几个数据信息,嵌入地址和信息按照种类和在机间的不一样具体内容而各有不同;存储器标值推送次序为:上位字节数在前面,底位字节数后面。
(5)CRC校验:MODBUS-RTU方式选用16位CRC校验。推送机器设备需对包囊中的每一个数据开展CRC16测算,最终结果储放入检测域中。接收设备也需对包囊中的每一个数据信息(除校检域之外)开展CRC16测算,将结论域校检域进行对比;仅有同样的包囊才能够被接纳。
通信异常解决假如域名发送了一个不合法的数据文件或者域名要求一个毫无意义的数据存储器时,异常数据信息回应会产生。这一异常数据回应由从站详细地址、功能码、发动机故障码crc8域构成.依据MODBUS通信规定,出现异常回应功能码=要求功能码+0x80;出现异常回复时,将作用号最高位置1。比如:服务器要求作用号是0x04则从机返回作用号相匹配为0x84。
举例子:1、读多存储器例:服务器载入仪表盘测量结果UA(A直流电压),假定现精确测量到A直流电压为220.0V。UA的地址编码是0x4000(十六进制),由于UA是长整型数据(4字节数),占有2个数据存储器,220.0V电压转换相对应的十六进制信息是:0x00000898(2200)。服务器推送指令文件格式为:0D1CB从机回到指令文件格式为:098FC59
举例子:例2:写单存储器假定将温控仪表温度值SV调整为150(载入预设值SV),SV的地址编码是0x2000(十六进制),由于SV是整数金额(2字节数),占有1个数据存储器。将十进制整数150转换成十六进制数为0x0096。服务器推送指令文件格式为:00264从机回到指令文件格式为:00264
常见问题
一般PLC用十进制数表明,因此一定要开展数据交换。
留意查询不一样生产厂家对modbus设备上合同的表明,需注意有一些数据类型难题。
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章