
温度控制器功能块 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 |