第一次发贴不熟练。。。。附件见2楼
各网站没见过谁像我这样写,所以第一次发贴献丑一下。
以往,在各PLC轮询上,传统方法是维护一个数组,这个数组包含了各条通讯指令用到的站号,通信数据地址,读写分类,读写个数,数据存储位置等信息。然后由一个管理的FC或FB来处理轮询。
此方法的缺点是,1增加通信条数需要修改数组 。在监控时不直观
2 难于处理通讯优先级。
我的库,有以下优缺点:
优点:
1,可以和原官方MODBUS库一样调用。只有MBUS_MSG多一个myRING的管脚,每次调用必须给一个不同的位。
2不用人为处理轮询。编写程序可以挨个顺序调用。轮询会自动完成。
3可以通过控制MBUS_MSG_V2的EN管脚来简单的处理各个调用的优先极。
4去掉了MBUS_MSG的First管脚。
5不用原来官方的MODBUS库。此库根据官方200的MODBUS库修改而来。
缺点:
只能使用SMART自带的串口。不支持扩展的串口(SMART支持扩展串口的吧?)
2024/01/27 其实很多网友理解的有错的。最基础的调用,我这个库,下面的若干条MSG指令是可以都用SM0.0来调用的,这个时候,各条指令按顺序执行。轮询不用自己处理,在MSG内部自动完成。MSG的EN可以控制它是否加入轮询,myRING表示加入轮询,正在处理。所以程序要处理一下,如果myRing为TRUE,这个时候不能让EN变FALSE。