追梦工控论坛|工控论坛-专业的Intouch论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始


总共8061条微博

动态微博

站内全文搜索,由百度和追梦工控论坛合作提供
查看: 2121|回复: 0

[工控产品] S7-200PLC进行modbusRTU通讯实例

[复制链接]

升级  57.5%

  • TA的每日心情
    郁闷
    2017-8-10 09:40
  • 签到天数: 1 天

    [LV.1]工兵

    发表于 2017-9-29 09:54:02 | 显示全部楼层 |阅读模式

    上传分享工控资料得追梦点,下载积分获取办法点击进入 ☆追梦点充值入口
    发帖回帖赚金币兑换下载积分。上传附件须知点击进入

    ×

    马上注册,结交更多工控达人,分享经验,让你轻松玩转追梦工控论坛。

    已有帐号?  点击登录   或者        

    支付宝扫一扫领红包

    本例使用的是大连德嘉的M02型PLC,它完全兼容西门子S7-200PLC,带有以太网口,可直接通过网口编程,连接上位机触摸屏等。


    首先,S7-200想要进行modbus通讯必须安装modbus指令库,指令库大家可以网上下载一个,这里就不提供了。

    接线:本例是在两个S7-200 CPU的PORT 0口进行的modbus通讯,两个CPU的PORT 0口通过PPI电缆进行连接(电缆的针脚连接为3,5,8)。

    这个例子能实现的功能是读取从站40001地址开始的10个字,存到主站VB400开始的10个字。

    主站程序如下:




    我们要注意的是需要分配库存储区地址,如下图:

    这段寄存器地址不能再被程序中的任何指令使用,包括MBUS_INIT 和 MBUS_SLAVE 指令在内。

    从站程序如下:

    同样,从站也需要分配库存储区。


    之后把程序编译下载运行,这里我们给从站VB1000开始的20个字节赋值如下:

    然后可以观察到主站VB400开始的20个字节如下:

    这就是一个简单的200之间的modbus通讯。下面我们在两台PLC中间加一个USB转485串口监视器,然后我们用串口调试助手可以看到例子执行时的请求码和响应码。

    图中第一行为请求码,下面讲一下这个码是怎么来的。

    我们例子中使用的是03功能码(读保持寄存器):

    首先是请求:03 03 00 00 00 0A C4 2F

    03为串口号,接的是COM 3

    03为功能码

    00 00为起始地址即40001

    00 0A为寄存器数量,读10个字

    C4 2F 为CRC校验码

    响应:03 03 14 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0F 10 11 12 13 14 CE 6E

    03为串口号

    03为功能码

    14为字节数,一共20个字节



    让我们联手拒绝网络伸手党,下载积分获取办法&附件上传须知 ☆追梦点充值入口






    +1
    2121°C
    沙发哦 ^ ^ 马上

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    请珍惜自己的ID,严禁发布垃圾水贴,诸如adsf......顶......纯表情......多次重复回帖刷积分......轻则删帖警告,重则封禁!★请分享资料、经验或者赞助论坛,贡献一份力量★

    关闭

    最新活动上一条 /1 下一条

    小黑屋|手机版|追梦工控论坛|工控论坛-专业的Intouch论坛 ( 皖ICP备10012005号 )|网站地图

    GMT+8, 2024-5-3 18:12 , Processed in 0.099206 second(s), 30 queries , Gzip On, APCu On.

    Created by 工控论坛

    Copyright © 2001-2021, Tencent Cloud & Dreamyiyi.

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