线下实训
HOME
线下实训
正文内容
plc 心跳编程 PLC通信中处理心跳信号的两种方法
发布时间 : 2024-10-16
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC通信中处理心跳信号的两种方法

当代工业控制已经越来越趋于网络化,一台设备往往不是孤立的存在,而是需要跟它的外围系统进行各种各样的通信。比如:设备要跟工厂的管理系统(MES)进行通信以传送过程数据、跟生产线进行通信以获取相关的启停信号、跟目视管理系统(ANDON)进行通信以收发一些可视化数据等等。设备在与外围系统的通信中要发送/接收一种信号,用来判断通信是处于正常状态还是中断状态。这是一种跳变的信号,只要通信正常,它就会按照某种规律变化;一旦在某段时间内检测不到这种变化,就认为通信中断了。这种跳变的信号被形象的称为"心跳信号"。

今天这篇文章,和大家分享下PLC处理心跳信号的两种方法。

1、心跳脉冲

处理心跳信号的比较简单的方法是使用脉冲。

发送方以一定的频率发送脉冲信号,接收方用该脉冲信号的取反值启动延时接通定时器(TON),并设置一个比脉冲周期长的延时时间。

如果脉冲信号处于变化状态,延时接通定时器不会到达其设定时间;

如果脉冲信号停止变化,延时接通定时器会开始计时,达到其设定时间后触发通信中断报警;

脉冲的周期不宜太短或太长,一般使用1秒的脉冲信号。

举个例子:

以DB10.DBX0.0做为心跳信号,DB10.DBX0.1做为报警信号,以心跳信号的取反值启动延时定时器,可以这样写代码:

上述代码其实有一个小的漏洞:假设DB10.DBX0.0恰好在值为1的时候发生了中断(不再变化),上述代码是不会触发报警的。

为了补上漏洞,可以在上述代码的基础上再增加一个延时接通定时器,以心跳信号触发,如下图:

这样任何一个定时器时间到了都会触发通信中断报警。

上述是以脉冲的方式处理心跳信号,还有一种方法是使用心跳计数器。

2、心跳计数器

与心跳脉冲使用布尔型变量不同,心跳计数器使用整数作为心跳值。该数值从0开始计数,每隔一定时间(通常是1秒)加1,当到达最大值后再从0开始重新计数。

对于心跳计数器的检测采用定时取样的方法,每隔一定时间(比如5秒钟)采集心跳计数器的数值,用当前值跟上一次采样的值进行比较,如果不同,说明心跳信号正常;如果两者相同,说明心跳计数器没有更新,即通信发生了中断。

关于如何定时采样,我之前写过一篇文章,请参考:西门子SCL编程实例——定时采样程序

好了,关于PLC处理心跳信号的两种方法就先介绍到这里。

我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》已经出版,欢迎点击下面的链接查看:

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } S7-200 SMART PLC应用技术 ¥88 购买

PLC编程基础定时器的使用举例

PLC编程过程中,定时器是非常常用的控制指令。常用于定时、延时、流程控制等。在几种类型的定时器中,接通延时定时器是非常常用的,绝大多数的控制场景都可以使用此定时器完成控制功能。这里就定时器的使用举例如下。

延时输出控制

功能说明

检测到输入信号后,延时2s,然后输出。

PLC资源分配

X0:延时输入信号

T1:延时定时器

Y0:输出信号

程序实现

延时输出控制程序

X0接通时,开始定时计时,当其计时2s后。定时器T1的触点导通,从而控制Y0输出;当X0断开后,则T1定时器复位,Y0输出亦复位。

表时钟控制

功能说明

使用定时器实现时钟,小时、分、秒的控制。

PLC资源分配

D0:秒时计时

D1:分钟计时

D2:小时计时

T0:功能实现定时

程序实现

计时心跳处理

使用定时器自己的常闭触点,启动定时器的运行。当其运行到设置定位时间后,定时器的触点导通(从此时看,假定本次PLC扫描周期为第一个周期);在PLC运行的下一个周期(第2个扫描周期),那么其常闭触点就会断开;从而复位定时计数;(第三个扫描周期)。又开始下一次定时运行,如此往复。实现1s种定时处理。

秒钟计时处理

取1s定时器的触点导通的上升沿信号,对秒钟加一计时。每计时一秒,则D0加1.

秒钟复位及分钟计时处理

当秒钟计时到59秒后,对秒钟计时寄存器D0复位。并将分钟计时寄存器D1进行加1计时。

分钟复位及小时计时处理

当分钟计时到59秒后,对秒钟计时寄存器D1复位。并将分钟计时寄存器D2进行加1计时。

小时复位处理

当计时到23小时后,对小时寄存器D2复位。

完成程序实现

(转载请注明来源函控自动化工程师头条号)

相关问答

plc心跳信号是什么意思?

PLC心跳信号是指在工业自动化系统中,由可编程逻辑控制器(PLC)发送的周期性信号。这个信号的目的是用于检测PLC的运行状态和通信是否正常。PLC心跳信号通常以固...

PLC1200如何传递心跳给上位机以便上位机监控通讯状态?

做个自加或自减的数值,送上位机进行锁存判断,不同即有心跳。做个自加或自减的数值,送上位机进行锁存判断,不同即有心跳。

 陆漓  张涵韵 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部