分享一个自己做的smart的PLC做Modbus通讯的项目案例,用的是定时轮询。
1;初始化站,填写波特率,停止位,端口,本例程序中用本体串口作为通讯接口,所以端口号为0。

;用两个定时器通断来实现轮询计数累加,轮询计数VW1000

3;轮询计数达到设定值,计数清零,用于重新进入下一个循环。本例中最多每个站读取4个地址,所以轮询计数大于等于5的时候清零

4;每一个轮询接通一个位变量,用于调用从站程序

5;从站程序调用,这里从站地址是可设值变量VB1004

6;站地址计数复位,案例中有3个从站,所以VB1002大于3时复位到1,从头开始循环

7;这里有一点,站地址是整数,但从站程序Slave管脚是字节,所以这里有一个整数转字节的程序;

这是一个简单的定时轮询,目的是与三个从站(地址为1,2,3)进行数据读取与写入。