Envoyer des caractères via le port de la CPU ou du module MCU
Cette instruction écrit des données dans le tampon de transmission et exécute F159_MTRN pour envoyer les données. Les données à envoyer sont appliquées à sString. Le tampon de transmission est une variable VAR_IN_OUT appliquée à SendBuffer. Si bSuppressEndCode est définie sur TRUE, le délimiteur sélectionné dans les registres système n’est pas ajouté à la chaîne de caractères à envoyer.
À l’inverse de l’instruction SendCharactersAndClearString, la variable chaîne de caractères appliquée à sString reste inchangée.
Entrée
Indique les ports de communication (selon le type d’API) :
Port COM, par ex. SYS_COM0_PORT
Port Ethernet, par ex. SYS_ETHERNET_USER_CONNECTION_1
MCU/SCU, par ex. 16#xx01 (xx = numéro du connecteur) dans COM01
Enregistre la chaîne de caractères à envoyer
Le délimiteur sélectionné dans les registres système n’est pas ajouté à la chaîne de caractères à envoyer.
Entrée/sortie
Enregistre temporairement la chaîne de caractères à envoyer
Lorsque le nombre d’octets spécifié a été envoyé, le drapeau "Transmission terminée" devient TRUE. De nouvelles données peuvent être envoyées ou reçues. Toute instruction d’envoi fait passer le drapeau "Transmission terminée" à FALSE et aucune donnée ne peut être reçue. L’évaluation du drapeau "Transmission terminée" est recommandée lorsque aucune réponse n’est attendue, par ex. les messages de broadcast.
Si le module MCU n’existe pas dans le connecteur spécifié
Si 16#8000 est indiqué en mode MEWTOCOL-COM maître / esclave.
Si le module MCU n’existe pas dans le connecteur spécifié
Si 16#8000 est indiqué en mode MEWTOCOL-COM maître / esclave.
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
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
Si bSend passe de FALSE à TRUE, l’instruction envoie les caractères de sSendData via le port du module MCU 1. Les caractères sont copiés vers le tableau (Array) awSendBuffer. awSendBuffer[0] est réservé pour le nombre de caractères de la chaîne de caractères à envoyer.
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;