SendCharacters

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.

Paramètres

Entrée

Port (WORD, INT, UINT)

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

sString (STRING)

Enregistre la chaîne de caractères à envoyer

bSuppressEndCode (BOOL)

Le délimiteur sélectionné dans les registres système n’est pas ajouté à la chaîne de caractères à envoyer.

Entrée/sortie

SendBuffer (ANY)

Enregistre temporairement la chaîne de caractères à envoyer

Remarques

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.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si le module MCU n’existe pas dans le connecteur spécifié

  • Si 16#8000 est indiqué en mode MEWTOCOL-COM maître / esclave.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si le module MCU n’existe pas dans le connecteur spécifié

  • Si 16#8000 est indiqué en mode MEWTOCOL-COM maître / esclave.

Exemple

En-tête du POU

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

Corps en LD

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

Corps en ST

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

Modifié le : 2022-01-17Commentaires sur cette pageAssistance téléphonique