前言:
当前咱们对“定时器代码c语言”可能比较着重,你们都想要学习一些“定时器代码c语言”的相关文章。那么小编在网络上汇集了一些有关“定时器代码c语言””的相关知识,希望朋友们能喜欢,你们快快来了解一下吧!S_PULSE: 分配脉冲定时器参数并启动
说明
当输入 S 的逻辑运算结果 (RLO) 的信号状态从“0”变为“1”(信号上升沿)时,指令“分配脉冲定时器参数并启动”将启动预设的定时器。当输入 S 的信号状态为“1”后,该定时器在经过预设的持续时间 (TV) 后计时结束。如果输入 S 的信号状态在已设定的持续时间计时结束之前变为“0”,则定时器停止。这种情况下,输出 Q 的信号状态为“0”。
持续时间由定时器值和时基构成,且在参数 TV 处设定。该指令启动后,预设的时间值开始递减计数,直至为零。时基表示定时器值更改的时间段。当前定时器值在输出 BI 处以 BI 编码格式输出,在输出 BCD 处以 BCD 编码格式输出。
如果定时器正在计时且输入端 R 的信号状态变为 “1”,则当前时间值和时间基准也将设置为 0。如果定时器未在计时,则输入 R 的信号状态为“1”不会有任何作用。
“分配脉冲定时器参数并启动”指令需要对边沿评估进行前导逻辑运算,可以放在程序段中或程序段的结尾。
每次访问时都会更新指令数据。因此,在循环开始和循环结束时查询数据可能会返回不同的值。
说明
在时间单元,操作系统通过时基指定的间隔,以一个时间单位缩短时间值,直到该值为“0”。递减操作与用户程序不同步执行。因此,定时器中的值比预期的时基最多短一个时间间隔值。
有关如何构造一个时间单元的示例,请参见“另请参见“L:加载定时器值”。
参数
下表列出了指令“分配脉冲定时器参数并启动”的参数:
参数
声明
数据类型
存储区
说明
<定时器>
InOut/Input
TIMER
T
指令的时间
定时器的数量取决于 CPU。
S
Input
BOOL
I、Q、M、D、L 或常量
启动输入
TV
Input
S5TIME、WORD
I、Q、M、D、L 或常量
预设时间值
R
Input
BOOL
I、Q、M、T、C、D、L、P 或常量
复位输入
BI
Output
WORD
I、Q、M、D、L、P
当前时间值(BI 编码)
BCD
Output
WORD
I、Q、M、D、L、P
当前时间值(BCD 格式)
Q
Output
BOOL
I、Q、M、D、L
定时器的状态
有关有效数据类型的更多信息,请参见“另请参见”。
脉冲时序图
下图显示了指令“分配脉冲定时器参数并启动”的脉冲图:
示例
以下示例说明了该指令的工作原理:
如果操作数“TagIn_1”的信号状态从“0”变为“1”,将启动“Timer_1”定时器。只要操作数“TagIn_1”具有信号状态“1”,定时器便会在等于操作数“TagIn_Number”的定时器值时结束计时。如果在定时器计时结束前操作数“TagIn_1”的信号状态从“1”变为“0”,则定时器“Timer_1”将停止。在这种情况下操作数“TagOut”将被复位为“0”。
只要定时器正在计时且操作数“TagIn_1”的信号状态为“1”,则操作数“TagOut”的信号状态便为“1”。定时器计时结束或复位后,操作数“TagOut”将复位为“0”。
---( SP ): 启动脉冲定时器
说明
逻辑运算结果 (RLO) 中检测到信号从“0”到“1”的变化(信号上升沿)时,“启动脉冲定时器”指令将启动已设定的定时器。只要 RLO 的信号状态为“1”,定时器便会运行指定的一段时间。只要定时器正在运行,对定时器状态是否为“1”的查询将返回信号状态“1”。在该定时器值计时结束前,如果 RLO 中的信号状态从“1”变为“0”,则定时器将停止。在这种情况下,查询定时器状态是否为“1”时会返回信号状态“0”。
持续时间在内部由定时器值和时基构成。指令启动后,预设时间值开始递减计数,直至为零。时基表示定时器值更改的时间段。
在操作数占位符 <操作数 1>(持续时间)中指定倒计时的时间,在指令上方的 <操作数 2> 中指定将要开始的时间。
“启动脉冲定时器”指令需要前导逻辑运算进行边沿评估,且只能放在程序段的右侧。
说明
在时间单元,操作系统通过时基指定的间隔,以一个时间单位缩短时间值,直到该值为“0”。递减操作与用户程序不同步执行。因此,定时器中的值比预期的时基最多短一个时间间隔值。
有关如何构造一个时间单元的示例,请参见“另请参见“L:加载定时器值”。
参数
下表列出了“启动脉冲定时器”指令的参数:
参数
声明
数据类型
存储区
说明
<操作数 1>
Input
S5TIME、WORD
I、Q、M、D、L 或常数
定时器计时结束的持续时间。
<操作数 2>
InOut/Input
TIMER
T
已启动的定时器。
定时器的数量取决于 CPU。
有关有效数据类型的更多信息,请参见“另请参见”。
示例
以下示例说明了该指令的工作原理:
操作数“TagIn_1”的信号状态从“0”变为“1”时,“Timer_1”启动。只要操作数“TagIn_1”的信号状态为“1”,定时器就运行操作数“TagIn_Number”预设的时间值。如果在定时器计时结束前操作数“TagIn_1”的信号状态从“1”变为“0”,则定时器将停止。只要定时器正在运行,输出“TagOut”的信号状态就为“1”。操作数“TagIn_2”的信号状态从“0”变为“1”时会复位定时器,这会使定时器停止并将当前定时器值置位为“0”。
下图为本示例的时序图:
标签: #定时器代码c语言