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

已锁定

不欲勿施

  • 帖子

    842
  • 精华

    14
  • 被关注

    268

论坛等级:奇侠

注册时间:2009-03-27

钻石 钻石 如何晋级?

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

8808

61

2022-05-06 10:41:25

star star star

这是最后做出来的程序,基本没有再添加功能的地方了,分享出来是给大家使用。

新程序是全新创作的程序,子程序内除AC3用于指针外,再无全局变量。

子程序运行的所有参数由一个指针给定。

程序的所有参数由数据块进行给定。

程序添加掉站的通信任务跳过功能,定时掉站恢复功能

如果要使用modbus rtu Master2指令,替换L001子程序内的指令,并分配库存储区地址即可。


这个程序是做为标准化编程的一个对象存在的。

在标准化编程里通信是读写IO的工具。IO同样做为对象存在的。

通信不应受到工艺逻辑的影响。通信程序中也不应有工艺逻辑存在。

比如与变频器,仪表通信,读写的数据都做为PLC的外设IO存在。


简述一下程序的使用

1、所有子程序必须无条件调用,就说子程序EN端必须接SM0.0。

2、L000程序必须在OB1中第一网络调用。

3、L001程序参数由指针指定,参数的值在数据块里指定。这



关于指针双字的赋值,看一下下面的帖子了解一下。

https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1732543&b_id=64&s_id=83&num=12#anch


感兴趣的小伙伴可以先看看基础篇

https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1730780&b_id=64&s_id=0&pno=#1731036


总结:在一个子程序里用有限的局部变量实现这么复杂的通信程序还是挺不容易的,在程序中依然没办法全部用符号编程,因为局部变量的复用。作为一个子程序封装的存在,使用起来很方便了,免去了从头编程的麻烦,在数据块里填好参数就行了,但别填错了,哈哈哈,填错了程序不干活。


有朋友说在数据块里填参数这种应用方式,在修改了数据后必须下载数据块,这样导致PLC的保持型数据会复位,所以在程序中创建了一个modbus的参数程序块。


请看最新的帖子

【S7-200 Smart开源标准化编程】modbus rtu再次封装

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

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

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有7539条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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