While_Do - Rockwell Automation Allen-Bradley Logix 5000 Serie Manual De Referencia

Tabla de contenido

Publicidad

Programación de texto estructurado
Si se lleva a cabo lo siguiente,
El lazo REPEAT_UNTIL ejecuta las declaraciones de la
construcción y después determina si el valor de las
condiciones es verdadero antes de volver a ejecutar las
instrucciones. Esto se distingue del lazo WHILE_DO
porque este evalúa sus condiciones primero.
Si el valor de las condiciones es verdadero, el
controlador ejecuta las instrucciones que se encuentren
dentro del lazo. Las instrucciones de un lazo
REPEAT_UNTIL siempre se ejecutan al menos una vez.
Puede que las instrucciones de un lazo WHILE_DO
nunca lleguen a ejecutarse.
Si se lleva a cabo lo siguiente,
Mover caracteres ASCII de una matriz SINT a una
etiqueta de cadena. (En una matriz SINT, cada
elemento contiene un carácter.) Deténgase cuando
alcance el retorno de carro.
Inicializar Element_number a 0.
Cuente el número de elementos en SINT_array (matriz
que contiene los caracteres ASCII) y almacene el
resultado en SINT_array_size (etiqueta DINT).
Establecer String_tag[element_number] = el carácter en
SINT_array[element_number].
Añadir 1 al valor de element_number. Esto deja que el
controlador compruebe el siguiente carácter de
SINT_array.
Establecer el miembro Length de String_tag =
element_number. (Esto registra el número de carácteres
que hay en String_tag hasta el momento).
Si element_number = SINT_array_size, a continuacion
se detiene. (Se encuentra al final de la matriz y no
contiene un retorno de carro).
Si el carácter en SINT_array[element_number] = 13
(valor decimal del retorno de carro), parar.

WHILE_DO

Publicación de Rockwell Automation 1756-RM003T-ES-P - Noviembre 2018
Ejemplo 1
Introduzca este texto estructurado
pos := -1;
REPEAT
pos := pos + 2;
UNTIL ((pos = 101) OR (structarray[pos].value = targetvalue))
end_repeat;
Ejemplo 2
Introduzca este texto estructurado
element_number := 0;
SIZE(SINT_array, 0, SINT_array_size);
Repeat
String_tag.DATA[element_number] :=
SINT_array[element_number];
element_number := element_number + 1;
String_tag.LEN := element_number;
If element_number = SINT_array_size then
exit;
end_if;
Until SINT_array[element_number] = 13
end_repeat;
Use el lazo WHILE_DO para seguir realizando una acción mientras el valor de
ciertas condiciones sea verdadero.
Operandos
WHILE bool_expression DO
<statement>;
Capítulo 24
951

Publicidad

Tabla de contenido
loading

Tabla de contenido