用于写入到FP0-A04I单元的函数。
此函数将数字数据写入到模拟量单元的模拟量输出通道。要转换并输出为模拟量值的数字值在iOutChannel0至iOutChannel3中指定。
输入
根据模拟量单元的安装位置设置其首个WX/WY地址的偏移量。
对于直接连接到CPU的模拟量扩展单元(无适配器):使用ExpansionUnitToIOWordOffset_FP0或进行以下设置:2(WX2/WY2)用于单元编号1,4(WX4/WY4)用于单元编号2,6(WX6/WY6)用于单元编号3
对于通过适配器连接到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);