作者 | 主题 |
---|---|
不欲勿施 奇侠 经验值: 8121 发帖数: 842 精华帖: 14 |
楼主 2022-12-07 10:35:14
主题:【S7-200 Smart开源标准化编程】modbus tcp封装 之前发过了modbus rtu封装的程序,标准化程序的目的是提高工作效率。当然这也带来了一些负作用,比如不可以使用“运行中编辑”功能,还有就是程序的量会变大。如果真的撑爆了就只能换大容量的PLC,或不使用这种标准化的方式。 这次封装的modbus tcp程序适合单个开放式连接下的通信,比如:单个tcp从站下的多条读写通信,还有就是PLC连接modbus tcp转modbus rtu网关(注意不是串口服务器)的通信。网关如果是多串口的,可以创建多个通信程序进行连接每个串口,实现与每个串口下的多个从站的通信。 这次封装使用的是西门子以前的modbus tcp通信指令。就是那个库里有8个客户端,8个服务器指令的库。这个库在阿里巴巴的西门子官方话旗舰店里已经不卖了,这里贴不了链接了。想用的小伙伴四处找找吧。这个指令库对于PLC连接modbus tcp转modbus rtu网关这样的通信比较友好。 这次封装的modbus tcp程序里的功能如下: 1、读轮询。掉了站的读跳过 2、写优先。掉了站的写同样跳过 3、掉站跳过和恢复。 4、PLC上电后,先从 从站 读回写操作的那些数据,并且写到老值区。掉了的从站记录通信状态,后期写操作时跳过,并且老值区覆盖新值区。 5、进行掉站恢复后同样进行一次4的操作。 6、写操作完成后,若成功则新值替换老值,不成功则老值替换新值。 7、掉了站的写操作,老值替换新值。 程序的使用依然是填写数据块就可以了。 假如应用中会出现同一时刻(同一扫描周期)的多个写操作,那么请把高优先级的写任务写在小序号(其实没序号)的写操作任务里。因为写操作的检查是从小序号开始的,其实是按顺序检查,先检查到的先执行。 程序是在STEP 7-Micro/WIN SMART 2.6下创建的。 使用这个标准化的程序,自然是用最新分享的程序。新的程序自然是比之前的程序更优化。 至于能不能看懂程序,这个就只能随缘了。功力深的自然能看懂,功力浅的就再多看看我之前发的帖子。 欢迎点赞回复下载测试,有问题可以留言告诉我。 smart200标准化实践20230222.smart.zip
13478405725
|
一个人走 游士 经验值: 232 发帖数: 13 精华帖: 0 |
2楼 2022-12-07 16:04:58
主题:回复:【S7-200 Smart开源标准化编程】modbus tcp封装 |