随着自动化系统规模逐渐增大,控制目标的种类越来越多,采用一个统一标准的网络协议,将各组件整合,以便于PLC控制是未来趋势。随着网络内组件的增多,通讯诊断程序成为了一个完整PLC程序必须包含的内容,简单易读的诊断程序可以帮助工程师和操作维护人员方便快速确认网络故障点,排除故障,减少停机。本例以一套西门子Profinet网络为实例,分享DeviceStates功能块的使用。
实例网络视图如下:
该套设备控制器为 S7-1200 CPU 1214C,通过PN网络扩展了一套分布式I/O、4台G120变频器、2台V90伺服驱动器和一台HMI终端。使用DeviceStates功能块诊断这些网络组件的网络状态,以便网络发生故障时PLC做出连锁反应,HMI做出必要指示。
本例在OB1组织块调用DeviceStates诊断功能块,该功能块可通过STATE参数引脚,输出由MODE参数指定的特定诊断功能的网络从站的布尔值状态。
再然后分配STATE引脚地址,DeviceStates诊断功能块会将各从站诊断结果写入STATE引脚指定的数据组。双击引脚下拉菜单,选择之前在全局数据块中创建的数据类型为Array of Bool,数据长度为1024的数据组。 而我们之前在全局数据块中创建的数据类型为Array of Bool,数据长度为1024的数据组中的每一个Bool变址位对应着一个设备的硬件编号,对应关系如下: 即可表示硬件编号为1、2、3、4、5、6、7的设备编组网络诊断情况。 引申一步,可以将这些变址信息赋值给HMI画面的动画效果,设置方法如下图所示: 这样,当设备编号为3号的G120变频器出现丢站或网络故障,对应编组的网络诊断页面该设备就会消失,更直观的为工程师和操作员提供检修指示。 DeviceStates功能块的使用就介绍到此,篇幅有限不能尽述,也可能有所遗漏。本例是以Profinet为例介绍,用于Profibus网络诊断,诊断输出变址是和Profibus从站号对应,其他并无大异。其功能和我们之前使用的FB125和简化版FC125类似。其实,在博途里还有两种方法可以完成这个诊断工作,欢迎大家留言区讨论。变址0位为网络中至少有一台设备丢站或者出现网络故障,之后变址1位对应硬件编号1的设备,变址2位对应硬件编号2的设备,以此类推。变址值为1表示发生丢站,变址值为0表示该硬件编号设备网络通信正常。知道了这个对应关系我们就可以把需要诊断的设备的硬件编码提取出来编程使用,如下例:
楼主最近还看过