s7 200 smart modbus rtu通信例程,单条msg指令多任务,读轮询,写优先,掉站处理

已锁定

不欲勿施

  • 帖子

    842
  • 精华

    14
  • 被关注

    268

论坛等级:奇侠

注册时间:2009-03-27

钻石 钻石 如何晋级?

s7 200 smart modbus rtu通信例程,单条msg指令多任务,读轮询,写优先,掉站处理

8425

48

2021-10-05 12:05:49

star star

好几年前做过用一台226PLC与二十几台变频的modbus通信,当时就是一个msg指令接一个msg的指令编程,把PLC的空间填满了。因为都是同样的变频器,后来通过只改变从站的站号把通信功能实现了。现在知道了,不仅有那种多个msg组成的传统方式,还有对数据区V先赋值再用指针把值传给msg的脚的方式,还有这个帖子里的在程序里进行赋值的方式,有其它方式网友跟帖探讨。

各种方式各有优缺点吧

1,传统方式,优点:比较直观,缺点:当通信的任务多了以后,程序量会比较大。

2,数据区赋值方式,优点:程序量小,缺点:数据区占用的多一些

3,本帖方式,就是在程序里赋值。程序量比数据区赋值方式多一些,但比传统方式的程序量少,数据区占用少一些。


此例程是个子程序

此例程是PLC串口连接了一台电能表(地址2),四台变频器(地址3,4,5,6),

此例程有写操作优先功能

此例程有掉站跳过功能,另外还有1分钟掉站通信恢复功能


拿到程序后的疑问:

1、为什么都是局部变量

这个通信子程序是我程序框架里里的一小部份,全部都是局部变量在我的程序框架里正常工作。下载者将变量自行替换。

2、为什么上升沿信号不是上升沿指令产生的

因为子程序里使用上升沿指令程序工作不正常

3、为什么我直接用这个子程序无法正常工作

此程序是我框架程序里的一部份,直接使用不可以。要根据自己的应用对变量地址更改。

4、可以重复调用吗?

在我的框架程序里是可以重复调用,但也就调用两次,因为只有两个串口嘛,相应的指令也要变一下。

如果有其它问题欢迎留言,共同探讨。


看下面的帖子

【S7-200 Smart开源标准化编程】modbus rtu终极封装-单条msg指令多任务读轮询写优先掉站跳过掉站恢复

https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1760741&b_id=64&s_id=0&num=0#anc


s7 200 smart modbus rtu通信例程,单条msg指令多任务,读轮询,写优先,掉站处理 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有7539条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

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