发表于:2020/1/3 19:11:49
#0楼
单片机扩展RS485通信模块和西门子PLC实现Modbus RTU通信
一、单片机和西门子200 Smart系列PLC Modbus RTU串口通信实现功能:
1、单片机读取西门子200 Smart 4路数字量输入I0.0~I0.3控制自己4路晶体管输出DO01~DO04,使用Modbus之02功能码实现;
2、单片机使用自己4路数字量输入DI01~DI04控制西门子200 Smart 4路数字量输出Q0.0~Q0.3,使用Modbus之15功能码实现。
二、单片机串口1(扩展RS485通信模块)通信参数:
1、起始位:固定1位
2、数据位:8位
3、校验方式:偶校验1位
4、停止位:1位
5、波特率:115200bps
6、物理层:RS485
7、通信协议:Modbus RTU Master
三、西门子200 Smart自带RS485通信口通信参数:
1、起始位:固定1位
2、数据位:8位
3、校验方式:偶校验1位
4、停止位:1位
5、波特率:115200bps
6、物理层:RS485
7、通信协议:Modbus RTU Slave
8、从站站号:1
四、通信硬件连接:
1、单片机串口1(扩展RS485通信模块)端口定义:
A:RS485发送\接收+
B:RS485发送\接收-
2、西门子200 Smart自带RS485通信口端口定义:
DB9母头之3脚:RS485发送\接收+
DB9母头之8脚:RS485发送\接收-
3、通信硬件连接:
单片机串口1(扩展RS485通信模块)之A 接 西门子200 Smart自带RS485通信口3脚;
单片机串口1(扩展RS485通信模块)之B 接 西门子200 Smart自带RS485通信口8脚。
五、西门子200 Smart各元件编号与Modbus地址对应表
六、西门子200 Smart之Modbus RTU Slave程序详解:
1、MBUS_INIT指令:
Mode,通信协议模式,这里为1,表明为Modbus RTU协议;
Addr,从站地址,这里为1;
Baud,波特率,这里为115200bps;
Parity,校验方式,这里为2,表明为偶校验;
Port,端口选择,这里为0,表明使用200 Smart本体自带RS485通信口;
Delay,通信延迟,这里设置为0ms;
MaxIQ,用于设置可访问I、Q区点数;
MaxAI,用于设置可读取模拟量输入通道数;
MaxHold,用于设置可读写保持寄存器个数;
HoldStart,设置保持寄存器起始地址;
Done,MBUS_INIT初始化完成标志位;
Error,MBUS_INIT指令执行结果。
2、MBUS_SLAVE指令:
Done,MBUS_SLAVE初始化完成标志位;
Error,MBUS_SLAVE指令执行结果。
3、Modbus库存储区分配:
七、单片机Modbus RTU主站程序详解:
1、头文件:
2、简化定义:
3、单片机串口1用宏定义:
4、公用函数定义:
5、串口1用函数定义:
6、串口1用部分变量定义:
7、主函数:
8、定时器0中断初始化子函数:
9、串口1中断初始化子函数:
10、定时器0中断函数:
11、串口1中断函数:
12、串口1发送字符串子函数:
八、西门子200 Smart Modbus RTU Slave程序测试
使用Modbus Poll调试助手进行测试,测试截图如下所示:
九、单片机Modbus RTU Master程序测试
使用Modbus Slave调试助手进行测试,测试截图如下所示:
十、西门子200 Smart Modbus RTU从站程序提供下载:
十一、单片机扩展RS485通信模块应用测试视频
一、单片机和西门子200 Smart系列PLC Modbus RTU串口通信实现功能:
1、单片机读取西门子200 Smart 4路数字量输入I0.0~I0.3控制自己4路晶体管输出DO01~DO04,使用Modbus之02功能码实现;
2、单片机使用自己4路数字量输入DI01~DI04控制西门子200 Smart 4路数字量输出Q0.0~Q0.3,使用Modbus之15功能码实现。
二、单片机串口1(扩展RS485通信模块)通信参数:
1、起始位:固定1位
2、数据位:8位
3、校验方式:偶校验1位
4、停止位:1位
5、波特率:115200bps
6、物理层:RS485
7、通信协议:Modbus RTU Master
三、西门子200 Smart自带RS485通信口通信参数:
1、起始位:固定1位
2、数据位:8位
3、校验方式:偶校验1位
4、停止位:1位
5、波特率:115200bps
6、物理层:RS485
7、通信协议:Modbus RTU Slave
8、从站站号:1
四、通信硬件连接:
1、单片机串口1(扩展RS485通信模块)端口定义:
A:RS485发送\接收+
B:RS485发送\接收-
2、西门子200 Smart自带RS485通信口端口定义:
DB9母头之3脚:RS485发送\接收+
DB9母头之8脚:RS485发送\接收-
3、通信硬件连接:
单片机串口1(扩展RS485通信模块)之A 接 西门子200 Smart自带RS485通信口3脚;
单片机串口1(扩展RS485通信模块)之B 接 西门子200 Smart自带RS485通信口8脚。
五、西门子200 Smart各元件编号与Modbus地址对应表
六、西门子200 Smart之Modbus RTU Slave程序详解:
1、MBUS_INIT指令:
Mode,通信协议模式,这里为1,表明为Modbus RTU协议;
Addr,从站地址,这里为1;
Baud,波特率,这里为115200bps;
Parity,校验方式,这里为2,表明为偶校验;
Port,端口选择,这里为0,表明使用200 Smart本体自带RS485通信口;
Delay,通信延迟,这里设置为0ms;
MaxIQ,用于设置可访问I、Q区点数;
MaxAI,用于设置可读取模拟量输入通道数;
MaxHold,用于设置可读写保持寄存器个数;
HoldStart,设置保持寄存器起始地址;
Done,MBUS_INIT初始化完成标志位;
Error,MBUS_INIT指令执行结果。
2、MBUS_SLAVE指令:
Done,MBUS_SLAVE初始化完成标志位;
Error,MBUS_SLAVE指令执行结果。
3、Modbus库存储区分配:
七、单片机Modbus RTU主站程序详解:
1、头文件:
2、简化定义:
3、单片机串口1用宏定义:
4、公用函数定义:
5、串口1用函数定义:
6、串口1用部分变量定义:
7、主函数:
8、定时器0中断初始化子函数:
9、串口1中断初始化子函数:
10、定时器0中断函数:
11、串口1中断函数:
12、串口1发送字符串子函数:
八、西门子200 Smart Modbus RTU Slave程序测试
使用Modbus Poll调试助手进行测试,测试截图如下所示:
九、单片机Modbus RTU Master程序测试
使用Modbus Slave调试助手进行测试,测试截图如下所示:
十、西门子200 Smart Modbus RTU从站程序提供下载:
附件:
[本地下载][此贴子已经被作者于2020/1/3 19:22:53编辑过]
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
联系!腾讯扣扣149034219