在现代化的自动化控制网络中,一台设备往往不是孤立的存在,而是需要跟它的外围系统进行各种各样的通信。比如:工厂设备要跟管理系统(MES)进行通信以传送过程数据、跟生产线进行通信以获取相关的启停信号、跟车间生产管理系统(ANDON)进行通信以收发一些可视化数据等等。设备在与外围系统的通信中要发送/接收一种信号,用来判断通信是处于正常状态还是中断状态。这是一种跳变的信号,只要通信正常,它就会按照某种规律变化;一旦在某段时间内检测不到这种变化,就认为通信中断了。这种跳变的信号被形象的称为"心跳信号"。
心跳信号是为了确认一个事实网络通信的双方在长时间没有通讯的情况下是否都还在线,或者说存在于互联的双方之间的通讯链路是否已经断开。而不是网上有些人所谓的“用来保持连接”,“用来维持长连接”。连接一旦建立,只能被异常或正常的断开,而不会因为没有数据传输而断开的,所以没有什么长连接的概念,更不需要用发送数据的方式来保持连接。
今天便和大家分享PLC网络处理心跳的两种办法。
1、心跳计数器
编程者编制一计数器,数值从0开始计数,每隔一定时间(通常是1秒)加1,当到达值后再从0开始重新计数。对于心跳计数器的检测采用定时取样的方法,每隔一定时间采集心跳计数器的数值(比如5秒钟),用当前值跟上一次采样的值进行比较,如果不同,说明心跳信号正常;如果两者相同,说明心跳计数器没有更新,即通信发生了中断。
2、心跳脉冲
心跳脉冲比较简单,使用布尔变量作为心跳值。编程者编制一个脉冲位,每间隔一段时间发一个脉冲。一般周期为1秒或者0.5秒发送脉冲信号,接收方用该脉冲信号的取反值启动延时接通定时器(TON),并设置一个比脉冲周期长的延时时间。如果脉冲信号处于变化状态,延时接通定时器不会到达其设定时间;如果脉冲信号停止变化,延时接通定时器会开始计时,达到其设定时间后触发通信中断报警;脉冲的周期不宜太短或太长,一般使用1秒的脉冲信号。