SET_CHAR

Écrire la valeur d’un caractère à sa position spécifiée dans une chaîne de caractères

Cette fonction écrit la valeur 8 bits du caractère de sString avec iPosition spécifiant la position du caractère dans la chaîne de caractères, 1 étant le premier caractère de la chaîne de caractères.

Entrée

Value (WORD, DWORD)

Données d’entrée à partir desquelles la valeur de l’octet de poids faible est écrite dans les données de caractères.

iPosition (INT, DINT, UINT, UDINT)

Position du caractère dans la chaîne de caractères, 1 étant le premier caractère de la chaîne de caractères, la position doit être supérieure ou égale à 1.

Entrée/sortie

sString (STRING)

Chaîne de caractères dans laquelle le caractère est écrit

Remarques

  • Vérifiez la validité des données d’entrée, car Control FPWIN Pro7 ne contrôle pas la validité des données lues ou écrites.

  • Vérifiez que la position spécifiée n’est pas supérieure au nombre maximum de caractères ou au nombre actuel de caractères.

  • Lorsque la fonction SET_CHAR est appliquée à une chaîne de caractères, la longueur de la chaîne de caractères, c.-à-d. le nombre actuel de caractères dans la chaîne de caractères, n’est pas modifiée. Si la longueur de la chaîne de caractères doit être modifiée, utilisez la fonction SET_LEN.

NOTA

Pour obtenir les meilleures performances, utilisez des valeurs d’entrée constantes autant que possible !

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
		bStart: BOOL:=FALSE;
		sInputString: STRING[32]:='ABCDabcd';
	END_VAR

Corps en LD

La fonction est exécutée lorsque la variable bStart est définie sur TRUE.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_CONTACT,,bStart,4,3,6,5,);
B(B_F,E_SET_CHAR!,,14,2,22,8,,?DEN?DValue?DiPosition?DsString?AsString?AENO);
B(B_VARIN,,77,12,4,14,6,);
B(B_VARIN,,8,12,5,14,7,);
B(B_VARIN,,sInputString,12,6,14,8,);
L(1,0,1,8);
L(1,4,4,4);
L(6,4,14,4);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

if (bSTart) then
	SET_CHAR(Value := 77, iPosition := 8, sString := sInputString);
end_if;

Modifié le : 2025-03-06Commentaires sur cette pageAssistance téléphonique