Restituisce l'indirizzo di ingresso o di uscita con offset
Questa funzione restituisce l'indirizzo di una variabile con offset all'ingresso o all'uscita di una funzione base.
Ingresso
Questo pin deve essere collegato all'I/O di una funzione base per cui sia ammesso il tipo di dato INT, WORD
Restituisce l'indirizzo offset a 16 bit della variabile di I/O
Variabile di I/O per la quale è necessario l'indirizzo offset a 16 bit
Uscita
Variabile di uscita per la quale è necessario l'indirizzo finale a 16 bit
Dalla variabile sull'I/O Var, l'indirizzo a 16 bit, incrementato del valore specificato nell'I/O Offs, viene restituito sull'I/O Adr. Questo ingresso o uscita deve essere collegato direttamente all'ingresso o uscita a 16 bit di una funzione base. Questa funzione può essere utilizzata solo per lavorare con i dati effettivi di una stringa, ossia con i caratteri senza l'intestazione di stringa.
Solo per LD e FBD editor: Utilizzate “Istruzione ingresso” o “Istruzione uscita” nella finestra ancorabile “Istruzioni” per inserire l'istruzione richiesta nella finestra di programmazione.
Nella lista variabili globali si definiscono variabili alle quali possono accedere tutti i POU del progetto.
Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
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
Quando Receive va a TRUE e il carattere di fine ricezione viene ricevuto, ossia R9038 va a TRUE, i caratteri nel buffer ReceiveBuffer ricevuti tramite l'interfaccia seriale vengono copiati nell'area dati effettivi della stringa ReceiveString. Il numero dei caratteri ricevuti viene memorizzato in ReceiveBuffer[0]; seguono quindi i caratteri della stringa ricevuti. Perciò, ReceiveBuffer può essere copiato direttamente in quest'area della stringa da questa posizione (vedere il tipo di dato STRING). La posizione del buffer ReceiveBuffer deve essere allocata nella lista variabili globali in base alle impostazioni nei registri di sistema 417 e 418 (per informazioni dettagliate, vedere Impostare il buffer di ricezione per la 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