2006-09-14
现场情况:
中心站:IPC + INTOUCH软件
控制室:HMITECH TPC064 + WIN CE SYSTEM + MCGS EMBEDED SYSTEM
下位机:modbus rtu设备
测试要求:
1、控制室mcgs嵌入式测试工程通过modbus rtu总线,连接rtu设备(是lonworks gateway,为嵌入单片设备),HMITECH嵌入式触摸屏TPC为modbus主,lonwork gateway设备为从。
问题:连接一台gateway通讯成功,连接多台失败!
2、中心站intouch软件通过modbus tcp总线,连接 HMITECH TPC064-B,要求intouch为modbus tcp主,mcgs为modus tcp从。
问题:连接不上!
测试情况:
问题1、
连接方法:tpc设备的485口,送出modbus rtu总线,连接一台gateway设备,地址为1,同时,通过485转232模块连接一台笔记本,使用mcgs的modbus转发设备,地址为2,模拟一个rtu设备。
测试情况:发现tpc设备嵌入式测试工程,读gateway设备正常,但是,读笔记本模拟的设备非常不稳定。
监测情况:然后,我通过SINAN_PORTMON串口监视软件,监视modbus总线的收发情况,发现当读可读写模拟量寄存器(保持寄存器)时,读gateway设备设备时,gateway设备正常相应,当读笔记本模拟设备时,gateway设备也相应,发送一串00 00 00 00 00 00 00 00 00 00,这样影响笔记本模拟的设备的相应,造成不稳定。
分析:在一个modbus总线上面,从设备可以多个,主设备只能是一个,当它发送命令的时候,各个从设备处于监听状态,只有和命令地址相同的唯一一个从设备,也就是主设备点名的设备可以相应,这是正常的通讯!若当主设备发送命令时,有多个从设备相应,则会出现通讯碰撞,失败!
结论:这次测试,明确问题在于gateway设备,并查明设备内的通讯问题的所在!
modbus通讯协议的具体描述,请看 http://www.hmitech.com/bbs/ShowPost.Asp?ID=262
评论6
楼主 2006/9/5 20:43:17
测试方法:
首先,INTOUCH工程为MODBUS TCP主,MCGS EMBEDDED PROJECT 为MODBUS从。
然后,在INTOUCH软件中采用Modicon Quantum PLC的MODBUS TCP驱动。在MCGS端采用MODBUS TCP 数据转发设备。
最后,我们在测试的时候,可以通过Ultra Net Sniffer1.3进行通讯监视。
组态方法:
1、INTOUCH系统
安装好运行和组态环境后,还得安装关于MODBUS TCP的驱动安装:
通过IOdisk光盘,运行WWDIShel.exe安装I/O SERVER, 然后,安装MODICON ETHERNET V7.6.0.0!
然后,启动Wonderware FactorySuite->IO Servers->Modicon MODBUS Ethernet
配置TOPICS:
TOPIC NAME: 任意
IP ADDRESS: 为服务器IP地址
DEST_INDEX or UNIT ID: 为PLC MODBUS地址,比如为1。
SLAVE DEVICE TYPE: 选择QUANTUM(6 DIGIT ADDRESS)
最后,在INTOUCH中,增加标签,设置模拟量输出。对于表达式,设置I/O整型或实型变量,这时,系统要求选取访问名和项目。
注意
----〉访问名的修改:
访问名可以任意设置,在添加和修改访问名时,节点名可以为空,应用程序名一定MBENET,主题名要和I/O SERVER-〉 Modicon MODBUS Ethernet中设置的TOPIC NAME一致,使用协议为SUITELINK。
----〉项目名的设定:项目名应该填写MODBUS地址,比如输出寄存器1,则为400001。
2、MCGS EMBEDDED工程
注意:工程的驱动要选择TCP方式,同时,本定端口固定为502。
通讯结果:
在I/O SERVER的界面显示通讯失败。
监视结果:
通过Ultra Net Sniffer进行监视,发现当I/O SERVER访问502端口后,马上就断开。然后,反复重连。
模拟测试:
从 http://www.modbustools.com 下载mbslave.exe软件,模拟和INTOUCH连接,发现通讯正常。
。然后,通过MCGS的两个工程进行通讯,通讯也正常!
进行SNIFFER监视通讯内容发现问题:
正常通讯:
读 MODBUS地址为1,功能码03,01通道开始,1个字节的数:
03 AB 00 00 00 06 01 03 00 01 00 01
事务处理标识符:03 AB (用作序列号)
协议标识符:00 00
长度字段:00 06
从站地址:01
功能码:03
开始通道地址:00 01
读通道数:00 01
返回:
03 AB 00 00 00 05 01 03 02 00 01
事务处理标识符:03 AB 在这里是序列号
协议标识符:00 00
长度字段:00 05
从站地址:01
功能码:02
通道内容:00 01
MCGS驱动的通讯问题:
发现事务处理标识符不管tcp端还是转发端都是00 00,所以,tcp端发送给别人没有问题,但是,当转发端接受到事务处理标识符不是00 00的就不认了,出现connection fail的情况。
例如:
client:
00 00 00 00 00 06 00 03 00 00 00 01
server:
00 00 00 00 00 05 00 03 02 00 00
同时,写操作也有类似问题:
当发送
00 B5 00 00 00 06 01 06 00 01 00 0A
返回:
00 00 00 00 00 06 01 06 00 01 00 0A
这样造成INTOUCH接收到的数据的事务处理标识符不符合,致使系统断开,重连。
测试结果:
通过测试发现MCGS驱动有事务处理标识符返回不符合Modicon Quantum PLC通讯规范的问题,进行驱动修改,问题解决。
楼主 2006/9/5 20:46:40
通过这次测试,我对以太网的通讯有了更加深入的认识,我想和大家共同分享测试成功的快乐,哈哈!
若大家需要测试代码和工程,则请和我联系:
公 司:北京昆仑纵横科技发展有限公司
地 址:北京市海淀区上地信息产业基地七街1号汇众大厦710室
邮 编:100085
电 话:010-51659278-116
Email :mcgsdlh@263.net
楼主 2006/9/8 20:13:15
设备型号:
POWER:140 CPS 124 20
CPU: 140 CPU 434 12A
MODLE:140 NOE 771 01
测试软件:Concept2.5 组态软件MCGS / INTOUCH
测试目标:通过modbus 方式连接PLC,使用Concept2.5配置以太网模块,通过组态软件的modbus TCP驱动和以太网模块和PLC进行通讯测试。
设备说明:
QUANTUM CONTROLLERS(CPU单元) | |||||||
Part Number | MEMORY | Modbus | Modbus Plus | Discrete | Register | Description | |
| IEC | 984 LL | | | (capacity) | | |
140 CPU 434 12A | 896k | 64k | 2 | 1 | 64k | 57k, 96k (extended) | Quantum CPU, 2M, 486 DX2, 2 Modbus, 1 MB+, 64K User Logic |
QUANTUM COMMUNICATIONS INTERFACES(以太网通讯模块) | | |||||||
Part Number | Communication Port 1 | Comments | Description | |
| |||
| Port Type | Cable Type | | | |
| ||
140 NOE 771 00 | 10/100 Base-T Ethernet Network (RJ-45) | Twisted Pair | I/O Scanner | Network Option, Ethernet TCP/IP and Modbus, Twisted Pair & Fiber Link, 1 Channel | |
| ||
测试笔记:
1、硬件配置注意:
--->Slide Switch拨码开关,有三档表示通讯模式ASCII、RTU、mem,开关小,容易拨错;
--->SW1 、 SW2 plc地址设置,上面*10 下面*1,千万不要拨错,或者计算错误。
--->modbus 串口通讯,如果自己焊线,注意了:plc端,9针公头,进行1-5短接,pc端,9针母头,
1-5不用短了。在文档ModiconQuantum_140CPU43412A_BROC_EN_200307.pdf中,画图描述
容易混淆。
2、Concept2.5软件配置注意:
--->打开软件,在菜单 online 下拉中,选中Connect...,选择正确的通讯协议、plc node、mode,
和cpu单元的拨码开关的设置相同。同时,访问级别,一定选择Change Configuration!
--->软件和plc连接上后,进行upload上载操作,会自动生成一个project! 进入工程,打开
ethernet i/o scanner,我们可以察看、设置或修改internet address和gateway! 注意:
之所以,上载程序是为了下载程序,对已经有其他的plc配置不做改变。
--->在工程左侧视窗,点选i/o map,可以对plc的不同槽位(rack),增加模块,在这里
我们增加140 NOE 771 01。最后,下载更新plc的配置。
3、组态软件配置注意:
INTOUCH和MCGS的通讯设置,见上个测试说明。我们需要注意的是:
--->如果通过140 NOE 771 01模块,进行MODBUS TCP通讯,网络类型一定选取 TCP方式;
--->远程IP地址(PLC的IP地址)要和第2部配置的相同,其端口固定为502!
测试总结
如果我们需要通过140 NOE 771 01模块和QUANTUM PLC 进行MODBUS TCP通讯,
首先,我们需要通过Concept2.5软件,经串行总线连接和设置PLC,
然后,添加和配置140 NOE 771 01模块。
这样,我们就可以通过各种组态软件的MODBUS TCP驱动和PLC进行通讯了。
楼主 2006/9/14 13:25:41
测试平台:
软件---STEP 7-MicroWIN V4.0 、mcgs
硬件---S7-200 CPU 226、EM241调制解调器模块、工业机MODEM.
测试目标:
远端通过MCGS软件拨号,使用MODBUS RTU协议,连接和控制S7-200 CPU 226!
测试方法:
1、通过---STEP 7-MicroWIN V4.0,对PLC进行241配置
MicroWIN --〉 工具--〉调制解调器扩展向导--〉配置241模块
注意:
1)、我们是希望241做从站,所以设置比较方便,保护性密码不加,通讯协议采用MODBUS RTU协议,其他设置栏目默认即可!
2)、如果加入密码,通过STEP 7-MicroWIN V4.0拨号过程中,会弹出密码提示,如果密码验证通过,modem连接建立,否则,连接失败! 这时,通过超级中端等使用at指令拨号,通讯不成功!(我们如果可以监视STEP 7-MicroWIN V4.0的at指令的验证,则这个问题可以解决!)
对于使用241模块如果设置ppi主站,则连接带有密码设置的模块的时候,在电话号码属性中一定要对远程的密码进行设置。
2、在上位机通过mcgs,使用modbus进行通讯设置:
mcgs-〉设备窗口-〉增加通用串口父设备:在电话中属性页,选择使用modem,设置241的电话号码;
增加modus rtu子设备:modbus站地址可以任意设置,通道地址要和3、映射modbus地址到s7-200cpu的一致!
3、映射modbus地址到s7-200cpu
modbus地址 s7-200cpu地址
000001 q0.0
000002 q0.1
000003 q0.2
000004 q0.3
......
000127 q15.6
000128 q15.7
010001 i0.0
010002 i0.1
010003 i0.2
.....
010127 i15.6
010128 i15.7
030001 aiw0
030002 aiw2
030003 aiw4
......
030032 aiw62
040001 vw0
040002 vw2
040003 vw4
......
04**** vw2 x (****-1)
测试总结:
1、EM241 MODEM模块支持Teleservice(远程维护或远程诊断)、Communication(CPU-to-CPU、CPU-to-PC的通信),测试成功,同时,可以设置modem连接密码,保证plc的代码安全。
2、EM241 MODEM模块虽然Message(发送短消息给手机或寻呼机),但是,必须有电信的支持,据西门子客服人员描述,这个功能在国外没有问题。
3、通过电话线,Modbus或PPI协议来进行PC-to-CPU的数据传送测试成功。
待测试问题:
1、集成的回拨功能,没有测试?
2、如果241带有密码保护,如何通过第三方软件通过modbus通讯?
楼主 2006/9/14 13:53:03
我感觉这个帖子放到PLC、DCS与现场总线中更为合适! 请大家关注!
楼主 2016/2/2 19:41:40
谢谢楼主无私分享。