MUDBUS通讯实验
M340_modbus通讯实验

M340_modbus通讯实验实验设备:Modbus 主站:M340:P342010Modbus 从站:TWDLCAA24DRF接线方式:使用双绞线电缆,RJ45的4(D1)接到TWDNAC 485T的A,5(D0)接到TWDNAC 485T的B实验概诉:主站通过WRITE_VAR指令往从站写2个字的数据,然后用READ_VAR指令读取该数据,监视读到的值是否与写入值一致,以熟悉M340的MODBUS通讯。
实验步骤:1.新建项目选择TWDLCAA24DRF,添加选件TWDNAC485T,并配置为Modbus,地址为2,并配置好通讯参数,如下图:2.在UNITY中新建项目并做好硬件配置,modbus通讯口设置为主站并设置通讯参数(参数与twido的485T一致)3.编写程序a.在“数据编辑器”中给%mw200初始值5555,%mw201初始值1234b.配置WRITE_VAR,让主站把%mw200开始的连续2个字写到从站的%mw10。
c.配置READ_VAR,主站读取从站的%mw10开始的连续2个字,并存到主站的%mw10(RECP)。
4.把项目程序分别下载到主、从站plc,接好通讯电缆,运行plc,并在UNITY中打开主站M340的程序并监视%mw10、11的数值是否与写入数值一致。
实验注意事项:1)正确配置READ_VAR和WRITE_VAR(请参考帮助文档),比如,OBJ类型为‘%mw’,输入时别忘了单引号。
2)主从站的通讯端口的参数设置必须一致.3)功能块ADDM输入地址格式,对于使用 Modbus 协议的设备的地址,参数 IN 采取格式‘',注意别忘了单引号,其中:r:机架号(机架)本例为0m:模块位置本例为0c:Modbus 端口(0) 的通道编号(主站即M340 的通道,本例为0)e:Modbus 从站号(设备)(范围介于 1 到 247 之间)本例为2 4)twido的内存要释放,即在梯形图逻辑中要用到%mw11或以后的寄存器.。
modbus协议通信实例

modbus协议通信实例Modbus协议是一种常用的工业通信协议,它可以实现不同设备之间的数据交换。
下面将介绍一个Modbus协议通信的实例。
在这个实例中,我们需要将一个温度传感器的数据传输到PLC控制器上。
首先,我们需要选择一个支持Modbus协议的温度传感器和PLC 控制器。
在这个实例中,我们选择了一个支持Modbus RTU协议的温度传感器和PLC控制器。
接下来,我们需要配置温度传感器和PLC控制器的Modbus通信参数。
在这个实例中,我们选择了9600波特率、8数据位、无校验位和1停止位。
我们还需要为温度传感器和PLC控制器分配Modbus地址。
在这个实例中,我们将温度传感器的Modbus地址设置为1,将PLC控制器的Modbus地址设置为2。
现在,我们可以开始编写PLC控制器的程序。
在这个实例中,我们使用了一个Modbus RTU通信模块来实现PLC控制器与温度传感器之间的通信。
我们需要在PLC控制器的程序中添加Modbus RTU通信模块,并配置通信参数和Modbus地址。
然后,我们需要编写一个读取温度传感器数据的程序,并将数据存储到PLC控制器的内存中。
在温度传感器和PLC控制器之间建立通信后,我们可以使用Modbus 调试工具来测试通信是否正常。
在这个实例中,我们使用了一个Modbus调试工具来读取温度传感器的数据。
我们需要在Modbus调试工具中设置通信参数和Modbus地址,并发送读取数据的命令。
如果通信正常,我们将能够读取到温度传感器的数据。
最后,我们可以在PLC控制器的HMI界面上显示温度传感器的数据。
在这个实例中,我们使用了一个数码管来显示温度传感器的数据。
我们需要在PLC控制器的程序中添加一个数码管,并将温度传感器的数据显示在数码管上。
总之,Modbus协议是一种常用的工业通信协议,它可以实现不同设备之间的数据交换。
在这个实例中,我们使用了Modbus RTU协议来实现温度传感器和PLC控制器之间的通信,并将温度传感器的数据显示在PLC控制器的HMI界面上。
4 s7 1200做modbus通信

s7 1200做modbus通信实验设备:s7 1200PLC一台;cm1241 通信卡一块;modbus主站设备一台(此实验使用PC 端modbuscan 32模拟主站)实验过程:一、硬件组态及设置;硬件组态为s7 1200cpu和cm1241通信卡,如下图所示:cm 1241要设置的为端口组态,具体设置需根据现场设备而定,此次试验采用9600 8n1的通信方式,接线采用485接线。
S7 1200 需要设置IP和时钟存储器设置IP:设置时钟存储器:二、做从站时软件编写:1)、创建通信数据块:创建数据块后,进入属性去掉“优化的块访问”。
然后在数据块中创建存储区域。
2)、调用“MB_COMM_LOAD”初始化通讯端口:各引脚参数如下图:“MB_COMM_LOAD”只需要调用一次,所以可以将其放置于OB100,此处使用PLC时钟存储器的FristScan来使之只在第一个周期调用。
3)、调用“MB_SLAVE”:“MB_SLAVE”上个引脚说明如下图所示:Modbus内部点位如下图所示:三、做主站时软件编写:S7 1200做主站时硬件配置和从站时相比无需更改,仅需在软件部分做修改即可。
1)、创建通信数据块:添加modbusMaster数据区域2)、调用“MB_COMM_LOAD”初始化通讯端口:此处配置与做从站时配置一致,仅需注意MB_DB管脚处要与使用的背景数据块对应。
3)、调用MB_MASTER:MB_MASTER各引脚说明如下图所示:Modbus各个模式及通信地址如下图所示:四、实验测试:1)、s7 1200从站时通信测试:将上面的2个程序段下载入PLC就可以进行modbus通信测试了;测试结果如下:功能码01:功能码02:功能码04:PLC内数据:可见通信正常,所有数据读写也正常。
2)、s7 1200做主站时通信测试:首先使用读取模式;PC端使用ModbusSlave模拟从站,首先把所有q点置1;PLC内部数据如下图:只留第一个为1;PLC内部数据:接着测试读取寄存器,此处随意修改几个数值:PLC内部读取的数值如下图:最后测试s7 1200发送数据给从站;首先修改PLC里的数据:使用Modbus Slave 读取的数据如下图所示:从上面试验可以看出s7 1200 做主站时各功能码下读取数据正常,写入数据也正常,所有功能均正常工作。
MODBUS通讯实例教程V0.1(延安)

