基于ModBus-TCP/IT 台达PLC 通讯协议解析

Posted 麦田的余晖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于ModBus-TCP/IT 台达PLC 通讯协议解析相关的知识,希望对你有一定的参考价值。

客户端发送:19 B2 00 00 00 06 06 03 00 27 00 02

上面是modbus客户端发出的报文内容,为modbus tcp/ip协议格式,其前面的六个字节为头字节( header handle);

“19 B2 00 00 00 06”

19 B2 两个字节是Client发出的检验信息,Sever端只是需要将这两个字节的内容copy以后再放到response的报文的相应位子就可以了,可以自己定义;

00 00 两个字节是表示tcp/ip 的协议的modbus的协议;

00 06 两个字节表示的是header handle后面还有多长的字节,即表示的是该字节以后的字节长度(lengch),可以看到在00 06后面还有 “06 03 00 27 00 02”六个字节,所以这两个字节表示的就是6;

 

“06 03 00 27 00 02”

06 一个字节表示slave address;

03 为Fuction code ;

00 27 表示Client request的寄存器地址;

00 02 表示request 寄存器的长度;(寄存器个数)

 

服务端返回数据:19 B2 00 00 00 07 06 03 04 00 00 00 00

报头 : “ 19 B2 00 00 00 07”

19 B2 为Server返回的检验码,copy from Client request;

其它的表示与客户端的表示相同

报文:“ 06 03 04 00 00 00 00”

06 是Slave address,从地址数;

03是Function code ;

04表示了回复给Client request的需要读的寄存器的值的个数,这里因为主地址向从地址读了2个寄存器即2个16位的寄存器(2个字)所以这里为4个字节,因为2个字为4个字节,而04这个字节表示的就是从地址要回复给主地址的寄存器字节长度,

00 00 00 00 表示了4个字节的值

 

写多个寄存器

发送

响应

 

以上是关于基于ModBus-TCP/IT 台达PLC 通讯协议解析的主要内容,如果未能解决你的问题,请参考以下文章

三菱PLCFX3u与台达触摸屏通讯问题

台达PLC开发笔记:台达PLC设置主机通讯参数为RTU并成功通讯

PC高级语言与施耐德罗克韦尔台达等PLC的Modbus通讯源代码(ModbusTCP.DLL/ModbusRTU.DLL)

三菱PLC网关,西门子PLC网关,台达PLC网关是啥?

台达tcp搜索不到plc

台达SE的PLC的这个口的作用是啥?和COM3+-有啥区别?