串口转换器,MODBUSTCP---转RTU
- 格式:pdf
- 大小:658.66 KB
- 文档页数:12
MBAP 组成字节个数说明事物处理标识2可以理解为报⽂的序列号,⼀般每次通信后就要加1以区别不同的通信数据报⽂;由客户端⽣成;应答时复制该值协议标识200 00:表⽰ModbusTCP 协议;由客户端⽣成;应答时复制该值长度2表⽰该字节后⾯的数据长度,单位为字节;单元标识符1设备地址;由客户端⽣成;应答时复制该值MBAP 地址 功能码 数据 CRC16校验Modbus RTU ⽆ 1字节 1字节 n 字节 2字节Modbus TCP7字节⽆1字节n 字节⽆MBAP从机地址功能码寄存器地址寄存器个数CRC modbus rtu 发送010100 2300 17XX XXmodbus tcp 发送00 01 00 0000 06 010100 2300 17MBAP从机地址功能码返回字节数data1data2data3CRC modbustcprtu 协议1.ADUApplication Data Unit:应⽤数据单元;2.PDUProtocol Data Unit:协议数据单元;由功能码+数据组成。
功能码是⼀个字节,数据长度不定,由具体功能码的具体功能决定。
3.MBAP报⽂头,长度7个字节。
4.modbus tcp 和modbus rtu 协议格式modbus tcp 数据帧(ADU)由MBAP+PDU 组成;物理层为以太⽹接⼝。
modbus rtu 数据帧(ADU)由地址+PDU+校验组成;物理层为串⼝,RS232、RS422、RS485。
modbus tcp 和modbus rtu 数据帧中的PDU 部分是相同的。
5.⽰例以下表格中的数据都是⼗六进制。
1)01H-读线圈含义:读从机线圈寄存器,位操作,可读单个或者多个。
返回数据中⼀个地址的数据为1位,data1的最低位代表最低地址的线圈状态。
例:从机地址01,寄存区开始地址0x23,总共读取21个线圈:modbus rtu 响应010103a5d418XX XX modbus tcp 响应00 01 00 0000 06 010103a5d418MBAP从机地址功能码寄存器地址寄存器个数CRC modbus rtu 发送010300 3200 02XX XXmodbus tcp 发送00 01 00 0000 06 010300 3200 02MBAP从机地址功能码返回字节数data1H data1L data2H data2L CRC modbus rtu 响应010304a5d41812XX XXmodbus tcp 响应00 01 00 0000 07 010304a5d41812MBAP从机地址功能码寄存器地址寄存器个数CRC modbus rtu 发送010500 32ff 00XX XXmodbus tcp 发送00 01 00 0000 06 010500 32ff 00MBAP从机地址功能码寄存器地址寄存器个数CRC modbus rtu 发送010600 3212 34XX XXmodbus tcp 发送00 01 00 0000 06 010600 3212 342)02H-读离散输⼊状态含义:读离散输⼊寄存器,位操作,可读单个或多个,协议类似功能码01H 协议。
Modbus-TCP和Modbus-RTU的区别1.ModbusTCP的特点Modbus TCP是Modbus通信协议的一种变体,它基于TCP/IP通信协议,常用于工业自动化领域。
Modbus TCP具有以下特点:.基于开放标准:Modbus TCP是基于TCP/IP通信协议和Modbus协议的开放标准,可以与各种设备、软件和系统进行集成和通信。
..简单易用:Modbus TCP协议设计简单,易于实现和使用。
它提供了灵活性,并且适用于多种不同的应用场景。
..高效可靠:Modbus TCP采用TCP/IP协议作为通信介质,数据传输速度快,数据精度高,且能够保证数据的可靠性和稳定性。
..易于扩展:Modbus TCP支持多点连接,可以同时与多个客户端建立连接,在分布式控制和管理方面具有很好的应用潜力。
..安全可靠:Modbus TCP提供了很好的安全性,支持加密功能和访问控制等机制,以确保通信安全可靠。
.Modbus TCP具有开放标准、简单易用、高效可靠、易于扩展和安全可靠等特点,适用于各种工业自动化场景,如过程控制、数据采集和监测等。
2.ModbusRTU的特点Modbus RTU是一种串行通信协议,主要用于在工业自动化中的设备之间进行数据传输和通信。
以下是Modbus RTU的一些特点:.速度快:Modbus RTU采用二进制码来表示数据,传输效率高,并且可以支持较高的通信速率,最高可达115.2kbps。
..简单易用:Modbus RTU协议的指令和格式都非常简单明了,易于理解和使用,在应用中具有广泛的适用性。
..灵活性强:Modbus RTU不仅可以支持串行通信,还可以通过网关和路由器实现TCP/IP网络连接。
..数据完整性高:Modbus RTU协议在数据传输过程中采用了CRC码校验,可以保证数据的完整性,避免因为传输出错而导致的数据丢失。
..节点数量多:Modbus RTU可以支持最多256个节点,可以方便地扩展和管理节点。
Modbus TCP转Mo dbusRTU的实现本文介绍如何使用ZLS N2040、NETCOM2040实现Modb us TCP到ModbusRTU的转化。
1.Modbus TCP与Mo dbusRTUModbus是工业设备之间通信的标准协议。
在仪器、仪表上用得更为普遍。
不同的设备在遵守Mod bus标准之后可以互相通信的目的。
Modbus最初是使用串行链路的,例如RS232、RS485/422,随着网络的发展,后来又推出了Modbu s TCP标准。
串行链路的M odbus分为ASC II和RT U,其中RTU的传输效率高,用得比较多。
所以这里基本上以Mod bus RTU为例来介绍。
2.Modbus TCP转Mo dbusRTU随着Modbus TCP和Mo bus RTU两协议的普及,设备越来越多,要实现Mod bus TCP访问M odbus RTU设备的需求日益增加。
Modbu s TCP具有自身的优势,因为其可以利用现有的网络、intern et等设施,而大批量的M odbus RTU设备已经存在。
用一个统一的Modb u s TCP客户端软件去访问所有的Mo dbus设备,统一、集中式管理将大大提高系统的集成度。
Modbus RTU的帧中包含有:地址帧、功能码、数据、CRC校验。
而Modbu s TCP数据包包含有:MBAP报文头、功能码、数据。
必须实现这两种格式的转化。
3.Modbus TCP转Mo dbusRTU解决方案图 1 NETCOM2040成品与ZLS N2040内嵌模块NETCOM2040和ZLSN2040可以实现Mod bus TCP转Mo dbusRTU,两者功能类似,不过一个是成品一个是内嵌到用户电路板的小型内嵌核心模块,内嵌模块可以减少用户产品体积也有效降低成本。
一、模块功能概述DAM-E3220M适用于以太网转串口的透传以及Modbus RTU到Modbus TCP的网关,硬件设计有以太网口、RS232、RS485、CAN(暂未开放)。
二、模块结构及接线端子三、模块主要性能指标串口设备联网服务器⏹网络端口:10/100Base-T,RJ-45接口⏹串口:1个RS-232,1个RS-485⏹传输速率:RS-232(300bps~115.2Kbps)RS-485(300bps~115.2Kbps)⏹电源:未调理+10~+30VDC⏹功耗:1.0W@24VDC⏹工作温度:-40℃~+85℃四、连接器和信号端子名称说明1CTS1RS-232接口发送数据正2RTS1RS-232接口发送数据负3RXD1RS-232接口接收数据正4TXD1RS-232接口接收数据负5未连接6DATA2+RS-485接口信号正7DATA2-RS-485接口信号负8未连接9未连接10未连接11未连接12INIT*复位端13(R)+Vs直流正电源输入,+10~+30VDC 14(B)GND直流电源输入地五、故障及排除1、数据通信失败⏹检查RS-232/RS485接口连线是否正确⏹检查RJ-45接口接线是否正确⏹检查接线端子是否连接良好2、数据丢失或错误⏹检查数据通信设备两端数据传输速率、格式是否一致六、端口映射关系及参数配置说明控制端口10000用于产品一些工作参数的设定,用户可以不用关注,而10001端口用用只要使用一些通用的以太网虚拟串口工具或本产品附带的工具软件即可将本端口虚拟成串口即可使用。
ModbusTCP端口502为本产品将485口的数据转发到TCP端的专用端口,以太网端采用标准的ModbusTCP协议,可以与一些具有标准ModbusTCP协议的主机进行通信,如测试工具ModbusPOLL、组态软件等。
同时灵活的数据转发方式能够适用于将所有的具有Modbus RTU协议的产品很方便的连接到以太网设备,关于配置方法下面将进行说明。
Modbus TCP 与Modbus RTU的区别Modbus通信协议由Modicon公司(现已经为施耐德公司并购,成为其旗下的子品牌)于1979年发明的,是全球最早用于工业现场的总线规约。
由于其免费公开发行,使用该协议的厂家无需缴纳任何费用,Modbus通信协议采用的是主从通信模式(即Master/Slave通信模式),其在分散控制方面应用极其广泛,从而使得Modbus 协议在全球得到了广泛的应用。
Modbus通信协议具有多个变种,其具有支持串口(主要是RS-485总线),以太网多个版本,其中最著名的是Modbus RTU,Modbus ASCII和Modbus TCP三种。
其中Modbus RTU与Modbus ASCII均为支持RS-485总线的通信协议,其中Modbus RTU由于其采用二进制表现形式以及紧凑数据结构,通信效率较高,应用比较广泛。
而Modbus ASCII由于采用ASCII码传输,并且利用特殊字符作为其字节的开始与结束标识,其传输效率要远远低于Modbus RTU协议,一般只有在通信数据量较小的情况下才考虑使用Modbus ASCII通信协议,在工业现场一般都是采用Modbus RTU协议,一般而言,大家说的基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。
在此我们着重讨论Modbus RTU协议,而Modbus TCP协议则是在RTU协议上加一个MBAP报文头,由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码,用一句比较通俗的话说就是:Modbus TCP协议就是Modbus RTU协议在前面加上五个0以及一个6,然后去掉两个CRC校验码字节就OK.虽然这句话说得不是特别准确,但是也基本上把RTU与TCP之间的区别说得比较清楚了。
RTU协议中的指令由地址码(一个字节),功能码(一个字节),起始地址(两个字节),数据(N个字节),校验码(两个字节)五个部分组成,其中数据又由数据长度(两个字节,表示的是寄存器个数,假定内容为M)和数据正文(M乘以2个字节)组成,而RTU协议是采用3.5个字节的空闲时间作为指令的起始和结束,一般而言,只有当从机返回数据或者主机写操作的时候,才会有数据正文,而其他时候比如主机读操作指令的时候,没有数据正文,只需要数据长度即可。
Modbus RTU 转Modbus TCP 网关测试作者:***时间:2015.09.16目录1测试指标 (3)2测试工具 (3)3功能测试 (3)3.1测试原理 (3)3.2测试步骤与软件设置 (4)4 性能测试 (6)4.1测试原理 (6)4.2测试过程与软件设置 (7)1测试指标Modbus RTU 转Modbus TCP 网关实现Modbus RTU 数据转换为Modbus TCP 数据从而实现底层各种仪表数据联网。
所以网关能否准确快速实现转换对工业联网与控制至关重要。
本测试的指标为:(1)功能测试:即网关准确实现数据转换。
(2)性能测试:即网关转换时间小于10ms。
2测试工具两台pc,网络抓包工具wireshark,串口抓包工具,Modbus调试工具modscan32 ,接入网关。
3功能测试3.1测试原理在两台pc上分别装modsim和modscan调试工具,配置好网关,网关主动去pc1的modsim中请求数据,modsim将数据发给网关,网关将数据转换完成后,pc2上的modscan主动去将转换完成的数据采集上来,若pc2上的modscan显示的数据与pc1设置的数据一样,则判定网关准确完成数据转换,其转换结构图如图3.1 。
图3.1 Modbus-RTU数据转换到Modbus-TCP测试结构图3.2测试步骤与软件设置a 在数据源pc机上使用modsim软件模拟Modbus-RTU数据发送,软件设置如下图3.2所示,点击connection,选择端口,实现连接。
图3.2 modsim软件设置b 在接收端pc上打开modscan软件接收Modbus-TCP数据,设置ip地址为网关的ip地址,扫描时间设置为5ms ,软件设置如下图3.3所示图3.3 modscan设置图测试数据及结论如表3.1所示:表3.1 Modbus-RTU通讯传感器数据到Modbus-TCP测试数据数据软件截图大同小异,这里给出12H的数据截图如图4 性能测试4.1测试原理记录用串口抓包工具记录下网关请求和接收数据的时间,用网络抓包工具记录下modscan获取Modbus-TCP数据的时间,设发送数据为04,通过串口抓包工具查看网关第一次接受04的时间并记录为T1,查看网络抓包工具wireshark第一次采集到04的时间并记录为T2,则∆T=T2−T1,∆T即为协议转换时间。
⼒控modbus通信⽅法modbus-tcp、modbus-rtu莫迪康通信配置步骤⽬录第 1 章 485 设备与⼒控通讯1.1DI/DO/AI/AO 接⼊1.1.1添加设备1.1.2测试设备1.2读取 DI 状态1.3输出/读取 DO 状态1.4读取 AI 值第 2 章以太⽹设备与⼒控通讯2.1DI/DO/AI/AO 接⼊2.1.1添加设备2.1.2测试设备2.2读取 DI 状态2.3输出/读取 DO 状态2.4读取 AI 值第 1章 485 设备与⼒控通讯1.1DI/DO/AI/AO 接⼊以 ZKA-4088-RS485 为例,介绍综科智控 485 设备与⼒控进⾏通讯的步骤设置。
ZKA-4088-RS485 是8 路数字量输⼊(D I),8 路数字量输出(DO),4 路模拟量输⼊设备(AI,0/4-20mA),485 通信总线。
以 ZKA-4088-RS485 出⼚默认通讯参数如下:站号:01波特率:115200数据格式:8,N,1与电脑连接的端⼝:客户查看电脑设备管理器中的COM⼝,选择实际使⽤的端⼝1.1.1添加设备选择:IO 设备组态>[PLC] > [莫迪康] > [ModbusRTU] 如下图所⽰:为设备取⼀个名称,在此输⼊ TEST,单击“下⼀步”,如下图所⽰。
为设备选择连接串⼝,选择COM4,根据实际对应COM 参数设置,并保存选择 6 和 16 号命令,选择 32 位数数据存放格式:1.1.2测试设备在设备上右键> [TEST],如下图所⽰:1.2读取 DI 状态ZKA-4088-RS485的 8路 DI 寄存器为 10001~10008:如上图所⽰,寄存器 DI001 变量值为 1,表⽰此时第 1 个输⼊通道X1闭合。
1.3输出/读取 DO 状态ZKA-4088-RS485 的 8路 DO 寄存器为 00001~00008:新建 IO 点,选择可读可写建⽴ IO 点完成后,点击运⾏按,即可读取 DO 状态在对应的 IO 点上右键>写数据写⼊ 1,则通道 DO1 输出,设备上 Y1灯亮1.4读取 AI 值ZKA-4088-RS485 的 4 路 AI(模拟量输⼊)寄存器为 30001~30008,因为ZKA模块采⽤的是32位AD芯⽚,所以每个模拟量通道占⽤ 2 个寄存器,共4 个字节(32bit),其中⾼两个字节为采集结果的⾼16bit,低两个字为采集结果的低16bit,模块出⼚时为保证⾼精度,滤波后输出16bit,所以⽤户实际使⽤时只需要读取低16bit采集结果即可,,也就是读取偏置0002,0004,0006,0008地址上的寄存器数据,数据类型为⽆符号整型。
Modbus 协议分析——TCP/RTU两种传输方式掌握器能设置为两种传输模式〔ASCII 或RTU〕中的任何一种在标准的Modbus 网络通信。
用户选择想要的模式,包括串口通信参数〔波特率、校验方式等〕,在配置每个掌握器的时候,在一个Modbus 网络上的全部设备都必需选择一样的传输模式和串口参数。
所选的ASCII 或RTU 方式仅适用于标准的Modbus 网络,它定义了在这些网络上连续传输的消息段的每一位,以及打算怎样将信息打包成消息域和如何解码。
在其它网络上〔象MAP 和Modbus Plus〕Modbus 消息被转成与串行传输无关的帧。
1、ASCII 模式当掌握器设为在Modbus 网络上以ASCII〔美国标准信息交换代码〕模式通信,在消息中的每个 8Bit字节都作为两个ASCII 字符发送。
这种方式的主要优点是字符发送的时间间隔可到达 1 秒而不产生错误。
代码系统·十六进制,ASCII 字符0...9,A...F·消息中的每个ASCII 字符都是一个十六进制字符组成每个字节的位· 1 个起始位·7 个数据位,最小的有效位先发送· 1 个奇偶校验位,无校验则无· 1 个停顿位〔有校验时〕,2 个Bit〔无校验时〕错误检测域·LRC(纵向冗长检测)2、RTU 模式当掌握器设为在Modbus 网络上以RTU〔远程终端单元〕模式通信,在消息中的每个 8Bit 字节包含两个 4Bit 的十六进制字符。
这种方式的主要优点是:在同样的波特率下,可比ASCII 方式传送更多的数据。
代码系统·8 位二进制,十六进制数 0...9,A...F·消息中的每个 8 位域都是一个两个十六进制字符组成每个字节的位· 1 个起始位·8 个数据位,最小的有效位先发送· 1 个奇偶校验位,无校验则无· 1 个停顿位〔有校验时〕,2 个Bit〔无校验时〕错误检测域·CRC(循环冗长检测)Modbus 消息帧两种传输模式中〔ASCII 或RTU〕,传输设备以将Modbus 消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开头工作,读地址安排信息,推断哪一个设备被选中〔播送方式则传给全部设备〕,判知何时信息已完成。