《Modbus介绍及仿真工具使用.ppt》由会员分享,可在线阅读,更多相关《Modbus介绍及仿真工具使用.ppt(36页珍藏版)》请在三一办公上搜索。
1、Modbus及仿真工具使用,议题,Modbus规约简介Modbus仿真工具使用Modbus报文分析示例,Modbus规约简介:概念,一.概念 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网、485总线)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。,Modbus规约简介:概念,Modbus协议采用主从工作方式,允许一台主设备和多台从设备通信,每台从设备地址由用户设定,地址范围为1-255。通信采用命令/应答方式,每一种命令帧都对应一个应答帧。命令帧由主设备发出,所有从
2、设备都将收到报文,但只有被寻址的从设备才会响应相应命令,返回相应的应答帧。图1是一个完整的主从查询-回应周期。,Modbus规约简介:概念,图1 主从查询-回应周期表,Modbus规约简介:概念,典型的主设备:FEP、可编程仪表等等。典型的从设备:可编程控制器、微机保护单元、交直流屏控制单元等等。,Modbus规约简介:分类,二.分类 1.Modbus通讯协议有两种传送方式:RTU方式和ASCII方式,两种方式如下所示:,Modbus规约简介:分类,ASCII模式:当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为两个ASCII字符发
3、送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。,Modbus规约简介:分类,RTU模式:当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:相对于ASCII模式,RTU模式表达相同的信息需要较少的位数,且在相同通讯速率下具有更大的数据流量。因此通常情况下,一般工业智能仪器仪表都是采用RTU模式的Modbus规约。,Modbus规约简介:分类,Modbus TCP/IP为RTU模式的延伸:Modbus TCP/IP走的是基于Modbus的以太网,Modbus可以通过以太网实现,但必须
4、是Modbus TCP/IP,接口方式不同,驱动程序也与RTU模式不同。,Modbus规约简介:分类,2.Modbus RTU消息帧格式:每个MODBUS帧都包括地址域、功能域、数据域、错误检测域。,Modbus仿真工具使用,ModScan32仿真客户端ModSim32仿真服务器 将ModScan32与ModSim32打开运行,如下图,Modbus仿真工具使用,ModScan32,ModSim32,Modbus仿真工具使用,Modsim32介绍:如图新建,Modbus仿真工具使用,连接接口,Port1-Port9为串口,TCP为以太网端口;,Modbus仿真工具使用,Show data与sho
5、w traffic为两种显示报文的格式。这里是显示的数据是什么样格式,Modbus仿真工具使用,ModScan32介绍:点connect连接出现下图,Modbus仿真工具使用,此处连接的端口要与Modsim32连接的端口一致,Modbus仿真工具使用,这里是显示内容与Modsim32里的一样,Modbus仿真工具使用,连接TCP实例:打开Modsim32中的连接,如图,点击OK,Modbus仿真工具使用,打开Modscan32的连接,,Modbus仿真工具使用,注意:在仿真调试时,对应的相应设置一定要一致,如下图所标:,Modbus报文分析,1.RTU报文:以泰坦交直流屏规约报文为例分析主机至
6、直流屏的遥测命令:如:01 03 00 00 00 17 05 C4 对照下图的报文格式分析,Modbus报文分析,01:直流屏通讯地址03:遥测功能码(AI)00:00:00:17:变为10进制2305C4,Modbus报文分析,直流屏响应的报文:报文格式:,01 03 2E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 11 00 00 05 9B 00 FA 00 00 00 00 00 00 00 00 00 00 00 00 F9 D8 00 FA 27 0F 27 0F 27 0F 27 0F 00 C6,Modbus报文分析,01:直流
7、屏地址03:功能码2E:数据字节个数,转为10进制为46,因为两个字节表示一个寄存器,所以是23个寄存器。05 9B:第10个寄存器的遥测值,Modbus报文分析,主机至交流屏的遥信命令:报文为:02 01 01 00 00 C0 3D 95,格式如下图,Modbus报文分析,02:交流屏地址01:功能码,代表遥信(DI)01 00:起始位地址,代表遥信从第0100H点开始。00 C0:代表读多少个遥信(DI),此处为192个。3D 95:校验码,Modbus报文分析,交流屏响应的报文,02 01 18 11 04 04 04 00 00 00 00 00 00 00 00 00 00 00
8、00 00 00 00 00 00 00 00 00 3C 08,Modbus报文分析,02:交流屏地址01:功能码18:字节个数11:第一个字节,从这个字节提取8个位,即10001000,可以知道第一个和第四个遥信是合位。,Modbus报文分析,2.TCP/IP报文:Client request:19 B2 00 00 00 06 06 03 00 27 00 02上面是modbus客户端发出的报文内容,为modbus tcp/ip协议格式,其前面的六个字节为头字节(header handle););,Modbus报文分析,19 B2 00 00 00 0619 B2 两个字节是Client
9、发出的检验信息,Sever端只是需要将这两个字节的内容copy以后再放到response的报文的相应位子就可以了00 00 两个字节是表示tcp/ip 的协议的modbus的协议;00 06 两个字节表示的是header handle后面还有多长的字节,即表示的是该字节以后的字节长度(lengch),可以看到在00 06后面还有“06 03 00 27 00 02”六个字节,所以这两个字节表示的就是6;,Modbus报文分析,PDU(协议数据单元):“06 03 00 27 00 02”06 一个字节表示slave address;03 为Fuction code;00 27 表示Client
10、 request的寄存器地址;00 02 表示request 寄存器的长度;(寄存器个数),Modbus报文分析,Server response:19 B2 00 00 00 07 06 03 04 00 00 00 00Header handle:“19 B2 00 00 00 07”19 B2 为Server返回的检验码,copy from Client request;其它的表示与客户端的表示相同,Modbus报文分析,PDU:“06 03 04 00 00 00 00”06 是Slave address,从地址数;03是Function code;04表示了回复给Client request的需要读的寄存器的值的个数,这里因为主地址向从地址读了个寄存器即个位的寄存器(个字)所以这里为个字节,因为个字为个字节,而04这个字节表示的就是从地址要回复给主地址的寄存器字节长度,00 00 00 00 表示了个字节的值,谢谢!Q&A,