图3、扫描操作数的信号上升沿示例
图4、扫描操作数的信号上升沿示例 Trace 轨迹
在上述示例中,TagIn3为<操作数 1>,Tag_M为<操作数2>,当操作数“TagIn1”、“TagIn2”的信号状态为1时,当TagIn3信号状态从“0”变为“1”时,即检测到TagIn3的上升沿,此时将操作数“TagOut”置位为“1”一个周期,通过“TagOut”将“TagIn4”置位为“1”。
—|N|—:扫描操作数的信号下降沿
<操作数 1>
—|N|—
<操作数 2>
使用该指令,可以确定<操作数 1>的信号状态是否从“1”变为“0”。该指令将比较 <操作数 1>的当前信号状态与 <操作数 1> 上一次扫描的信号状态, <操作数 1>上一次扫描的信号状态保存在边沿存储器位 <操作数 2> 中。
如果 <操作数 1> 上一次扫描信号状态(<操作数 2>)为“1”,<操作数1>当前信号状态为“0”,则检测到<操作数 1>信号的下降沿。
指令参数如表3所示,指令的使用示例如图5-7所示。
参数 | 声明 | 数据类型 | 存储区 | 说明 |
---|---|---|---|---|
<操作数 1> | Input | Bool | I、Q、M、D、L或常量 | 要扫描的信号 |
<操作数 2> | InOut | Bool | I、Q、M、D、L | 保存上一次查询的信号状态的边沿存储位 |
表3、扫描操作数的信号下降沿指令参数
图5、扫描操作数的信号下降沿示例
图6、扫描操作数的信号下降沿示例
图7、扫描操作数的信号下降沿示例 Trace g轨迹
在上述示例中,TagIn3为<操作数 1>,Tag_M为<操作数2>,当操作数“TagIn1”、“TagIn2””的信号状态为1时,当TagIn3信号状态从“1”变为“0”时,即检测到TagIn3的下降沿,此时将操作数“TagOut”置位为“1”一个周期,通过“TagOut”将“TagIn4”置位为“1”。
—(P)—:在信号上升沿置位操作数
<操作数 1>
—(P)—
<操作数 2>
可以使用该指令在逻辑运算结果 (RLO) 从"0"变为"1"时置位<操作数 1>。该指令将比较 RLO 的当前信号状态与RLO 上一次扫描的信号状态, RLO 上一次扫描的信号状态保存在边沿存储器位 <操作数 2> 中。
如果上一次扫描的 RLO (<操作数 2>)为“0”,当前 RLO信号状态为“1”,则说明出现了一个信号上升沿。检测到信号上升沿时,<操作数 1>的信号状态将在一个程序周期内保持置位为“1”。在其它任何情况下,<操作数 1>的信号状态均为“0”。
指令参数如表4所示,指令的使用示例如图8-10所示。
参数 | 声明 | 数据类型 | 存储区 | 说明 |
---|---|---|---|---|
<操作数 1> | Output | Bool | I、Q、M、D、L | 上升沿置位的操作数 |
<操作数 2> | InOut | Bool | I、Q、M、D、L | 保存上一次查询的信号状态的边沿存储位 |
表4、在信号上升沿置位操作数指令参数
图8、在信号上升沿置为操作数示例
图9、在信号上升沿置为操作数示例
图10、在信号上升沿置为操作数示例 Trace 轨迹
在上述示例中,“TagOut”为<操作数 1>,"Tag_M"为<操作数2>,当操作数“TagIn1”、“TagIn2”、“TagIn3”的逻辑运算结果 (RLO)从“0”变为“1”时,则将操作数“TagOut”置位一个程序周期,通过“TagOut”将“TagIn4”置位为“1”,“TagOut”又变为“0”。在其它任何情况下,操作数“TagOut”的信号状态均为“0”。