登录
首页 PLC论坛 施耐德电气PLC
回帖 发帖
正文

主题:如何在M340里面实现定时器保持功能

点击:1470 回复:2

请问施耐德M340如何实现定时器保持功能,软件上只有TON,TOF和TP,如果要断开信号保持计时时间怎么实现,谢谢各位大佬!
21-10-29 14:30

引用 IanGoh 在 2021/10/29 14:30:12 发言【内容省略】

你可以自己构建一个带保持的定时器,例如:
STEP1:定义新定时器的输入输出,因为需要带保持,因此必须是FB,且保持定时器当前值的变量都是静态变量。
附件 Snap1.jpg
STEP2:编写类似的程序:
IF IN=TRUE AND RESET=FALSE THEN
 TON_1(IN:=NOT TON_1.Q , PT:=T#100MS);
 IF timerFlag=FALSE THEN
   V001:=TIME_TO_UDINT(PT);
timerFlag:=TRUE;
 END_IF;
 IF TON_1.Q THEN
   IF (V001<>UDINT#0) THEN
     V001:=V001-UDINT#100;
     IF V001<=UDINT#0 THEN
   Q:=TRUE;
 END_IF;
     V002:=V002+UDINT#100;
     EV:=UDINT_TO_TIME(V002);
   END_IF;
 END_IF;
END_IF;
IF RESET=TRUE THEN
 V001:=UDINT#0;
 V002:=UDINT#0;
 EV:=UDINT_TO_TIME(V002);
 Q:=FALSE;
 timerFlag:=FALSE;
END_IF;
对应于施耐德M340,我个人认为,除了少数的变量转换函数有差别外,没有更多的差别了,你可以对照着写一个。
HAVE FUN!
21-10-30 10:13
虽然看不懂还是谢谢你,我只会LD,最后我用的计数器配合%S6实现的,自己做了一个FBD搞定了,TIME类型感觉好大,我都是用int定义时分秒,年月日用不到了
21-11-11 14:58

工控新闻

更多新闻资讯