PID演算命令
このファンクションブロックでは、F355_PID命令のパラメータを直接的に設定します。
入力
FALSE: MVのマニュアル設定
TRUE: MVの自動PID制御
FALSE: 逆動作(加熱)
TRUE: 正動作(冷却)
FALSE: PI-D制御
TRUE: I-PD制御
設定値、範囲: 0-10000
測定値、範囲: 0-10000
比例ゲイン、範囲: 1-9999単位: 0.1
積分時間、範囲: 1-30000単位: 0.1秒
微分時間、範囲: 1-10000 単位: 0.1秒
サンプリング時間、範囲: 1-6000単位: 0.01秒
出力下限値、範囲: 0-10000
出力上限値、範囲: 1-10000
入出力
出力値
ファンクションブロックPID_FBでオートチューニング機能を使用することはできません。ファンクションブロック PID_FB_DUTを使用してください。
出力"MV"の値は、プログラム初期化時および"Automatic"の値がFALSEのとき、外部から割り付けることができます。
最大の分解値あるいは最小の収束時間とするためには、出力のLowerLimitとUpperLimitを0~10000とし、全範囲をカバーするようにしてください。
パラメータ設定値が指定できる範囲外のとき
パラメータ設定値が指定できる範囲外のとき
グローバル変数リストでは、プロジェクト内のすべてのPOUからアクセスできる変数を宣言します。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR_EXTERNAL
Set_Value_SP: INT:=0;
(*A/D CH0*)
Process_Value_PV: INT:=0;
(*A/D CH1*)
Output_Value_MV: INT:=0;
(*D/A*)
END_VAR
VAR
PID_Control: PID_FB;
(*PID Parameters*)
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 15 ;
NETWORK_BODY
B(B_FB,PID_FB!,PID_Control,11,1,19,15,,?BAutomatic?BForward?BI_PD?BSP?BPV?BKp?BTi?BTd?BTs?BLowerLimit?BUpperLimit?BMV?AMV);
B(B_VARIN,,TRUE,9,2,11,4,);
B(B_VARIN,,FALSE,9,3,11,5,);
B(B_VARIN,,FALSE,9,4,11,6,);
B(B_VARIN,,Set_Value_SP,9,5,11,7,);
B(B_VARIN,,Process_Value_PV,9,6,11,8,);
B(B_VARIN,,15,9,7,11,9,);
B(B_VARIN,,200,9,8,11,10,);
B(B_VARIN,,1,9,9,11,11,);
B(B_VARIN,,10,9,10,11,12,);
B(B_VARIN,,0,9,11,11,13,);
B(B_VARIN,,1000,9,12,11,14,);
B(B_VARIN,,Output_Value_MV,9,13,11,15,);
L(1,0,1,15);
END_NETWORK_BODY
END_NET_WORK
END_BODY
PID_Control( Automatic:= TRUE,
Forward:= FALSE,
I_PD:= FALSE,
SP:= Set_Value_SP,
PV:= Process_Value_PV,
Kp:= 15,
Ti:= 200,
Td:= 1,
Ts:= 10,
LowerLimit:= 0,
UpperLimit:= 1000,
MV:= Output_Value_MV);