# 技术说明

### 通用操作

以下部分对控制工具箱中的功能块进行概要描述。

#### 功能块输入

##### E_CtrlMode

大多数功能块的运行模式可通过该输入进行选择，从而支持以下运行模式：

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
eCTRL_MODE_IDLE | INT | 0 | 空闲模式
eCTRL_MODE_PASSIVE | INT | 1 | 被动模式
eCTRL_MODE_ACTIVE | INT | 2 | 主动模式
eCTRL_MODE_RESET | INT | 3 | 复位模式
eCTRL_MODE_MANUAL | INT | 4 | 手动模式
eCTRL_MODE_TUNE | INT | 5 | 调试模式
eCTRL_MODE_SELFTEST | INT | 6 | 自检模式
eCTRL_MODE_SYNC_MOVEMENT | INT | 7 | 同步运动模式
eCTRL_MODE_FREEZE | INT | 8 | 冻结模式

##### stParams

必要的参数通过此结构传递到功能块。所有参数结构中都包含变量 tTaskCycleTime 和 tCtrlCycleTime，它们的作用如下：

参数 tTaskCycleTime 指定功能块的调用周期。如果功能块在每个周期调用，则该值等于调用任务的周期时间；如果每隔一个周期调用一次，则该值应相应加倍。

参数 tCtrlCycleTime 指定控制回路的采样时间，该值必须大于或等于 tTaskCycleTime。如果tCtrlCycleTime 等于 tTaskCycleTime，则功能块在每次调用时执行。如果 tCtrlCycleTime 设定为 tTaskCycleTime 的 5 倍，则功能块仅在每 5 次调用中执行一次。这样可以在快速任务中实现慢速控制回路。

参数 tTaskCycleTime 和 tCtrlCycleTime 的数据类型为 TIME，因此不允许输入小于 1ms 的值。

为了在周期时间小于 1ms 的高速 PLC 任务中使用控制器，可以指定一个全局基准时间作为周期时间的参考。基准时间的使用将在以下示例中说明。

假设功能块在每个任务周期中都被调用。

Task： Configuration | tTaskCycleTime | tCtrlCycleTime | Action
--- | --- | --- | ---
T#10ms | T#10ms | T#10ms | 控制回路以 10ms 的采样时间进行处理
T#10ms | T#10ms | T#50ms | 控制回路以 50ms 的采样时间进行处理
T#100ms | T#100ms | T#100ms | 控制回路以 100ms 的采样时间进行处理
T#100ms | T#100ms | T#50ms | 错误，无法执行！
T#100ms | T#50ms | T#50ms | 错误，功能块已执行，但计算出的输出值不正确！

#### 功能块输出

##### E_CtrlState

此输出指示功能块的当前内部状态

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
eCTRL_MODE_IDLE | INT | 0 | 空闲状态
eCTRL_MODE_PASSIVE | INT | 1 | 被动状态
eCTRL_MODE_ACTIVE | INT | 2 | 主动状态
eCTRL_MODE_RESET | INT | 3 | 复位状态
eCTRL_MODE_MANUAL | INT | 4 | 手动状态
eCTRL_MODE_TUNING | INT | 5 | 正在调试
eCTRL_MODE_TUNED | INT | 6 | 调试完成
eCTRL_MODE_SELFTEST | INT | 7 | 自检状态
eCTRL_MODE_ERROR | INT | 8 | 错误状态
eCTRL_MODE_SYNC_MOVEMENT | INT | 9 | 同步运动状态
eCTRL_MODE_FREEZE | INT | 10 | 冻结状态

##### bError

该布尔输出的TRUE，指示功能块中出现错误。

##### eErrorId

bError输出值为TRUE时，此处输出错误码。

### 功能块

### （一）Controller

#### FB_3Point

控制器功能块 FB_3Point 具有多个输入和输出，具体描述如下。所有控制器的参数均通过结构体传递给功能块。

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fSetpointValue | LREAL |
fActualValue | LREAL |
nManSyncValue | INT |
bSync | BOOL |
eMode | E_CtrlMode |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_3PointParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
bPosOut | BOOL |
bNegOut | BOOL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_3PointParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fPosOutOn | LREAL |  |
fPosOutOff | LREAL |  |
fNegOutOn | LREAL |  |
fNegOutOff | LREAL |  |

