Vamos a tratar el funcionamiento en SCL TIA PORTAL IF para conocer paso a paso cómo utilizarlo en el código SCL, con su sentencia ELSE anidada y su otra sentencia ELSE IF para comprobar todas sus condiciones.

¿Para qué queremos utilizar la sentencia SCL TIA PORTAL IF?

En primer lugar, en SCL existen muchas sentencias muy útiles y rápidas de utilizar. Podemos encontrar comparadores como AND y NOT, y otro tipo de sentencias pare ejecutar bucles FOR, etc. Aquí nos vamos a centrar en estudiar el condicional IF de manera que vamos a ejecutar un proceso solamente SI se cumple una condición previa. Esa es la finalidad del IF.

N

Si se cumple una condición = ejecuta proceso.

N

Si no se ha cumplido la condición = no ejecuta el proceso.

Cómo insertar la función IF en el bloque.

Existen varias formas de añadir el condicional IF al programa en SCL. Una de ellas es un acceso directo representado como una caja con el símbolo IF, sencillo y rápido.

Sentencia SCL TIA PORTAL IF en el bloque FC para seleccionar

También tenemos la opción de buscar la función en el árbol de Instrucciones de TIA Portal, dentro de la pestaña de Instrucciones básicas. Entramos en la carpeta de “Control de programa” y aquí encontraremos las distintas formas de llamar a la sentencia IF.

Distintas sentencias IF en las instrucciones de SCL TIA Portal

Otra opción podría ser simplemente escribir directamente en el bloque SCL la sentencia If y automáticamente se abrirá una ventana donde se muestran las opciones de funciones a escoger.

Sentencia SCL TIA PORTAL IF con función de auto detección

Como utilizar la funcionalidad SCL TIA PORTAL IF.

A continuación, vamos a describir cómo utilizar las diferentes condiciones del IF. En primer lugar, llamamos a la sentencia IF. A continuación, le asignamos las condiciones en la llamada. Por consiguiente, si se cumplen estas condiciones seguirá leyendo en la línea siguiente de SCL.

Si se activa la variable se sigue leyendo en el código SCL

Por lo tanto, si la variable “Condicion1” está activada, entonces (“THEN”) sigue leyendo en la línea de abajo y meterá un 10 a la variable “Valor”. Finalmente, sigue leyendo en la siguiente línea “END_IF” y se acaba el proceso.

Si no tienes claro como asignar las variables, necesitas leer este otro documento donde aprenderás todo sobre las asignaciones en SCL:

En cambio, si la variable “Condicion1” no está activada, la sentencia IF no se cumple. Por lo tanto, automáticamente se salta a la última línea del IF, saltando a “END_IF” y, como consecuencia de esto, a la variable valor no se le meterá el valor 10.

Si no se cumple la condición de SCL TIA PORTAL IF saltará al final de la sentencia

¿Qué ocurre si anidamos la sentencia SCL TIA PORTAL IF con ELSE IF?

Ya conocemos como utilizar la sentencia simple de IF en SCL. A continuación, vamos a colocar otros condicionales anidados a éste IF, cuyo objetivo es realizar procesos distintos si no se cumple la condición inicial. En primer lugar, vamos a realizar la llamada a esta nueva sentencia, más larga que la vista anteriormente.

Utilizar IF junto con ELSEIF en SCL TIA Portal

Seguidamente tenemos que colocar las condiciones del mismo modo que hemos hecho en la sentencia IF. En cambio, ahora tenemos más secciones a rellenar, ya que tenemos que indicar qué ocurre en el proceso si la condición no se cumple.

Función SCL TIA PORTAL IF con ELSEIF

Como resultado, si la variable “Condición2” se activa, entonces salta a la siguiente línea y meterá un 10 en la variable “Valor”. Asimismo, una vez ha ejecutado este proceso, automáticamente saltara a la última línea llamada “END_IF” para acabar la sentencia.

Se ejecuta el primer IF

En cambio, si la variable “Condición2” está desactivada, no leerá la siguiente línea, sino que saltará al siguiente “ELSIF”. En este punto, si la variable “Condicion3” está activada seguirá leyendo la siguiente línea y pondrá un 5 en la variable “Valor”.

Se ejecuta ELSEIF en el programa SCL TIA PORTAL IF

Finalmente, solo nos queda la última opción para el programa SCL TIA PORTAL IF con ELSE. Por lo tanto, si la variable “Condicion2” está desactivada y la variable “Condicion3” está desactivada, saltará al ultimo “ELSE”. Por lo tanto, leyendo esta última línea, se meterá un 1 a la variable “Valor”.

Se cumple la sentencia ELSE en el programa

Si necesitas ver en acción un ejemplo real con SCL para controlar un motor, no te pierdas otro documento donde te lo explico al detalle. Podrás ver cómo controlar la marcha y paro, los sentidos de giro y las señalizaciones de error, funcionando con IF en SCL:

Desarrollado y publicado por www.tecnoplc.com. Licencia Creative Commons 4.0.Creative Commons pequeño