返回带有偏移量的输入或输出地址
此函数在基本函数的输入或输出处返回带有偏移量的变量地址。
输入
此引脚必须连接到允许数据类型为INT、WORD的基本函数的输入/输出
生成输入/输出变量的16位偏移量地址
需要16位偏移量地址的输入/输出变量
输出
需要16位最终地址的输出变量
从输入/输出Var中的变量,在输入/输出Adr中生成由输入/输出Offs中的给定值所引出的16位地址。此输入或输出必须直接连接到基本函数的16位输入或输出。此函数只能作用于字符串的应用数据,即不带字符串头的字符。
仅限LD和FBD编辑器:使用[指令]窗格中的[输入指令]或[输出指令]将所需指令插入编程窗口。
在全局变量列表中,定义项目中所有POU都可以访问的变量。
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR_EXTERNAL
ReceiveBuffer: ARRAY [0..15] OF WORD:=[16(0)];
END_VAR
VAR
Receive: BOOL:=FALSE;
ReceiveString: STRING[30]:='';
END_VAR
VAR CONSTANT
StringTotLenPos: INT:=0;
StringActLenPos: INT:=1;
StringHeaderSize: INT:=2;
END_VAR
VAR
@'': @'';
END_VAR
当设置了Receive且接收到接收结束字符,即设置了R9038时,通过串行接口接收的缓冲区ReceiveBuffer中的字符被复制到字符串ReceiveString的应用数据区域。接收到的字符数存储在ReceiveBuffer[0]中;后跟接收到的字符串的字符。因此,ReceiveBuffer可从此位置直接被复制到字符串的这个区域中。(请参阅数据类型STRING。)必须根据系统寄存器417和418中的设置在全局变量列表中分配缓冲区ReceiveBuffer的位置(有关详细信息,请参阅设置用于CPU的接收缓冲区)。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 10 ;
NETWORK_BODY
B(B_COIL,,sys_bIsComPort1ReceptionDone,7,1,9,3,);
B(B_CONTACT,,Receive,16,1,18,3,);
B(B_F,F10_BKMV!,Instance,20,0,28,5,,?DEN?Ds1_Start?Ds2_End?AENO?Cd_Start);
B(B_VARIN,,ReceiveBuffer[0],18,2,20,4,);
B(B_VARIN,,ReceiveBuffer[15],18,3,20,5,);
B(B_F,Adr_Of_VarOffs_I!,Instance,20,6,29,10,,?D@'Var'?DOffs?CAdr);
B(B_VARIN,,StringActLenPos,18,8,20,10,);
B(B_VAROUT,,ReceiveString,29,7,31,9,);
L(1,2,7,2);
L(9,2,16,2);
L(18,2,20,2);
L(28,3,28,6);
L(20,6,28,6);
L(20,6,20,8);
L(1,0,1,10);
END_NETWORK_BODY
END_NET_WORK
END_BODY