SendCharacters

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.

Parametri

Ingresso

Port (WORD, INT, UINT)

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

sString (STRING)

Memorizza la stringa da trasmettere

bSuppressEndCode (BOOL)

Il carattere terminatore selezionato nei registri di sistema non viene aggiunto alla stringa da trasmettere.

Ingresso/uscita

SendBuffer (ANY)

Memorizza temporaneamente la stringa da trasmettere

Note

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.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • 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

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • 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

Esempio

Intestazione del POU

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

Corpo LD

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

Corpo ST

if (DF(bSend)) then
    SendCharacters(Port := 1, sString := sSendData, bSuppressEndCode := bSuppressEndCode, SendBuffer := awSendBuffer);
end_if;

L'ultima revisione: 2022-04-19Feedback su questa paginaPanasonic hotline