MODBUS通讯实例教程一.实验前准备工作:1.1工具:●电脑1台;●USB转232数据线1根(每个品牌型号驱动不一样,必须对应安装USB转232驱动);●232转485接头1个;●带MODBUS仪表1块。
注:1.实验前必须确保数据线正常,建议准备两根相同的数据线及232转485接头。
B转232驱动安装好,在设备管理器中查看,设备端口及端口号。
(图-1)图-11.2功能码:●03:读保持寄存器●04:读输入寄存器●06:写单个保持寄存器●10:写多个保持寄存器✧仪表通讯地址:1/9600/8N1(参数必须一一对应,O奇校验/E偶校验/N无校验)。
二.用串口调试软件与设备通讯(ComMonitor.exe)调试软件保存在桌面可使用。
注:在使用串口“ComMonitor”软件时,必须用“管理员身份运行”2.1读取仪表起始值为第1个数据,读1个数据[发送]010300000001840A注释:数据中0000为读取的起始值,0001读取寄存器的个数。
[接收]010*******B9D4注释:数据中02为读取的字节个数,0100读取的两个字节。
2.2读取仪表起始值为第3个数据,读2个数据[发送]01030002000265CB注释:数据中0002为读取的起始值,0002读取寄存器的个数。
[接收]01030403000400F8B7注释:数据中04为读取的字节个数,03000400读取的4个字节。
2.3读取仪表起始值为第1个数据,读10个数据(转化为16进制是0A)[发送]010********A C5CD注释:数据中0000为读取的起始值,000A读取寄存器的个数。
[接收]0103140100020003000400050006000700080009001000D8DA注释:数据中14(16进制)为读取字节个数。
转换为10进制为20.意思就是读取到20个字节,010002 0003000400050006000700080009001000为10个寄存器数据。
M340_modbus通讯实验

实验设备:Modbus 主站:M340:P342010Modbus 从站:TWDLCAA24DRF接线方式:使用双绞线电缆,RJ45的4(D1)接到TWDNAC 485T的A,5(D0)接到TWDNAC 485T的B实验概诉:主站通过WRITE_VAR指令往从站写2个字的数据,然后用READ_VAR 指令读取该数据,监视读到的值是否与写入值一致,以熟悉M340的MODBUS 通讯。
实验步骤:1.新建项目选择TWDLCAA24DRF,添加选件TWDNAC485T,并配置为Modbus,地址为2,并配置好通讯参数,如下图:2.在UNITY中新建项目并做好硬件配置,modbus通讯口设置为主站并设置通讯参数(参数与twido的485T一致)3.编写程序a.在“数据编辑器”中给%mw200初始值5555,%mw201初始值1234b.配置WRITE_VAR,让主站把%mw200开始的连续2个字写到从站的%mw10。
c.配置READ_VAR,主站读取从站的%mw10开始的连续2个字,并存到主站的%mw10(RECP)。
4.把项目程序分别下载到主、从站plc,接好通讯电缆,运行plc,并在UNITY中打开主站M340的程序并监视%mw10、11的数值是否与写入数值一致。
实验注意事项:1)正确配置READ_VAR和WRITE_VAR(请参考帮助文档),比如,OBJ类型为‘%mw’,输入时别忘了单引号。
2)主从站的通讯端口的参数设置必须一致.3)功能块ADDM输入地址格式,对于使用 Modbus 协议的设备的地址,参数 IN 采取格式‘r.m.c.e',注意别忘了单引号,其中:r:机架号(机架)本例为0m:模块位置本例为0c:Modbus 端口 (0) 的通道编号(主站即M340 的通道,本例为0)e:Modbus 从站号(设备)(范围介于 1 到 247 之间)本例为24)twido的内存要释放,即在梯形图逻辑中要用到%mw11或以后的寄存器.。
Twido_modbus通讯实验EXCH

