离散 2 态设备 (D2SD)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
Compact GuardLogix
5380、
CompactLogix
5380、
ControlLogix
5580、
GuardLogix
5580 和 ControlLogix 5590 控制器。
离散 2 态设备 (D2SD) 指令控制仅有两个可能状态(如开/关或断开/闭合)的离散设备。
可用语言
梯形图
此指令不可用于梯形图逻辑中。
功能块
D2SD_FB_avail_v31
结构化文本
D2SD(D2SD_tag)
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换
结构化文本
操作数
类型
格式
说明
D2SD tag
DISCRETE_2STATE
结构
D2SD 结构
有关结构化文本中表达式语法的详细信息,请参见
结构化文本语法
部分。
功能块
操作数
类型
格式
说明
D2SD tag
DISCRETE_2STATE
结构
D2SD 结构
DISCRETE_2STATE 结构
输入参数
数据类型
说明
EnableIn
BOOL
启用输入。如果为假,指令不会执行,也不会更新输出。
默认值为真。
ProgCommand
BOOL
用于确定设备处于程序控制模式时的 CommandStatus。为真时,指示设备受控进入状态 1;为假时,指示设备受控进入状态 0。
默认值为假。
Oper0Req
BOOL
操作员状态 0 请求。设备处于操作员控制模式时,通过操作员界面置位,将设备置为状态 0。
默认值为假。
Oper1Req
BOOL
操作员状态 1 请求。设备处于操作员控制模式时,通过操作员界面置位,将设备置为状态 1。
默认值为假。
State0Perm
BOOL
状态 0 选通。除非在手控或超控模式下,否则必须将该输入置位才能使设备进入状态 0。该输入对于已经处于状态 0 的设备无效。
默认值为真。
State1Perm
BOOL
状态 1 选通。除非在手控或超控模式下,否则必须将该输入置位才能使设备进入状态 1。该输入对于已经处于状态 1 的设备无效。
默认值为真。
FB0
BOOL
D2SD 指令可用的第一个反馈输入。
默认值为假。
FB1
BOOL
D2SD 指令可用的第二个反馈输入。
默认值为假。
HandFB
BOOL
手控反馈输入。该输入来自现场手动/关/自动站,用于显示所请求的现场设备状态。为真时,请求现场设备进入状态 1;为假时,请求现场设备进入状态 0。
默认值为假。
FaultTime
REAL
故障时间值。以秒为单位配置时间值以使设备达到最新给定的状态。设置 FaultTime = 0 可禁用故障计时器。如果该值无效,该指令会假定该值等于零并置位 Status 中的相应位。
有效值 = 任何 Greater than or equal to 0.0 的浮点数
默认值 = 0.0
FaultAlarmLatch
BOOL
故障报警锁定输入。此参数和 FaultAlarm 同时为真时,将锁定 FaultAlarm。要启用 FaultAlarm,将 FaultAlmUnlatch 设置为真或将 FaultAlarmLatch 设置为假。
默认值为假。
FaultAlmUnLatch
BOOL
故障报警启用输入。在 FaultAlarmLatch 置位时设置 FaultAlmUnLatch 可启用 FaultAlarm。指令将该输入设置为假。
默认值为假。
OverrideOnInit
BOOL
初始化时超控请求。如果该位为真,则在指令初次扫描期间,2 态设备进入操作员控制模式,Override 设置为真,Hand 设置为假。如果 ProgHandReq 为真,则 Override 设置为假,Hand 设置为真。
默认值为假。
OverrideOnFault
BOOL
故障时超控请求。如果希望设备在发生故障报警时转为超控模式并进入超控状态,将 OverrideOnFault 设置为真。消除故障报警后,2 态设备进入操作员控制模式。
默认值为假。
OutReverse
BOOL
反向默认输出状态。当受控进入状态 0 时,Out 的默认状态设置为假,当受控进入状态 1 时设置为真。若 OutReverse 为真,则在受控进入状态 0 时,Out 设置为真,在受控进入状态 1 时,Out 设置为假。
默认值为假。
OverrideState
BOOL
超控状态输入。配置此值来指定设备处于超控模式时的设备状态。真表示设备应进入状态 1;假表示设备应进入状态 0。
默认值为假。
FB0State0
BOOL
反馈 0 状态 0 输入。配置设备处于状态 0 时 FB0 的状态。
默认值为假。
FB0State1
BOOL
反馈 0 状态 1 输入。配置设备处于状态 1 时 FB0 的状态。
默认值为假。
FB1State0
BOOL
反馈 1 状态 0 输入。配置设备处于状态 0 时 FB1 的状态。
默认值为假。
FB1State1
BOOL
反馈 1 状态 1 输入。配置设备处于状态 1 时 FB1 的状态。
默认值为假。
ProgProgReq
BOOL
程序发出的程序控制请求。由用户程序设置为真可请求程序控制模式。如果 ProgOperReq 为真,则忽略该值。若此参数保持为真,并且 ProgOperReq 保持为假,会将指令锁定在程序控制模式。
默认值为假。
ProgOperReq
BOOL
程序发出的操作员控制请求。由用户程序设置为真可请求操作员控制模式。若将此参数保持为真,会将该指令锁定在操作员控制模式。
默认值为假。
ProgOverrideReq
BOOL
程序超控模式请求。由用户程序设置为真可请求进入超控模式。如果 ProgHandReq 为真,则忽略该值。
默认值为假。
ProgHandReq
BOOL
程序手控模式请求。由用户程序设置为真可请求进入手控模式。
默认值为假。
OperProgReq
BOOL
操作员发出的程序控制请求。由操作员界面设置为真以请求程序控制模式。指令将该输入设置为假。
默认值为假。
OperOperReq
BOOL
操作员发出的操作员控制请求。由操作员界面设置为真可请求操作员控制模式。指令将该输入设置为假。
默认值为假。
ProgValueReset
BOOL
将程序控制值复位。该参数为真时,每次执行指令时,所有程序请求输入都将设置为假。
默认值为假。
输出参数
数据类型
说明
EnableOut
BOOL
指示指令是否处于启用状态。
Out
BOOL
2 态指令的输出。
Device0State
BOOL
设备状态 0 输出。指示设备受控进入状态 0 且反馈表明设备确实处于状态 0 时设置为真。
Device1State
BOOL
设备状态 1 输出。指示设备受控进入状态 1 且反馈表明设备确实处于状态 1 时设置为真。
CommandStatus
BOOL
命令状态输出。当设备受控进入状态 1 时设置为真,受控进入状态 0 时清零。
FaultAlarm
BOOL
故障报警输出。如果指示设备受控进入新状态,但经过 FaultTime 后反馈没有表明设备确实达到新状态,则此参数设置为真。此外,如果在达到给定状态后,反馈突然表明设备不再处于给定状态,该参数也会设置为真。
ModeAlarm
BOOL
模式报警输出。如果设备处于操作员控制,但程序命令切换为与操作员指示的当前状态不同的状态,则此参数设置为真。此报警旨在提醒已将设备保留为操作员控制模式。
ProgOper
BOOL
程序/操作员控制指示器。在程序控制模式下为真。在操作员控制模式下为假。
Override
BOOL
超控模式。当设备处于超控模式时为真。
Hand
BOOL
手控模式。当设备处于手控模式时为真。
Status
DINT
功能块的状态。
InstructFault (Status.0)
BOOL
该指令检测到以下执行错误之一。这不是轻微或严重的控制器错误。检查其他状态位以确定发生的情况。
FaultTimeInv (Status.1)
BOOL
FaultTime 值无效。指令将设置 FaultTime = 0。
OperReqInv (Status.2)
BOOL
两个操作员状态请求位均为真。
说明
D2SD 指令控制仅有两个可能状态(如开/关或断开/闭合)的离散设备。具备这种特性的典型离散设备包括电机、泵和电磁阀。
监视 D2SD 指令
D2SD 指令有相应的操作员面板。
影响数学状态标志
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参阅 通用属性
执行
功能块
条件/状态
执行的操作
预扫描
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为假
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为真
EnableIn 和 EnableOut 位设置为真。
指令执行。
指令首次运行
将 ProgOper 设置为操作员模式。将 CommandStatus 设置为假。
指令首次扫描
将 EnableOut 设置为真。
ModeAlarm 和操作员请求输入设置为假,
如果 ProgValueReset 为真,则将所有程序请求输入清零。
当 OverrideOnInit 为真时,ProgOper 设置为假(操作员控制)。
如果 ProgHandReq 清零且 OverrideOnInit 置位,则将 Hand 清零,并将 Override 置位(超控模式)。
如果 ProgHandReq 置位,则将 Hand 置位,并将 Override 清零(手控模式)。
后扫描
EnableIn 和 EnableOut 位设置为假。
结构化文本
在结构化文本中,EnableIn 在普通扫描期间始终为真。因此,如果指令处于由逻辑激活的控制路径中,指令将会执行。
条件/状态
执行的操作
预扫描
请参见“功能块”表中的“预扫描”行。
正常执行
请参见“功能块”表中的“Tag.EnableIn 为真”行。
后扫描
请参见“功能块”表中的“后扫描”行。
示例
SD 指令通常用于控制开/关或打开/关闭设备,如泵或电磁阀。在此示例中,D2SD 指令控制一个电磁阀,从而控制将玉米糖浆加入批量槽的过程。只要 D2SD 指令处于程序控制模式,阀门便会在 AddSyrup 输入置位时打开。操作员还可以在必要时通过操作员方式控制阀门的打开或关闭。本例中的电磁阀采用了限位开关来指示阀门完全关闭或打开的时刻。这些开关与 FB0 和 FB1 反馈输入相连。这样,如果电磁阀未在组态的 FaultTime 内达到给定状态,D2SD 指令便会生成 FaultAlarm。
功能块
D2SD_FB_ex_v31
结构化文本
SyrupController.ProgCommand := AddSyrup;
SyrupController.FB0 := SyrupValveClosedLimitSwitch;
SyrupController.FB1 := SyrupValveOpenedLimitSwitch;
D2SD(SyrupController);
SyrupValve := SyrupController.Out;
在程序控制与操作员控制之间切换
下图显示了 D2SD 指令如何在程序控制与操作员控制之间进行切换。
D2SD_program_operator control
(1) 当 ProgOperReq 为真时,指令保持在操作员控制模式。
程序控制模式下的给定状态
下图说明了 D2SD 指令在程序控制模式下的工作情况。
D2SD_program_operator control 2
操作员控制模式下的给定状态
下图说明了 D2SD 指令在操作员控制模式下的工作情况。
D2SD_program_operator control 3
如果 Oper0Req 和 Oper1Req 均为真:
  • 指令将 Status 中的相应位设置为真
  • 如果 Override 和 Hand 为假,则指令保持前一状态。
