基于PROFIBUS—DP的串口设备群的集成方案与实现
3.2串口从站设备通信方案及程序框图
本实验系统采用多台S7—200 PLC来模拟串口设备群,整个系统是有应答的收发通信。当然也可以采用其他串口设备,如果采用单纯发送设备(如条码扫描器)或单纯接收设备(如显示屏),其实现方法是一样的,只是编程更加简单而已。
图2 DP主站通讯程序流程图
对S7.200 PLC,我们使用其自由口通信方式,用XMT指令发送数据,用RCV指令接收数据。因为有多台PLC串接在网络中,每台PLC需要接收到有用的数据是不同的,所以需要根据主站所发送的地址来判断是发给哪一个从站的数据,从而该从站进行接收,并向主站发送数据。又因为通信速度较快,所以对地址的判断需要放到接收完成中断程序中。其程序框图如图3所示。
图3中中断O为接收完成中断,中断1为时基中断,中断2为发送完成中断。时基中断的时间为10ms。
3.3程序设计中的关键环节
在系统软件设计中,首先需要注意的是主站自动发送间隔时间的选择。对主站来说,如果接收数据过长,接收数据时间大于发送时间间隔,那么接收将被发送打断,而不能完整地接收数据。设计人员需要根据在主站中所配置输入缓冲单元的数系统所选传输速率,算出传送所需最长报文数据所需要的时间,将主站定时器时间设定为大于传送最长报文的时间(也可根据经验设置),才不至于出现主站发送打断主站接收的情况,实现良好的通信效果。
图3 串口设备从站通信程序框图
其次需要注意的是串口设备从站收发之间需要有一个切换时间。当串口设备收到主站发送的控制命令后,不能立即向主站发送数据,需要延迟一小段时间,也就是说需使数据线处于一小段空闲时间后,再向主站发送数据,这样才能保证传输的可靠性。通过实验表明,如果不设置串口设备从站收发切换时间,在通信中容易造成数据丢失,不能实现良好的循环通信。在本系统中采用的是时间中断方式,定时时间为10ms,即串口设备收发切换时间为10ms。
4 结束语
本系统采用S7—300 PLC作为PROFIBUS主站,使用多台S7-200 PLC模拟串口设备群,配置了6个字节缓冲输入和缓冲输出,实验室调试结果表明:DP主站能够按时间每隔1s轮流对各个串口设备发送数据,串口设备从站能够在接收到主站发给自己的数据后,及时地将数据从缓冲区取出,存放到相应的存储单元,停留10ms后从站将自己的数据报告给主站,根据缓冲区的配置每次可传送6个字节的数据,主站接收到从站报告的数据后,按不同的从站地址存储到其相应的存储单元,然后对下一个从站进行访问,依此循环通信。本系统实际运行通信情况良好。
本实验系统提供的组网方法,以其良好的通信状况,低廉的成本,不仅能够实现现场总线系统的智能化管理,具有很高的先进性,还可以节约大量的硬件成本。那些存在较多串口设备,在不更换设备的情况下需进行现场总线技术改造的企业,可借鉴本例的设计。
评论