Consejos para programar secuencias (3)

Esta entrada es continuación de Consejos para programar secuencias (2)

  • El lenguaje no es barrera
    Los PLC de gama baja no suelen contar con un entorno de desarrollo en SFC. Esto no debe ser un obstáculo para programar una secuencia. Veamos cómo se hace. Para ello nos vamos a basar en la siguiente secuencia. En ella, después del primer paso, se pueden seguir dos caminos alternativos: o bien se continúa por los pasos 2 y 3, o bien se lanzan dos procesos paralelos (las subsecuencias 4-5 y 6-7). En todo caso, se termina siempre en el paso 8.
    no-hay-barrera-1
    Si los puristas me perdonan, una secuencia es lo que en informática se denomina una máquina de estados o un autómata finito. Cada uno de los estados (pasos) puede representarse por un bit, que estará activo o desactivado. En la situación inicial todos los estados están desactivados. Cuando se cumple la condición C_0_1, entramos en el primer paso, lo cual se hace activando S_1 y desactivando INICIO:
    no-hay-barrera-2
    Para avanzar del paso 1 al 2 tiene que cumplirse la condición C_1_2. Se programa así:
    no-hay-barrera-3
    Pero también es posible, como se ha comentado, iniciar dos subsecuencias (pasos 4 y 6), si se cumple la condición C_1_4y6:
    no-hay-barrera-4
    Y de forma similar se va gestionando el flujo de la secuencia. Represento a continuación el paso 8, que puede parecer uno de los más complejos, al accederse de diferentes formas:
    no-hay-barrera-5
    Como se puede observar, este método nos permite construir cualquier secuencia con lenguajes disponibles en controladores de bajo nivel. Eso sí, hay que ser muy cuidadoso en la traducción, puesto que un error puede con facilidad hacer que su marcha se detenga, o activar simultáneamente dos pasos incompatibles. Además, el desarrollo y la depuración resultan muy engorrosos.
  • Índices
    Una alternativa a los bits antes comentados es emplear un registro en la memoria como índice del paso que se está siguiendo. Es decir, una cierta variable almacena los valores 1, 2, 3, 4…, y se incrementa conforme se avanza en la secuencia. En función de dicho valor, se realizan unas acciones u otras. Si se requieren subsecuencias, se emplean varios índices. Tienen el inconveniente de tener que recurrir a comparaciones para conocer el paso activo, y la ventaja de que evitan de forma natural extravíos en la evolución. Personalmente prefiero el uso de bits, pero debo reconocer que las razones son conceptuales, si no estéticas.

Esta entrada continúa en Consejos para programar secuencias (4)

Facebooktwitterlinkedin