两台Twido PLC间的MODBUS通讯实验报告两台Twido PLC间的MODBUS通讯实验报告目录一、实验背景 (3)1.1Modbus简介 (3)1.2Modbus主站标准协议的字表格式 (3)1.3EXCH指令的用法 (3)二、实验设备 (4)2.1硬件 (4)2.2软件 (4)三、实验目的 (6)四、实验模型 (6)五、实验过程 (6)六、实验结果 (7)七、实际案例 (8)1.1Modbus简介Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。
Modbus 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
控制器通信使用主—从技术,即仅设备(主设备)能初始化传输(查询)。
其它设备(从设备)根据主设备查询提供的数据作出相应反应。
主设备可单独和从设备通信,也能以广播方式和所有从设备通信。
如果单独通信,从设备返回消息作为回应,如果是以广播方式查询的,则不作任何回应。
Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域。
从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和错误检测域。
如果在消息接收过程中发生错误,或从设备不能执行其命令,从设备将建立错误消息并把它作为回应发送出去。
控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus 网络通信。
RTU方式相比ASCII方式,同样长度的数据帧能携带更多的有效信息,但RTU方式要求传输消息时必须非常连续,而ASCII方式允许传输字符的间隔达到1s。
1.2Modbus主站标准协议的字表格式请参考SCDOC671 181页~183页1.3EXCH指令的用法Twido控制器位Modbus通信提供了EXCH用于发送和接收消息。
M340的modbus通过Data_exch通讯实验 图文并茂

M340与TWIDO做Data_exch通讯图文并茂DATA_EXCH功能块是用于Premium和M340传输数据到另外一台设备。
特别注意的是这个功能块支持Modbus所有的功能码。
现将常用的Modbus功能码列表,如下:DATA_EXCH用梯形图表示为各个引脚定义ADR为地址引脚,对于PREMIUM系列需要使用ADDR功能块连接对于M340系列需要使用ADDM功能块连接。
TYPE为类型引脚,1为接受/发送,2为只接受,3为只发送。
EMIS为要发送表RECP为接受表GEST为交换管理表实验一:读取N位(功能码01)其中在EMIS数组中第一个字,低字节为功能码01,高字节为读取位的起始位1 第二个字,低字节为读取位的起始位1,高字节为读取位的长度5第三个字,低字节为读取位的长度5最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的数据起始地址,2个字节的读取位的长度,所以长度为1+2+2=5在TWIDO中赋值如下:在RECP中第一个字为返回码第二个字为读取的数据实验二:读取N字(功能码03)其中在EMIS数组中第一个字,低字节为功能码03,高字节为读取字的起始地址1 第二个字,低字节为读取字的起始地址1,高字节为读取字的长度6第三个字,低字节为读取字的长度6最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的数据起始地址,2个字节的读取字的长度,所以长度为1+2+2=5在TWIDO中赋值如下在RECP中第一个字为返回码第二个字开始为读取的数据实验三:写单字(功能码06)其中在EMIS数组中第一个字,低字节为功能码06,高字节为从站要写入字的地址11第二个字,低字节为从站要写入字的地址11,高字节为主站写出字的地址90第三个字,低字节为主站写出字的地址90最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的从站写入字地址,2个字节的主站写出字地址,所以长度为1+2+2=5在主站赋值如下在TWIDO中显示如下实验四:写N字(功能码16)其中在EMIS数组中第一个字,低字节为功能码16,高字节为从站要写入字的起始地址20第二个字,低字节为从站要写入字的起始地址20,高字节为要写入字的长度3第三个字,低字节为要写入字的长度3,高字节为2倍的要写入字的长度第四个字~第六个字为主站写出字,高低字节顺序要相互转换最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的从站写入字地址,2个字节的写入字的长度,1个2倍的要写入字的长度,6个字节的主站写出字,所以长度为1+2+2+1+6=12在主站赋值如下在TWIDO中显示如下另外注意刷新数据时,必须要把EN引脚断开一下才可以重新读取或写入。
PZ96-E4的MODBUS通讯试验

PZ96L-E4/CMODBUS通讯实验PZ96L-E4/C电力仪表是上海安科瑞电气股份有限公司自主研发生产的产品,该电力仪表针对电力系统、工矿企业、公共设施、智能大厦的电力监控需求而设计的。
电力仪表可以直接取代常规电力变送器及测量仪表。
作为一种先进的智能化、数字化的前端采集元件,该电力仪表已广泛应用于各种控制系统、SCADA系统和能源管理系统中。
仪表采用交流采样技术,能测量电网中的电流、电压频率、有功功率、无功功率、有功电能、无功电能等参数,可通过面板薄膜开关设置倍率,带RS485通讯、报警输出、开关量输入/输出等功能。
正好有个项目需要用到PZ96L-E4/C仪表(以下简称仪表)的RS485通讯功能,我就做了一个用MODSCAN32软件与仪表进行通讯的实验。
一先按以下接线图接线并上电:仪表PZ96L-E4/C 1台232转 485通讯适配器 1只USB转串口通讯接口 1只二打开MODSCAN32软件,在下拉式菜单Connect下选择Connect,按以下图进行设置其中COM3是电脑USB转串口的地址,波特率9600、数据长度、奇偶校验位、停止位、必须要和仪表设置相符合。
三按上图中Protocol Selections 按钮,进入以下画面进行设置:设置完成后按OK键结束。
四在下拉式菜单File选择New,按以下画面进行设置:数据类型一定要选用03:HOLDING REGISTER ,否则数据不对。
OK,数据已经上来了,具体的项目的含义请参照《 PZ系列可编程智能电测表——三相功率、三相电能部分(P3/P4、E3/E4)》,由安科瑞提供。
河南华东工控技术有限公司耿保国2012年7月31日。
modbus实验心得