#### FB_3PointExt

控制器功能块 FB_3PointExt 具有多个输入和输出，具体描述如下。所有控制器的参数均通过结构体传递给功能块。

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fSetpointValue | LREAL |
fActualValue | LREAL |
fManSyncValue | LREAL |
bSync | BOOL |
eMode | E_CtrlMode |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_3PointExtParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_3PointExtParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fOutOff | LREAL |  |
fOutOn | LREAL |  |
fGain | LREAL |  |
fOffset | LREAL |  |

#### FB_P

控制器功能块 FB_P 具有多个输入和输出，具体描述如下。所有控制器的参数均通过结构体传递给功能块。

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fIn | LREAL |
eMode | E_CtrlMode |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fKp | LREAL |  |

#### FB_PI

控制器功能块 FB_PI 具有多个输入和输出，具体描述如下。所有控制器的参数均通过结构体传递给功能块。

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fSetpointValue | LREAL | 设定值
fActualValue | LREAL | 实际值
fManSyncValue | LREAL | 手动模式或同步模式下的输出值
bSync | BOOL | 上升沿设置输出为nManSyncValue
eMode | E_CtrlMode | 控制模式
bHold | BOOL | 积分保持

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PIParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL | 控制输出
bARWactive | BOOL | fOut 达到限制值
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PIParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
tTn | TIME |  |
fKp | REAL |  |
fOutMaxLimit | LREAL |  |
fOutMinLimit | LREAL |  |
bARWOnIPartOnly | BOOL |  |

#### FB_PID

控制器功能块 FB_PID 具有多个输入和输出，具体描述如下。所有控制器的参数均通过结构体传递给功能块。

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fSetpointValue | LREAL | 设定值
fActualValue | LREAL | 实际值
fManSyncValue | LREAL | 手动模式或同步模式下的输出值
bSync | BOOL | 上升沿设置输出为nManSyncValue
eMode | E_CtrlMode | 控制模式
bHold | BOOL | 积分保持

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PIDParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL | 控制输出
bARWactive | BOOL | fOut 达到限制值
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PIDParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fKp | LREAL |  |
tTn | TIME |  |
tTv | TIME |  |
tTd | TIME |  |
fOutMaxLimit | LREAL |  |
fOutMinLimit | LREAL |  |
bPInTheFeedbackPath | BOOL |  |
bDInTheFeedbackPath | BOOL |  |
bARWOnIPartOnly | BOOL |  |

#### FB_PIDSplitRange

控制器功能块 FB_PIDSplitRange 具有多个输入和输出，具体描述如下。所有控制器的参数均通过结构体传递给功能块。

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fSetpointValue | LREAL | 设定值
fActualValue | LREAL | 实际值
eParameterRecord | E_CtrlParameterRecord |
fManSyncValue | LREAL | 手动模式或同步模式下的输出值
bSync | BOOL | 上升沿设置输出为nManSyncValue
eMode | E_CtrlMode | 控制模式
bHold | BOOL | 积分保持

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PIDSplitRangeParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOutPos | LREAL |
fOutNeg | LREAL |
fOut | LREAL | 控制输出
bARWactive | BOOL | fOut 达到限制值
bParameterChangeActive | BOOL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PIDSplitRangeParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fKp_heating | LREAL | 0 |
tTn_heating | TIME | TIME#0ms |
tTv_heating | TIME | TIME#0ms |
tTd_heating | TIME | TIME#0ms |
fKp_cooling | LREAL | 0 |
tTn_cooling | TIME | TIME#0ms |
tTv_cooling | TIME | TIME#0ms |
tTd_cooling | TIME | TIME#0ms |
nParameterChangeCycleTicks | UDINT |  |
fOutMaxLimit | LREAL | 1E+38 |
fOutMinLimit | LREAL | -1E+38 |
bPInTheFeedbackPath | BOOL | FALSE |
bDInTheFeedbackPath | BOOL | FALSE |
bARWOnIPartOnly | BOOL | FALSE |

