之前发过了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