定时器,不限个数,格式通用、可以在上位机以整数、实数格式写入数据,不限单位,可以是秒、分钟、小时、天,适用于对计时要求不是很高的场合使用
偶前段时间做了一个项目,由于工艺需要,需要从上位机向PLC写入定时时间,在1分钟到10小时不等,要求其时间可以随意设定,由于知识有限一开始怎么也不能实现该功能,于是偶上网一顿狂搜,呵呵~~~~~发现和我一样的网友不在少数啊,期间下了些资料,但设定时间大都是从毫秒转为秒的,如果我要设定10个小时的话,算出来我都晕了,后来偶费了九牛二虎之力,终于以自己的方式写了出来,后来在实际的使用中进行验证,那效果,一个字,爽啊!现在把程序与大家分享,希望大家多多指正!
OB1
Network 1
如果i0.0有信号输入,则启动定时器,在定时时间到后,置位Q0.0
运行步骤
1 当i0.0有输入信号时,通过i0.0的上升沿置位m50.0,m50.0置位后,转入ob35执行定时器
程序
2 当在ob35中定时器运行结束后,置位m50.1
3 如果此时i0.0仍然有信号存在,则置位Q0.0
A I 0.0
= L 20.0
A L 20.0
FP M 50.2
S M 50.0
A L 20.0
FN M 50.3
= L 20.1
A L 20.1
BLD 102
R M 50.1
A L 20.1
BLD 102
R M 50.0
A L 20.1
JNB _001
L 0.000000e+000
T MD 4
_001: NOP 0
A L 20.0
A M 50.1
= Q 0.0
OB35:
Network1
换算出公用数据,以小时为单位
如果以天为单位,则将1改为24
如果以分钟为单位,将1改为60
如果需要增加定时器,只要单位相同,则MD0可以直接使用不必再进行换算
L 1.000000e+000
L 3.600000e+004
/R
T MD 0
NOP 0
Network 2
定时器运行
A(
A M 50.0
JNB _001
L MD 0
L MD 4
+R
T MD 4
AN OV
SAVE
CLR
_001: A BR
)
A(
L MD 4
L MD 8
>=R
)
S M 50.1
R M 50.0