作为PLC程序设计中的新技术,我一直在为PLC中倒计时程序的编程而奋斗。我想添加一个90天的倒计时计时器,一旦按下人机界面上的按钮,它将被重置为90天。倒计时时间应显示在人机界面显示器上。没有IO连接,只有倒数计时器。
发布于 2020-03-02 11:40:06
在我看来,你的问题太宽泛了。你试过自己解决这个问题吗?您正在使用的PLC环境是什么?
也许这里有什么可以开始的?
当按下
。
编辑:这里是Infoteam OpenPCS的工作程序。我以前从未使用过它,但出于好奇,我不得不测试它。我设法获得了当前的日期时间,但不可能转换为DWORD
进行计算,所以我使用了这种方法(Sergey,您知道怎么做吗?)我试着用POINTER
转换它,但是不能取消它的引用。)我没有测试它的更长的延迟,所以请注意,它可能不是100%的工作。
它计算60秒间隔(=分钟),当足够多的分钟被传递时,计时器停止。注意,如果断电等不应影响内存,则应将分钟保存到持久内存中。
VAR
RunTimer : BOOL;
MinutesElapsed : UDINT;
StartTime : TIME;
TimeDifference : TIME;
END_VAR
IF RunTimer THEN
IF StartTime = t#0s THEN
StartTime := GetTime(StartTime);
END_IF;
TimeDifference := GetTime(StartTime);
(*IF one minute has elapsed*)
IF TimeDifference >= t#1m THEN
MinutesElapsed := MinutesElapsed + 1;
(*Reset StartTime to start minute over*)
StartTime := t#0s;
END_IF;
(*IF enough minutes has passed, stop (90*24*60 = 90 days)*)
IF MinutesElapsed >= (90 * 24 * 60) THEN
RunTimer := false;
StartTime := t#0s;
TimeDifference := t#0s;
MinutesElapsed := 0;
END_IF;
else
(*Time is not running*)
StartTime := t#0s;
TimeDifference := t#0s;
MinutesElapsed := 0;
(*Here we would set RunTimer to TRUE when button is pressed to start time again*)
END_IF;
https://stackoverflow.com/questions/60485520
复制相似问题