两台p lc 之间的自由口通信 设计要求: 实现两台s7-200plc(分别称A 机和B 机)采用自由端口模式进行数据交换。A 机的I0.0-I0.7 能控制 B 机的Q0.0-Q0.7,反过来 B 机的I0.0-IO.7 也能控制 A 机的Q0.0-Q0.7。而且要求在两台或其中一台plc断电后,接通电源还能正常通信。 设计思路: 可以在双机单向通信的基础上设计双机双向通信,需要注意的是:在任一时刻,只能有其中一台plc 发送数据,因此就出现了对通信信道的管理问题。 在此设计中解决上述问题的方法是又其中一台plc 负责通信信道的管理工作。具体方法是:主机发送方如果收到从机的响应,在正常收到结束字符的情况下,将收到信息送到 QB0;如果没有正常收到结束字符,则重新发送。此外,在主机发送方还设置有一个用于监视通信的定时器,若在定时器所设定时间内得不到从机的响应,会重新发送数据。这样就保证了通信的顺利循环。 具体设计是采用了发送指令 XMT 和接受指令 RCV,以及定时器SMB34,SMB35,还有相应的中断事件(9,10,11,23)。在接收指令的启动和结束条件设置上,起始条件选用了空闲线检测;结束条件选用了结束字符检测和最大字符计数。 需要注意的一点是,主机发送方在定时器所设定时间内得不到从机的响应时,要对端口接收信息控制字节重新设定,才能转入发送。 设计程序: 主机通信程序 主程序: 中断 0 : 中断 1 : 中断 2 : 中断 3 : 从站程序: 主程序: 中断 0 : 中断 1 : 中断 2 :