[西门子] AB PLC | Logix5000控制器状态标志

[复制链接]
查看78257 | 回复0 | 2024-2-27 13:50:15 | 显示全部楼层 |阅读模式


前言:Logix5000控制器没有状态文件,要访问状态信息,需要使用状态标志。另外,这些标志状态可以根据需要,将其用于程序编写,实现一些特定的功能.

状态标志

1. 状态标志关键字有:S:FS、S:N、S:Z、S:V、S:C、S:MINOR.

2. 可通过指令直接访问这些状态标志,它们并非标签,不能被用于别名标签,状态关键字不区分大小写.

3. 状态标志变化速度非常快,在程序中不会显示出标志的状态,也就是说,即使状态标志置位,引用此标志的指令也不会突出显示.

首次扫描标志S:FS

1. 控制器进入运行模式后首次对程序进行扫描.

2. 可以借助首次扫描标志来初始化数据,以便在后续扫描中使用.

3. 如何使用?Logix5000控制器的变量均为保持性变量,即当程序离线时,如果某设备正在运行,其控制输出位将被保持,若下次下载程序时不清除保持的输出位,那么设备将直接启停,这样很危险。这时,我们可以使用S:FS来初始化一些数据,如复位电机启停输出、清除所有故障信息、为定时器赋值等等.



负值标志S:N

1. 当算术或逻辑运算的结果为负值时,控制器将负值标志置位。

2. 可借助此标志来快速测试负值,相比CMP指令,使用S:N的效率更高。

3. 编程举例:液位差=实时液位-设定液位,使用S:N来监视液位差。若S:N未置位,说明液位差不为负,实时液位>=设定液位,启动电机运行;若S:N置位,说明液位差为负,实时液位<设定液位,关停电机.



零标志S:Z

1. 当算术或逻辑运算的结果为零时,控制器将零标志置位.

2. 可借助此标志来快速测试零值.

3. 编程举例:液位差=实时液位-设定液位,使用S:Z来监视液位差。若S:N未置位,说明液位差不为0,实时液位≠设定液位,启动电机运行;若S:Z置位,说明液位差为0,实时液位=设定液位,关停电机.



溢出标志S:V

1. 控制器在以下情况下将溢出标志置位:

(1) 算术运算的结果导致溢出

例如:当一个SINT标签值为 127时,这时加1即可导致溢出.

(2) 目标标签过小,无法容纳数值

• 比目标的最大值大,例如:将35000存储到INT标志中时;

• 比目标的最小值小,例如:将-2200000000存储到DINT标签中时.

2. 可以使用溢出标志来检查运算结果是否超出范围.

3. 每次溢出标志置位时,都会产生一个次故障(类型4,代码4).

4. 编程举例:X_INT=32760,Y_INT=9,Z_INT=X_INT+Y_INT=32769,这时超出INT数据的最大值32767,导致运算结果溢出,使用S:V来监视,当S:V置位时,提示加运算出错.



进位标志S:C

1. 当算术运算结果导致最高有效位进位时,控制器将进位标志置位.

2. 只有针对整型值使用 ADD 和 SUB 指令时,才会影响此标志.

3. 编程举例:X_INT=99,Y_INT=100,Z_INT=X_INT-Y_INT=-1,使用S:C来监视结果,当S:C置位时,说明X_INT<Y_INT.



次故障标志S:MINOR

1. 当控制器发生至少一个轻微程序故障时,控制器将次故障标志置位.

2. 可以使用次故障标签来测试是否发生了轻微故障.

3. 该位仅能由编程故障触发(例如溢出),而不会由电池故障触发,每次扫描开始时都将清除该位.

4. 编程举例:当Z_INT=X_INT+Y_INT>32767时,数据溢出,将产生一个类型4,代码4的次故障,使用S:MINOR来监视.



结束语:综上所述,Logix5000控制器状态标志关键字,不仅可以用于监视某些特定的状态,也可以用于逻辑控制,但要注意,不要滥用,可能会出现一些异常情况.



【AB PLC工作室】

微信公众号ID:abseme



      坚持原创  注重实用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则