土木在线论坛 \ 电气工程 \ 工业自动化 \ 子程序实现的定时器

子程序实现的定时器

发布于:2007-10-09 22:41:09 来自:电气工程/工业自动化 [复制转发]
OMRON的CPM1,2A系列PLC的定时器数量是有限的,尽管一般都够用,但如果能用子程序宏调用的方法实现定时,这无疑使我们就拥有了更灵活更多的软定时器,推广这种方法也可以用到其它PLC上
’ 22202:定时器条件取反(位 0/1),通过200传入子程序0, 25315防止一上电定时器条件就ON从而无法对201设置预置值,DM0:定时器预置值(BCD码 0-9999),通过201传入子程序0
LD 222.02
OR P_First_Cycle
MOV(21) DM0 201
OUTNOT 200.00
’ 使用定时器须每个扫描周期调用子程序0,输入200-203对应232-235/输出204-207对应236-239以上通道不得它用 DM1:定时器当前值,通过205从子程序0传出; 22202:定时器状态位,通过204从子程序0传出
LD P_On
MOV(21) DM1 202
MCRO(99) 0 200 204
MOV(21) 205 DM1
AND 204.00
OUT 222.02
’ 检验22202是否象普通定时器的状态位接点那样动作.1007会以DM0设定的时间持续ON,OFF
LD 222.02
ANDNOT 10.07
LD 222.02
AND 10.07
KEEP(11) 10.07
’ 自复位的定时器0,其运行机制和上面由DM0,DM1,22202组成的定时器运行机制相似,DM10和DM0对应,以字访问的TIM0和DM1对应,以位访问的TIM0和22202对应
LDNOT 222.12
TIMH(15) 000 DM10
AND TIM000
OUT 222.12
’ 1006的动作规律和1007的动作规律可比拟对照
LD 222.12
ANDNOT 10.06
LD 222.12
AND 10.06
KEEP(11) 10.06
’ 子程序0开始了
SBN(92) 0
’ 定时条件不满足定时器当前值被置为预置值
LDNOT 232.00
MOV(21) 233 237
’ 定时条件满足每扫描一次,定时器当前值就减去当前扫描时间,如果减至<0时接通定时器到达位,并清0定时器当前值
LD 232.00
CLC(41)
SUB(31) 234 P_Cycle_Time_Value 237
AND P_CY
OUT 236.01
MOV(21) #0 237
’ 如果偶然出现定时器当前值被减至0,此处置位定时器到达位
LD P_On
CMP(20) 237 #0
AND P_EQ
OUT 236.02
’ 定时到达后从23600输出,并经子程序0调用输出字传出定时器运行结果
LD 236.01
OR 236.02
AND 232.00
OUT 236.00
’ 子程序0结束了
RET(93)
END(01)

以上是助记符代码程序,已标有注释
这个家伙什么也没有留下。。。

工业自动化

返回版块

17.92 万条内容 · 346 人订阅

猜你喜欢

阅读下一篇

东南大学PLC视频,那里可以下完整的?

在论坛里搜到的东南大学PLC视频都是一集分两次下,有没有什么网站,可以40集一次下完?

回帖成功

经验值 +10