搜索
bottom↓
回复: 8

发个S7200的modbus通讯例程

[复制链接]

出0入0汤圆

发表于 2015-6-16 09:38:51 | 显示全部楼层 |阅读模式
第一次做S7200的modbus通讯
程序可能有些混乱,因为之前在网上也搜过一些例子,但都没有详细的说明
在这个例子里,都是自己一步一步的按照官网的例程加上去的,会有详细的解释,供新手参考
说下这个项目:
某扬水站的5台机组的远程控制,有5台智能表,检测5台机组的工作电压,工作电流,有功功率,功率因数等参数
还有5台软起的参数读取,因为怕用485控制软起不可靠,所以只读取软起的工作状态,不知道做过的,有没有知道,用modbus控制好不好用
言归正传
首先是硬件,s7200的485口的接线
先看看200的内部接口,链接在这里
http://wenku.baidu.com/link?url= ... GBwdm1KbcRXaazekZOu

PLC那边是母头,这边准备一个9针的公头就可以了  3脚是A    8脚是B    2or5是地线,也就是内部的M端子
如果距离近,可以不接地线,有关这个地线怎么的说法很多,有的说可以不接,有的说接地是消除共模电压,打过西门子技术,说是和设备地连一起
度娘了下,也有的说接地了反而不好的,现场实际,我是把所有的地线(注意不是屏蔽哦,是GND  )都连一起,不知那种做法好
另外说下,短距离通讯,只要从设备支持,用高点的波特率,提高反应速度  西门子技术说:s7200只支持50m的通讯距离,再远了要加中继器
设备上就不说了,就A B GND
还啰嗦一句,从设备的链接不能用星型解法,是一个一个的串联的,手牵手链接

下面是程序了
说说我的方法:
按照官网的例程,是采用的轮询,在初始化后,启动modbus读写,启动后要做循环,就是操作完最后一个读写块后,要重新启动第一个读写块
也就是说,读MBUS_MSG这个模块要一个一个读,官网上说,不能同时执行2个MBUS_MSG读写,启动MBUS_MSG后,第一个读完的完成位是第二个MBUS_MSG启动的条件
第二个MBUS_MSG是后一个的启动条件,最后一个读完后,再启动第一个MBUS_MSG
具体做法看程序,我这里是读的一个从站的2个地址,还有另一个从站的一个地址
在最开始调试的时候,可以用sm0.5这个位作为启动条件,测试一个MBUS_MSG  测试硬件是否正常,用状态表监控收到的数据


重点说说这个模块
EN   使能位,这个是模块执行的条件,也是模块的启动条件
Fisrt   模块触发位,上升沿启动模块通讯
Slave   从站地址,这个不用说了吧
RW    读写控制   0读 1写
Addr    从站寄存器地址  可以参考官网的说明,实际这里如果是寄存器操作  40001  400001好像都可以 注意你的设备地址,数据
       40001  400001是首地址
Count    要读写的数据个数  这个刚开始很纠结,后来才知道的,新手是不是都纠结这个呀??????
          这个是你要读写的数据的个数,特别提醒,这个是字的个数,不是字节的个数,在485协议里可以看看
Dataptr    数据指针,你要读出的数据,和要写会的数据都放在这里
Done    模块读写完成位,也是下一个模块的执行条件,当一个模块读写完成后,尽快的把要采集的数据读出
Error     错误标志位,在程序里用来检测错误,和错误处理



程序说明:
因为还没有调试完,暂时只读了6个从站
首先是初始化modbus   然后读第一个MBUS_MSG    然后读第二个,读完最后一个后,根据条件把数据导出
注意数据导出条件   读完标志位上升沿导出,不加条件,读的数据会窜站
读完数据后,更改从站地址,继续下个从站的读写,一直把所有的都读完。然后,在读首从站 ,从站地址在程序里控制
然后是数据刷新,和总线故障处理

有不通的可以@qq  1571746795
程序在这里

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

该献的血还是要献的。你不献他不献。难道让我去献? --- 出自坛友:lovejp1981

出0入0汤圆

发表于 2015-6-16 09:50:15 | 显示全部楼层
前排学习

出0入0汤圆

发表于 2015-6-21 11:05:42 | 显示全部楼层
不错,支持经验贴

出0入0汤圆

发表于 2015-6-21 17:12:04 来自手机 | 显示全部楼层
支持,适合初学者。

出0入0汤圆

发表于 2015-6-21 18:07:15 | 显示全部楼层
我拆过我们的PLC,他的通信线是2根线呢?所有的PLC通过通信线连接,是手牵手的。

出0入0汤圆

发表于 2015-6-21 18:08:08 | 显示全部楼层
不是拆PLC,是他的通信线。当时是不稳定,拆开发线里面的2根线绞在一起了。

出0入0汤圆

发表于 2015-7-19 00:10:25 | 显示全部楼层
记录一下

出0入0汤圆

发表于 2015-7-19 00:39:50 | 显示全部楼层
记录一下

出0入0汤圆

发表于 2015-9-22 10:32:59 | 显示全部楼层
谢谢楼主分享,很好的资料。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-1 07:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表