您当前的位置:首页 > 生活常识 > 正文

看门狗是什么 程序看门狗

看门狗是什么 程序看门狗想必接触过编程的人都知道,硬件之间通信需要一个类似于心跳的数据来判断通信是否连接正常,于是编程人员利用这一特性,用程序模拟出硬件设备的心跳,这个数据就叫看门狗。看门狗,顾名思义,有数据交互时,狗就给你干活,不停的叫,

想必接触过编程的人都知道,硬件之间通信需要一个类似于心跳的数据来判断通信是否连接正常,于是编程人员利用这一特性,用程序模拟出硬件设备的心跳,这个数据就叫看门狗。

西门子PLC编程基础知识讲解-看门狗及程序详解西门子PLC编程基础知识讲解-看门狗及程序详解

看门狗,顾名思义,有数据交互时,狗就给你干活,不停的叫,所以看门狗数据会不停地变化。反之,通信断了,数据无法继续交互了,狗就饿死了,所以就不叫了,此时,看门狗数据停止变化。

西门子PLC编程基础知识讲解-看门狗及程序详解西门子PLC编程基础知识讲解-看门狗及程序详解

那么问题来了,如何使用看门狗呢?那我我们可以判断上一循环和本次看门狗的值是否发生变化,如果上一次循环,看门狗数值和本次一样,则认为通信出现问题。

但是不能认为两次看门狗数据不一样,就立马认为设备间通信中断了,这样写出来的程序是无法使用的。

所以根据实际情况,一般默认看门狗判定时间为2秒,也就是说,连续2s中,上一循环看门狗数据和当前看门狗数据都是一样的。此时,立马判定设备间通信中断,停止所有输出,清楚所有输入。

下面介绍下西门子PLC用SCL需要写的看门狗。

IF Watchdogpre=Watchdog Then

TonTimer(in:=1,pt:=T# 100ms);

IF TonTimer.Q Then

Counter:=Counter+1;

TonTimer(in:=0,pt:=T#0s);

END_IF;

IF Counter>=20 Then

Counter:=20;

END_IF;

IF Counter=20 Then

Connect:=0;

END_IF;

Else

Counter:=0;

Connect:=1;

END_IF;

当Connect为0的时候,就判断通信已经中断。如果看门狗继续变化,则立马将Counter清0,将Connect置1。当Connect为1时,判定设备间通信正常。

对西门子PLC编程感兴趣的小伙伴,大家可以在评论区讨论哦。

西门子PLC编程基础知识讲解-看门狗及程序详解西门子PLC编程基础知识讲解-看门狗及程序详解


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 途的意思是什么 理财在途是什么意思

下一篇: 我爱你藏头诗和藏尾诗结合(藏头诗也可以说藏尾诗)



推荐阅读