#### FB_PIDExtSplitRange

控制器功能块 FB_PIDExtSplitRange 具有多个输入和输出，具体描述如下。所有控制器的参数均通过结构体传递给功能块。

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fSetpointValue | LREAL | 设定值
fActualValue | LREAL | 实际值
eParameterRecord | E_CtrlParameterRecord |
fManSyncValue | LREAL | 手动模式或同步模式下的输出值
bSync | BOOL | 上升沿设置输出为nManSyncValue
eMode | E_CtrlMode | 控制模式
bHold | BOOL | 积分保持

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PIDExtSplitRangeParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOutPos | LREAL |
fOutNeg | LREAL |
fOut | LREAL | 控制输出
fOut_WithoutDeadband | LREAL | 无死区限制控制值
bARWactive | BOOL | fOut 达到限制值
bParameterChangeActive | BOOL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PIDEXTSplitRangeParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fKp_heating | LREAL | 0 |
tTn_heating | TIME | TIME#0ms |
tTv_heating | TIME | TIME#0ms |
tTd_heating | TIME | TIME#0ms |
fKp_cooling | LREAL | 0 |
tTn_cooling | TIME | TIME#0ms |
tTv_cooling | TIME | TIME#0ms |
tTd_cooling | TIME | TIME#0ms |
nParameterChangeCycleTicks | UDINT |  |
fDeadBandInput | LREAL | 0.0 |
fDeadBandOutput | LREAL | 0.0 |
fInnerWindow | LREAL | 0.0 |
fOuterWindow | LREAL | 0.0 |
fOutMaxLimit | LREAL | 1E+38 |
fOutMinLimit | LREAL | -1E+38 |
bPInTheFeedbackPath | BOOL | FALSE |
bDInTheFeedbackPath | BOOL | FALSE |
bARWOnIPartOnly | BOOL | FALSE |

#### FB_PIDSplitRangeParameterSwitch

控制器功能块 FB_PIDSplitRangeParameterSwitch 具有多个输入和输出，具体描述如下。所有控制器的参数均通过结构体传递给功能块。

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fManipulatedVariable | LREAL |
bDisableHeating | BOOL |
bDisableCooling | BOOL |
nManSyncValue | INT |
bSync | BOOL | 上升沿设置输出为nManSyncValue
eMode | E_CtrlMode | 控制模式

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PIDSplitRangeParameterSwitchParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
eParameterRecord | E_CtrlParameterRecord |
fOutMaxLimit | LREAL |
fOutMinLimit | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PIDSplitRangeParameterSwitchParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fThreshold | LREAL |  |
fOutMaxLimit | LREAL |  |
fOutMinLimit | LREAL |  |
bMinWaitTime | TIME |  |

### （二）MC

#### FB_CoERead

##### 接口

VAR_INPUT

名称 | 类型 | 初始化
--- | --- | ---
Excute | BOOL | FALSE

VAR_IN_OUT

名称 | 类型 | 初始化
--- | --- | ---
stParams | ST_CoEReadParams |

VAR_OUTPUT

名称 | 类型 | 初始化
--- | --- | ---
Done | BOOL | FALSE
Busy | BOOL | FALSE
Error | BOOL | FALSE
ErrorId | ETC_CO_Error | ETC_CO_ERROR.ETC_CO_NO_ERROR

##### 结构体

ST_CoEReadParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
wIndex | WORD | 0 |
bySubindex | BYTE | 0 |
pBuffer | CAA.PVOID | 0 |
szSize | CAA.SIZE |  |
pETCSlave | POINTERV TO ETCSlave |  |

#### FB_CoEReset

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
Excute | BOOL | 上升沿触发
ResetType | USINT | bit0：复位轴报警 bit1：复位轴状态 bit2：复位驱动器状态 bit3：复位总线状态

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
Axis | AXIS_REF_SM3 | 轴名称
Drive | ETCSlave | 驱动器名称
Master | IoDrvEtherCAT | 主站名称

VAR_OUTPUT

名称 | 类型 | 初始化
--- | --- | ---
Done | BOOL | FALSE
Busy | BOOL | FALSE
Error | BOOL | FALSE
ErrorId | UINT |

