温度控制器功能块 FB_CTRL_TempController 具有多个输入和输出,具体描述如下。所有控制器的参数均通过结构体传递给功能块。
接口
VAR_INPUT
名称 | 类型 | 初始化 | 描述 |
---|---|---|---|
eCtrlMode | ControlToolBox.E_CtrlMode | 操作模式: passive, activ, check | |
bSelSetpoint | BOOL | FALSE = fW1, TRUE = fW2 | |
fW1 | LREAL | 设定点 | |
fW2 | LREAL | 备选设定点,一般低于fW1 | |
fX | LREAL | 实际值 | |
fYManual | LREAL | 手动模式下的控制值 | |
bOpenThermocouple | BOOL | TRUE: 热电偶断线,硬件反馈信号 | |
bReverseThermocouple | BOOL | TRUE: 热电偶接线错误 | |
bBackVoltage | BOOL | TRUE: 热电偶接线错误 | |
bLeakage | BOOL | TRUE: 加热单元检测到漏电流,硬件反馈信号 | |
bShortCircuit | BOOL | TRUE: 加热单元检测到短路,硬件反馈信号 | |
bOpenCircuit | BOOL | TRUE: 加热单元检测到断路,硬件反馈信号 | |
sParaControllerExternal | ST_CTRL_ParaController | 外部控制器参数 |
VAR_IN_OUT
名称 | 类型 | 初始化 | 描述 |
---|---|---|---|
sControllerParameter | ST_CTRL_TempCtrlParameter | 一般参数(采样时间等) |
VAR_OUTPUT
名称 | 类型 | 初始化 | 描述 |
---|---|---|---|
fYAnalog | LREAL | 模拟控制值 | |
bYPWMPos | BOOL | 脉宽调制,加热模式 | |
bYPWMNeg | BOOL | 脉宽调制,冷却模式 | |
bYDigPos | BOOL | 三点式:数字控制值,正向 | |
bYDigNeg | BOOL | 三点式:数字控制值,负向 | |
dwAlarm | DWORD | 最多可以监控32个独立报警状态 | |
fMaxOverShoot | LREAL | 最大超调量,反映控制质量 | |
tStartUpTime | TIME | 启动时间 | |
eCtrlState | ControlToolBox.E_CtrlState | ControlToolBox.E_CtrlState.eCTRL_STATE_IDLE | 控制器状态 |
sParaControllerInternal | ST_CTRL_ParaController | 内部控制器参数集 | |
bError | BOOL | 错误状态 | |
eErrorId | ControlToolBox.E_CtrlErrorCode | 错误标识码 | |
fYP | LREAL | 0.0 | 比例环节控制值 |
fYI | LREAL | 0.0 | 积分环节控制值 |
fYD | LREAL | 0.0 | 微分环节控制值 |
fTempVelo | LREAL | 温度变化速率 |
使用要求
开发环境 | 目标平台 | 需要包含的PLC 库 |
---|---|---|
MetaFacture | PC | ZKSDTempControl |
ST_CTRL_TempCtrlParameter
名称 | 类型 | 初始化 | 描述 |
---|---|---|---|
iMode | E_CTRL_ControlMode | 1=加热模式, 2=冷却模式, 3=加热和冷却模式 | |
iReactionOnFailure | E_CTRL_ReactionOnFailure | 0=控制器关闭, 1=手动操作, 2=yMin, 3=yMax | |
bSelCtrlParameterSet | BOOL | FALSE = 内部参数, TRUE = 外部参数 | |
dwAlarmSupp | DWORD | 警报抑制 | |
tCtrlCycleTime | TIME | 控制器采样时间 | |
tTaskCycleTime | TIME | plc任务周期 | |
iTuningMode | E_CTRL_TuneMode | 仅加热、仅冷却、先加热后冷却或相反 | |
tTuneStabilisation | TIME | TIME#20s0ms | 等待系统稳定 |
fEndTunePercentHeating | LREAL | 80.0 | 当 X > 0.8*W 时,切换到闭环控制 |
fYTuneHeating | LREAL | 调整过程中施加阶跃信号 | |
fYStableHeating | LREAL | 调整操作 | |
fEndTunePercentCooling | LREAL | 20.0 | 当 X < 0.2*W 时,切换到闭环控制 |
fYTuneCooling | LREAL | 调整过程中施加阶跃信号 | |
fYStableCooling | LREAL | 调整操作 | |
fScalingFactor | LREAL | 1.0 | KP 加热/冷却的比例系数缩放因子 |
fWMin | LREAL | 设定值下限 | |
fWMax | LREAL | 设定值上限 | |
bEnableSoftStart | BOOL | FALSE = 无软启动, TRUE = 软启动 | |
bEnableRamping | BOOL | FALSE = 无斜坡调整, TRUE = 斜坡调整 | |
fWStartUp | LREAL | 软启动平台设定值 | |
tStartUp | TIME | 软启动等待时间 | |
bStartUpRamping | BOOL | 在启动阶段启用斜坡调整 | |
fWStartUpVeloPos | LREAL | 启动阶段设定值增加的最大斜率 | |
fWStartUpVeloNeg | LREAL | 启动阶段设定值减少的最大斜率 | |
fWVeloPos | LREAL | 设定值增加的最大斜率 | |
fWVeloNeg | LREAL | 设定值减少的最大斜率 | |
bFilter | BOOL | 启用滤波器 | |
tFilter | TIME | 实际值滤波器的时间常数 | |
bDeadband | BOOL | 死区参数 | |
fEDeadband | LREAL | 死区正值(K) | |
bDeadbandOnInput | BOOL | 默认情况下,死区作用于输入;如果为FALSE,死区作用于输出 | |
bMinimizeOvershoot | BOOL | 超调最小化参数 | |
fEDelta | LREAL | 最小化控制误差 | |
fYMinimizeOvershoot | LREAL | 最小化超调量 | |
fYMin | LREAL | 控制值下限 | |
fYMax | LREAL | 控制值上限 | |
fYManual | LREAL | 手动操作控制值 | |
fYOnFailure | LREAL | 故障时控制值 | |
bPWMCool | BOOL | FALSE | 启用特殊冷却PWM |
tPWMCycleTime | TIME | PWM 周期 | |
tPWMMinOffTime | TIME | PWM 最小关断时间 | |
tPWMMinOnTime | TIME | PWM 最小开启时间 | |
tPWMWaitingTime | TIME | not yet implemented !!!! | |
tPWMCycleTimeCool | TIME | 冷却设备PWM 周期 | |
tPWMMinOffTimeCool | TIME | 冷却设备PWM 最小关断时间 | |
tPWMMinOnTimeCool | TIME | 冷却设备PWM 最小开启时间 | |
tPWMWaitingTimeCool | TIME | not yet implemented !!!! | |
fYThresholdOff | LREAL | 三点式:关闭阈值 | |
fYThresholdOn | LREAL | 三点式:开启阈值 | |
nCyclesForSwitchOver | INT | 100 | 切换参数集周期数 |
bEnablePreController | BOOL | 启用前馈控制器 | |
bEnableZones | BOOL | 启用开环控制直到接近设定值 | |
fEnableZoneClosedLoopZone | LREAL | 100.0 | 启用闭环控制设定值周围阈值 |
bEnableCVFilter | BOOL | 启用控制值滤波器(类型参见 iFilterType) | |
iFilterType | E_CTRL_FilterType | 控制值(CV)滤波器的滤波类型 | |
iControllerType | E_CTRL_ControllerType | 常用控制器为PID控制器 | |
bAlternateParameter | BOOL | 切换至备用参数集 — not yet supported | |
nAlternateParameterSet | ControlToolBox.E_CtrlParameterRecord | 备用参数集数量 — not yet supported | |
bPPartInFeedbackPath | BOOL | 比例反馈控制 | |
bDPartInFeedbackPath | BOOL | 微分反馈控制 | |
TempLow | LREAL | 低温报警 | |
TempLowLow | LREAL | 极低温报警 | |
TempHigh | LREAL | 高温报警 | |
TempHighHigh | LREAL | 极高温报警 | |
TempAbsoluteHigh | LREAL | 绝对高温上限 | |
TempAbsoluteLow | LREAL | 绝对低温下限 | |
fTuneKp | LREAL | 1.2 | 比例增益调节参数 |
fTuneTn | LREAL | 2.0 | 积分时间常数调节参数 |
fTuneTv | LREAL | 0.42 | 前馈时间常数调节参数 |
fTuneTd | LREAL | 0.25 | 微分时间常数调节参数 |
ST_CTRL_ParaController
名称 | 类型 | 初始化 | 描述 |
---|---|---|---|
KpHeat | LREAL | 加热模式,比例增益参数 | |
TnHeat | TIME | 加热模式,积分时间常数 | |
TvHeat | TIME | 加热模式,前馈时间常数 | |
TdHeat | TIME | 加热模式,微分时间常数 | |
KpCool | LREAL | 冷却模式,比例增益参数 | |
TnCool | TIME | 冷却模式,积分时间常数 | |
TIME | E_CTRL_TuneMode | 冷却模式,前馈时间常数 | |
TdCool | TIME | 冷却模式,微分时间常数 |
ST_CTRL_RingBuffer
名称 | 类型 |
---|---|
RingBuffer | ARRAY \[0..RingBufferLen] OF LREAL |
RingBufferPos | INT |
ENUM:
ERROR
名称 | 类型 |
---|---|
NO_ERROR | INT |
TIME_OUT | INT |
E_CTRL_ControllerStateInternal
名称 | 类型 | 初始化 |
---|---|---|
E_CTRL_ControllerStateInternalHeating | INT | 1 |
E_CTRL_ControllerStateInternalCooling | INT | 2 |
E_CTRL_ControllerType
名称 | 类型 | 初始化 | 描述 |
---|---|---|---|
eCTRL_ControllerType_PID | INT | 1 | |
eCTRL_ControllerType_PI | INT | no D-Part ! | |
eCTRL_ControllerType_PID_Pre | INT | ||
eCTRL_ControllerType_PIDD2 | INT |
E_CTRL_ControlMode
名称 | 类型 | 初始化 |
---|---|---|
eCTRL_ControlMode_HEATING | INT | 1 |
eCTRL_ControlMode_COOLING | INT | |
eCTRL_ControlMode_HEATING_COOLING | INT |
E_CTRL_FilterType
名称 | 类型 | 初始化 |
---|---|---|
eCTRL_FilterType_FIRSTORDER | INT | 1 |
eCTRL_FilterType_AVERAGE | INT |
E_CTRL_ReactionOnFailure
名称 | 类型 | 初始化 |
---|---|---|
eCTRL_ReactionOnFailure_NoFailure | INT | 0 |
eCTRL_ReactionOnFailure_StopController | INT | |
eCTRL_ReactionOnFailure_SetManMode | INT | |
eCTRL_ReactionOnFailure_SetYMax | INT | |
eCTRL_ReactionOnFailure_SetYMin | INT | |
eCTRL_ReactionOnFailure_SetYMean | INT |
E_CTRL_STATE_TUNING
名称 | 类型 | 初始化 | 描述 |
---|---|---|---|
eCTRL_STATE_TUNING_INIT | INT | 0 | 初始化状态 |
eCTRL_STATE_TUNING_IDLE | INT | 1 | 空闲状态 |
eCTRL_STATE_TUNING_PULSE | INT | 4 | 重启,脉冲激励状态 |
eCTRL_STATE_TUNING_STEP | INT | 5 | 手动操作,阶跃激励状态 |
eCTRL_STATE_TUNING_READY | INT | 6 | 整定完成状态 |
eCTRL_STATE_TUNING_ERROR | INT | 7 | 整定错误状态 |
E_CTRL_TuneMode
名称 | 类型 | 初始化 | 描述 |
---|---|---|---|
eCTRL_TuneMode_HEATING | INT | 1 | 阶跃响应整定:仅加热 |
eCTRL_TuneMode_COOLING | INT | 阶跃响应整定:仅冷却 | |
eCTRL_TuneMode_HEATING_COOLING | INT | 阶跃响应整定:先加热,再冷却 | |
eCTRL_TuneMode_COOLING_HEATING | INT | 阶跃响应整定:先冷却,再加热 | |
eCTRL_TuneMode_OSCILLATION | INT | 动态振荡整定 |
报警位掩码
名称 | 类型 | 初始化 | 描述 |
---|---|---|---|
硬件报警 | |||
nAlarmOpenThermocouple | DWORD | 2#1 | 热电偶开路警告 |
nAlarmReverseThermocouple | DWORD | 2#10 | 热电偶反接警告 |
nAlarmBackVoltage | DWORD | 2#100 | 反向电压警告 |
nAlarmLeakageCurrent | DWORD | 2#1000 | 漏电流警告 |
nAlarmShortCircuit | DWORD | 2#10000 | 短路警告 |
nAlarmOpenCircuit | DWORD | 2#100000 | 断路警告 |
软件报警 | |||
nAlarmLimitLow | DWORD | 2#100000000 | 低温警告 |
nAlarmLimitLowLow | DWORD | 2#1000000000 | 极低温警告 |
nAlarmLimitHigh | DWORD | 2#10000000000 | 高温警告 |
nAlarmLimitHighHigh | DWORD | 2#100000000000 | 极高温警告 |
nAlarmAbsoluteHigh | DWORD | 2#1000000000000 | 绝对高温警告 |
nAlarmAbsoluteLow | DWORD | 2#10000000000000 | 绝对低温警告 |
nAlarmSlopeMin | DWORD | 2#10000000000000000 | 最小斜率警告 |
nAlarmSlopeMax | DWORD | 2#100010000000000000 | 最大斜率警告 |
使用要求
开发环境 | 目标平台 | 需要包含的PLC 库 |
---|---|---|
MetaFacture | PC | ZKSDTempControl |
名称 | 类型 | 初始化 | 描述 |
---|---|---|---|
RingBufferLen | INT | 10 | RingBuffer global variables |
MAX_LOGBUFFER_LEN | INT | 1000 | log data |
此产品的示例代码和配置获取链接:<链接>\[待插入]。在那里,您可以选择克隆存储库或下载包含示例的ZlP文件。
存在以下示例:
名称 | <产品>版本 | 描述 |
---|---|---|
--.project | -- | CODESYS例程 |
ZKSDTempControl.compiled-library | V1.0.0.0 | 温度控制算法库 |
ControlToolBox.compiled-library | V1.1.3.0 | 控制工具库 |
使用要求
开发环境 | 目标平台 | 需要包含的PLC 库 |
---|---|---|
MetaFacture | PC | ZKSDTempControl |