概述
TOF(断开延时定时器):
梯形图如上所示:
介绍:The off-delay timer can be used to delay setting an output false, for fixed period after input goes false.
(关闭延迟计时器可用于延迟设置输出错误,在输入错误后的固定时间内)
(BOOL:IN, TIME:PT) => (BOOL:Q, TIME:ET)
1.当IN为0时,输出Q为0;
2.当IN由0变为1时,输出Q由于0变为1,并开始保持Q输出为1;
3.当IN由1变为0时,捕获到下降沿,开始延迟关闭,输出Q保持为1,直到延迟关闭时间到,输出Q才变为0;ET在这个时候激活,用于显示延时还剩余的循环次数(PT次数慢慢到0,然后Q=0)。
TON(开启延时定时器)
若上,是TOF与TON两个模块简单的测试,由于TON从名字就可以看出与TOF的对应关系,这里就不再重复。该梯形图的实现效果是:
1.当button按下,lamp点亮,当button抬起,等到2s后,lamp熄灭。
2.当button1按下,lamp1等待2s后点亮,当button1松开,lamp1熄灭。
SR(置位优先触发器)与RS(复位优先触发器)
SR:The SR bistable is a latch where the Set dominates.(SR是一个置位占主导地位的触发器)
RS:The RS bistable is a latch where the Reset dominates.(SR是一个复位占主导地位的触发器)
直接看源码简化后的比较,真的很巧妙啊:
SR: Q1 = (S1 || (!R && Q1);
RS: Q1 = !R1 && (S || Q1)
SR:
S1 = 0, R = 0, Q1不变
S1 = 0, R = 1, Q1 = 0
S1 = 1, R= 0, Q1 = 1
S1 = 1, R= 1, Q1 = 1
RS:
S = 0, R1 = 0, Q1不变
S = 1, R1 = 0, Q1 = 1
S = 0, R1 = 1, Q1 = 0
S = 1, R1 = 1, Q1 = 0
TP(生成脉冲定时器)
The pulse timer can be used to generate output pulses of a given time duration.(脉冲定时器可以用来产生给定时间段的输出脉冲。)
实现代码比较长,这里一句话概括其效果:
当给IN一个上升沿,Q直接点亮PT设置的时间,期间IN产生其他上升沿会忽略。
R_TRIG(上升沿触发器)与F_TRIG(下降沿触发器)
R : The output produces a single pulse when a rising edge is detected.当检测到上升沿生成一个脉冲
F: The output produces a single pulse when a falling edge is detected.当检测到下降沿生成一个脉冲
#R_TRIG:
Q = CLK && !M
M = CLK
#F_TRIG:
Q = !CLK && !M
M = !CLK
注意:M是变量,默认值为0(这个值有疑问,你可以思考一下)
由伪代码可以得到其效果:
R_TRIG:当CLK为0时,Q为0,M=0;当CLK第一次为1(上升沿),Q为1,M=1;当CLK继续为1,Q为0,M=1;接着就循环了。
F_TRIG:当CLK为1时,Q为0,M=0;当CLK第一次为0(下降沿),Q为1,M=1;当CLK继续为0,Q为0,M=1;
SEMA(信号量)
The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources.
信号量提供了一种允许软件元素互斥访问某些资源的机制
init:Q_INTERNAL:FALSE
Q_INTERNAL = CLAIM || (Q_INTERNAL && !RELEASE)
BUSY = Q_INTERNAL
该功能块的使用:
CLAIM为资源调用请求,RELEASE为资源释放,输出为BUSY。该功能块获取到CLAIM为1,则设置BUSY为true,表示资源进入了繁忙状态,如果不将输入参数RELEASE赋值为1,则会一直处于繁忙状态,无论是否再次获取资源调用请求。将RELEASE设置为1,会将BUSY重新设置为0,才能获取下一个资源调用请求。
CTU(自加计数器)与 CTD(自减计数器)
自加计数器:
当计数到达最大值时,顺计时器给出信号。
这里代码比较简单,CU为输入信号, 每当信号由低变成变高,CV加一,直到CV==PV时,Q输出为TRUE,R为复位。
自减计数器:
CD为输入信号,LD为初始化信号,当LD为 TRUE时复位:将CV赋值为PV的值;
PV为输入的目标值,CV初始化时赋值为PV;
然后设置LD为False,每次CD进入一个上升沿CV减一,直到CV为0,Q输出为TRUE。再次设置LD为True,CV再次重新计数。
CTUD(顺逆计数器)
使用方法:
为上面自加与自减的合体。当R有一个信号,则CV会被初始化为0,当LD有信号,CV=PV,输出分别为QU,QD。
当CU上升沿触发,则CV加一,当CD为上升沿触发则CV减一。
如果CV为0,则QD为TRUE,如果CV为PV,则QU为TRUE。
CD_T,CU_T是检测自加与自减上升沿的反馈,例如CD_T.Q为1时表示CD为上升沿触发。
最后
以上就是落后网络为你收集整理的OPENPLC中的标准功能类型(PLC编程基础类型)分析的全部内容,希望文章能够帮你解决OPENPLC中的标准功能类型(PLC编程基础类型)分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复