Invia i caratteri tramite porta CPU o MCU
Questa istruzione scrive il dato nel buffer di invio ed esegue F159_MTRN per inviare il dato. Il dato da inviare è applicato in sString. Il buffer di invio è una variabile VAR_IN_OUT applicata in SendBuffer. Se bSuppressEndCode è impostato su TRUE, il carattere terminatore selezionato nei registri di sistema non viene aggiunto alla stringa da trasmettere.
Contrariamente all'istruzione SendCharactersAndClearString, la variabile di stringa applicata in sString resta invariata.
Ingresso
Specifica le porte di comunicazione (in base al tipo di PLC):
Porta COM p.es. SYS_COM0_PORT
Porta Ethernet p.es. SYS_ETHERNET_USER_CONNECTION_1
MCU/SCU p.es. 16#xx01 (xx = numero slot) in COM01
Memorizza la stringa da trasmettere
Il carattere terminatore selezionato nei registri di sistema non viene aggiunto alla stringa da trasmettere.
Ingresso/uscita
Memorizza temporaneamente la stringa da trasmettere
Quando il numero di byte specificato è stato inviato, il flag "trasmissione conclusa" passa a TRUE. Possono essere inviati o ricevuti nuovi dati. Ogni istruzione di invio fa passare il flag "trasmissione conclusa" a FALSE e non possono essere ricevuti dati. La valutazione del flag "trasmissione conclusa" può essere utile nei casi in cui non ci si attende alcuna risposta, ad esempio con messaggi di broadcast.
se l'unità MCU non esiste nello slot specificato o se devono essere inviati zero byte.
se 16#8000 è specificato nella modalità MEWTOCOL-COM Master/Slave
se l'unità MCU non esiste nello slot specificato o se devono essere inviati zero byte.
se 16#8000 è specificato nella modalità MEWTOCOL-COM Master/Slave
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
bSend: BOOL:=FALSE;
(*activates function*)
sSendData: STRING[30]:='ABCDEFGH';
(*up to 30 chars*)
awSendBuffer: ARRAY [0..15] OF WORD:=[16(0)];
(*for 30 chars + 1 word*)
bSuppressEndCode: BOOL:=FALSE;
END_VAR
Se bSend passa da FALSE a TRUE, l'istruzione invia i caratteri di sSendData tramite la porta MCU 1. I caratteri vengono copiati nell'array awSendBuffer. awSendBuffer[0] è riservato al numero di caratteri della stringa da inviare.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_CONTACT,,bSend,9,1,11,3,R);
B(B_VARIN,,1,11,2,13,4,);
B(B_VARIN,,sSendData,11,3,13,5,);
B(B_VARIN,,awSendBuffer,11,5,13,7,);
B(B_VARIN,,bSuppressEndCode,11,4,13,6,);
B(B_F,E_SendCharacters!,,13,0,24,7,,?DEN?DPort?DsString?DbSuppressEndCode?DSendBuffer?ASendBuffer?AENO);
L(1,2,9,2);
L(11,2,13,2);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
if (DF(bSend)) then
SendCharacters(Port := 1, sString := sSendData, bSuppressEndCode := bSuppressEndCode, SendBuffer := awSendBuffer);
end_if;