Siemens SIMATIC S7-SCL V5.3 Manual página 48

Tabla de contenido
Diseñar un programa S7-SCL
Área de instrucciones
El área de instrucciones del bloque lógico presenta la siguiente estructura:
BEGIN
(*******************************************************************
Parte 1 : 'Adquisicion' de 'valores_medidos'
Al cambiar "nue_val" se produce la entrada del valor medido.
Con la operación MOD se ejecuta un búfer de circulación para valores
medidos.
*******************************************************************)
IF nue_val <> ant_val THEN
puntero
valores_medidos[puntero] := Intr_val_med;
puntero
END_IF;
ant_val := nue_val;
(*******************************************************************
Parte 2 : Iniciar 'Clasificación' y 'Cálculo'
Al cambiar "nue_clas" se inicia la clasificación del búfer de
circulación y la ejecución
de los cálculos con los valores medidos. Los resultados se guardan
en un nuevo array, "bufer_calculo". *)
IF nue_clas <> ant_clas THEN
puntero := 0;
valorar_instancia(bufer_clasif := valores_medidos);
END_IF;
ant_clas
bufer_resultado := valorar_instancia.bufer_calculo; //cuadrado y
raiz
(******************************************************************
(* Parte 3 : Valorar código y preparar salida:
Al cambiar "nue_sel" se determina de nuevo el código para el
direccionamiento del elemento de array para la salida: Los datos
relevantes de 'seleccion' se ocultan y se transformen en
entero. Dependiendo de la posición del interruptor de "sel_funcion"
en la salida se dispondrá
(******************************************************************)
IF nue_sel <> ant_sel THEN
direccion := WORD_TO_INT(SHR(IN := seleccion, N := 12) AND
16#0007);
END_IF;
ant_sel := nue_sel;
IF sel_funcion THEN
sal_resultado:= bufer_resultado[direccion].cuadrado;
ELSE
sal_resultado:= bufer_resultado[direccion].raiz;
END_IF;
sal_v_med
medido
END_FUNCTION_BLOCK
3-22
//Inicializar puntero del búfer
//de circulación
//Llamar evaluacion
:= valores_medidos[direccion]; //indicación del valor
:= puntero MOD NUMERO;
:= puntero + 1;
:= nue_clas;
"RAIZ" o "CUADRADO" *)
S7-SCL V5.3 para S7-300/400
A5E00324652-01
Tabla de contenido
loading

Tabla de contenido