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);