今天小编要和大家分享的是PLC,PAC相关信息,接下来我将从深入了解Modbus TCP协议,工业通讯方式有哪些这几个方面来介绍。
PLC,PAC相关技术文章深入了解Modbus TCP协议
Modbus总线有三种协议:Modbus RTU协议、Modbus ASCII协议和Modbus TCP协议,Modbus总线活跃在工业通信领域。Modbus RTU和Modbus ASCII擅长串行通信,比如基于RS485或者RS232的通信,而Modbus TCP则擅长基于以太网的通信。由于底层所使用的结构不同,Modbus的应用数据单元(Application Data Unit,ADU)有所不同。你可能并去清楚什么是ADU,昌晖仪表下面来详细介绍。
为了进行通信,Modbus规定了一种很简单的数据结构,被称为“协议数据单元”(Protocol Data Unit,PDU)。协议数据单元由功能码+数据构成,如下面这张图:
功能码的长度为1个字节,它表示要执行的功能。比如常见的:01读取线圈;02读取离散量输入值;03读取保持寄存器值;05写单个线圈等;数据部分的长度为0-252个字节,它表示要读的地址或者要写入的值,不同的功能码对应的数据有所不同。比如01功能码,其数据为4个字节,其中前两个字节表示要读取的线圈的地址,后两个字节表示要读取线圈的数量;而对于05功能码,其数据也是4个字节,前两个字节表示要写入线圈的地址,后面两字节表示要写入的值。
协议数据单元有三种类型:请求型协议数据单元(Request PDU)、应答型协议数据单元(Response PDU)、及异常应答型协议数据单元(Exception Response PDU),更多关于协议数据单元的内容,大家可以去Modbus官网()下载通信规范好好阅读。
协议数据单元是Modbus的通用数据结构,它与底层物理结构无关,Modbus RTU、Modbus ASCII和Modbus TCP都使用相同的协议数据单元。但是,Modbus在通信的时候,总要依赖物理网络。因此要把协议数据单元映射到物理网络上,这就形成了应用数据单元(Application Data Unit,ADU)。由于底层网络的不同,Modbus TCP跟Modbus RTU和Modbus ASCII的应用数据单元是不同的,Modbus RTU和Modbus ASCII的ADU结构如下图所示:
而Modbus TCP的ADU结构如下: