技术论坛

 西门子200 smart 与富士温控仪的modbus rtu通讯案例

返回主题列表
作者 主题
WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
楼主    2019-01-09 08:09:18
主题:西门子200 smart 与富士温控仪的modbus rtu通讯案例

西门子200 smart 与富士温控仪的modbus rtu通讯案例

   今天在整理年底备件库时,发现在备件箱角落中还静静的躺着一块之前用余的工程预料,一块带modbus通讯功能的富士温控仪。该温控仪是之前在300系统工程中应用过,采用的是cp341 modbus通讯的,温控仪订货号:PXR9NEY1-GWM00-C。于是,有了再次拿来做一个200 smart modbus rtu通讯验证的念头。

通讯架构:

一块经济型西门子200 smart PLC,订货号:6ES7 288-1CR60-0AA0,作为modbus rtu主站;温控仪,订货号:PXR9NEY1-GWM00-C作为modbus rtu从站。参考资料:西门子 S7-200 SMART 技术参考 V2.1版本、富士温控仪 MICRO CONTROLLER X COMMUNICATION FUNCTIONS(RS-485 MODBUS)手册英文版。

   根据西门子modbus rtu通讯硬件连接要求,集成在plc侧的 RS-485通讯口,其中,3# RS-485信号B,8# RS-485信号A,富士温控仪端子1# RS485信号+,2# RS485信号-,由于是验证,用双绞导线替代屏蔽双绞电缆,相对通讯距离短,未连接终端电阻器。如果实际应用,需要在首站(主站)和末站分别安装100欧姆1/2W电阻器或按具体连接手册安装其它阻值的终端电阻器,目的是消除回波,提高通讯质量。

程序:硬件设置;连接。

1) 利用集成的RS-485作为modbus rtu通讯的主站口,调用modbus rtu主站初始化指令;调用modbus rtu读、写的MSG指令编写主站程序;

2) 将富士温控仪设置为modbus rtu通讯的从站,从站地址设置为1。将温控仪参数:STno设置为1(从站地址);CoM设置为2(无校验);PCoL设置为1(modbus通讯),这些需要与PLC侧通讯参数设置保持一致。

3) 创建一个新项目,编辑modbus rtu通讯程序:参考官方例子或F1帮助。

初始化:通讯频率9600kpbs;无校验;prot0口;超时1000mS,初始化完成标志位M0.0;错误信息MB1。

先试着给富士温控仪写入(SV值),功能码:41003的温度数据设置值:

Slave(从站地址):1#地址;

RW(读、写):1写数据;

Addr:写功能码41003;

Count:(写一个字长度的数据)一个word数据(设置SV温度值);

DataPtr:(写入数据预先存放地址)VW100中;

Done:MSG指令完成标志位;

Error:错误信息存放地址字节。

完成后,利用Done位或其它指令关闭MSG指令。

将富士温控仪按通讯要求设置,将用户程序下载到PLC,监控运行状态结果:



   一个简单的modbus rtu通讯就这样做好了,有一点意思吧?创建modbus rtu通讯几个需要注意的问题:

1) 硬件连接,西门子200 smart PLC侧集成的RS-485口必须按3+;8-的信号极性连接到从站的通讯端子上,这个必须先看手册的连接图示后确认后再连接,对于有一些从站可能还需要重新断电后,设置参数才能够有效,这点对于刚刚开始做项目的同行可能会疏漏这步。

2) 从站参数的设置,对于有一些从站(第三方从站),必须理解了功能号的具体含义,是读取还是写入参数还是读取、写入共用参数,参数(功能)号是什么及作用,功能号调用是否正确并理解。

3) 编辑程序后下载测试,先看Error错误报警字节的值是否为0,通讯正常时,该错误报警字节应该是0值。“状态图表”中MB2的值为0值,说明通讯正常。

4) 通讯程序中调用的地址及库指令存储V区,注意地址的调用情况,不要重复调用,到时程序出错还是需要自己找出来麻烦的。

一个完整的modbus rtu通讯一般总不至于仅仅只有一条MSG指令吧,那么,modbus rtu的轮询机制是做工程项目的一种“标配”了。Modbus通讯以及优异的经济性,应用于对实时相应要求不高的工程项目中,能够充分体现它的经济性及便利性。

假设,还需要读取P / I的参数呢?刚刚在前不久论坛上讨论比较有热度的轮询话题,modbus rtu通讯的MSG指令错误报警值中的讨论,有网友给出了一个仅仅只调用一个MSG指令,该指令的管脚用变址方式进行,有兴趣的同行可以去看看。链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1533543&b_id=64&s_id=83&num=36#anch。这里列举一个简单的轮询程序吧,轮询机制就是利用上一个MSG的Done(指令完成标志位)触发下一个MSG指令,引成的闭环轮询进行的。

程序:


注意:实际在温控仪上设置的参数,如P = 5.0 ,而PLC实际读取到的是P = 50,如果这个值需要更新或计算,需要根据双方通讯协议内容进行适当的算术运算或用指令转换,以获取真实的实际值,其它富士温度仪参数的读、写仍然可以按类似的步骤进行。

在实际应用中,对于一些常用的仪表参数,需要用SM0.1特殊标志位事先初始化一个相对“标准”的数据,方便用户通过人机界面等工具修改少量的工作参数。

注:富士温控仪modbus 参数手册可以到富士中国官网上注册下载应用。


不断攀登
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
1楼    2019-01-09 09:11:02
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例

感谢分享!

邮箱 yongquancun@126.com
菜腿骑菜车买菜
至圣

经验值: 13377
发帖数: 644
精华帖: 7
2楼    2019-01-09 09:18:14
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例

"有网友给出了一个仅仅只调用一个MSG指令,该指令的管脚用变址方式进行,有兴趣的同行可以去看看。"


能给个帖子的链接吗?或者给个关键字,好搜索.

菜腿骑菜车买菜
WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
3楼    2019-01-09 09:18:16
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例

对于西门子200及200 smart PLC集成的RS-485口,官方实际上已经很目前表明接口针脚的含义。

3#信号的+;8#信号的-,按这个定义连接到其它从站通讯信号端子上,由于是差分方式输出的,所以对信号的极性可能会引起一些不必要的“模糊”概念。

WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
4楼    2019-01-09 09:21:24
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例

哦,抱歉,我没有给出链接。

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1533543&b_id=64&s_id=83&num=36#anch

黑猫警长W
至圣

经验值: 18377
发帖数: 2409
精华帖: 1
5楼    2019-01-09 11:38:11
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例

实际例子,感谢分享哦!

2016LWW
侠客

经验值: 926
发帖数: 38
精华帖: 0
6楼    2019-01-09 11:42:06
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例

谢谢分享。。。

天芯
至圣

经验值: 18789
发帖数: 2104
精华帖: 0
7楼    2019-01-09 11:48:34
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例

跟着大神学习!

手机用户20190307492200
游民

经验值: 128
发帖数: 1
精华帖: 0
8楼    2019-03-16 17:53:04
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例

谢谢分享。

我爱周末
至圣

经验值: 15669
发帖数: 1493
精华帖: 3
9楼    2019-03-20 20:04:15
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例

@WWCWWC,请教下,是不是带有485接口的仪表都可以做modbus rtu通讯。比如,我手头有个奥托尼克斯TZ4M-14S温控仪,如图


是不是200 smart的com口8脚连温控仪10脚,3脚连温控仪9脚就可以?

期待周末~~
WWCWWC
至圣

经验值: 71712
发帖数: 8024
精华帖: 145
10楼    2019-03-21 08:04:07
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例

基本是可以的。

但是,如果这个仪表是支持modbus rtu的,就可以用库指令读、写;反之不支持modbus rtu的,需要自己编辑通讯程序,即自由口通讯了。

通讯接线是你说的是对的。


死猫子哈
游民

经验值: 107
发帖数: 6
精华帖: 0
12楼    2019-05-15 19:54:25
主题:回复:西门子200 smart 与富士温控仪的modbus rtu通讯案例
你好,请问你的温控仪的SV保持寄存器的功能码是多少,add地址是怎么算的,我有一台RKC的温控仪,引用你的程序,SV功能码是06H,我的地址写的是40006,结果温控仪的SV值直接超过上限报警了,VW100读数有2000多,第一次用modbus,麻烦帮我看一下。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。