#### MC_CoEReset

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
Excute | BOOL | 上升沿触发

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
Busy | ARRAY[0..(MAX_NUM_NODE_MASTER-1),0..(MAX_NUM_NODE_SLAVE-1)] OF BOOL | 执行中
Done | ARRAY[0..(MAX_NUM_NODE_MASTER-1),0..(MAX_NUM_NODE_SLAVE-1)] OF BOOL | 复位完成
Error | ARRAY[0..(MAX_NUM_NODE_MASTER-1),0..(MAX_NUM_NODE_SLAVE-1)] OF BOOL |
ErrorId | ARRAY[0..(MAX_NUM_NODE_MASTER-1),0..(MAX_NUM_NODE_SLAVE-1)] OF UINT |
NodesValid | BOOL | 硬件树信息可用

#### MC_ResetECError

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
Excute | BOOL | 上升沿触发

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
Busy | ARRAY[0..(MAX_NUM_NODE_MASTER-1)] OF BOOL | 执行中
Done | ARRAY[0..(MAX_NUM_NODE_MASTER-1)] OF BOOL | 复位完成
Error | ARRAY[0..(MAX_NUM_NODE_MASTER-1)] OF BOOL |
ErrorId | ARRAY[0..(MAX_NUM_NODE_MASTER-1)] OF UINT |
NodesValid | BOOL | 硬件树信息可用

### （三）Output to Control Equipment

#### FB_DeadBand

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fIn | LREAL |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_DeadBandParams |

VAR_OUTPUT

名称 | 类型 | 初始化
--- | --- | ---
fOut | LREAL |
bInIsUnderThreshold | BOOL |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_DeadBandParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fThreshold | LREAL |  |

#### FB_Limiter

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fIn | LREAL |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_LimiterParams |

VAR_OUTPUT

名称 | 类型 | 初始化
--- | --- | ---
fOut | LREAL |
bMinLimit | BOOL |
bMaxLimit | BOOL |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_LimiterParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fMinOutput | LREAL |  |
fMaxOutput | LREAL |  |

#### FB_PWMOut

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fPwmIn | LREAL |
eMode | E_CtrlMode |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PWMOutParams |

VAR_OUTPUT

名称 | 类型 | 初始化
--- | --- | ---
bPwmOutBitPos | BOOL |
bPwmOutBitNeg | BOOL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PWMOutParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tTaskCycleTime | TIME | TIME#0ms |
tPWMPeriod | TIME |  |
bInstantPWMUpdate | BOOL |  |

#### FB_PWMOutExt

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fPwmIn | LREAL |
eMode | E_CtrlMode |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PWMOutExtParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
bPwmOutBitPos | BOOL |
bPwmOutBitNeg | BOOL |
bWaitTimeActive | BOOL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PWMOutExtParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tTaskCycleTime | TIME | TIME#0ms |
tPWMPeriod | TIME |  |
tMinOnTime | TIME |  |
tMinOffTime | TIME |  |
tMinWaitTime | TIME |  |

### （四）Signal

#### FB_NoiseGenerator

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fManSyncValue | LREAL |
eMode | E_CtrlMode |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_NoiseGeneratorParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_NoiseGeneratorParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fAmplitude | LREAL | 0 |

#### FB_Ramp

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
bEnable | LREAL |
fStart | LREAL |
fTarget | LREAL |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_RampParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
fVeloOut | LREAL |
bValueReached | BOOL |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_RampParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
fVeloPos | LREAL |  |
fVeloNeg | LREAL |  |

#### FB_Random

#### FB_SetPointGenerator

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
nStepointIndex | INT |
fManValue | LREAL |
eMode | E_CtrlMode |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_SetPointGeneratorParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
bValueReached | BOOL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_SetPointGeneratorParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
pDataTable_ADR | POINTER TO LREAL | 0 |
pDataTable_SIZEOF | UINT | 0 |
pDataTable_NumberOfRows | UINT | 0 |
fVeloPos | LREAL |  |
fVeloNeg | LREAL |  |
bDisableRamping | BOOL | FALSE |

