发布于 2019-09-01 15:48:09
20楼
Modbus-RTU轮询?
库本身就是MSG,也就是类似多线程的消息机制。
如果了解消息编程、熟悉多线程多进程的都知道怎么去优化这种通讯的吧?
对于这种不确定的模型,采用Windows系统的消息机制处理就可以了。
开一个子程序专门处理所有通讯请求都放入消息堆栈;再开一个子程序专门提取消息堆栈的消息进行处理。这样就可以把硬件层(串口通讯)、驱动层(消息处理)、应用层(用户通讯处理逻辑)全部分开来,不会因为应该层改变而去改变硬件层、驱动层。
至于通讯逻辑,真没有统一的做法,只能说通讯初始化时把需要的第一个任务消息压入堆栈、消息完成后根据需要压入其他的任务消息。这样是可以仅用一个MSG来处理所有的通讯的,很大程度的避免多个MSG引起的错误6。
不过,对于内存这么少的PLC,真不建议把通讯搞得太复杂到时候内存分配不够了反而把自己坑进去。还是根据实际的项目需求分别优化更实在。