modbus实验心得modbus是一种常见的通信协议,广泛应用于工业自动化领域。
在进行modbus实验后,我对这个协议有了更深入的了解和体会。
modbus具有简单、易操作的特点。
通过modbus协议,设备之间可以进行快速、可靠的数据通信。
在实验中,我使用了modbus协议进行了数据传输的测试。
通过编写简单的代码,我成功地实现了设备间的通信,并且能够准确地读取和写入数据。
这表明modbus 协议具有良好的可用性和易用性,适用于各种工业设备之间的通信。
modbus具有高效的数据传输能力。
在实验中,我测试了modbus 协议在不同环境下的通信速度。
结果显示,modbus协议在传输大量数据时仍能保持较高的传输速度,保证了数据的及时性和准确性。
这对于工业自动化系统来说非常重要,可以提高生产效率和降低成本。
modbus协议还具有良好的兼容性。
在实验中,我测试了不同厂家生产的设备之间使用modbus协议进行通信的情况。
结果显示,这些设备能够正常地进行数据传输,说明modbus协议具有良好的兼容性,可以与不同厂家的设备进行互联互通。
这为工业自动化系统的搭建提供了更大的灵活性和选择性。
modbus协议还具有较好的安全性。
在实验中,我测试了modbus 协议在数据传输过程中的安全性。
通过加密算法和数据验证,modbus协议能够有效地防止数据被非法篡改和窃取。
这对于工业自动化系统来说非常重要,可以保护敏感数据的安全性和机密性。
总结起来,通过这次modbus实验,我对这个通信协议有了更深入的了解和认识。
modbus具有简单、易操作、高效的数据传输能力、良好的兼容性和较好的安全性等特点。
在工业自动化领域,modbus协议发挥着重要的作用,为设备之间的通信提供了一种可靠、高效的解决方案。
我相信,在未来的工业自动化发展中,modbus协议将发挥越来越重要的作用,为工业自动化系统的建设和应用提供更多可能性。
S7-200PLC之间进行Modbus通讯实验

1、硬件组态:S7-200PLC CPU 224XP、S7-200PLC CPU 226、维控触屏LEVI 777T、S7-200PLC之间通讯用RS485通讯电缆、S7-200PLC与维控触屏通讯用RS485通讯电缆、编程用USB/PPI电缆。
主从站设定:CPU 224XP主站,CPU 226为从站。
2、通讯端口及设定:主站CPU 224XP PORT0用于Modbus通讯、PORT1用于连接编程电缆。
从站CPU 226 PORT0用于Modbus通讯、PORT1用于连接维控触摸屏COM1(PPI 协议)。
各端子对应接线如下图。
3、实验内容:①主站读从站输入点信号、V存贮区变量;②主站控制从站输出点、写入从站整数变量及浮点数变量并在触摸屏(与从站相连)上显示;③从站读取主站发送数据并处理。
4、CPU226从站通讯初始化编程如下所示。
从站地址规定为6,端口PORT0通讯波特率9600,无校验、无延迟,允许存取所有的I、Q(MaxIQ=128)、和AI(MaxAI=32)数值,保持寄存器的存贮空间为VB3000开始的1000个字。
5、为从站程序块指定库存贮区,注意:程序中不可使用库存储区占用的地址。
6、在维控触屏中下载用于监控Modbus通讯结果的画面程序,如下图。
其中包括从站本机输入点I0.0~I0.7的状态、输出点Q0.0~Q0.7(受主上控制),以及从站Modbus通讯保持寄存器VB3000~VB3013内容、整数VW3000、浮点数VD3000和VD3008内容等。
7、准备好主站通讯程序。
为主站程序块指定库存贮区,注意:程序中不可使用库存储区占用的地址。
程序如下所示(上电初始化程序实际应用时要放在网络1),其中主站输入点I1.0用于触发数据传送,VB3000用于存贮读从站输入点数据,VB5000用于存贮要写入从站控制输出点的数据,VB6000用于存贮要写入从站V存贮区的数据,VB7000用于存贮由从站读取的V存贮区数据(用于验证写从站结果)。
PLC的MODBUS通信实例

PLC的MODBUS通信实例随着工业时代的发展,工业自动化控制已进入网络时代,工业控制器连网也为网络管理提供了方便。
MODBUS通信就是工业控制器的网络协议中的一种。
关键词: MOBUS通信协议,RS485,奥越信CPU,程序设计一、MODBUS 简介MODBUS是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。
当现代的控制领域持续不断的产生和应用诸如现场总线和网状网络等先进概念的时候,MODBUS的简单性以及它的便于在许多通讯媒介上实施应用的特点一直使它受到最广泛的支持,并且成为全球应用最广泛的工业协议。
通过此协议,控制器经由网络(例如以太网)和其它设备之间可以通信,此协议支持传统的RS-232、RS-422、RS-485和以太网设备。
许多工业设备,包括PLC、DCS、变频器、智能仪表等都在使用MODBUS协议作为他们之间的通讯标准,它可应用于各种数据采集和过程监控。
二、MODBUS协议库1、使用MOBUS协议的部分要求A、初始化MODBUS从站协议占用Port0 作为MODBUS从站协议通信,MODBUS从站协议只支持端口0通信,所以选择奥越信的双通信的CPU,可以把Port1作为编程通信口,以便于调试;如果只有单通信口的话,可把CPU打到STOP模式在编程。
B、MODBUS从站协议指令的变量要求799字节的V区域,该区域的起始地址由用户指定,保留给MODBUS使用,程序中不可以使用库存储区占用的地址。
C、可参照S7-200编程手册中了解MODBUS指令的设置与编写。
2、MODBUS协议允许在各种网络体系结构内进行简单通信。
如图所示:A、每种设备(PLC、HMI、控制面板、驱动程序、动作控制、输入/输出设备)都能使用MODBUS协议来启动远程操作。
B、在基于串行链路和以太网络的MODBUS上可以进行相同通信。
C、一些网关允许在几种使用MODBUS协议的总线或网络之间进行通信。
【经典】PLC之MODBUS通讯案例