每次执行指令后,指令都会执行以下操作:
  • 将所有操作员请求输入设置为假
  • 如果 ProgValueReset 为真,则将所有的程序请求输入设置为假。
手控模式或超控模式
下表说明 D2SD 指令确定以手控模式还是超控模式工作的方式。
ProgHandReq
ProgOverrideReq
FaultAlarm 和 OverrideOnFault
说明
真/假
真/假
手控模式
Hand 设置为 true
Override 清除为 false
真/假
超控模式
Hand 清除为 false
Override 设置为 true
真/假
超控模式
Hand 清除为 false
Override 设置为 true
指令处于超控模式时,CommandStatus = OverrideState。
指令处于手控模式时,CommandStatus = HandFB。
输出状态
D2SD 输出状态取决于命令状态的状态。
CommandStatus
输出状态
如果 OutReverse 为 false,则 Out 清除为 false
如果 OutReverse 为 true,则 Out 设置为 true
如果 OutReverse 为 false,则 Out 设置为 true
如果 OutReverse 为 true,则 Out 清除为 false
false 并且
FB0 = FB0State0 且
FB1 = FB1State0
故障计时器停止并清零
Device0State 设置为真
true 并且
FB0 = FB0State1 且
FB1 = FB1State1
故障计时器停止并清零
Device1State 设置为真
故障报警条件
D2SD 指令检查以下故障报警条件。
故障报警条件
的原因
规则
设备状态受控进行更改,但反馈并未指示在 FaultTime 内确实达到目标状态
当 CommandStatus
n
Not equal to sign CommandStatus
n-1
时启动故障计时器
当故障计时器完成且 FaultTime > 0.0 时,将 FaultAlarm 置位
设备在未受到控制的情况下意外退出某个状态(根据反馈)
当故障计时器未计时且满足以下任一条件时,将 FaultAlarm 设置为真:
CommandStatus 为假且 Device0State 为假
CommandStatus 为真且 Device1State 为假
满足以下任一条件时,FaultAlarm 设置为假:
  • CommandStatus 为假且 Device0State 为真
  • CommandStatus 为真且 Device1State 为真
  • FaultTime Less than or equal to 0
当 FaultAlarmLatch 为真时,无法将 FaultAlarm 设置为假,除非 FaultAlmUnlatch 为真且不存在任何故障。
模式报警条件
模式报警可提醒操作员已将设备置于操作员控制模式。仅当程序处于操作员控制下,尝试将设备状态从操作员的给定状态更改为其他状态时,模式报警才会启用。如果操作员将设备置于操作员控制模式并更改状态,报警不会启用。D2SD 指令将按照以下规则检查模式报警条件。
ModeAlarm
条件
ProgCommand
n
Not equal to sign ProgCommandn-1 并且
ProgCommand
n
Not equal to sign CommandStatus
ProgCommand = CommandStatus 或者
设备处于超控、手控或程序控制模式
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal