Unit_AnalogInput_FP0_RTD_REALFP0-RTD6 유닛에서 읽는 펑션블록(변환된 디지털 값은 REAL 데이터 형식임)
이 펑션블록은 아날로그 유닛의 아날로그 입력 채널에서 변환된 디지털 값을 읽습니다. 아날로그 유닛의 변환된 디지털 값은 출력 변수 rChannel0~rChannel5에 채널별로 저장됩니다.
다음 장치에서 사용할 수 있는 RTD 입력 데이터를 측정하는 경우: Pt100(IEC751에 따름), Pt1000(IEC751에 따름), Ni1000(DIN43760에 따름) 또는 레지스터.
측정 장치는 DIP 스위치와 펑션블록으로 설정해야 합니다.
샘플링 사이클은 DIP 스위치로 설정해야 합니다.

입력
설치 위치에 따라 아날로그 유닛의 최초 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 |
해당 채널의 해상도를 설정합니다.
런타임 중에 이 값을 변경하지 마십시오. 그렇지 않으면 1s에 대한 변환이 부정확해집니다.
온도 단위를 설정합니다.
RTD 장치를 설정합니다.
이 설정은 DIP 스위치 설정과 일치해야 합니다.
출력
채널을 통해 아날로그 유닛에서 변환된 디지털 데이터를 반환합니다.
예:
열전대, 저해상도: 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입니다. 프로그래밍 시 이 기간 중에 얻은 데이터를 사용하지 마십시오.
RTD가 손상되면 디지털 값은 8191 또는 16383로 변경됩니다. 프로그래밍 시 손상된 RTD로 인한 모든 위험을 방지해 주십시오. 손상된 RTD를 교체해야 합니다.
DIP 스위치 설정은 전원이 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);