【经典】PLC之MODBUS通讯案例1. 硬件设置程序中的 Modbus 通讯是在两个 S7-200 CPU 的 0 号通讯口间进行的(最好每个CPU 都有两个通讯口)。
在主站侧也可以用相应库文件'MBUS_CTRL_P1' 和'MBUS_MSG_P1'通过1号通讯口通信。
通讯口1 用 Micro/WIN 与 PG 或 PC 建立连接,两个 CPU 的通讯口 0 通过Profibus 缆进行连接(电缆的针脚连接为3,3,8,8 -> 见图 01)。
另外,需要确定逻辑地M相连。
2. 参数匹配对于MODBUS 通讯,主站侧需要程序库'MBUS_CTRL' 和'MBUS_MSG',从站侧需要程序库 'MBUS_INIT' and 'MBUS_SLAVE'。
在 Micro/WIN 中您需要为主站和从站新建一个项目,程序与参数设置见图.02。
必须要保证主站与从站的“Baud”和“Parity” 的参数设置要一致,并且程序块'MBUS_MSG' 中的'Slave' 地址要与程序块'MBUS_INIT' 中的 'Addr' 所设置的一致 (见图. 02)。
在Micro/WIN“系统块”中设置的通讯口0 的波特率与MODBUS 协议无关 ('Mode' = '1')。
下面的表格列出了程序块各个参数选项及其含义。
主站MBUS_CTRLMBUS_MSG从站MBUS_INITMBUS_SLAVE3. 库的存储地址项目完成后必须要在 Micro/WIN 中定义库的存储地址,当定义完存储区后, 要保证在任何情况下不能再被其它程序所使用(主站侧: 'DataPtr' + 'Count' 从站侧:'HoldStart' + 'MaxHold')。
NS和3G3MX2-实现MODBUS通讯-实验报告

3
OMRON 客户服务中心
图 1-6 ②MW:保持寄存器,字号为 1,控制变频器的频率,(如下图所示)
图 1-7
图 1-8 由 于 变 频 器 频 率 单 位 是 0.01Hz , 所 以 设 定 倍 率 为 0.01 ,( 如 下 图 所 示 )
图 1-9 实验现象: 1、点击 RUN 按钮后,变频器的 RUN 灯亮。 2、点击频率设定,输入 12.34,则变频器的设定频率变更为 12.34Hz。
OMRON 客户服务中心
NS和3G3MX2实现MODBUS通讯
实验设备:NS5-SQ00B-ECV2(触摸屏)、3G3MX2-AB001(变频器)、CJ1W-CIF11 (RS232转RS422/485转换器) 实验目的:NS作为MODBUS主站,3G3MX2作为从站,通过485通讯方式实现通讯。 实验步骤: 1、系统概述,硬件搭建和接线 ①将 CJ1W-CIF11 插于 NS 的串口 A 上,RDA-接 RS-,RDB+接 RS+,(如下图所示)
图 1-1 ②CJ1W-CIF11 背面的开关设定:2、3、5、6 拨至客户服务中心
图 1-2
③3G3MX2 参数设定,(如下图所示)
参数 No
功能名称
设定值 数据
单位
A001
第 1 频率指令选择 03 Modbus 通信 -
A002
第 1 运行指令选择 03 Modbus 通信 -
C071
通信传送速度选择 05
9600
bps
C072
通信站号选择
1
1 号站
-
C074
通信奇偶校验选择 01
偶数校验
-
C075
MODBUS通讯实验MODSCAN和MODSIM

