SET_CHAR

Escribir un valor de carácter en la posición especificada de una cadena

Esta función establece el valor de carácter de 8 bits de sString con iPosition indicando la posición del carácter en la cadena, donde 1 es el primer carácter de la cadena.

Entrada

Value (WORD, DWORD)

Los datos de entrada a partir de los cuales se escribe el valor de byte de menor peso en los datos de caracteres

iPosition (INT, DINT, UINT, UDINT)

Posición del carácter en la cadena, donde 1 es el primer carácter de la cadena, debe ser mayor o igual a 1

Entrada/salida

sString (STRING)

Cadena en la que se asigna el carácter

Observaciones

  • Comprobar la validez de los datos introducidos, ya que Control FPWIN Pro7 no comprueba la validez de los datos a los que se accede.

  • Comprobar que la posición especificada no supera el número máximo de caracteres o es superior al número de caracteres actual.

  • Cuando se aplica una función SET_CHAR a una cadena, la longitud de ésta, es decir, el número actual de caracteres de la cadena, no se modifica. En caso de que sea necesario modificar la longitud de la cadena, utilizar la función SET_LEN.

NOTA

Para conseguir el mejor rendimiento, utilizar valores de entrada constantes en la medida de lo posible.

Ejemplo

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

	VAR
		bStart: BOOL:=FALSE;
		sInputString: STRING[32]:='ABCDabcd';
	END_VAR

Cuerpo LD

Cuando la variable bStart se encuentra a TRUE, se ejecuta la función.

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

Cuerpo en ST

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

Modificado el: 2025-03-12Comentarios sobre esta páginaLínea directa de Panasonic