用于写入到FP0-A04V单元的函数。
此函数将数字数据写入到模拟量单元的模拟量输出通道。要转换并输出为模拟量值的数字值在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 |
设置要由模拟量单元转换和输出的数字值。
值:-2000至+2000
输出
单元状态: 电源打开时为TRUE。
通道状态: 出现错误时为TRUE。
数字值 (INT) |
模拟量值 |
---|---|
-2000 |
-10,0V |
-1500 |
-7,5V |
-1000 |
-5,0V |
-500 |
-2,5V |
0 |
0,0V |
+500 |
+2,5V |
+1000 |
+5,0V |
+1500 |
+7,5V |
+2000 |
+10,0V |
此命令描述仅提供基本硬件文档。有关详细的技术信息,请参阅手册:
所有用于编程此函数的输入和输出变量已在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_A04V!,,18,0,32,7,,?DiIOWordOffset?DiOutChannel0?DiOutChannel1?DiOutChannel2?DiOutChannel3?CbPowerIsOn?CbErrorChannel0?CbErrorChannel1?CbErrorChannel2?CbErrorChannel3);
B(B_VARIN,,2,16,1,18,3,);
B(B_VAROUT,,bPowerIsOn,32,1,34,3,);
B(B_VARIN,,iAnalog_Out_Ch0,16,2,18,4,);
B(B_VAROUT,,bErrorChannel0,32,2,34,4,);
B(B_VARIN,,iAnalog_Out_Ch1,16,3,18,5,);
B(B_VAROUT,,bErrorChannel1,32,3,34,5,);
B(B_VARIN,,iAnalog_Out_Ch2,16,4,18,6,);
B(B_VAROUT,,bErrorChannel2,32,4,34,6,);
B(B_VARIN,,iAnalog_Out_Ch3,16,5,18,7,);
B(B_VAROUT,,bErrorChannel3,32,5,34,7,);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Unit_AnalogOutput_FP0_A04V(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);