MODBUS 通讯实验通讯实验,,(MODSCAN 和MODSIM )实验所需硬件设备:Micro1400,1763-NC01转换器,RS232转RS485的转换接头实验所需软件设备:MODSCAN 和MODSIM 一、MODSCAN 与PLC 之间的通讯之间的通讯((此时PLC 为Modbus Slave ) 1.打开RSLogix500软件,对串口进行配置,具体步骤如下:双击 Channel Configuration 进入端口配置,选择channel0,如图:点击Apply完成以上配置。
2.打开Modscan软件,点击Connection进行连接设置:选择connect,进入以下画面:进入Protocol Selection界面点击OK ,3.下面以03HOLDING REGISTER为例,对PLC进行读写双击40001,在Value中写入值50,,点击Update查看数据文件夹中对应的标签,双击N23可以发现寄存器的值已经更改。
然后对PLC读操作,在第二位即寄存器地址40002中写入23 回车切换到MODSCAN能发现寄存器40002的值已经变成了23二、MODSIM 与PLC 之间的通讯之间的通讯((此时PLC 为Modbus Master ) 1.打开RSLogix500软件,对串口进行配置,具体步骤如下:点击Apply ,OK ,数据读写需要Message 指令来完成,新建Message 数据文件夹MSG9梯形图中写一行Message 指令,如下图:双击Setup Screen进行配置,完成以上配置后,接下来对Modsim进行配置2.打开软件Modsim,在connection下的connect配置如图,OK。
将PLC 中的程序运行如下:双击40001,如下对话框,写入值321可以发现N7:0的值变成了321北京首科力通毛俊2012-3-12。
Modbus实验报告

关于新产品Modbus卡实验问题汇总前言册子岛油库项目采用新的数据交换方式和天津盛达PLC进行握手,之前与PLC等一些工控系统一直采用控制模块驱动继电器,输出无源开关量信号这种方式,该方式采用的是所谓“硬逻辑”连接方式,一个信号的触发要经过报警信号收集—报警信号确认—逻辑信号判断—驱动信号发出—终端控制模块启动—继电器开关量输出—PLC采集这几个步骤。
通过大量的实际工程我们发现在少量的数据交换下“硬逻辑”会有实施简单,价格便宜等优势,但是当逻辑信号稍有增加,其工程成本,人力成本会明显增高,成批量的增加模块和继电器造成设备组成臃肿、接线困难、现场调试麻烦、逻辑点故障率增加等等麻烦,并且也会造成我公司技术落后的一个负面影响,在现今石化行业被Modbus通讯协议高度垄断的市场下,我们也应该进行技术革新,为今后更好的适应市场生存做出改变以下内容是本人对Modbus协议的一些学习和认识,引用了前人的文章和经验还有自己的一些浅薄的认识和实验汇总,希望各位同事能够帮我查漏补缺,提出意见和疑惑概念阐述LPI-MODBUS 是一个连接在回路卡上的回路点模拟设备,可以虚拟一个CLIP 回路的所有点,并且它可以在MODBUS网络将FAS系统发生的事件通过写寄存器(功能码10H)发送给Slave Device系统,并通过读取(功能码03H)寄存器来处理从Slave Device 系统的信息。
因此,我们定义两个寄存器表:命令寄存器表(Command Register Table) 和状态(Status Register Table) 寄存器表。
约定Master Device(FAS)对MODBUS 网络上1 号地址的Slave Device 进行读写操作(也可由Slave 方自定义)。
LPI-MODBUS 的CLIP 设备虚拟点(0-199)总共200 个点分别与状态寄存器表(0-199)和命令寄存器表(200-399)一一对应,如图1所示。
modbus实验报告总结

modbus实验报告总结《Modbus实验报告总结》Modbus是一种通信协议,广泛应用于工业控制系统中。
在本次实验中,我们对Modbus协议进行了深入研究和实验,并得出了一些重要的结论和总结。
首先,我们对Modbus协议的基本原理进行了学习和了解。
Modbus协议是一种串行通信协议,用于在工业控制系统中传输数据。
它具有简单、易于实现和广泛应用的特点,因此被广泛应用于工业自动化领域。
在实验中,我们使用了Modbus协议进行了一系列的通信实验。
通过使用Modbus协议,我们成功地实现了不同设备之间的数据交换和通信。
我们还测试了Modbus协议在不同环境和条件下的稳定性和可靠性,结果表明Modbus协议具有较高的稳定性和可靠性,适用于各种工业控制系统中。
另外,我们还对Modbus协议的性能进行了评估。
我们测试了Modbus协议在不同数据量和传输速率下的性能表现,结果显示Modbus协议在大数据量和高速传输情况下仍能保持较好的性能表现,能够满足工业控制系统中的数据传输需求。
总的来说,通过本次实验,我们对Modbus协议有了更深入的了解,并得出了以下结论:1. Modbus协议具有简单、易于实现和广泛应用的特点;2. Modbus协议具有较高的稳定性和可靠性,适用于各种工业控制系统中;3. Modbus协议在大数据量和高速传输情况下仍能保持较好的性能表现。
综上所述,Modbus协议是一种在工业控制系统中应用广泛的通信协议,具有良好的稳定性、可靠性和性能表现,能够满足工业控制系统中的数据传输需求。
我们相信,在未来的工业自动化领域,Modbus协议将继续发挥重要作用。
实验报告7_Modbus通信

Task Report1. Purpose 实验目的1、学习Modbus 通信协议的原理和使用方法2. Equipment 实验设备3. Process and emphases 实验流程与重点难点 3.1 实验内容编程实现主站与从站之间的数据交换 3.2 实验过程 1) 电气连接如图1所示,将电源提供的24V 电压分别于PLC 的24V 电源接入端口相连,并且将输入方向的M 与1M 端口短接。
PPI CABLE 端口与PLC 端口1(port1)相连,通过PPI 电缆实现在线监控。
PROFIBUS 通讯电缆分别与两个PLC 的port0相连(Modbus 通讯使用的是port0)。
用导线将输入端口IB0和IB1全部引出。
PLC IB0IB1图1 S7-200组成示意图2) 端口定义主站程序中,I0.0用于触发读写命令。
从站程序中,将IB0和IB1输入状态传送给主站,在主站程序中通过状态表读出。
从站接收主站发送的数值并且赋值给QB0和QB1,观察指示灯的变化。
3) 程序设计数据寄存器的通讯实验(读写PLC V 区数据的循环通讯)数据寄存器的Modbus地址为40001~49999,要实现主站与从站之间的循环通讯,可以将V区的数据作为发送和接收的对象。
主站给从站V区的某一范围内写入字节,由从站对接收的字节做处理(加、减变化)后再次由主站读取,实现循环通讯(在状态表中观察选中的V区数值是否能够递增或递减变化)。
主站程序设计:Modbus RTU主站初始化与控制程序如图2所示,其中EN为使能信号,Mode为‘1’时,相当于选中自由口通讯模式(与自由口通讯实验中给SMB30赋值的原理一样)。
波特率选择9600bps,校验方式选择无校验,Timeout为主站等待从站响应时间,一般经三次握手后从站还没有响应,则通讯超时。
初始化完成后Done信号跳变为‘1’,一般可以用M0.0启动 MBUS_MSG 的读写操作。
实验5——485总线及Modbus通讯协议实验

