Ormon 的Modbus-Rtu通讯测试报告
MODBUS-RTU串行链路通信协议及测试方法

MODBUS-RTU串⾏链路通信协议及测试⽅法1 前⾔MODBUS是⼀项应⽤层报⽂传输协议,是⼀个请求/应答协议,提供功能码规定的服务,⽤于在通过不同类型的总线或⽹络连接的设备之间的客户机/服务器通信。
Modbus 串⾏链路系统可以使⽤异步串⾏链路(EIA/TIA-232-E、EIA-422、EIA/TIA-485-A等)进⾏通信。
本⽂介绍如何使⽤格西烽⽕通信测试软件编写测试项⽬,进⾏调试和测试Modbus通信节点。
2 通信协议2.1 术语MODBUS通信协议MODBUS是OSI 模型第7层上的应⽤层报⽂传输协议,它在连接⾄不同类型总线或⽹络的设备之间提供客户机/服务器通信。
2.2 通信接⼝⽀持EIA/TIA-232-E、EIA-422、EIA/TIA-485-A等串⾏接⼝,⽀持多点连接,要求9600bps,推荐19200bps,选择实现1200bps,2400bps,4800bp等其他速率。
2.3 数据链路层Modbus串⾏链路协议是⼀个主-从协议。
在同⼀时刻,只有⼀个主节点连接于总线,⼀个或多个⼦节点连接于同⼀个串⾏总线。
Modbus通信总是由主节点发起。
⼦节点在没有收到来⾃主节点的请求时,从不会发送数据。
⼦节点之间从不会互相通信。
主节点在同⼀时刻只会发起⼀个Modbus事务处理。
主节点以两种模式对⼦节点发出Modbus请求。
单播模式:主节点以特定地址访问某个⼦节点,⼦节点接到并处理完请求后,⼦节点向主节点返回⼀个报⽂(⼀个应答)。
在这种模式,⼀个Modbus事务处理包含 2 个报⽂,⼀个来⾃主节点的请求,⼀个来⾃⼦节点的应答。
⼴播模式:主节点向所有的⼦节点发送请求。
对于主节点⼴播的请求没有应答返回。
⼴播请求⼀般⽤于写命令。
所有设备必须接受⼴播模式的写功能。
地址0是专门⽤于表⽰⼴播数据的。
2.3.1 帧格式Modbus应⽤协议定义了简单的独⽴于其下⾯通信层的协议数据单元(PDU-Protocol Data Unit)。
欧姆龙(CP1H简易Modbus-RTU控制 (1)[1]
![欧姆龙(CP1H简易Modbus-RTU控制 (1)[1]](https://img.taocdn.com/s3/m/387b7f34b4daa58da0114a76.png)
CP1H简易Modbus/RTU控制实验时间:2010年05月19日实验人员:陶晓晨实验器材:硬件:CP1H-XA40DR-D、3G3MV、CP1W-CIF11、S82J-02524D软件:CX-Programmer实验目的:1. 通过CP1H的RS-485口控制3G3MV变频器。
实验内容:1.实验要求:通过CP1H的RS-485串口,直接控制3G3MV变频器输出频率、启动、停止或者读取变频器频率等参数。
2.实验步骤(1)硬件开关设定:CP1W-CIF11:工作设定用拨动开关中1,2,3,5,6号引脚置ON,4号引脚置OFF。
(2)PLC与3G3MV之间的接线:CP1H-XA40DR-D 3G3MVRDA-──────S-和R-短接RDB+──────S+和R+短接值得注意的是,由于PLC是直流供电的,不可直接接220V交流电,否则PLC将烧毁。
所以将PLC的输入端接在服务电源上。
(3)变频器相关设定:(变频器断电上电后,设置方可生效)SW2终端电阻拨到ON,n003=2,n004=6,n151=4,n152=0,n153=1,n154=2n155=0,n156=10,n157=0PLC的设置:(通过CX-P软件)通过CX-P软件与PLC连接后,打开设置,将PLC的串口1设置如下:图1-1图1-1将设置下传到PLC后,将PLC断电上电后,设置方可生效。
(4)数据传输:1)读变频器的状态串口1,:发送数据从D32200通道开始,接受数据从D3250开始。
要求:读取0020开始4个通道的数据发送数据:D32200=0001,D32201=0003,D32202=0004,D32203=0020,D32204=0004 将以上数据填入PLC内存后,把A641.00位(发送使能位)置ON,从D32250读取数据。
见图1-2和1-3。
图1-2图1-32)写变频器的状态(通过变频器面板观察)串口1,:发送数据从D32200通道开始,接受数据从D3250开始。
OMRON CP1H MODBUS-RTU通讯

C1PH简易Modbus-RTU主站和电力仪表通讯用OMRON 的PLC CP1H的内装RS85通讯板进行MODBUS-RTU通讯。
曾参考在OMRON官方网站上下载的MODBUS-RTU通讯程序,但有些不太明白,经实际测试,报告如下:一、系统组成二、系统设定1.CP1H设定:在编程软件中设置。
Port2为“串口网关”功能,通信波特率 9600,8,1,N2.CP1W-CIF11 DIP开关设定,1=ON(终端电阻) 2,3=ON(RS485方式) 4=OFF5=ON(接收有RS控制),6=ON(发送有RS控制)该内置模板设置为二线制的RS485通讯方式:RDA- -------仪表的RS485-RDB+ ------仪表的RS485+ON Yes1OFF NoTerminal resistorON 2 wires( RS485) 2OFF 4 wires( RS422)ON 2 wires( RS485) 3OFF 4 wires( RS422) have to set same setting of No2 and No34 --ON RD:RScontroll5OFF RD:No RS controll(Always possible to resive )“ No echo back settinng ” also No5= On.ON SD:RScontrol6OFF SD:No Rs controll(Always possible to send )For 4 wire(RS422) 1:N conection, N side unit set NO.6 = ON.For 2 wire(RS485), set No.6=ON.3.仪表设定仪表站地址:=1波特率:3=9600其读取寄存器的指令格式:例:06H03H 00H 00H 00H 21H 84H 65H 仪表站地址:06H;读取指令:03H 读取00H单元~21H单元的数据三、Modbus-RTU 简易主站功能在CP1H CPU 单元上安装RS-422A/485 选件板(或RS-232C 选件板),通过软件开关操作,作为Modbus-RTU 主站,来发送Modbus-RTU 命令。
Modbus通讯注意事项及测试

Modbus通讯注意事项及测试经常看到有很多同学在做Modbus通讯时,不知道如何设置参数,同时,如果通讯失败后,如何判断失败原因。
本文将重点介绍Modbus通讯的几个常见注意事项、通讯超时时间计算及常用的Modbus通讯测试工具。
很多同学在做Modbus通讯时,需要连续读取多个现场设备的数据,虽然也编写了Modbus轮询的程序,但是有时还是无法正常通讯。
有时虽然能够保证通讯,但是所有现场设备的轮询周期很长。
本文将从MBUS_CTRL的超时时间参数设置来说明超时时间设置的重要性。
一、通讯地址设定利用Modbus协议可以实现设备间的数据交换。
Modbus通讯理论上支持4种Modicon PLC地址,即0*、1*、3* 和4*四种,分别表示开出(中间线圈)、开入、模入、模出(中间寄存器)等数据地址。
与西门子或其它设备中的开入、开出、模入、模出地址完全不对应。
可以理解为0*和1*对应位地址的读写操作,3* 和4*字地址的读写操作。
此处0*、1*、3* 和4*表示长度有的为5位数字、有的为6位,其实和Modbus通讯无关,只是和软件的表示方式有关。
按照Modbus通讯时最常用的是RTU读请求格式:从站地址(1个字节)、功能代码(1个字节)、从站数据起始地址(2个字节)、读数据长度(2个字节)、CRC校验(2个字节)可见,只需设置起始从站数据区起始地址和通讯长度即可。
特别注意,Modbus地址遵从IEC1的地址标准(最小地址为*1),西门子遵从IEC0的标准(最小地址为0,如M0.0)。
因此,不同标准的地址做通讯时需要做地址变换,即加1的操作。
二、通讯故障诊断在做Modbus通讯时经常会出现通讯失败的现象,如果判断是程序问题还是别的问题,其实完全可以利用常见的Modbus测试软件来判断。
常见的Modbus测试软件有Modscan和Modsim。
也可以使用常见的串口调试工具软件,如SSCOM42等。
其中Modscan软件可以读取Modbus从站的数据,如果利用Modscan软件可以建立连接,但是设备间直连后无法通讯,问题可以在RS485极化、主站上。
CP1L-简易定位MODBUS-实验报告

CP1L简易定位--MODBUS实验设备:CP1L-M40DT-D(PLC)、CP1W-CIF11(RS422/485通讯板)3G3MX2-AB001-Z(变频器)、编码器、电机实验目的:掌握CP1L简易定位功能(通信方式)。
实验步骤:1、系统概述,硬件搭建和接线(如下图所示)①系统搭建②CP1W-CIF11与变频接线;背后的DIP开关设置为:1,4号DIP设为OFF,其余设置为ON,(如下图所示)3G3MX2变频使用485方式走MODBUS通讯,将变频器的RS+,RS-管教接到CP1W-CIF11的R+/R-或S+/S-,终端电阻拨到OFF(出厂设置)③编码器接到高速计数器端子上,(如下图所示)④变频输出到点击接线,(如下图所示)⑤变频的正反转通过PLC的100.02和100.03控制,(如下图所示)2、软件设置①设置变频定位功能,(如下图所示)增益:偏差计数器当前值*偏差计数器演算周期*增值设定=至变频器的输出指令IN-POSITION范围:指定的脉冲量与偏差计数器中的值做差,如果差在设定值之内,就表示定位成功,算是定位精度。
每秒电机旋转一周变频的频率:电机1秒中回转所需的电源频率根据电机的参数计算:电机转速1400r/min,23.33333r/sec3G3MX2设定的最高频率为60HZ每秒电机旋转一周的变频器频率=60HZ/23.33333=2.57HZ≈2.6HZ编码器旋转一周的分辨率:按编码器实际铭牌上写的设定。
②高速计数器设定,(如下图所示)③串口设定,(如下图所示)④变频设定频率由通信方式给定,运行由端子给定A001——03,通过MODBUS通讯方式给定频率A002——01,通过S1,S2端子控制正转运行和反转运行C001/C002——00/01,对应的S1,S2端子控制正转运行和反转运行C071——05,波特率设定为9600C072——1,3G3MX2节点号设定为1C074——01,3G3MX2校验设定为偶校验3、编程说明①脉冲指令,(如下图所示)端口指定设为#20表示使用变频定位0功能,其他控制字设置与PLS2相同参数设置PLS2的目标频率有以下公式计算得出100*4*0.25/2.6*60=2308Hz②通信参数,(如下图所示)其中,A23是至变频器的频率指令值,这个值是通过PLS2向偏差计数器发脉冲后由PLC自行计算的。
ModBus RTU通信的工程实践和思考

ModBus RTU通信的工程实践和思考1. 引言1.1 介绍ModBus RTU通信的背景ModBus RTU通信是一种常用的串行通信协议,广泛应用于工业控制系统中。
该协议采用轻量级的二进制形式进行数据传输,具有较高的传输速率和稳定性。
ModBus RTU通信可以实现不同设备之间的数据交换和控制操作,为工程实践提供了便利。
ModBus RTU通信协议最早由Modicon于1979年发布,后被Modicon和Schneider Electric广泛应用于PLC、传感器、仪表等工业设备中。
其简单易懂的数据帧格式和灵活可靠的通信方式,使得工程师们可以快速搭建起设备间的通信网络,实现对生产过程的监控和控制。
随着工业自动化水平的不断提高,ModBus RTU通信在工程实践中的作用日益凸显。
工程师们通过对该通信协议的深入理解和实践应用,不断提升工业控制系统的效率和可靠性。
对ModBus RTU通信的背景介绍以及相关工程实践经验的总结和展望,对于进一步推动工业自动化发展具有重要意义。
ModBus RTU通信的背景介绍将为读者提供了解该通信协议的基础知识,为后续内容的阐述打下基础。
1.2 阐述本文的研究重点本文主要研究的重点是ModBus RTU通信的工程实践和应用。
通过对ModBus RTU通信协议的深入分析,探讨其在工业控制系统中的具体应用和优势。
将重点描述ModBus RTU通信在实际工程中可能遇到的故障,并提供解决方案。
本文还将探讨如何优化ModBus RTU通信的性能,以提高系统的稳定性和效率。
结合实际案例,介绍ModBus RTU通信系统集成的实践经验,分享经验和教训。
通过对这些重点内容的研究和分析,我们旨在总结出ModBus RTU通信在工程实践中的经验教训,展望其未来发展趋势,并深入思考ModBus RTU 通信对工程实践的意义和价值。
2. 正文2.1 ModBus RTU通信协议分析ModBus RTU通信协议是一种常见的串行通信协议,广泛应用于工业自动化领域。
欧姆龙PLC通讯测试

欧姆龙PLC通讯测试一、配置PC IP地址1、打开“网络和共享中心”-----“更改适配器”-----“本地连接”----IP4----修改与PLC同一网段IP地址二、打开网络调试助手(NetAssist)1、协议类型更改为客户端(TCP Client)2、服务器IP地址改为PLC IP地址如192.168.1.403、端口号设置为96004、发送区、接受区均需勾选十六进制显示,发送区点击“清除输入”三、欧姆龙PLC的FINS/TCP命令1、发送握手命令4649 4E53 0000 000C 0000 0000 0000 0000 0000 0032 FINS(包头) 数据长度功能码错误码末位本机IP A、数据长度:数据长度以后的字节长度,一位数字占4位,8位为一字节,因此两个数字为一字节,上述握手命令的数据长度之后共24数字长度,即12字节,转换为十六进制为C。
B、末位本机IP:本机IP地址为192.168.1.50,IP末位为50,转换为十六进制即为32.2、握手命令反馈4649 4E53(固定包头)0000 0010(数据长度)0000 0001 (功能码)0000 0000(错误码)0000 0032(本机IP 50)0000 0028(PLC IP 40)A、功能码:00000000:客户端----服务端00000001:服务端----客户端00000002:FINS贞发送命令00000003:FINS贞发送错误通知命令00000006:确立通信连接B、错误码:00000000:为正常00000001:数据头不是FINS/ASCII格式00000002:数据长度过长00000003:命令(C功能码)错误00000020:连接/通信被占用发送握手命令反馈截图如下:3、读取指定地址区值命令(读取DM区2个字,从DM6004开始)4649 4E53 :FINS包头(固定)0000 001A :数据长度0000 0002 :功能码0000 0000 :错误码(0表示无错误,否则均为异常)80 00 02 :发送FINS贞格式00 28 00 :PLC的地址40,转换成十六进制为2800 32 00 :PC的地址50,转换为十六进制为3200 01 01 :SID+MRC+SRC82 :表示DM区1774 :首地址,读取地址从6004开始00 :固定00 02 :读取数量(一个DM地址存储16位,即2个字节,4位数字)4、读取指令反馈4649 4E53 : FINS包头(固定)0000 001E : 数据长度0000 0002 : 功能码0000 0000 : 错误码(0表示无错误,否则均为异常)C0 00 02 :固定贞头00 32 00 :PC的地址50,转换为十六进制为3200 28 00 :PLC的地址40,转换成十六进制为2800 01 01 :SID+MRC+SRC00 00 :固定6666 4278 :读取数据0000 42BE :读取数据发送读取命令反馈截图如下:四、读取数据解析1、使用网络调试助手读取数据为十六进制,PLC中设置该地址存储数据为32位浮点型(8位数字),要将读取数值进行十六进制到浮点数的转换;2、浮点数十六进制转换器A、将读取的第一个数值6666 4278,以4278 6666的格式输入在单精度栏,点击“转浮点数”按钮,在浮点数栏中会显示该数值大小,截图如下:3、将解析后的数据与PLC对应地址数据对比五、通讯测试软件SocketTool的使用1、配置PC IP地址(同网络调试助手)2、打开SocketTool软件A、选择“TCP Client”,点击“创建”按钮,弹出客户端配置窗口,输入PLC IP地址192.168.1.40,端口号设置为9600,如下截图:B、配置完毕,点击确定,进入数据收发窗口,勾选十六进制值:3、发送欧姆龙PLC的FINS/TCP握手命令&读取命令(同上),点击“连接”、“发送数据”;4、局限性:SocketTool软件测试时,每发送一次命令,发送区就会自动清零。
Ormon 的Modbus-Rtu通讯测试报告

Omron Modbus通讯测试报告一、接线方式测试时采用四线全双工接线方式二、系统设定1、CP1H设定:安装CX-Programmer,在编程软件左侧设置选项中设置端口。
Port1为“串口网关”功能,通信波特率9600,8,1,N。
2、从站MOONS’驱动器通讯参数的配置1)从站地址:同一个网络中,每一个从站都有唯一的地址。
同样,也可以通过MOONS’ SCL语言指令进行设定, SCL中地址指令为DA.2)波特率:主站和从站必须设定为同样地波特率。
SCL中波特率指令为BR.3)上电模式:通过SCL语言指令(PM)配置, Modbus/RTU模式下PM=8或者PM=9.4)通讯协议:通过SCL语言指令(PR)配置, PR=5或者PR=133. 若PM=8,表示上电后,驱动器的Q功能不运行;若PM=9,表示上电后,驱动器的Q功能运行。
若PR=5(即二进制为0000 0101),表示32位数据高位优先;若PR=133(即二进制为1000 0101),表示32位数据低位优先。
测试设置:安装ST Configurator 软件并设置DA=2,BR=9600,PM=8,PR=5,说明:CP1W-CIF11 开关设定,1=ON(有终端电阻);2,3=ON(RS485 方式);5=ON(不要 echoback 数据);6=ON(RS485 方式),测试时采用4线制且无电阻方式,故CP1W-CIF11均设为OFF。
三、Modbus/RTU支持的功能码MOONS’驱动器目前支持如下的Modbus功能码:1) 0x03:读保持寄存器;2) 0x04:读输入寄存器;3) 0x06:写单个寄存器:4) 0x10:写多个寄存器。
四、通讯例程例:预写入规划曲线参数加速度(40028)=600(0x0258),减速度(40029)=600(0x0258),速度(40030)=240(0x00F0),目标位置(40032,40031)=200000(0x00030D40),若PR=5模式下:写入报文: 01 10 00 1B 00 05 0A 02 58 02 58 00 F0 00 03 0D 40 CD 83反馈报文: 01 10 00 1B 00 05 70 0D若PR=133模式下:写入报文: 01 10 00 1B 00 05 0A 02 58 02 58 00 F0 0D 40 00 03 7B 9A反馈报文: 01 10 00 1B 00 05 70 0D测试如下图:因为Ormon的Modbus不是标准的通讯,格式为;站号,功能码,字节数,+要发送的数据(这里面的字节数是Ormon内部计算发送的字节数,实际发送过程中是不作为发送代码的,只是计算发送数据的长度来发送指定长度的代码)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Omron Modbus通讯测试报告
一、接线方式
测试时采用四线全双工接线方式
二、系统设定
1、CP1H设定:安装CX-Programmer,在编程软件左侧设置选项中设置端口。
Port1为“串口网关”功能,通信波特率9600,8,1,N。
2、从站MOONS’驱动器通讯参数的配置
1)从站地址:同一个网络中,每一个从站都有唯一的地址。
同样,也可以通过MOONS’ SCL语言指令进行设定, SCL中地址指令为DA.
2)波特率:主站和从站必须设定为同样地波特率。
SCL中波特率指令为BR.
3)上电模式:通过SCL语言指令(PM)配置, Modbus/RTU模式下PM=8或者PM=9.
4)通讯协议:通过SCL语言指令(PR)配置, PR=5或者PR=133. 若PM=8,表示上电后,驱动器的Q功能不运行;
若PM=9,表示上电后,驱动器的Q功能运行。
若PR=5(即二进制为0000 0101),表示32位数据高位优先;
若PR=133(即二进制为1000 0101),表示32位数据低位优先。
测试设置:安装ST Configurator 软件并设置DA=2,BR=9600,PM=8,PR=5,
说明:CP1W-CIF11 开关设定,1=ON(有终端电阻);2,3=ON(RS485 方式);5=ON(不要 echoback 数据);6=ON(RS485 方式),测试时采用4线制且无电阻方式,故CP1W-CIF11均设为OFF。
三、Modbus/RTU支持的功能码
MOONS’驱动器目前支持如下的Modbus功能码:
1) 0x03:读保持寄存器;
2) 0x04:读输入寄存器;
3) 0x06:写单个寄存器:
4) 0x10:写多个寄存器。
四、通讯例程
例:预写入规划曲线参数
加速度(40028)=600(0x0258),
减速度(40029)=600(0x0258),
速度(40030)=240(0x00F0),
目标位置(40032,40031)=200000(0x00030D40),
若PR=5模式下:
写入报文: 01 10 00 1B 00 05 0A 02 58 02 58 00 F0 00 03 0D 40 CD 83
反馈报文: 01 10 00 1B 00 05 70 0D
若PR=133模式下:
写入报文: 01 10 00 1B 00 05 0A 02 58 02 58 00 F0 0D 40 00 03 7B 9A
反馈报文: 01 10 00 1B 00 05 70 0D
测试如下图:
因为Ormon的Modbus不是标准的通讯,格式为;站号,功能码,字节数,+要发送的数据
(这里面的字节数是Ormon内部计算发送的字节数,实际发送过程中是不作为发送代码的,只是计算发送数据的长度来发送指定长度的代码)。
D32203开始为两个字节,位数不够左移,最后补00。
其他控制模式
1、相对位置
2、绝对位置
3、停止
4、CJ点动
5、SJ点动
6、触发发送。