#### FB_SignalGenerator

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fManValue | LREAL |
eMode | E_CtrlMode |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_SignalGeneratorParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_SignalGeneratorParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
eSignalType | E_CtrlSignalType |  |
tCycleDuration | TIME |  |
fAmplitude | LREAL |  |
fOffset | LREAL | 0.0 |
fStart | TIME | TIME#0ms |

### （五）SignalProcess

#### FB_DigitalFilter

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fIn | LREAL |
fManValue | LREAL |
eMode | E_CtrlMode |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_DigitalFilterParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_DigitalFilterParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms |
tTaskCycleTime | TIME | TIME#0ms |
nFilterOrder | USINT |  |
pCoefficientsArray_a_ADR | POINTER TO LREAL |  |
nCoefficientsArray_a_SIZEOF | UINT |  |
pCoefficientsArray_b_ADR | POINTER TO LREAL |  |
nCoefficientsArray_b_SIZEOF | UINT |  |
pDigitalFilterData_ADR | POINTER TO ST_DigitalFilterData |  |
nDigitalFilterData_SIZEOF | UINT |  |

#### FB_MovingAverageFilter

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fIn | LREAL |
fManSyncValue | LREAL |
bSync | BOOL |
eMode | E_CtrlMode |
bHold | BOOL |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_MovingAverageFilterParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_MovingAverageFilterParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms | 控制周期时间
tTaskCycleTime | TIME | TIME#0ms | 任务周期时间
nSamplesToFilter | UINT |  | 采样个数
pWorkArray | POINTER TO LREAL | 0 | 缓冲区数组地址
nWorkArraySize | UINT | 0 | 缓冲区数组大小

#### FB_NotchFilter

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fIn | LREAL |
fManValue | LREAL |
eMode | E_CtrlMode |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_NotchFilterParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_NotchFilterParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms | 控制周期时间
tTaskCycleTime | TIME | TIME#0ms | 任务周期时间
fNotchFreq | LREAL | 0 | 频率
fBandwidth | LREAL | 0 | 带宽

#### FB_PT1

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fIn | LREAL |
fManSyncValue | LREAL |
bSync | BOOL |
eMode | E_CtrlMode |
bHold | BOOL |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PT1Params |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PT1Params

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms | 控制周期时间
tTaskCycleTime | TIME | TIME#0ms | 任务周期时间
fKp | LREAL | 0 |
tT1 | TIME | TIME#0ms |

#### FB_PT2

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fIn | LREAL |
fManValue | LREAL |
eMode | E_CtrlMode |
bHold | BOOL |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PT2Params |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PT2Params

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms | 控制周期时间
tTaskCycleTime | TIME | TIME#0ms | 任务周期时间
fKp | LREAL | 0 |
tT1 | TIME | TIME#0ms |
tT2 | TIME | TIME#0ms |

#### FB_PTn

##### 接口

VAR_INPUT

名称 | 类型 | 描述
--- | --- | ---
fIn | LREAL |
fManValue | LREAL |
eMode | E_CtrlMode |
bHold | BOOL |

VAR_IN_OUT

名称 | 类型 | 描述
--- | --- | ---
stParams | ST_PTnParams |

VAR_OUTPUT

名称 | 类型 | 描述
--- | --- | ---
fOut | LREAL |
eState | E_CtrlState |
eErrorId | E_CtrlErrorCode |
bError | BOOL |

##### 结构体

ST_PTnParams

名称 | 类型 | 初始化 | 描述
--- | --- | --- | ---
tCtrlCycleTime | TIME | TIME#0ms | 控制周期时间
tTaskCycleTime | TIME | TIME#0ms | 任务周期时间
nOrder | UINT |  |
fKp | LREAL | 0 |
tT1 | TIME | TIME#0ms |

## 三、全局常量

## 四、数据结构

#### 结构体和枚举定义

##### FLOAT:

该库的功能块只与FLOAT数据类型一起工作。该数据类型在附加库中定义为 LREAL 或 REAL 。

##### E_CtrlMode

##### E_CtrlState

##### E_CtrlErrorCode

##### E_CtrlSignalType