wlmissyou
级别: 探索解密
精华主题: 0
发帖数量: 62 个
工控威望: 165 点
下载积分: 1279 分
在线时间: 98(小时)
注册时间: 2017-06-11
最后登录: 2024-11-21
查看wlmissyou的 主题 / 回贴
楼主  发表于: 31天前
        之前发过好多次关于modbus方面的帖子,关于200smart标准化的帖子之前就发了两三篇,距离现在最近的帖子已经超时锁定了。这次发帖是给之前的程序增加了新功能。在一个高度封装的子程序里增加新功能是挺困难的,还好成功的完成了。

        完整的介绍程序的功能:
1、不需要编程,只需在数据块里正确填好各项参数,即可完美工作。
2、通信任务分为轮询任务组,和写优先任务组。轮询任务组内可以放置写操作任务。即写操作在正常轮流工作里。
3、掉站跳过和定时掉站恢复功能。
4、定时写优先组内操作的数据读回功能,即把写操作变成读操作把写入从站的数据读回到PLC。
5、轮询任务组里的任意通信任务可以临时退出和随时加入轮询功能里。如果想要人工的将某个轮询内的通信任务退出轮询,将其读写操作的0和1改变为0、1、10、11、以外的任意数值,这条通信任务就退出轮询了。
新增功能
6、以上2~4功能可以通过设置来启用和停用。
    假如应用中会出现同一时刻(同一扫描周期)的多个写操作,那么请把高优先级的写任务写在小序号(其实没序号)的写操作任务里。因为写操作的检查是从小序号开始的,其实是按顺序检查,先检查到的先执行。
    数据块里的指针赋值是一大麻烦,要么是很大的双整数,要么是十六进制数,很不方便。这次这里的改进就是输入简单的双整数,比始填4700是希望指向VB4700的指针,封装的子程序在第一个扫描周期会将4700这些双整数变成指针。当然,此数据块中输入十六进制数和很大的双整数值的指针数值也可以,是兼容的。
    切记设置好库内存,背影数据等的地址,不要出现干涉。干涉或数据块填写的不正确,程序就工作不起来了。


下面是例程,改了PLC型号IP地址就可以工作了
技术交流微信:50586625
[ 此帖被wlmissyou在2024-11-20 17:45重新编辑 ]
附件: 天花板级modbus rtu2.6版241026.zip (87 K) 下载次数:403
网站提示: 请不要用迅雷下载附件,容易出错
本帖最近评分记录:
  • 下载积分:+2(neafar22) 不明觉厉,谢谢分享。
  • 下载积分:+1(红城老夫) 真诚感谢!
  • 下载积分:+1(16675175450)
  • 下载积分:+1(hsiung) 真诚感谢!
  • 下载积分:+1(xiayudong11) 感谢分享!
    powtiger
    狂人日妓
    级别: 略有小成
    精华主题: 0
    发帖数量: 314 个
    工控威望: 449 点
    下载积分: 3356 分
    在线时间: 124(小时)
    注册时间: 2014-03-04
    最后登录: 2024-11-09
    查看powtiger的 主题 / 回贴
    1楼  发表于: 31天前
    其实自己编最好,也许你这个是最完善的,但一有异常不熟悉程序结构的话很难去分析原因
    科技创造未来,人才决定明天!