课程名称:嵌入式软件技术开课机房:11号机房2012年4月24日星期二8:10~11:35一、实验任务与实验目的二、报告内容Freemodbus是modbus协议在嵌入式处理器上的实现。
包括AVR,PIC,WIN32等等平台。
它是开放性源代码,可用于商业目的。
它实现了Modbus RTU/ASCII、TCP三种传输方式,当前版本是1.5,支持以下功能:∙读输入寄存器(0x04)∙读保持寄存器(0x03)∙写单个寄存器(0x06)∙写多个寄存器(0x10)∙读/写多个寄存器(0x17)∙读取线圈状态(0x01)∙写单个线圈(0x05)∙写多个线圈(0x0F)∙读输入状态(0x02)∙报告从机标识(0x11)本实现基于最新的标准并且与标准完全兼容。
接收和传输Modbus RTU/ASCII数据帧是通过一个由硬件提取层的调用来驱动状态机实现的。
这就使得协议非常容易移植到其他的平台之上。
当接收一个完整的数据帧后,该数据帧被传入Modbus应用层,数据帧的内容在该层内得到解析。
为方便地增加新的Modbus功能,Freemodbus在应用层提供了钩子函数Hooks。
如果用到了Modbus TCP协议,那么当准备处理一个新数据帧的时候,移植层就必须首先向协议层发送一个事件标志。
然后,协议栈调用一个返回值为接收到的Modbus TCP数据帧的函数,并且开始处理这个数据帧。
如果数据有效,则响应的Modbus反馈帧将提供给移植层生成反馈帧。
最后,该反馈帧被发送到客户端。
二、实现FreeModbus协议所需要的软/硬件需求Modbus协议对硬件的需求非常少——基本上任何具有串行接口,并且有一些能够容纳modbus 数据帧的RAM的微控制器都足够了。
∙一个异步串行接口,能够支持接收缓冲区满和发送缓存区空中断。
∙一个能够产生RTU传输所需要的t3.5 字符超时定时器的时钟。
对于软件部分,仅仅需要一个简单的事件队列。
The STR71X/FreeRTOS 移植使用FreeRTOS 队列作为事件队列来减少Modbus 任务所需要的时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MODBUS通讯实验一、理论背景1.1单工、半双工和全双工单工数据传输只支持数据在一个方向上传输;全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。
半双工数据传输指数据可以在一个信号载体的两个方向上传输,但是不能同时传输。
例如,在一个局域网上使用具有半双工传输的技术,一个工作站可以在线上发送数据,然后立即在线上接收数据,这些数据来自数据刚刚传输的方向。
像全双工传输一样,半双工包含一个双向线路(线路可以在两个方向上传递数据)。
1.2RS-485:RS-485标准是半双工通信协议,RS-485适用于收发双方共享一对线进行通信,也适用于多个点之间共享一对线路进行总线方式联网。
在低速、短距离、无干扰的场合可以采用普通的双绞线,反之,在高速、长线传输时,则必须采用阻抗匹配(一般为120Ω)的RS485专用电缆。
RS485采用差分信号负逻辑,-2V~-6V表示“0”,+2V~+6V表示“1”。
RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。
在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。
很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。
、1.2Modbus工业控制已从单机控制走向集中监控、集散控制,如今已进入网络集约制造时代。
工业控制器连网也为网络管理提供了方便。
Modbus就是工业控制器的网络协议中的一种。
Modbus协议是应用于电子控制器上的一种通讯约规。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为主流的工业标准之一。
对符合Modbus协议的不同厂商生产的控制设备可以连成工业网络,进行集中监控。
图:S7-200 D型9针接口的MODBUS接线方式二、实验准备1、西门子 CPU 226实验操作台;2、自制RS-485 modbus通讯线;3、已安装MODBUS通讯指令库的计算机;4、MODBUS从机设备(此选用FL3102型号火探)5、24供电电源,导线若干。
连接MODBUS通讯线,D型接口端接CPU的端口1(端口0用于与电脑通讯),针脚3引出线接火探的DATA+接线端,针脚8引出线接火探的DATA-接线端。
三、相关指令安装完指令库后,可在指令树的“库”内找到MODBUS通讯相关指令。
需注意的是,指令的引用需与接口端对应。
如本次MODBUS通讯接口插在CPU 端口1,则只能使用“MODBUSMASTER PORT 1”内的指令。
MODBUS主站通讯使用到两个相关指令:3.1MBUS_CTRL用于S7-200的MBUS_CTRL指令可初始化、监视或禁用Modbus通讯。
在使用MBUS_MSG指令之前,必须正确执行MBUS_CTRL指令。
Mode“模式”:输入数值选择通讯协议。
输入值1将CPU端口分配给Modbus协议并启用该协议。
输入值0将CPU端口分配给PPI系统协议并禁用Modbus协议。
Baud"波特":参数将波特率设为1200、2400、4800、9600、19200、38400、57600或115200波特。
Parity"奇偶校验":参数被设为与Modbus从站奇偶校验相匹配。
所有设置使用一个起始位和一个停止位。
可接受的数值为:0 - 无奇偶校验1 - 奇校验2 - 偶校验Timeout"超时":参数设为等待来自从站应答的毫秒时间数。
"超时"数值可以设置的范围为1毫秒到32767毫秒。
典型值是1000毫秒(1秒)。
"超时"参数应该设置的足够大,以便从站有时间对所选的波特率作出应答。
"超时"参数用于确定Modbus从站是否对请求做出应答。
"超时"值确定Modbus主设备在发送了请求的最后一个字符后,将要等待多长时间才会有应答的第一个字符。
如果在"超时"规定的时间内至少收到应答的一个字符,Modbus主设备将从Modbus从站接收到整个应答。
Done"完成" :MBUS_CTRL指令完成时,输出打开。
error"错误":输出包含执行该指令的结果。
下表定义了在执行MBUS_CTRL指令时会产生的错误条件。
错误代码说明0 无错误1 奇偶校验选择无效2 波特率选择无效3 超时选择无效4 模式选择无效3.2MBUS_MSGMBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。
当EN输入和"首次"输入打开时,BUS_MSG指令启动对Modbus从站的请求。
发送请求、等待应答、并处理应答通常需要多次扫描。
EN输入必须打开以启用请求的发送,并应该保持打开直到"完成"位被置位。
Frist"首次":参数应该在有新请求要发送时才打开以进行一次扫描。
"首次"输入应当通过一个边沿检测元素(例如上升沿)打开,这将导致请求被传送一次。
参见实例程序。
Slave"从站":参数是Modbus从站的地址。
允许的范围是0到247。
地址0是广播地址,只能用于写请求。
RW "读写":参出指定是否要读取或写入该消息。
"读写"参数允许使用下列两个值。
0 :读1 :写Addr"地址":参数是起始的Modbus地址。
10001至19999是离散输入(触点)30001至39999是输入寄存器40001至49999是保持寄存器"地址"的指定取值范围基于Modbus从站支持的地址。
Count"计数":参数指定在该请求中读取或写入的数据元素的数目。
"计数"值是位数(对于位数据类型)和字数(对于字数据类型)。
"DataPtr"参数是指向S7-200 CPU的V存储器中与读取或写入请求相关的数据的间接地址指针。
对于读取请求,DataPtr应该指向用于存储从Modbus从站读取的数据的第一个CPU存储器位置。
对于写入请求,DataPtr应该指向要发送到Modbus从站的数据的第一个CPU存储器位置。
DataPtr值作为间接地址指针传递到MBUS_MSG。
例如,如果要写入Modbus从站的数据从S7-200 CPU中的地址VW200开始,则DataPtr的数值将会是&VB200 (VB200的地址)。
指针必须始终是VB类型,即使它们指向字数据。
保持寄存器(地址4xxxx)和输入寄存器(地址3xxxx)的值是字(2个字节或16位)。
S7-200 CPU字的格式与Modbus寄存器相同。
低位编号的V存储器地址是寄存器的最高有效字节。
高位编号的V存储器地址是寄存器的最低有效字节。
Done"完成":输出在发送请求和接收应答时关闭。
"完成"输出在应答完成或MBUS_MSG指令因错误而中止时打开。
Error"错误":输出仅当"完成"输出打开时有效。
错误代码说明0 无错误1 应答时奇偶校验错误:仅当使用偶校验或奇校验时才会发生。
传输被干扰,可能会收到不正确的数据。
该错误通常是由电气故障(例如错误接线或者影响通讯的电噪声)引起的。
2 未使用3 接收超时:在"超时"时间内,没有来自从站的应答。
可能有以下一些原因:与从站的电气连接有问题、主设备和从站设置为不同的波特率/奇偶校验设置,以及错误的从站地址。
4 请求参数出错:一个或多个输入参数(从站、读写、地址或计数)被设置为非法值。
检查文档中输入参数的允许值。
5Modbus主设备未启用:在调用MBUS_MSG前,每次扫描时都调用MBUS_CTRL。
6 Modbus忙于处理另一个请求:一次只能激活一条MBUS_MSG指令。
7 应答时出错:收到的应答与请求不相关。
这表示从站中出现了某些错误,或者错误的从站应答了请求。
8 应答时CRC错误:传输被干扰,可能会收到不正确的数据。
该错误通常是由电气故障(例如错误接线或者影响通讯的电噪声)引起的。
101 从站不支持在该地址处所请求的功能:请参阅"使用Modbus主设备指令"帮助主题中的所需Modbus从站功能支持表。
102 从站不支持数据地址:"地址"加上"计数"所要求的地址范围超出了从站所允许的地址范围。
103从站不支持数据类型:该"地址"类型不被从站支持。
104从站故障105 从站已接受消息但应答延迟:这是MBUS_MSG的错误,用户程序应在稍后重新发送请求。
106 从站忙,因此拒绝消息:可以再次尝试相同的请求,以获得应答。
107 从站因未知原因而拒绝消息108 从站存储器奇偶校验错误:从站中有错误。
四、程序编写程序截图及注释:4.1第一部分:更改写入火探地址从1变为2将2赋值于VW10(需为字类型)MBUS_CTRL指令设置。
通过查询设备说明书,知道火探MODBUS默认通讯波特率为19.2kbps,无奇偶校验。
MBUS_MSG指令设置:火探默认地址1,进行写入,MODBUS地址为40010(通道1地址,见下图),写入字数为1个,已VB10为起始地址。
将VW10赋值于VW20。
用于监控。
4.2第二部分:在地址2内读出火探的版本型号。
另编写一程序用于在2号地址读取火探版本号同上。
与地址2通讯,进行读动作,MODBUS地址对应40005(从机版本号,见下图),读字数1,起始地址VB10。
同上。
至此程序编写完成。
4.3 其他设置Modbus主设备协议指令的变量要求284个字节的V存储器程序块。
该程序块的起始地址由用户指定,专门保留用于Modbus变量。
“文件”——“库存储区”将VB100至VB383(可自行分配)的存储区分配给MODBUS指令作为中间变量区。
其区间不能再用于其他用途。
设置通信端口:设置完成,编译无错误后即可下载进行测试。