位置比例 (POSP)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
Compact GuardLogix
5380、
CompactLogix
5380、
ControlLogix
5580、
GuardLogix
5580 和 ControlLogix 5590 控制器。
位置比例 (POSP) 指令根据用户自定义的循环时间产生宽度与预期位置和实际位置之差成比例的脉冲,来开启或关断触点,从而打开或关闭设备。
可用语言
梯形图
此指令不可用于梯形图逻辑中。
功能块
POSP_FB_avail_v31
结构化文本
POSP(POSP_tag)
操作数
功能块
操作数
类型
格式
说明
POSP 标签
POSITION_PROP
结构
POSP 结构
结构化文本
操作数
类型
格式
说明
block tag
POSITION_PROP
结构
POSP 结构
有关结构化文本中表达式语法的详细信息,请参见
结构化文本语法
部分。
POSITION_PROP 结构
输入参数
数据类型
说明
EnableIn
BOOL
启用输入。如果为假,指令不会执行,也不会更新输出。
默认值为真。
SP
REAL
设置点。即期望的位置值。此值必须使用与“位置”相同的工程单位。
有效值 = 任意浮点值
默认值 = 0.0
Position
REAL
位置反馈。此模拟输入来自设备的位置反馈。
有效值 = 任意浮点值
默认值 = 0.0
OpenedFB
BOOL
已打开反馈。设备完全打开时,该输入将进行指示。输入值为真时,不允许接通打开输出。
默认值为假。
ClosedFB
BOOL
关闭反馈。设备完全关闭时,该输入将进行指示。输入值为真时,不允许接通关闭输出。
默认值为假。
PositionEUMax
REAL
位置和 SP 的最大标定值。
有效值 = 任意浮点值
默认值 = 100.0
PositionEUMin
REAL
位置和 SP 的最小标定值。
有效值 = 任意浮点值
默认值 = 0.0
CycleTime
REAL
输出脉冲的周期(秒)。该值为零时,OpenOut 和 CloseOut 清零。如果该值无效,该指令会假定该值等于零并置位 Status 中的相应位。
有效值 = 任意正浮点值。
默认值 = 0.0
OpenRate
REAL
设备打开速率(%/秒)。该值为零时,OpenOut 清零。如果该值无效,该指令会假定该值等于零并置位 Status 中的相应位。
有效值 = 任意正浮点值。
默认值 = 0.0
CloseRate
REAL
设备关闭速率(%/秒)。该值为零时,CloseOut 清零。如果该值无效,该指令会假定该值等于零并置位 Status 中的相应位。
有效值 = 任意正浮点值。
默认值 = 0.0
MaxOnTime
REAL
打开或关闭脉冲可持续的最长时间(秒)。如果计算出的 OpenTime 或 CloseTime 大于该值,将被限定为该值。如果该值无效,该指令会假定该值等于 CycleTime 并将“状态”中的相应位置位。
有效值 = 0.0 至 CycleTime
默认值 = CycleTime
MinOnTime
REAL
打开或关闭脉冲可持续的最短时间(秒)。如果计算出的 OpenTime 或 CloseTime 小于该值,将设置为零。如果该值无效,该指令会假定该值等于零并置位 Status 中的相应位。
有效值 = 0.0 至 MaxOnTime
默认值 = 0.0
Deadtime
REAL
用来克服设备摩擦力的附加脉冲时间(秒)。当设备改变方向或停止时,死区时间将与 OpenTime 或 CloseTime 值相加。如果该值无效,指令会置位 Status 中的相应位,并设置 Deadtime = 0.0
有效值 = 0.0 至 MaxOnTime
默认值 = 0.0
输出参数
数据类型
说明
EnableOut
BOOL
指示指令是否处于启用状态。如果 PositionPercent 溢出,该输出将清零。
OpenOut
BOOL
该输出产生用于打开设备的脉冲。
CloseOut
BOOL
该输出产生用于关闭设备的脉冲。
PositionPercent
REAL
位置反馈以 Position 范围的百分比形式表示。
SPPercent
REAL
设置点以 Position 范围的百分比形式表示。
OpenTime
REAL
当前循环中 OpenOutput 的脉冲时间(秒)。
CloseTime
REAL
当前周期的 CloseOutput 脉冲时间,单位为秒。
Status
DINT
功能块的状态。
InstructFault (Status.0)
BOOL
该指令检测到以下执行错误之一。这不是轻微或严重的控制器错误。检查其他状态位以确定发生的情况。
CycleTimeInv (Status.1)
BOOL
CycleTime 值无效。指令将使用零值。
OpenRateInv (Status.2)
BOOL
OpenRate 值无效。指令将使用零值。
CloseRateInv (Status.3)
BOOL
CloseRate 值无效。指令将使用零值。
MaxOnTimeInv (Status.4)
BOOL
MaxOnTime 值无效。指令将使用 CycleTime 值。
MinOnTimeInv (Status.5)
BOOL
MinOnTime 值无效。指令将使用零值。
DeadtimeInv (Status.6)
BOOL
Deadtime 值无效。指令将使用零值。
PositionPctInv (Status.7)
BOOL
计算得出的 PositionPercent 值超出范围。
SPPercentInv (Status.8)
BOOL
计算得出的 SPPercent 值超出范围。
PositionSpanInv (Status.9)
BOOL
PositionEUMax = PositionEUMin。
说明
POSP 指令通常从 PID 指令输出接收所需的位置设置点。
标定位置和设置点的值。
每次执行指令时,PositionPercent 和 SPPercent 输出都会更新。如果其中任何一个值超出范围(小于 0% 或大于 100%),则将 Status 中的相应位置位,但不会限制这些值。该指令使用以下公式计算这些值是否处于范围内:
RSL5K_POSP scaling.png
POSP 指令如何使用内部周期计时器
该指令使用 CycleTime 确定重新计算打开和关闭输出脉冲持续时间的频率。内部计时器通过 DeltaT 保持并更新。DeltaT 是自该指令上次执行后所经过的时间。只要内部计时器等于或超过设定的 CycleTime(周期时间到期),便会重新计算打开和关闭输出。
用户可随时更改 CycleTime。
如果 CycleTime = 0,内部计时器清零,OpenOut 和 CloseOut 设置为假。
生成输出脉冲
下图显示了 POSP 指令的三个主要状态。
POSP Producing output pulses
计算打开和关闭脉冲时间
只要 SP > 位置反馈,就会生成 OpenOut 脉冲。此时,该指令将设置 CloseTime = 0,OpenOut 接通的持续时间计算如下:
POSP Caluculating open and close pulse times
如果 OpenTimen-1 < CycleTime,则向 OpenTime 加上 Deadtime。
如果 OpenTime > MaxOnTime,则其值限制为 MaxOnTime。
如果 OpenTime < MinOnTime,则设置 OpenTime = 0。
如果满足以下任一条件,将不生成 OpenOut 脉冲且 OpenTime = 0。
OpenFB 为真或 PositionPercent Greater than or equal to 100
CycleTime = 0
OpenRate = 0
SPPercent 无效
只要 SP < 位置反馈,就会生成 CloseOut 脉冲。此时,该指令会设置 OpenTime = 0,CloseOut 接通的持续时间计算如下:
POSP CloseOut
如果 CloseTimen-1 < CycleTime,则向 CloseTime 加上 Deadtime。
如果 CloseTime > MaxOnTime,则其值限制为 MaxOnTime。
如果 CloseTime < MinOnTime,则将 CloseTime 设置为 0。
如果满足以下任一条件,将不会生成 CloseOut 脉冲,CloseTime 将清零 (0.0)。
ClosedFB 为真或 PositionPercent Less than or equal to 0
CycleTime = 0
CloseRate = 0
SPPercent 无效
如果 SPPercent 等于 PositionPercent,将不生成 OpenOut 和 CloseOut 脉冲。OpenTime 和 CloseTime 都会设置为假。
影响数学状态标志
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参阅 通用属性
执行
功能块
条件/状态
执行的操作
预扫描
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为假
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为真
EnableIn 和 EnableOut 位设置为真。
指令执行。
指令首次运行
不适用
指令首次扫描
OpenTime 和 CloseTime 清零 (0.0)。
后扫描
EnableIn 和 EnableOut 位设置为假。
结构化文本
条件/状态
执行的操作
预扫描
请参见“功能块”表中的“预扫描”行。
正常执行
请参见“功能块”表中的“Tag.EnableIn 为真”行。
后扫描
请参见“功能块”表中的“后扫描”行。
示例
示例 1
本示例中,POSP 指令可根据 PIDE 指令的 CVEU 输出打开或关闭电动阀。阀门实际位置与 Position 输入相连,用于指示阀门是否完全打开或关闭的可选限位开关与 OpenedFB 和 ClosedFB 输入相连。OpenOut 和 CloseOut 输出连接到电动阀的打开触点和关闭触点。
功能块
POSP_FB_ex_v31
结构化文本
FlowController.PV := WaterFlowRate;
PIDE(FlowController);
FlowValve.SP := FlowController.CVEU;
FlowValve.Position := FlowValvePosition;
FlowValve.OpenedFB := FlowValveOpened;
FlowValve.ClosedFB := FlowValveClosed;
POSP(FlowValve);
OpenFlowValveContact := FlowValve.OpenOut;
CloseFlowValveContact := FlowValve.CloseOut;
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal