Explicación de las instrucciones de programación SCL del PLC Siemens

En programación SCL, en control lógico o análisis de procesamiento de datos, hay un tipo de instrucciones que más utilizamos que son las instrucciones de control de programa, como IF, Case, For y While. Lo explicaré detalladamente a continuación. Si tiene alguna pregunta, puede dejar un mensaje:

Figura 1 Instrucciones de control del programa

SI... ENTONCES instrucción

. La instrucción IF contiene tres ramas, respectivamente Then, Else y ElsIF.

Figura 2 Declaración IF

Figura 3 Condición de comparación de punto flotante

La declaración IF debería ser la declaración más utilizada en SCL y se usa a menudo para juicios condicionales. . El tipo de juicio puede ser un tipo BOOL, un tipo de punto flotante, etc. Básicamente se pueden juzgar todos los tipos, siempre que los dos tipos de variables que se comparan sean los mismos.

En la Figura 2, AByte es del tipo Byte. Debido a que 1 está entre 0..255, 1 se convertirá automáticamente al tipo Byte. ¿Cómo se vería si el tipo de Abyte que se compara fuera 256? Los lectores pueden escribir sus propios programas, probarlos y ver los resultados, lo que profundizará su comprensión de los tipos de datos.

En el programa anterior, primero, por ejemplo, si AByte es igual a 1, si es igual, el valor de Outvalue es 1, y luego se compara con 2, si es igual a 2, entonces el valor de OuValue es 2, si se cumplen las condiciones de OuValue El valor de salida es 5.

La declaración condicional IF anterior también se puede expresar con una declaración CASE. El tipo de comparación de CASE no es tan amplio como IF y solo se puede utilizar plástico como condición de comparación.

Instrucción CASE

Figura 4 Expresión CASE de la declaración IF

A partir de la expresión de la declaración CASE, encontramos que la declaración es más clara que la expresión IF. Es simple y claro, por lo que si necesita usar condiciones de configuración como criterio, intente usar CASE para lograrlo, lo que mejorará la eficiencia.

Instrucción FOR

La instrucción FOR se utiliza a menudo para procesar por lotes datos de tipo matriz. En la explicación anterior se dio un ejemplo un poco más complicado.

Figura 5 Sentencia del bucle FOR

En el programa FOR asignamos un valor a cada valor de índice del array, y al mismo tiempo determinamos la paridad del valor de índice a realizar la operación de asignación.

Figura 6 Declaración de bucle FOR 2

En el programa anterior, encontramos que hay una palabra clave Continuar. Cuando el bucle FOR ejecuta esta instrucción, el programa a continuación Continuar no lo será. ejecutado. Por lo tanto, cuando iCout es menor que 15, la instrucción de asignación AArray[iCount]:=iCount no se ejecutará.

Hay otra diferencia, es decir, hay una palabra clave adicional BY después de la declaración FOR. El significado de BY es que el intervalo de ejecución de For se ejecuta de acuerdo con la configuración de BY. Si se establece en 1 más tarde, se ejecutarán todos los 0..99; si se establece en 2, el orden de ejecución será 0, 2, 4, 6 y 8.

También podemos usar el bucle WHILE para implementar la instrucción del bucle FOR anterior.

Instrucción WHILE

Figura 7 Instrucción WHILE

La expresión del bucle WHILE y el tipo básico del bucle FOR, pero debemos prestar atención a una cosa When. variables de bucle enfrentadas aquí, Progreso manual. Sin esta oración, el valor de iCount siempre será 0, la condición del bucle iCountlt;100 siempre será Verdadera y el bucle WHILE siempre se ejecutará. Así que recuerde ejecutar esta declaración.

También notamos una palabra clave EXIT. Cuando se ejecuta esta instrucción, el bucle WHILE dejará de ejecutarse, y lo mismo ocurre con la instrucción FOR. Por lo tanto, cuando se ejecuta el programa anterior, la asignación de matriz solo se ejecuta hasta el final de AArray[81].

Instrucción GOTO

La instrucción goto se utiliza principalmente para ejecutar el proceso de salto, lo que puede aportar comodidad a las operaciones del programa y generalmente no se recomienda. Si se hace incorrectamente, alterará la lógica de todo el programa.

En la Figura 7, si iCount es mayor que 90, entonces el programa saltará del bucle WHILE y ejecutará el programa local de etiqueta lable13 especificado #iCount=0, y continuará ejecutando el bucle WHILE desde el comienzo. Por supuesto, esta operación no tiene sentido, aquí hay solo un ejemplo.