Interpretación de instrucciones de programación SCL del PLC Siemens
Figura 1 Instrucciones de control del programa
Instrucción Si...Entonces
La instrucción IF contiene tres ramas , es decir, 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 booleano, punto flotante, etc. Básicamente se pueden juzgar todos los tipos, siempre que las dos variables comparadas sean del mismo tipo.
En la Figura 2, AByte es un tipo de byte. Debido a que 1 está entre 0 y 255, 1 se convertirá automáticamente en un tipo de byte. ¿Cómo se vería si el tipo Abyte fuera 256? Los lectores pueden escribir sus propios programas y probarlos para 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 así, 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 ambos Si se cumple la condición, el valor de salida de OuValue es 5.
La declaración condicional IF anterior también se puede expresar con una declaración CASE. Los tipos de comparación de CASE no son tan amplios como los de IF y solo se puede utilizar la configuración como condición de comparación.
Enseñanza de casos
Figura 4 Expresión CASE de la declaración if
A partir de la declaración CASE, encontramos que la declaración es más clara y simple que la expresión IF, por lo que Si es necesario utilizar las condiciones de configuración como criterio, intente utilizar CASE para lograrlo, lo que mejorará la eficiencia.
A modo de orientación
La instrucción FOR se suele utilizar para datos de tipo matriz por lotes. En la conferencia anterior se dio un ejemplo. Aquí hay 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 asignar un valor.
Figura 6 Instrucción de bucle 2
En el programa anterior, encontramos que hay una palabra clave Continuar. Cuando el bucle FOR ejecuta esta declaración, el programa debajo de Continuar no se ejecutará. 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. Indicando que el intervalo de ejecución 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 es 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 hay una cosa a tener en cuenta. Aquí, las variables del bucle se incrementan manualmente. Sin esta oración, el valor de icount es siempre 0 y la condición de bucle iCount
También notamos una palabra clave EXIT. Cuando se ejecuta esta instrucción, el bucle WHILE dejará de ejecutarse y la instrucción FOR también dejará de ejecutarse. Por lo tanto, cuando se ejecuta el programa anterior, la asignación de la 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 la operación del programa y generalmente no se recomienda. Una operación incorrecta interrumpirá la lógica de todo el programa.
En la Figura 7, si iCount es mayor que 90, el programa saltará del bucle WHILE, ejecutará el programa #iCount=0 en la etiqueta especificada de la etiqueta 13 y continuará ejecutando el bucle WHILE desde el principio. Por supuesto, esta operación no tiene sentido. Aquí hay sólo un ejemplo.