2台CPU SR30 AC/DC/RLY(6ES7 288-1SR30-0AA0),姑且一台称之1#;另一台称之2#。
SMART用户手册中有一个经典的例子程序,接收到16#0A字符时将接收到的信息发送回去,将这个程序逻辑简单改造后就可以完成如下工作:
1# PLC的I0.0/I0.1有/无信号,2# PLC的Q0.0/Q0.1有/无输出;反之亦然。
1#程序:
l 主程序完成通讯口初始化:自由口模式;9600波特率、8数据位、无校验;启动全局中断;定义接收完成中断、发送完成中断。
l 接收完成中断。启动10ms定时器中断完成发送。
l 完成发送任务
l 完成接收任务
2#程序:
l 主程序完成通讯口初始化:自由口模式;9600波特率、8数据位、无校验;启动全局中断;定义接收完成中断、发送完成中断。(注意:由于1#上电初始化激活了接收指令,处于等待接收状态。那么2#首先就要主动发送数据,上电后延时启动发送指令)

l 接收完成中断。启动10ms定时器中断完成发送。

l 完成发送任务

l 完成接收任务

将以上程序分别下载进2台PLC中,如图所示验证逻辑,达到了预期效果:

按下1# PLC的I0.0,2# PLC的Q0.0输出;反之按下2# PLC的I0.1,1# PLC的Q0.1输出。