アダプタを介してCPUに接続されているアナログ増設ユニットのI/Oオフセットを計算するためのファンクション。
I/O開始アドレスは、アダプタと増設ユニットの装着位置によって異なります。このファンクションは、アダプタの位置とアダプタに対するユニットの位置に基づいて、I/Oワードオフセットを計算します。
入力
CPUに対するアダプタの位置を設定します。
値: 1~8
アダプタに対するFP0/FP0R増設ユニットの位置を設定します。
値: 1~3
出力
I/Oワード(WX/WY)のオフセットを返します。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
Inst_FP0R_A21: Unit_AnalogInOut_FP0R_A21;
iAnalogOut0: INT:=0;
bIO_Config_done: BOOL:=FALSE;
iAnalogIn0: INT:=0;
iAnalogIn1: INT:=0;
END_VAR
このファンクションは、FP-X CPUに接続されたFP0/FP0RアナログユニットのI/Oワードオフセットを計算します。iFPX_ExpansionUnitNumberは、FP0/FP0R拡張アダプタの装着位置(1~8)です。iFP0_ExpansionUnitNumberは、アダプタに対するアナログユニットの装着位置です(1~3)。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_VARIN,,3,2,2,4,4,);
B(B_F,ExpansionUnitNumberToIOWordOffset_FPX_FP0!,,4,1,26,5,,?DiFPX_ExpansionUnitNumber?DiFP0_ExpansionUnitNumber?C);
B(B_FB,Unit_AnalogInOut_FP0R_A21!,Inst_FP0R_A21,36,1,51,8,,?BiIOWordOffset?BiOutChannel0?BiOutChannel0_Config?BiInChannel0_Config?BiInChannel1_Config?CbConfigIsDone?CiInChannel0?CiInChannel1);
B(B_VAROUT,,bIO_Config_done,51,2,53,4,);
B(B_VARIN,,2,2,3,4,5,);
B(B_VARIN,,iAnalogOut0,34,3,36,5,);
B(B_VAROUT,,iAnalogIn0,51,3,53,5,);
B(B_VARIN,,3,34,4,36,6,);
B(B_VAROUT,,iAnalogIn1,51,4,53,6,);
B(B_VARIN,,0,34,5,36,7,);
B(B_VARIN,,0,34,6,36,8,);
L(1,0,1,8);
L(26,3,36,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Inst_FP0R_A21(iIOWordOffset := ExpansionUnitNumberToIOWordOffset_FPX_FP0(3, 2),
iOutChannel0 := iAnalogOut0,
iOutChannel0_Config := 3,
iInChannel0_Config := 0,
iInChannel1_Config := 0,
bConfigIsDone => bIO_Config_done,
iInChannel0 => iAnalogIn0,
iInChannel1 => iAnalogIn1);