西门子S7-1200PLC模块存储卡代理商,西门子S7-1200PLC模块存储卡代理商,西门子PLC模块存储卡,西门子模块存储卡
存储卡 | 6ES79548LC030AA0 | S7-1200 4M 存储卡 |
6ES79548LE030AA0 | S7-1200 12M 存储卡 | |
6ES79548LF030AA0 | S7-1200 24M 存储卡 | |
6ES79548LL030AA0 | S7-1200 256M 存储卡 | |
6ES79548LP030AA0 | S7-1200 2G 存储卡 | |
6ES79548LT030AA0 | S7-1200 32G 存储卡 |
扫描 RLO 的信号下降沿示例 Trace 轨迹
在上述示例中,当操作数“TagIn1”、“TagIn2”、“TagIn3”的逻辑运算结果 (RLO) 即 CLK 输入从“1”变为“0”时,该指令输出 Q 将立即返回状态“1”一个程序周期,此时将操作数“TagOut”置位为一个程序周期,通过“TagOut”将“TagIn4”置位为“1”。
R_TRIG: 检查信号上升沿可以使用该指令在 CLK 从"0"变为"1"时置位输出 Q。该指令将比较 CLK 的当前信号状态与 CLK 上一次扫描的信号状态, CLK 上一次扫描的信号状态保存在背景数据块中。
如果上一次扫描的 CLK (保存在背景数据块)为“0”,当前 CLK 信号状态为“1”,则说明出现了一个信号上升沿。检测到信号上升沿时,输出 Q 信号状态将在一个程序周期内保持置位为“1”。在其它任何情况下,输出 Q 的信号状态均为“0”。
指令参数如表8所示,指令的使用示例如图20-22所示。
EN | Input | Bool | I、Q、M、D、L或常量 | 使能输入 |
ENO | Output | Bool | I、Q、M、D、L | 使能输出 |
CLK | Input | Bool | I、Q、M、D、L或常量 | 当前逻辑运算结果 (RLO) |
Q | Output | Bool | I、Q、M、D、L | 边沿检测的结果 |
表8、检查信号上升沿指令参数
图20、检测信号上升沿示例
图21、检测信号上升沿示例
图22、检测信号上升沿示例 Trace 轨迹
在上述示例中,当操作数“TagIn2”由“0”变为“1”时,当操作数“TagIn1”、“TagIn2”、“TagIn3”的逻辑运算结果 (RLO) 即 CLK 输入从“0”变为“1”时,该指令输出 Q 中生成一个信号上升沿,输出的值将在一个循环周期内为“1“,从图16-3中可以看到此时操作数“TagOut”被置位一个循环周期,通过“TagOut”将“TagIn4”置位为“1”。
F_TRIG: 检查信号下降沿可以使用该指令在 CLK 从"1"变为"0"时置位输出 Q。该指令将比较 CLK 的当前信号状态与 CLK 上一次扫描的信号状态, CLK 上一次扫描的信号状态保存在背景数据块中。
如果上一次扫描的 CLK (保存在背景数据块)为“1”,当前 CLK 信号状态为“0”,则说明出现了一个信号下降沿。检测到信号下降沿时,输出 Q 信号状态将在一个程序周期内保持置位为“1”。在其它任何情况下,输出 Q 的信号状态均为“0”。
指令参数如表9所示,指令的使用示例如图23-25所示。
EN | Input | Bool | I、Q、M、D、L或常量 | 使能输入 |
ENO | Output | Bool | I、Q、M、D、L | 使能输出 |
CLK | Input | Bool | I、Q、M、D、L或常量 | 当前逻辑运算结果 (RLO) |
Q | Output | Bool | I、Q、M、D、L | 边沿检测的结果 |
表9、检查信号下降沿指令参数
图23、检测信号下降沿示例
图24、检测信号下降沿示例
图25、检测信号下降沿示例 Trace 轨迹
在上述示例中,当操作数“TagIn2”由“1”变为“0”时,操作数“TagIn1”、“TagIn2”、“TagIn3”的逻辑运算结果 (RLO) 即 CLK 输入 从“1”变为“0”,该指令输出 Q 中生成一个信号下降沿,输出的值在一个循环周期内为“1”,从图18-3中可以看到此时操作数“TagOut”被置位一个循环周期,通过“TagOut”将“TagIn4”置位为“1”。
使用注意
—|P|—、—|N|—、 —(P)— 、—(N)—、P_TRIG、N_TRIG 均出现边沿存储位,该存储位:
如果使用全局变量( DB 或者 M ),则该全局变量在程序中只能使用一次,即使一个变量判断多次检测边沿也是一样,每次检测边沿使用不同全局变量。
如果使用局部变量,则只能使用 FC 的 InOut,FB 的 InOut、Static ,不能使用 Temp。并且每个边沿位使用不同的局部变量。
R_TRIG、F_TRIG指令:因为边沿存储位位于背景数据块中,所以背景数据块、多重背景等不能重复使用,也就是每次使用都是一个新的背景数据块或者多重背景。
常见问题
为什么进行边沿检测,得不到正确的输出?
答:边沿检测不能正常输出,原因有以下几种可能:
1、输入必须出现跳变,上升沿是从"0"变为"1",下降沿是从"1"变为"0"
对于—|P|—、—|N|—,检测的是触点上面操作数的输入变化,对于 —(P)— 、—(N)—,检测的是线圈前的逻辑计算结果、对于 P_TRIG、N_TRIG、R_TRIG、F_TRIG 检测是的 CLK 输入。
2、—|P|—、—|N|—、 —(P)— 、—(N)—、P_TRIG、N_TRIG 均出现边沿存储位,该存储位:
3、R_TRIG、F_TRIG指令:背景数据块、多重背景不能重复使用,也就是每次使用都是一个新的背景数据块或者多重背景。
4、边沿输出只有一个扫描周期置位,监视程序是看不到的,需要连接一个置位指令或者加法指令进行捕捉。