您好,欢迎访问三七文档
Modbus简介议题Modbus规约简介Modbus仿真工具使用Modbus报文分析示例Modbus规约简介:概念一.概念Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网、485总线)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。Modbus规约简介:概念Modbus协议采用主从工作方式,允许一台主设备和多台从设备通信,每台从设备地址由用户设定,地址范围为1-255。通信采用命令/应答方式,每一种命令帧都对应一个应答帧。命令帧由主设备发出,所有从设备都将收到报文,但只有被寻址的从设备才会响应相应命令,返回相应的应答帧。图1是一个完整的主从查询-回应周期。Modbus规约简介:概念图1主从查询-回应周期表Modbus规约简介:概念典型的主设备:FEP、可编程仪表…等等。典型的从设备:可编程控制器、微机保护单元、交直流屏控制单元…等等。Modbus规约简介:分类二.分类1.Modbus通讯协议有两种传送方式:RTU方式和ASCII方式,两种方式如下所示:Modbus规约简介:分类ASCII模式:当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。Modbus规约简介:分类RTU模式:当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:相对于ASCII模式,RTU模式表达相同的信息需要较少的位数,且在相同通讯速率下具有更大的数据流量。因此通常情况下,一般工业智能仪器仪表都是采用RTU模式的Modbus规约。Modbus规约简介:分类ModbusTCP/IP为RTU模式的延伸:ModbusTCP/IP走的是基于Modbus的以太网,Modbus可以通过以太网实现,但必须是ModbusTCP/IP,接口方式不同,驱动程序也与RTU模式不同。Modbus规约简介:分类2.ModbusRTU消息帧格式:每个MODBUS帧都包括地址域、功能域、数据域、错误检测域。Modbus仿真工具使用ModScan32仿真客户端ModSim32仿真服务器将ModScan32与ModSim32打开运行,如下图Modbus仿真工具使用ModScan32ModSim32Modbus仿真工具使用Modsim32介绍:如图新建Modbus仿真工具使用连接接口,Port1-Port9为串口,TCP为以太网端口;Modbus仿真工具使用Showdata与showtraffic为两种显示报文的格式。这里是显示的数据是什么样格式Modbus仿真工具使用ModScan32介绍:点connect连接出现下图Modbus仿真工具使用此处连接的端口要与Modsim32连接的端口一致Modbus仿真工具使用这里是显示内容与Modsim32里的一样Modbus仿真工具使用连接TCP实例:打开Modsim32中的连接,如图,点击OKModbus仿真工具使用打开Modscan32的连接,Modbus仿真工具使用注意:在仿真调试时,对应的相应设置一定要一致,如下图所标:Modbus报文分析1.RTU报文:以泰坦交直流屏规约报文为例分析主机至直流屏的遥测命令:如:01030000001705C4对照下图的报文格式分析Modbus报文分析01:直流屏通讯地址03:遥测功能码(AI)00:00:00:17:变为10进制2305C4Modbus报文分析直流屏响应的报文:报文格式:01032E0000000000000000000000000000FF110000059B00FA000000000000000000000000F9D800FA270F270F270F270F00C6Modbus报文分析01:直流屏地址03:功能码2E:数据字节个数,转为10进制为46,因为两个字节表示一个寄存器,所以是23个寄存器。059B:第10个寄存器的遥测值Modbus报文分析主机至交流屏的遥信命令:报文为:0201010000C03D95,格式如下图Modbus报文分析02:交流屏地址01:功能码,代表遥信(DI)0100:起始位地址,代表遥信从第0100H点开始。00C0:代表读多少个遥信(DI),此处为192个。3D95:校验码Modbus报文分析交流屏响应的报文0201181104040400000000000000000000000000000000000000003C08Modbus报文分析02:交流屏地址01:功能码18:字节个数11:第一个字节,从这个字节提取8个位,即10001000,可以知道第一个和第四个遥信是合位。Modbus报文分析2.TCP/IP报文:Clientrequest:19B200000006060300270002上面是modbus客户端发出的报文内容,为modbustcp/ip协议格式,其前面的六个字节为头字节(headerhandle););Modbus报文分析19B20000000619B2两个字节是Client发出的检验信息,Sever端只是需要将这两个字节的内容copy以后再放到response的报文的相应位子就可以了0000两个字节是表示tcp/ip的协议的modbus的协议;0006两个字节表示的是headerhandle后面还有多长的字节,即表示的是该字节以后的字节长度(lengch),可以看到在0006后面还有“060300270002”六个字节,所以这两个字节表示的就是6;Modbus报文分析PDU(协议数据单元):“060300270002”06一个字节表示slaveaddress;03为Fuctioncode;0027表示Clientrequest的寄存器地址;0002表示request寄存器的长度;(寄存器个数)Modbus报文分析Serverresponse:19B20000000706030400000000Headerhandle:“19B200000007”19B2为Server返回的检验码,copyfromClientrequest;其它的表示与客户端的表示相同Modbus报文分析PDU:“06030400000000”06是Slaveaddress,从地址数;03是Functioncode;04表示了回复给Clientrequest的需要读的寄存器的值的个数,这里因为主地址向从地址读了2个寄存器即2个16位的寄存器(2个字)所以这里为4个字节,因为2个字为4个字节,而04这个字节表示的就是从地址要回复给主地址的寄存器字节长度,00000000表示了4个字节的值谢谢!Q&A
本文标题:Modbus简介
链接地址:https://www.777doc.com/doc-6272249 .html