单片机扩展RS232通信模块和组态王实现Modbus RTU通信
一、通信实现功能:
1、组态王组态软件对单片机开发板单路或者多路数字量输入实现只读操作,利用Modbus之02功能码实现;
2、组态王组态软件对单片机开发板单路或者多路数字量输出实现读写操作,利用Modbus之01、05、15功能码实现;
3、组态王组态软件对单片机开发板单路或者多路模拟量输入实现只读操作,利用Modbus之04功能码实现;
4、组态王组态软件对单片机开发板单路或者多路模拟量输出实现读写操作,利用Modbus之03、06、16功能码实现。
二、组态王组态软件通信参数:
1、起始位:固定为1位
2、数据位:8位
3、校验位:偶校验1位
4、停止位:1位
5、波特率:115200bps
6、通信物理层:RS232
7、通信协议:Modbus RTU Master
三、单片机开发板通信参数:
1、起始位:固定为1位
2、数据位:8位
3、校验位:偶校验1位
4、停止位:1位
5、波特率:115200bps
6、通信物理层:RS232
7、Modbus RTU Slave
8、站号:1
四、单片机开发板通信元件编号和Modbus地址对应表
五、单片机开发板Modbus RTU Slave通信程序
1、头文件,根据单片机型号不同,选择不同的头文件:
2、单片机串口1用宏定义:
3、公用函数定义:
4、串口1用Modbus函数定义:
5、串口1用函数定义:
6、串口1用变量定义:
7、CRC字节值表:
8、主函数:
9、定时器0中断函数:
10、串口1中断函数:
11、串口1发送字符串函数:
六、组态王组态软件组态详解:
1、工程属性如下所示:
2、串口属性设置如下所示:
3、设备建立步骤:
选择PLC-莫迪康-Modbus RTU-COM
设备名称为从站01:
选择串口端口号为COM1:
从站地址为01:
故障恢复时间设置:
确认设备信息:
4、建立变量
建立数字量输入DI01,如下所示:
建立数字量输出DO01,如下所示:
建立模拟量输入AI01,如下所示:
建立模拟量输出AO01,如下所示:
以此类推,建立如下变量:
5、画面组态
新建画面文件:
画面组态,依次监控多路DI、DO、AI、AO,如下所示:
七、系统联调,经过测试,通信成功。参考如下视频:
八、组态王组态工程提供下载: