FP0-A04Iユニットへの書き込みを行うためのファンクション。
このファンクションは、デジタルデータをアナログユニットのアナログ出力チャンネルに書き込みます。アナログ値として変換、出力されるデジタル値はiOutChannel0~iOutChannel3に指定します。
入力
アナログユニットの装着位置に従って、WX/WYの先頭アドレスのオフセットを設定します。
CPUに直接接続されているアナログ増設ユニット(アダプタなし)の場合:ExpansionUnitToIOWordOffset_FP0を使用するか、以下の設定を行います。ユニット番号1は2 (WX2/WY2)、ユニット番号2は4 (WX4/WY4)、ユニット番号3は6 (WX6/WY6)。
アダプタを介してCPUに接続されているアナログ増設ユニットの場合: ExpansionUnitToIOWordOffset_FPX_FP0を使用するか、次のテーブルからオフセットを選択します。
アダプタに対するユニットの位置 |
CPUに対するアダプタの位置 |
|||||||
---|---|---|---|---|---|---|---|---|
第1ユニット |
第2ユニット |
第3ユニット |
第4ユニット |
第5ユニット |
第6ユニット |
第7ユニット |
第8ユニット |
|
第1ユニット |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
第2ユニット |
32 |
42 |
52 |
62 |
72 |
82 |
92 |
102 |
第3ユニット |
34 |
44 |
54 |
64 |
74 |
84 |
94 |
104 |
アナログユニットによって変換、出力されるデジタル値を設定します。
値:0~4000
出力
ユニットステータス: 電源が入っているときはTRUE。
チャンネルステータス: エラーが発生した場合はTRUE。
デジタル値(INT) |
アナログ値 |
---|---|
0 |
4.0mA |
500 |
6.0mA |
1000 |
8.0mA |
1500 |
10.0mA |
2000 |
12.0mA |
2500 |
14.0mA |
3000 |
16.0mA |
3500 |
18.0mA |
4000 |
20.0mA |
このコマンドの説明では、基本的なハードウェアのドキュメンテーションのみを提供します。技術的な内容の詳細については、マニュアルを参照してください。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
iAnalog_Out_Ch0: INT:=0;
iAnalog_Out_Ch1: INT:=0;
iAnalog_Out_Ch2: INT:=0;
iAnalog_Out_Ch3: INT:=0;
bPowerIsOn: BOOL:=FALSE;
bErrorChannel0: BOOL:=FALSE;
bErrorChannel1: BOOL:=FALSE;
bErrorChannel2: BOOL:=FALSE;
bErrorChannel3: BOOL:=FALSE;
END_VAR
iOutChannel0~iOutChannel3に入力されたデジタル値は、アナログユニットに書き込まれ、アナログ値に変換されます。アナログデータは対応する出力チャンネルから出力されます。
ExpansionUnitNumberToIOWordOffset_FP0またはExpansionUnitNumberToIOWordOffset_FPX_FP0を使用して、CPUに接続されたアナログユニットのワードオフセットを計算します。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_F,Unit_AnalogOutput_FP0_A04I!,,15,0,29,7,,?DiIOWordOffset?DiOutChannel0?DiOutChannel1?DiOutChannel2?DiOutChannel3?CbPowerIsOn?CbErrorChannel0?CbErrorChannel1?CbErrorChannel2?CbErrorChannel3);
B(B_VARIN,,2,13,1,15,3,);
B(B_VAROUT,,bPowerIsOn,29,1,31,3,);
B(B_VARIN,,iAnalog_Out_Ch0,13,2,15,4,);
B(B_VAROUT,,bErrorChannel0,29,2,31,4,);
B(B_VARIN,,iAnalog_Out_Ch1,13,3,15,5,);
B(B_VAROUT,,bErrorChannel1,29,3,31,5,);
B(B_VARIN,,iAnalog_Out_Ch2,13,4,15,6,);
B(B_VAROUT,,bErrorChannel2,29,4,31,6,);
B(B_VARIN,,iAnalog_Out_Ch3,13,5,15,7,);
B(B_VAROUT,,bErrorChannel3,29,5,31,7,);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Unit_AnalogOutput_FP0_A04I(iIOWordOffset := 2,
iOutChannel0 := iAnalog_Out_Ch0,
iOutChannel1 := iAnalog_Out_Ch1,
iOutChannel2 := iAnalog_Out_Ch2,
iOutChannel3 := iAnalog_Out_Ch3,
bPowerIsOn => bPowerIsOn,
bErrorChannel0 => bErrorChannel0,
bErrorChannel1 => bErrorChannel1,
bErrorChannel2 => bErrorChannel2,
bErrorChannel3 => bErrorChannel3);