Unit_AnalogInput_FP0_RTD_REALFP0-RTD6ユニットから読み出しを行うためのファンクションブロック(変換後のデジタル値はREALデータ型)
このファンクションブロックは、アナログユニットのアナログ入力チャンネルから変換後のデジタル値を読み出します。アナログユニットからの変換後のデジタル値は、出力変数rChannel0~rChannel5にチャンネルごとに保存されます。
測温抵抗体入力データを測定する場合には、以下のデバイスを使用することができます。Pt100 (IEC751に準拠)、Pt1000 (IEC751に準拠)、Ni1000 (DIN43760に準拠)、または抵抗。
測定デバイスは、ディップスイッチとファンクションブロックで設定する必要があります。
サンプリングサイクルはディップスイッチで設定する必要があります。

入力
アナログユニットの装着位置に従って、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 |
対応するチャンネルの分解能を設定します。
RUN中に、この値を変更しないでください。値を変更すると、1s間、変換が不正確になります。
温度単位を設定します。
RTDデバイスを設定します。
この設定はディップスイッチの設定と一致させる必要があります。
出力
アナログユニットで変換されたデジタルデータをチャンネルごとに返します。
例:
熱電対、低分解能: 20.12°C → 20.1 (測定値が範囲外: 819.1)
熱電対、高分解能20.12°C → 20.12 (測定値が範囲外: 81.91)
抵抗、低分解能: 25W → 25 (測定値が範囲外: 16383)
抵抗、高分解能: 25.4W → 25.4 (測定値が範囲外: 1638.3)
電源投入から最初の変換データが用意できるまでの間は、デジタル値が8191または16383になります。その間のデータは採用しないよう、プログラムを作成してください。
測温抵抗体が断線したときは、デジタル値が8191または16383になります。プログラミングを行う際、測温抵抗体の断線から発生し得る危険回避処理を行ってください。断線した測温抵抗体は交換してください。
ディップスイッチの設定は、電源をOFFからONにすると有効になります。
Pt100 |
Pt1000 |
Ni1000 |
抵抗 |
|
|---|---|---|---|---|
Pt100 |
Pt1000 |
Ni1000 |
抵抗 |
|
|---|---|---|---|---|
0.1s |
1s |
|
|---|---|---|
分解能:0.1K/0.1F、1Ω
Pt100 |
Pt1000 |
||
|---|---|---|---|
°C/°F |
°C/°F |
||
アナログ値 |
デジタル値 |
アナログ値 |
デジタル値 |
-200.0/-328.0 |
-2000/-3280 |
-200.0/-328.0 |
-2000/-3280 |
+500.0/+800.0 |
+5000/+8000 |
+300.0/+572.0 |
+3000/+5720 |
Ni1000 |
抵抗 |
||
|---|---|---|---|
°C/°F |
Ω |
||
アナログ値 |
デジタル値 |
アナログ値 |
デジタル値 |
-30.0/-22.0 |
-300/-220 |
+20 |
+20 |
+150.0/+302.0 |
+1500/+3020 |
+2200 |
+2200 |
分解能:0.01K/0.01F、0.1Ω
Pt100 |
Pt1000 |
||
|---|---|---|---|
°C/°F |
°C/°F |
||
アナログ値 |
デジタル値 |
アナログ値 |
デジタル値 |
-80.00/-80.00 |
-8000/-8000 |
-80.00/-80.00 |
-8000/-8000 |
+80.00/+80.00 |
+8000/+8000 |
+80.00/+80.00 |
+8000/+8000 |
Ni1000 |
抵抗 |
||
|---|---|---|---|
°C/°F |
Ω |
||
アナログ値 |
デジタル値 |
アナログ値 |
デジタル値 |
-30.00/-22.00 |
-3000/-2200 |
+20.0 |
+200 |
+80.00/+80.00 |
+8000/+8000 |
+1630.0 |
+16300 |
このコマンドの説明では、基本的なハードウェアのドキュメンテーションのみを提供します。技術的な内容の詳細については、マニュアルを参照してください。

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。

VAR
Inst_FP0_RTD_REAL: Unit_AnalogInput_FP0_RTD_REAL;
rRTD_In0: REAL:=0;
rRTD_In1: REAL:=0;
rRTD_In2: REAL:=0;
rRTD_In3: REAL:=0;
rRTD_In4: REAL:=0;
rRTD_In5: REAL:=0;
END_VAR
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 := 13 ;
NETWORK_BODY
B(B_FB,Unit_AnalogInput_FP0_RTD_REAL!,Inst_FP0_RTD_REAL,19,1,37,13,,?BiIOWordOffset?BbChannel0HighResolution?BbChannel1HighResolution?BbChannel2HighResolution?BbChannel3HighResolution?BbChannel4HighResolution?BbChannel5HighResolution?BbTemperatureInFahrenheit?BbChannel012DIPSwitchSetToResistor?BbChannel345DIPSwitchSetToResistor?CrChannel0?CrChannel1?CrChannel2?CrChannel3?CrChannel4?CrChannel5);
B(B_VARIN,,2,17,2,19,4,);
B(B_VAROUT,,rRTD_In0,37,2,39,4,);
B(B_VARIN,,false,17,3,19,5,);
B(B_VAROUT,,rRTD_In1,37,3,39,5,);
B(B_VARIN,,false,17,4,19,6,);
B(B_VAROUT,,rRTD_In2,37,4,39,6,);
B(B_VARIN,,false,17,5,19,7,);
B(B_VAROUT,,rRTD_In3,37,5,39,7,);
B(B_VARIN,,false,17,6,19,8,);
B(B_VAROUT,,rRTD_In4,37,6,39,8,);
B(B_VARIN,,false,17,7,19,9,);
B(B_VAROUT,,rRTD_In5,37,7,39,9,);
B(B_VARIN,,false,17,8,19,10,);
B(B_VARIN,,false,17,9,19,11,);
B(B_VARIN,,false,17,10,19,12,);
B(B_VARIN,,false,17,11,19,13,);
L(1,0,1,13);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Inst_FP0_RTD_REAL(iIOWordOffset := 2,
bChannel0HighResolution := false,
bChannel1HighResolution := false,
bChannel2HighResolution := false,
bChannel3HighResolution := false,
bChannel4HighResolution := false,
bChannel5HighResolution := false,
bTemperatureInFahrenheit := false,
bChannel012DIPSwitchSetToResistor := false,
bChannel345DIPSwitchSetToResistor := false,
rChannel0 => rRTD_In0,
rChannel1 => rRTD_In1,
rChannel2 => rRTD_In2,
rChannel3 => rRTD_In3,
rChannel4 => rRTD_In4,
rChannel5 => rRTD_In5);