发表于:2020/5/15 14:38:02
#0楼
分享程序:西门子S7-200 Smart自由口发送\接收案例
一、主程序:设置 SMB30 、SMB87;
连接发送完成中断事件和接收完成中断事件;
每秒读取一次 CPU 实时时钟并执行 XMT 指令发送。
1、网络1:
SMB30 = 2#00001001:自由口通信模式,波特率9600,8位数据位,无校验;
SMB87 = 2#10010100:
空闲线检测为信息接收的起始条件,SMW90 = 5 ms;
字符间定时器为消息接收的结束条件,SMW92 = 5 ms;
设置允许最大接收字符个数 SMB94 = 10 。
2、网络2:
中断程序 INT_0 连接到通信端口 0 发送完成事件;
启用中断 。
3、网络3:
每秒钟读取一次 CPU 实时时钟;
每秒钟执行一次 XMT 指令将 CPU 实时时钟发送出去;
执行 XMT 指令之前需要先禁用 RCV 指令的执行;
RS485 为半双工模式,发送与接收不能同时进行。
二、通信端口 0 发送完成中断程序
1、网络1:
执行 RCV 指令,开始接收CPU2 的应答信息。
三、程序提供下载:
一、主程序:设置 SMB30 、SMB87;
连接发送完成中断事件和接收完成中断事件;
每秒读取一次 CPU 实时时钟并执行 XMT 指令发送。
1、网络1:
SMB30 = 2#00001001:自由口通信模式,波特率9600,8位数据位,无校验;
SMB87 = 2#10010100:
空闲线检测为信息接收的起始条件,SMW90 = 5 ms;
字符间定时器为消息接收的结束条件,SMW92 = 5 ms;
设置允许最大接收字符个数 SMB94 = 10 。
2、网络2:
中断程序 INT_0 连接到通信端口 0 发送完成事件;
启用中断 。
3、网络3:
每秒钟读取一次 CPU 实时时钟;
每秒钟执行一次 XMT 指令将 CPU 实时时钟发送出去;
执行 XMT 指令之前需要先禁用 RCV 指令的执行;
RS485 为半双工模式,发送与接收不能同时进行。
二、通信端口 0 发送完成中断程序
1、网络1:
执行 RCV 指令,开始接收CPU2 的应答信息。
三、程序提供下载:
附件:
[本地下载]基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
联系!腾讯扣扣149034219