Portada » Informática » Controladores Lógicos Programables: Fundamentos y Aplicaciones
Un Controlador Lógico Programable (PLC) es un dispositivo electrónico basado en un microprocesador (CPU: Unidad Central de Proceso) que permite el control automático de máquinas y procesos industriales. Al ser programable, ofrece un gran potencial y flexibilidad, ya que se puede adaptar a distintas situaciones de control. No obstante, una vez dotado de un programa, se convierte en un equipo específico acoplado al proceso mediante sus entradas y salidas.
El programa de control se almacena en una memoria interna de tipo EEPROM (E2PROM), permaneciendo en la misma aún cuando el equipo queda sin alimentación. Si el equipo se apaga, el programa de control del usuario no se pierde, de modo que cuando se enciende nuevamente, arranca desde el principio.
El cerebro de un autómata programable es la CPU, la cual es la encargada de tomar (leer) las órdenes que constituyen el programa, interpretarlas y ejecutar las acciones correspondientes, realizar cálculos, leer entradas y activar salidas, además de otras acciones internas.
Otra parte importante de un autómata es la MEMORIA, es decir, el lugar donde se guardan los datos, parámetros y el programa de control. El PLC dispone básicamente de dos tipos de memoria: una llamada EEPROM (E2PROM) no volátil y otra llamada RAM que es volátil. La volatilidad es la propiedad que tienen los dispositivos de memorización de perder la información almacenada cuando se corta la alimentación eléctrica.
De lo dicho en el párrafo anterior se puede inferir que existen datos que pueden perderse sin ocasionar problemas al funcionamiento global, mientras que existen otros datos, al igual que el programa, que no se pueden perder con un corte de alimentación o por una detención para mantenimiento.
El PLC se comunica con el proceso mediante las ENTRADAS y las SALIDAS. Las entradas son el medio a través del cual el PLC lee las variables del mundo exterior para conocer su estado. Las salidas son el medio por el cual el PLC actúa sobre el proceso. Tanto las entradas como las salidas pueden clasificarse en dos tipos:
Otro aspecto importante a tener en cuenta es la posibilidad de comunicación con otros PLCs o PCs formando sistemas Maestro-Esclavo, peer to peer o bien una red supervisada por computadora o PLC de mayor potencial. Los PLCs se pueden conectar de tal forma que cada uno tenga asignada una determinada tarea y se comunique con otro enviando o recibiendo información. La interconexión de varios PLCs se realiza mediante alguna de las normas de transmisión serial RS485 /RS422 o bien mediante un sistema de red normalizado a través de un BUS INDUSTRIAL.
Las salidas de un PLC son de distintos tipos y se adaptan a distintas necesidades, tal es así, que se dispone de tres tipos de salidas:
Por otro lado, por ser el PLC un dispositivo electrónico, requiere de alimentación para su funcionamiento, la cual puede ser alterna 220V, 110V o bien continua de 24V. En el caso de alimentación alterna, el PLC dispone de una fuente conmutada que convierte la tensión alterna en una continua, adecuada para los componentes internos del PLC.
Las entradas pueden ser de CA o de CC, algunos PLC proveen alimentación para los sensores de campo.
La programación es la operación de trasladar, a través del software adecuado, la lógica de control a una secuencia de órdenes interpretables y ejecutables por el autómata. La misma se puede realizar a través de una PC o bien mediante una unidad de programación (PGU).
Un lenguaje de programación es una forma de codificación que permite trasladar un problema físico a una forma lógica, esto es, convertir una lógica cableada a una secuencia de órdenes interpretables por la CPU del autómata. Existen distintos tipos de lenguajes, siendo los más comunes el de diagramación KOP (diagrama de contactos, también llamado LADDER) y AWL (STL listado de instrucciones, el cual se asemeja a un lenguaje ensamblador donde cada orden está representada por un mnemónico, 2 o más letras que representan las siglas de una operación, por ejemplo, establecer un contacto normal abierto: LD I0.0, esta orden crea un contacto normalmente abierto cuyo nombre es I0.0). Otros lenguajes de programación son GRAFCET y FLUJOGRAMA, etc., estos son lenguajes gráficos. Cada lenguaje se adapta a distintos niveles de complejidad y tipos de control.
El programa, los datos y parámetros manipulados por el PLC se almacenan en un sector del PLC denominado MEMORIA. La memoria puede ser de dos tipos básicamente:
Ambas memorias tienen características que las diferencian. En principio, cualquiera de las dos memorias mencionadas consiste en un dispositivo electrónico capaz de almacenar en forma de niveles eléctricos (contactos o relés lógicos), representados por 1 (unos) 5V y 0 (ceros) 0 volt, accesibles en forma individual, o de grupos con tamaños estandarizados: byte (8), palabra (16), doble palabra (32).
Igualmente, los datos o parámetros que requiere el programa se codifican como una secuencia de niveles eléctricos que son retenidos por la memoria de usuario (RAM) en sus contactos internos.
Estos dispositivos se alimentan eléctricamente y es lógico pensar que cuando se corta la alimentación se perderán datos y programas. Esta situación no es adecuada para el caso de parámetros y del programa, ya que cada vez que se produjera un corte habría que cargarlos nuevamente. Esto no sucede debido al tipo de memoria en que se almacenan los programas, parámetros y datos importantes se guardan en una memoria permanente, esta memoria se denomina EEPROM, la misma no pierde los datos cuando no está alimentada. La sigla EEPROM tiene el siguiente significado:
ELECTRICALY ERESABLE PROGRAMABLE READ ONLY MEMORY
Esto es: Memoria de Solo Lectura Programable y Borrable Eléctricamente. Este tipo de memoria, una vez grabada se convierte en ROM (memoria de solo lectura), es decir, que su contenido no se podrá modificar ni se perderá cada vez que se apague el PLC.
Por el contrario, el otro tipo de memoria existente en un PLC es la memoria RAM. Esta es una memoria que puede leerse y escribirse tantas veces como se requiera, es decir, la memoria RAM es volátil, perdiendo los datos cuando se suspende la alimentación eléctrica, por ello, este tipo de memoria se utiliza para almacenar variables transitorias o valores tales como el estado de cuenta de un contador, el tiempo acumulado por un temporizador o el estado de las entradas-salidas, etc.
Por lo general, es práctica común respaldar la memoria RAM ante fallas de corta duración mediante una pila TAMPON o bien un capacitor de potencia, lo cual permite retener los datos residentes en memoria RAM durante varios días.
En general, un PLC puede disponer de los siguientes tipos de memoria de acuerdo a las operaciones básicas de acceso a la misma (escritura y lectura), de aquí surge que se pueden encontrar los siguientes tipos de memoria:
Las unidades o módulos de expansión son adicionales y se conectan a la unidad principal (unidad base) mediante un bus (conjunto de cables). Estas unidades de expansión, como su nombre lo indica, permiten ampliar la cantidad y el tipo de entradas salidas. Por ejemplo, por lo general, en la Unidad Base de un PLC no se dispone de entradas o salidas analógicas, las mismas se incorporan a través de módulos de E o S analógicas. Para el caso de las entradas salidas digitales, en caso de requerir ampliación, también se recurrirá a módulos. En los módulos se pueden combinar entradas/salidas o bien entradas o salidas. Para PLCs grandes, más de 1000 E/S, los módulos se montan en RACKs y además permiten incorporar al PLC funciones especiales.
Algunos PLCs traen incorporadas funciones de control especializadas, como por ejemplo control proporcional P, PD, PID, funciones logarítmicas, radicación, etc., las cuales están incorporadas mediante módulos.
Cuando se piensa en una estructura de automatización eficiente, hablamos del control descentralizado o distribuido, donde se distribuyen los distintos autómatas en diversos lugares de la planta, siendo los mismos supervisados por un PLC de mayor envergadura. Por ejemplo, se puede disponer de una red de PLCs S7200, supervisados por un PLC S7300. Existe la posibilidad de que a su vez los PLCs se comuniquen entre sí al mismo nivel, intercambiando información.
En función de la cantidad de E/S, los PLCs se pueden clasificar aproximadamente en:
De acuerdo a la construcción, los PLCs se pueden clasificar en PLC integrales o compactos, estos no admiten posibilidades de expansión y en la unidad base integran varias de las funciones del PLC (UNIDAD BASE). En esta versión es posible incorporar módulos adicionales de E/S digitales en un número limitado, por ejemplo, para el caso del MICRO PLC s7200, CPU 212 de SIEMENS admite hasta dos módulos de expansión para E/S digitales, la CPU 214 admite hasta 7 módulos de expansión.
A diferencia de los anteriores, los PLC modulares están formados por módulos que se van incorporando a un RACK (Armarios de Conexión). En estos, el módulo principal está constituido por una o más CPUs, y a este módulo se van adosando los módulos de salidas, módulos de entradas, otros periféricos conectados vía buses. La característica principal de este tipo de PLCs es su funcionalidad, ya que se pueden ir incorporando los módulos de acuerdo a las necesidades.
Los sistemas de lógica cableada están formados por un conjunto de relés y contactos auxiliares asociados, cableados entre sí para lograr una determinada función de mando. La lógica ejecutada por los mismos está dada por el diagrama de cableado y la forma de interconexión entre los contactos, las bobinas de los relés y los sensores y actuadores de campo como fines de carrera, actuadores, posicionadores, electro válvulas, etc.
En una lógica programable, el cableado, los contactos auxiliares y la lógica de interconexión se representa por un programa, almacenado en la memoria del PLC, el cual determina la secuencia en la cual son interrogadas las entradas y a qué salidas se asignará el resultado de la evaluación de las mismas.
El hecho de que sea programable, implica la posibilidad de modificar la lógica del PLC sin realizar cambios profundos en el cableado eléctrico. No es físico sino que es un programa modificable.
Lógica cableada
PROGRAMA
SENSORES DE CAMPO
PLC
MEMORIA
PROCESO
El PLC interroga las entradas digitales detectando si existe nivel de tensión o no. Esto da lugar a dos estados posibles de las entradas claramente distinguibles:
A este tipo de señales o aquellos dispositivos que solo pueden adoptar dos estados diferenciados no simultáneos se los denomina BINARIOS. De esta manera el contacto de un relé, un pulsador, un fin de carrera, etc. son dispositivos binarios. El PLC internamente solo puede manipular este tipo de información, por lo cual nos detendremos a revisar en forma breve el sistema binario y algunos de sus términos.
Aludiendo al PLC, las entradas como las salidas digitales se pueden considerar individualmente como puntos o contactos o bien en grupos. Cuando se toman las entradas en forma de puntos individuales, cada uno se puede asociar a un BIT (dígito binario), un bit puede adoptar dos valores posibles, estos son 0 o 1.
Los bits se pueden agrupar en cantidades estándar, los PLCs pueden utilizar los siguientes grupos:
A su vez podemos establecer la siguiente relación entre los grupos:
1DW——->2W———>4B
1W———> 2B
Según lo anterior podríamos decir que un byte de entrada al PLC estaría dado por un conjunto de las 8 entradas consecutivas: I0.0, I0.1, I0.2, I0.3, I0.4, I0.5, I0.6, e I0.7. El PLC puede procesar cada uno de los grupos mencionados como una unidad. Luego el PLC podrá operar con entradas, salidas, u otros elementos internos en forma individual (contacto simple) o bien con grupos como BYTE, PALABRA o DOBLE PALABRA.
La siguiente figura representa en forma gráfica la relación entre los grupos mencionados y sus componentes significativos:
bMS
BYTE BYTE
PALABRA BMS Bms
D. PALABRA BMS Bms
WMS Wms bms
Dónde:
El PLC es un dispositivo electrónico digital, esto es, internamente todo lo codifica en base a dos estados posibles, esto es, trabaja en base al SISTEMA BINARIO, por lo tanto cualquier número debe ser representado por una combinación de dígitos que solo podrán adoptar dos valores posibles: 1 o 0.
Podemos decir que un sistema de numeración queda definido por tres atributos:
Normalmente en nuestra vida cotidiana utilizamos el sistema de numeración decimal, el cual consiste en un conjunto de 10 dígitos: 0,1,2,3,4,5,6,7,8 y 9, a este conjunto se le denomina BASE, ya que constituyen el conjunto de dígitos básicos que da sustento al sistema de numeración. Los atributos según lo anterior del sistema decimal serían:
Para el sistema de numeración binario los atributos son:
Este teorema está representado por una expresión matemática que permite representar en decimal un número expresado en cualquier base.
i =n-1N10 = å Di x Bi i =0
Donde n es el número de dígitos (BITs), Di es el valor del dígito en la posición i y B es la base de numeración del número a convertir.
La fórmula anterior se puede expresar en una forma tabular sencilla de recordar y manipular para realizar conversiones BINARIO—->DECIMAL o viceversa.
64 32 16 8 4 2 1 PESOS
6 5 4 3 2 1 0 POSICIONES
Ej1. 1 1 0 1 1 NUMERO BINARIO
Ej2. 1 1 0 0 1 * * *
Para obtener el valor en decimal se suman los pesos de los bits que están en 1. Luego para el ej1:
N10 = 1 + 2 + 8 + 16 = 27
Por el contrario si se desea convertir el numero 2510 a binario, se colocan 1 en la posición de los pesos, de modo que su suma decimal dé el valor buscado.
Este sistema de representación es muy utilizado en la tecnología digital, el mismo posee los siguientes atributos:
Los dígitos hexadecimales, desde A hasta F, tienen los siguientes valores en decimal respectivamente:
10 11 12 13 14 y 15
Ej. El valor expresado en hexadecimal: FF equivale al decimal:
F F
15 x 1+ 15 x 16= 255
Ej. El valor expresado en hexadecimal: 1EA equivale al decimal:
1 EA
256x1 + 16x14 + 1x10= 490
Como normalmente las variables lógicas se manejan como bits individuales o grupos de bits, algunas de las mismas permiten una manipulación más cómoda, tratándolas en formato binario, no obstante en ciertos casos esto no resulta práctico; para ello recurrimos entonces a la representación en hexadecimal.
Cada dígito hexadecimal equivale a 4 dígitos binarios, veamos algunos ejemplos:
F====> 1 1 1 1
1 A ==> 0 0 0 1 1 0 1 0
Otro ejemplo sería: Cual debe ser el valor que deben adoptar las entradas del PLC para que al transferirlas a la salida se activen las 4 salidas menos significativas; si tuviéramos que representar este valor en decimal es:15, pero en hexadecimal resulta más directo ya que existe una relación directa HEXA-BINARIO, por lo tanto como sabemos que la salida debe activar 1 1 1 1, este valor en Hexadecimal es F.
NUMERO DECIMALNUMERO BINARIONUMERO HEXA00 0 0 0 0010 0 0 1 120 0 1 0 230 0 1 1 340 1 0 0 450 1 0 1 560 1 1 0 670 1 1 1 781 0 0 0 891 0 0 1 9101 0 1 0 A111 0 1 1 B121 1 0 0 C131 1 0 1 D141 1 1 0 E151 1 1 1 F
A partir de lo expresado anteriormente, podemos decir que los valores que manipula el PLC estudiado, pueden adoptar la representación en las bases:
Decimal: 127
Hexadecimal:16#FF
Binario:2#11111111
La representación de los números binarios puede dar lugar a la siguiente clasificación:
Por otro lado es necesario establecer un formato para la representación de cada valor, sea positivo o negativo, los formatos utilizados son los estándares vistos.
Los números negativos en el sistema binario se representan en COMPLEMENTO A 2. La forma de identificar un valor binario negativo es a través del bit de signo que es el más significativo de la representación, esto es, el de mayor peso o el que se encuentra más a la izquierda en el grupo, cuando este bit es 0 el número es positivo y cuando es 1 es negativo. La lectura de un número con signo (-) no es directa en una representación con signo.
Por ej. el número 11111111, es el -1, el 01111111 es el +127 en una representación con signo.
Para una representación sin signo:
Por ej. el 11111111, es el 255 y el 01111111 es el 127.
Los micro autómatas de la línea SIMATIC S7200 cuentan con distintas versiones de CPU, la línea s721x, la actual línea s722x en el rango de micro PLC y para PLC´s de mayor envergadura, las vigentes S7300, S7400, etc. En el rango de los micro autómatas, algunos admiten una expansión limitada, de hasta 7 módulos de entrada / salida. Las características básicas se enumeran en el APENDICE A. del Manual
El PLC opera en forma cíclica realizando dicho ciclo mientras está trabajando en el proceso. Un ciclo consiste de un conjunto de operaciones a cargo del sistema operativo, y que consta de las siguientes fases: lectura de las entradas de campo y su copia en la imagen de entradas del proceso (I.E.P.), ejecución del programa en forma secuencial, verificación de las comunicaciones cuando el PLC está comunicado con otros PLC o bien con la unidad de programación o PC, a continuación se realiza una auto verificación del firmware y por último se toman las salidas guardadas por el programa en la imagen de las salidas del proceso (I.S.P.) para ser trasladadas a las salidas físicas (actualización).
CICLO DE OPERACIÓN
SOFTWARE DE PROGRAMACIÓN STEP7 MICROWIN. MÉTODOS DE REPRESENTACIÓN
El programa que escribe el usuario mediante la unidad de programación PG702 o bien mediante una PC, se transfiere a la memoria del PLC, memoria EEPROM, para su ejecución.
Los programas de usuario se escriben con el lenguaje MICROWIN STEP7, el cual permite la programación de los PLCs de la línea S7. Este PLC permite su programación en tres lenguajes de programación:
La representación KOP (diagrama en escalera o plano de contactos) emplea la misma simbología gráfica que los tradicionales circuitos de lógica cableada, que facilita la comprensión de la lógica programada a quienes están habituados a trabajar con estos esquemas.
La representación en AWL (también denominado STL), utiliza el listado de instrucciones, es decir, el programa se convierte en una secuencia de órdenes (representadas por una sigla que hace alusión a la operación en cuestión: mnemónico).
Al observar un listado de órdenes en AWL se puede reconocer fácilmente cada una de las órdenes individuales que lo componen. Cada instrucción del autómata S7200 está formada en general por: operador (a la izquierda) y operandos (a la derecha).
Formato general: <orden> [[op1] [op2] [op3]]</orden>
NOTA: lo que se encuentra dentro de corchetes angulares es obligatorio, mientras lo que está entre corchetes rectos depende de la instrucción y puede o no estar presente.
En la programación AWL cada línea del programa debe contener una única orden. (El equivalente en KOP de un segmento está formado por más de una instrucción en AWL).
A continuación se dan algunos ejemplos de instrucciones con distintos formatos:
INSTRUCCIÓN | OPERANDO | OPERANDO | OPERANDO |
---|---|---|---|
JMP | 5 | ||
DISI | |||
LD | E0.0 | ||
S | A0.0 | 3 | |
MOVB | E0.0 | A0.0 | |
ATCH | 5 | 10 | |
MULW | V0 | VW2 | VW100 |
La parte del operador, define la operación (o función lógica) que se va a ejecutar, esto es, instruye al PLC que va a hacer; los operandos indican los datos a procesar por dichas operaciones. En los ejemplos vistos se dan algunas de las operaciones que maneja el S7200, las cuales tienen el siguiente significado respectivamente:
La parte del operando contiene el resto de la información necesaria para poder ejecutar la instrucción, instruye al PLC con cual variable debe ejecutar la operación:
Un operando, como se puede apreciar en el ejemplo, se divide en dos partes:
La memoria del PLC está formada por dos partes:
La memoria de PROGRAMA es de tipo EEPROM y es donde se guarda el programa de control elaborado por el usuario. La misma tiene un espacio total de 2048 palabras para la CPU 214 del Sras para la CPU 214 del S7200.
La memoria de DATOS está formada por dos bloques como se muestra en la figura:
MEMORIA DE DATOS
DATOS OBJETOS
VARIABLES (V) TEMPORIZ.
I.E.P. (E) CONTADORES
I.S.P. (A) ENTRADAS (AE)
ANALOGICAS
MARCAS
INTERNAS (M) SALIDAS (AA)
ANALOGICAS
MARCAS
ESPECIALES (SM) ACUMUL. (ACU)
CONTADOR
RAPIDO (HCS)
El área de DATOS es accesible para las operaciones de lectura y escritura, exceptuando algunas MARCAS ESECIALES (SM) de solo lectura, esto le da gran flexibilidad. El acceso a la memoria de datos se puede realizar en forma de BITS, BYTES, PALABRAS Y DOBLE PALABRA.
El área de VARIABLES forma parte del modulo de datos (DB1), el identificador para las variables es V la misma es de lectura y escritura.
El espacio total para la memoria de variables V de la CPU 214 es: 4096 bytes
AREA DE VARIABLES V
VB0V0.7V0.6V0.5V0.4V0.3V0.2V0.1V0.0
VB1V1.7V1.6V1.5V1.4V1.3V1.2V1.1V1.0
VB2V2.7V2.6V2.5V2.4V2.3V2.2V2.1V2.0
VB3V3.7V3.6V3.5V3.4V3.3V3.2V3.1V3.0
VB4V4.7V4.6V4.5V4.4V4.3V4.2V4.1V4.0
V4092
V4093
V4094
VB4095V4095.7V4095.6V4095.5V4095.4V4095.3V4095.2V4095.1V4095.0
En la figura anterior se puede apreciar la forma en que se organiza la memoria de variables y las distintas formas de acceso.
AREA DE MARCAS INTERNAS
M0.7 M0.6 M0.5 M0.4 M0.3 M0.2 M0.1 M0.0 MB0
MW0
MB1
MD0
MB2
MW2
MB3
M4.7 M4.6 M4.5 M4.4 M4.3 M4.2 M4.1 M4.0
MW4
MD4
MD24
MD28
MW30
M31.7 M31.6 M31.5 M31.0 MB31
La fig. Anterior muestra la organización de la memoria de marcas, la cual puede ser accedida a nivel de contactos individuales, o como grupos B, W o DW.
SM0.7 SM0.6 SM0.5 SM0.4 SM0.3 SM0.2 SM0.1 SM0.0 SMB0
SMW0
SMB1
SMD0
SMB2
SMW2
SMB3
SM4.7 SM4.6 SM4.5 SM4.4 SM4.3 SM4.2 SM4.1 SM4.0
SMW4
SMD4
SMD78
SMD82
SMW84
SM85.7 SM85.6 SM85.5 SM35.0 SMB85
La fig. Anterior muestra el área de marcas especiales, estas marcas pueden ser de solo lectura o de solo escritura. Las de solo lectura son administradas por la CPU del PLC para indicar estados. Mientras que las de solo escritura se utilizan para programar ciertas funciones del PLC. Para mas detalle referirse al manual del Usuario.
La imagen de las entradas del proceso (I.E.P.), es la zona de la RAM donde se guarda el estado lógico, de los contactos, leído desde las entradas físicas del PLC. Cada elemento de esta zona se identifica como I .
-Memoria de I.E.P. (IB0 a IB7)
La imagen de las salidas del proceso (I.S.P.), es la zona de RAM donde se guarda el estado que adoptarán las salidas lógicas del PLC. Cada elemento de esta zona se identifica como Q .
IDENTIFICACION DE ELEMENTOS PUNTUALES (BITS) DE I.E.P E I.S.P.
76543210I0I1I2I3I4I5I6I7
En el cuadro anterior se puede apreciar en una matriz la distribución de los elementos puntuales de la I.E.P. (I3.4), al igual que los grupos de 8 como son I0, I1…I7.
El acceso a un elemento puntual es mediante el nombre de la variable , el número de grupo y el elemento del grupo, esto es:
I 3 . 4
IDENTIFICA EL BIT 4
IDENTIFICA EL GRUPO 3
IDENTIFICADOR DE ENTRADA
(DIRECCION)
Para referenciar un grupo de 8 bits (BYTE de ENTRADA) se utiliza el siguiente formato: (ej.)
I B 6
IDENTIFICA NUMERO DE GRUPO
IDENTIFICA UN GRUPO DE 8 BITS
IDENTIFICADOR DE ENTRADA
(DIRECCION)
Para acceder a la I.S.P. se procede de igual manera, cambiando el identificador, para el caso de un punto (BIT):
Q 0 . 3
IDENTIFICA EL BIT DE SALIDA 3
GRUPO 0 DE SALIDAS
IDENTIFICADOR DE SALIDA
NOTA: El área de memoria RAM destinada a la I.S.P. también dispone de un espacio reservado para la ampliación de las salidas lógicas mediante los correspondientes módulos ( Q1.0, Q2.0).
Para identificar un grupo de 8 salidas de la UNIDAD BASE (en este caso se afectará las 8 salidas físicas del byte 0 de la I. S. P.
Q B 1
IDENTIFICA EL GRUPO 1
IDENTIFICA UN GRUPO DE 8 BITS
IDENTIFICADOR DE SALIDA
Las áreas de marcas (M) y marcas especiales (SM) se identifican con el mismo criterio que el resto de las variables.
El área de memoria para MARCAS (RELÉS INTERNOS), está formada por dos grupos:
-MARCAS INTERNAS
-MARCAS ESPECIALES
Las MARCAS INTERNAS (MB0 a MB31) son de lectura y escritura, es decir, su estado (cerradas –>0 ó abiertas –>1) puede ser modificada desde el programa del usuario. Una marca interna se representa como sigue:
M 2 . 5
IDENTIFICA LA MARCA 5
IDENTIFICA ELGRUPO 2
IDENTIFICADOR DE MARCA INTERNA
Para referenciar un grupo de marcas (1 BYTE):
M B 4
IDENTIFICA EL ELEMENTO 4
IDENTIFICA UN GRUPO (byte)
IDENTIFICADOR DE MARCA INTERNA
El área de MARCAS ESPECIALES (SM) se divide en dos grupos:
-MARCAS DE SOLO LECTURA (SMB0 a SMB29)
-MARCAS DE LECTURA ESCRITURA (SMB30 a SMB45)
Para representar una marca especial se procede de igual forma que para el de marca interna cambiando el identificador por SM.
Las marcas especiales de sólo lectura no pueden ser modificadas por el usuario, aunque a través de las mismas el PLC proporciona información de distinto tipo, como son información de estado y de control, también permiten el intercambio de información entre el PLC y el programa. En el APENDICE C se da el significado de cada marca especial.
NOTA: Para identificar grupos de tipo PALABRA (WORD:16BITS) se utiliza W , para el caso de DOBLE PALABRA se utiliza D.
Los siguientes ejemplos muestran la notación:
V W 0(variable de 16 bits)
SMD4(marca especial de 32 bits)
EW0( palabra de entrada: 16 bits)
AD2(doble palabra de salida: 32 bits)
MD100(marca de 32 bits)
Etc.
AREA DE OBJETOS
Los OBJETOS son direcciones de memoria asignadas a elementos, como por ejemplo el valor de cuenta de un contador o el tiempo de temporizado de un temporizador. Los OBJETOS comprenden: CONTADORES, TEMPORIZADORES, ENTRADAS ANALOGICAS, SALIDAS ANALOGICAS, ACUMULADORES Y CONTADORES RAPIDOS. El acceso a los objetos es limitado.
Cada uno de los OBJETOS mencionados tiene datos asociados, de modo que el S7200, por ejemplo, dispone de contadores y temporizadores y los mismos disponen de valores que respaldan los valores actuales de conteo y temporización respectivamente, estos valores son denominados OBJETOS. Como existen varios elementos distintos, los mismos están enumerados desde 0 hasta n, los objetos correspondientes también están enumerados. Esta numeración lleva a las convenciones definidas para el direccionamiento que permiten acceder a todos los objetos asistidos por el autómata S7200.
Los temporizadores y contadores poseen más de un objeto, además del valor actual V.A. disponen de un bit de control (bit T para temporizadores y Z ó C para contadores) que se pone a 1 cuando se alcanza la temporización o cuenta prefijada.
En la figura siguiente se muestra una instrucción que accede a un temporizador.
T 3
NUMERO DE ELEMENTO (Dirección de bit)
IDENTIFICADOR DEL ÁREA
El acceso al área de objetos correspondientes a las ENTRADAS y SALIDAS analógicas se hace en formato de palabra (16bits). Las entradas analógicas son de sólo lectura , mientras que las salidas son de sólo escritura. Los identificadores para estos objetos son:
-AWI: entrada analógica
-AWQ: salida analógica
El identificador de área va seguido del especificador de tamaño W, y un número decimal comprendido entre 0 y 30
La siguiente figura se muestra el formato de las entradas y salidas analógicas
A W I 8
DIRECCION
ACCESO A PALABRA
IDENTIFICADOR DE AREA
A Q W 10
NUMERO DE SALIDA
ACCESO A PALABRA
IDENTIFICADOR ÁREA SALIDAS
NOTA: Las entradas y salidas analógicas sólo pueden ser direccionadas con direcciones de palabras pares (por ej. AQW0, AQW2, AQW4, etc).
FORMATO DE ALMACENAMIENTO
La CPU del SIMATIC S7200, almacena las variables de tipo palabra y doble palabra de manera tal que el byte más bajo es el de mayor ubicación significativa, por ejemplo, esto es:
VB100 VB101
V W 100
SMB0 SMB1
S M W 0
Para el caso de dobles palabras:
IB0 IB1 IB2 IB3
IW0 IW1
I D 0
NOTA: Se puede apreciar según lo esquematizado que la dirección de una palabra o doble palabra corresponde siempre con una dirección par de byte, para el caso de dobles palabras las mismas evolucionan de 2 en 2: QW0, QW2, QW4,…..etc.; para el caso de dobles palabras evolucionan de 4 en 4: M0, M4, M8,….etc.
ACCESO A ACUMULADORES
La CPU 214 dispone de cuatro acumuladores de 32 bits. Los acumuladores son elementos a los que se puede acceder en formato de byte, palabra o doble palabra. Cuando se accede a los acumuladores en formato de byte o palabra se utilizan los 8 ó 16 bits menos significativos del acumulador. Los acumuladores se direccionan con los números decimales del 0 al 3.
En los siguientes ejemplos se hace acceso al objeto acumulador
MOV_B
EN
AC 2 IN
NUMERO DE ELEMENTO
IDENTIFICADOR DE ÁREA (ACUMUL.)
DEC_W
EN
A C 1 IN
NÚMERO DE ELEMENTO
IDENTIFICADOR DE ÁREA (ACUM.)
AREA DE CONTADOR RÁPIDO
Los contadores rápidos son elementos que cuentan eventos que ocurren a velocidades más rápidas de lo que puede explorarlos el PLC. La versión CPU 212, cuenta con un único contador rápido (HSC). El contador rápido tiene un valor de contaje de 32 bits con signo (VALOR ACTUAL), este valor es el único objeto asociado al contador rápido, el identificador de área es HC, a continuación del mismo va el numero de contador, para la CPU 212 es 0. El valor actual de HC0 sólo permite el acceso en formato doble palabra. La figura que sigue ilustra lo dicho.
bMS bms
HC 0
NUMERO DE ELEMENTO
IDENTIFICADOR DE ÁREA
BOBINAS Y CAJAS (CUADROS)
Las bobinas se ubican en el sector derecho de un segmento, es decir en la parte de acciones. Una bobina se representa mediante un par de paréntesis abierto, cerrado. La misma puede constar de uno o dos operandos.
Las bobinas que contienen un solo operando se denominan no retentivas, esto es, se activan siempre y cuando se verifique la condición de entrada, en otras palabras estas salidas siguen a la entrada (bobinas seguidoras).
Q 0.0
—( )—
Las bobinas con dos operandos son de tipo retentivo pudiendo asumir dos estados: S (seteo o puesta a uno) o R (reseteo o puesta a cero). Este tipo de bobinas no requieren de la mantención de la entrada para mantener su estado.
Estas bobinas se representan del siguiente modo:
Q0.0
—( S )—, bobina seteada
N
Q1.2
— ( R )—, bobina reseteada.
3
El operando en la parte superior de la bobina representa la dirección de un punto el cual puede ser una salida, salida inmediata, marca, marca especial, etc. El operando N indica la cantidad de elementos afectados en forma secuencial a partir del mismo.
El operando N es de tipo byte sin signo, asimismo puede consistir en una variable o en una constante (expresada en decimal o hexadecimal ) con el tamaño especificado anteriormente.
VALORES DE CONSTANTES DECIMALES
Se pueden introducir en el programa constantes de enteros decimales, hexadecimales o binarios, para varias instrucciones estos valores son leídos directamente desde el programa y no ocupan lugar de memoria como las variables.
Los identificadores de constantes se representan mediante enteros con o sin signo. En caso de representar las constantes con valores en hexadecimal se utiliza 16# y a continuación el valor en hexadecimal, para valores binarios 2# y a continuación el valor binario. Como ejemplos tenemos 16#FF, 2#11111111 que son equivalentes a 255.
Por ejemplo:
M0.0
( S )
4
El ejemplo muestra en KOP el uso de la constante decimal 4, para indicar la cantidad de marcas en secuencia que se deben activar a partir de M0.0.
MOV_B
EN
16#0 7 IN OUT AB0
En el último ejemplo de programación KOP, se utiliza una constante hexadecimal, con una operación de transferencia de byte. El resultado de la operación es la activación de las salidas Q0.0, Q0.1 y Q0.2, quedando el resto del grupo de 8 en 0.
EJECUCIÓN DEL PROGRAMA
Las órdenes o instrucciones, que constituyen el programa, representativo de la lógica de control, son ejecutadas secuencialmente, después de haber procesado la última instrucción del programa, la CPU realiza algunas operaciones complementarias, y luego vuelve a ejecutar el programa de forma cíclica, cada vez que se ejecuta el programa y el resto de las operaciones, se ha cumplido un ciclo o scan. El tiempo de ciclo es monitoreado por un reloj interno (WATCH DOG) del PLC y en caso de excederse dicho tiempo por algún problema, el PLC pasa a modo STOP. Para la CPU 214 la velocidad de ejecución de cada orden es de 0,8 micro segundo.
PROGRAMACIÓN ESTRUCTURADA
Si el programa se divide en módulos independientes (estructuración), resulta en una mayor eficiencia en cuanto a la optimización del espacio de memoria, facilidad de depuración, y permite su fácil organización e interpretación. A esta forma de programación se la denomina estructurada.
PROGRAMACIÓN KOP (DIAGRAMA DE CONTACTOS
Elementos básicos
El esquema de contactos consiste en un lenguaje gráfico cuyos componentes se parecen a los elementos que aparecen en circuitos eléctricos, los mismos se encuentran dispuestos en líneas que unen un rail izquierdo (FASE) con un rail derecho (NEUTRO) los mismos son:
CONTACTOS : Un contacto es un símbolo que representa contactos por los que fluye una corriente cuando el mismo está cerrado. Los contactos pueden ser normalmente abiertos o normalmente cerrados. Un contacto normalmente abierto, en su estado normal no deja pasar corriente, mientras que un contacto normalmente cerrado en su estado normal deja pasar corriente ( botón de parada de motor).
BOBINAS (coil): Una bobina es un símbolo que representa la bobina de un relé que se excita cuando le llega corriente.
CUADROS (box): Son símbolos que representan distintas funciones que se ejecutan cuando fluye corriente por ellos. Estas funciones pueden ser: temporizadores, contadores, funciones aritméticas, funciones especiales, etc..
CONEXIÓN:
Los elementos mencionados anteriormente se conectan en un segmento (red) a cuya izquierda se simboliza la fase y a la derecha el neutro. Dicho segmento está formado por dos partes, a la izquierda las CONDICIONES, representadas por contactos , conexiones series, paralelas o ambas y a la derecha las ACCIONES, representadas por bobinas o cuadros con conexión en paralelo. la corriente fluye desde la fase al neutro, siempre y cuando se cierren los contactos y alimentando entonces a los cuadros ubicados a la derecha. El flujo de corriente se utiliza para activar las salidas de acuerdo con el programa de usuario.
OPERACIONES LÓGICAS CON CONTACTOS
Estas operaciones permiten conectar circuitos lógicos. En conexión serie , paralelo y mixto.
Contacto abierto: Este tipo de contacto deja pasar corriente si se activa (n=1), el mismo representa un operando de tipo bit que puede ser: I,Q,M, SM,T,C,V.
Contacto Cerrado Este tipo de contacto se activa si no esta presente , es decir cuando n=0, el operando es de tipo bit y coincidente con el anterior.
Contacto abierto directo: Este tipo de contacto es leído directamente por el PLC sin ser transferido a la IPE, opera igual que el contacto abierto.
Contacto cerrado directo: Este tipo de contacto es similar al anterior, pero normalmente cerrado.
Los contactos pueden conectarse entre si en el sector de condiciones de tres formas posibles:
-CONEXIÓN SERIE
-CONEXIÓN PARALELO
-CONEXIÓN SERIE-PARALELO
E0.0 E0.1 Q0.0
( S )
1
Representación en KOP de una conexión serie entre contactos.
El correspondiente en programación AWL es:
LD I0.0
U I0.1
S Q0.0 1
T0 M0.1
( S )
M0.0 VB0
/
Representación de una conexión de contactos en paralelo
El código correspondiente en AWL es:
LD T0
O N M0.0
S M0.1 VB0
M0.0 I0.0 Q0.3
( S ) Mixto
I0.1 2
Representación KOP de una combinación de operaciones paralelo-serie
El código correspondiente en AWL es:
LD M0.0
O I0.1
U I0.0
S Q0.3 2
En el primer caso los contactos I0.0 e I0.1 están conectados en serie , luego para que la salida se active ambos contactos deberán estar simultáneamente cerrados.
Para el segundo ejemplo los contactos T0 y M0.0 están conectados en paralelo por lo tanto para que se active la salida se deberá cerrar T0 ó M0.0 ó ambos.
Para el tercer caso se tiene una combinación de los dos anteriores.
OPERACIONES LÓGICAS CON SALIDAS
Estas operaciones activan o desactivan salidas digitales. Las salidas pueden ser no retentivas, esto es se mantienen excitadas siempre y cuando exista la condición (ej. pulsador-timbre) o bien retentivas (memorizadas), en cuyo caso pueden adoptar uno de dos estados posibles , sin necesidad de mantener la condición que provocó su estado.
Las salidas no retentivas tienen un único operando que representa la salida puntual a la cual se hace referencia, el valor de este operando puede ser: I,Q,M,SM,T,C,V (de tipo bit) .
Para el caso de las bobinas retentivas podemos tener dos posibilidades: SETEADAS o RESETEADAS. Este tipo de salidas consta de dos operandos, el operando en la parte superior representa un punto y el de la parte inferior la cantidad de salidas consecutivas que se referencian a partir de la especificada. El operando en la parte superior es el mismo que para el caso de las bobinas sin retención, mientras que el operando inferior es de tipo byte y puede ser: IB, QB,MB,SMB,VB, AC, Constante , *VD,*AC (punteros). Cualquiera de las variables mencionadas, excepto Constante que es una constante deberán estar cargadas previamente en memoria.
Las salidas también pueden ser inmediatas en cualquiera de los tres tipos mencionadas anteriormente. En este caso las mismas son transferidas directamente a las salidas y a su vez son copiadas en la I.P.S.
NOTA: La única forma de conectar las salidas es en conexión paralelo, de igual forma que cualquier otro elemento que se conecta en el rail de ACCIONES.
Ej.:
M0.1 Q0.0
( S )
1
Q0.1
( R )
1
La figura anterior muestra una conexión paralelo de dos bobinas en KOP
Para el ejemplo dado corresponde el siguiente código en AWL:
LD M0.1
S Q0.0 1
R Q0.1 1
OPERACIONES CON CONTACTOS ESPECIALES
Contacto inversor: Este contacto invierte el flujo de corriente en el segmento donde se encuentra, esto es si a él llega corriente bloquea el paso de la misma hacia su salida; en caso de no llegar corriente genera una corriente a su salida, el mismo se representa con NOT. Este tipo de contacto debe estar precedido por un contacto común.
Contactos detectores de flancos: Este tipo de contacto permite detectar flancos crecientes, cuando la corriente pasa de cero a uno o bien flancos decrecientes cuando la corriente pasa de uno a cero, los mismos deben estar precedidos por un contacto común.
NOT CONTACTO INVERSOR
Ej. Detección de flanco positivo en la entrada I0.0
I 0.0 Q0.0
P ( S )
6
Contactos de comparación: Estos contactos permiten a través de una comparación y siempre y cuando la misma se cumpla tomar decisiones de control. Como todo contacto los mismos se ubican en el sector de condiciones.
Este tipo de contactos puede realizar las siguientes comparaciones, = (mayor o igual). Este tipo de contactos consta de dos operandos que pueden ser de tipo byte, palabra o doble palabra. En cualquier comparación los valores comparados deben ser del mismo tipo.
Las comparaciones de bytes son sin signo, mientras que en el caso de palabras y dobles palabras son con signo.
A continuación se esquematizan los 3 contactos de comparación:
OP1OP1 OP1
== B =B
OP2 OP2 OP2
El formato del contacto de comparación se repite para el caso de datos de tipo palabra, cambiando B por (W) o B por doble palabra (D).
Estos contactos permiten el flujo hacia la derecha si se cumple la condición entre el OP1 y el OP2.
Para el caso de programación en AWL los códigos son los que siguen:
LDB LDB >= OP1 OP2LDW >= OP1 OP2LDD >= OP1 OP2
LDB = OP1 OP2LDW = OP1 OP2LDD = OP1 OP2
Para lograr las condiciones (distinto), y >(mayor) se realiza un artificio de programación que consiste en poner a continuación de cada uno de los contactos anteriores un contacto inversor (NOT). El siguiente ejemplo en KOP ejemplifica lo dicho.
> =B NOT
La secuencia anterior es equivalente a tener el contacto de comparación:
Para los casos restantes se repite lo mismo.
A continuación se muestra un ejemplo que combina los contactos especiales con la operación de incremento para emular un contador. El primer segmento inicializa a 0 la variable de memoria VW0 a través de la marca especial SM0.1 (marca que se pone en 1 sólo durante el primer ciclo). El segundo segmento toma una entrada a través de un contacto y detecta su flanco creciente, incrementando el valor de VW0 por cada entrada que se produce. El tercer segmento está formado por un contacto de comparación, cuando se alcanza la cuenta de 1000 el mismo se cierra y se activa una marca interna indicadora de alcance de cuenta y por otro lado el contador se vuelve a 0.
OPERACIONES DE TRANSFERENCIA
Estas operaciones permiten transferir datos de una dirección a otra, ya sea en bytes, palabras o doble palabras. Las operaciones de transferencia se representan mediante un cuadro (box) con dos entradas y una salida, las entradas son de habilitación (EN) y de dato (IN). La salida es el destino de la transferencia (OUT). La operación se efectúa cuando aparece un nivel alto en la entrada de habilitación. En la figura que sigue se muestra el cuadro correspondiente.
MOV_B (MOV_W, MOV_DW)
I0.1 EN
IN OUT
El formato de los datos de entrada como de salida debe ser acorde a la operación.
TRANSFERIR BYTE
ENTRADA( IN): IB, QB, MB, SMB, Constante, *AC, *VD
SALIDA (OUT): IB, QB, MB, SMB, *AC, *VD
TRANSFERIR PALABRA
ENTRADA: VW, IW, QW, MW, SMW, Constante, T, C, AC, AIW, *AC, *VD
SALIDA: VW, IW, QW, MW, SMW, T, C, AQW, AC, *AC, *VD
TRANSFERIR DOBLE PALABRA
ENTRADA:VD, ID, QD, MD, SMD, AC, HC, Constante, *VD, *AC, &VB, &IB, &QB, &MB, &T, &C.
SALIDA: VD, ID, QD, MD, SMD, AC, *VD, *AC
MOV_W
SM0.1
K0 VW0
E0.2 P INC_W
VW0 VW0
VW0 K1000 MOV_W
>= W
K0 VW0
M0.0 K1
( S )
OPERACION DE INTERCAMBIO (SWAP)
Dentro de las operaciones de transferencia existe una operación especial denominada de intercambio, cuya función es intercambiar bytes dentro de una palabra (swap). Esto es se cambia BMS con Bms.
La operación SWAP se representa con un cuadro para KOP y como SWAP OP, en AWL.
SWAP
I0.0
IN
El operando es de tipo palabra, veamos el siguiente ejemplo, supongamos que IN es 16#00FF , al realizarse la operación queda como FF00.
ENTRADA (IN): VW, T, Z, IW, QW, MW, SMW, AC, *VD, *VC
FUNCIONES DE TEMPORIZACION
Con frecuencia en el control de procesos se requiere la temporización de ciertas señales. El PLC S7200 ofrece dos versiones de temporizadores, temporizadores con y sin memoria. El temporizador sin memoria no tiene posibilidad de detener la operación de temporizado (temporizador convencional) y cuenta tiempo a partir de una señal de habilitación, hasta alcanzar el tiempo preseleccionado o el tiempo máximo definido por su resolución.
El temporizador con memoria, se activa del mismo modo que el anterior, con la diferencia que puede detenerse el conteo de tiempo , memorizándose el estado del temporizador si se deshabilita su entrada antes de concluir la temporización programada (Valor de preselección).
Todo temporizador se caracteriza por tres valores un valor de preselección (V.P.), un valor actual, (V.A.),(ambos de tipo palabra )y un bit de temporización (Txxx), que indica cuando se ha alcanzado el valor de temporización.
Los temporizadores de la línea S7200 constan de tres bases de tiempo diferentes(resoluciones). El PLC S7200 con CPU 214 cuenta con 128 temporizadores, según el siguiente detalle:
TEMPORIZADORES
TEMPORIZADORRESOLUCIÓNVALOR MÁXIMOCPU 214 T ON1 ms32, 767 sT32 y T9610ms327, 67 sT33 a T36 T97 a T100100ms3276, 7 sT37 a T63 T101 a T127 T ONR1ms32, 767 sT0 y T6410ms327, 67 sT1 a T4 T65 a T68100ms3276, 7 sT5 a T31 T69 a T95
Un temporizador es un contador de tiempo, en realidad cuentan la cantidad de bases de tiempo requeridas para cumplir el tiempo especificado (Valor de Preselección). La CPU 214 consta de 128 temporizadores con resoluciones de : 1ms., 10ms. y 100ms, con valores máximos de 32,767 segundos, 327,67 segundos y 3276,7segundos respectivamente.
El valor de preselección se programa por única vez y el temporizador utilizado no se puede volver a utilizar dentro del mismo programa. para determinar el valor de tiempo se debe tener en cuenta que el mismo es un múltiplo de la base de tiempo , por ejemplo si el valor de contaje es de 50, en un temporizador de 10ms, representa 0,5 s (50 x 0.010) , en uno de 100 ms. representaría 5 s (50 x 0.100).
VP=BASE XCANTIDAD, dónde: CANTIDAD es el valor que habrá que introducir en la programación del temporizador para obtener en función de la BASE, dado el valor de preselección o a temporizar.
El valor actual de un temporizador, representa la evolución del contador de tiempo, y el mismo se va actualizando desde el momento de la habilitación del temporizador hasta que se resetea el temporizador. Cuando, VA=VP el bit T del temporizador correspondiente se pone a 1, el mismo puede ser utilizado para control, a su vez mientras VA >=VP, el bit de temporizacion se mantendrá en 1 (cerrado) si no se resetea el temporizador.
Los temporizadores se arrancan al detectarse el flanco ascendente (cambio de 0 a 1) de la señal aplicada a su entrada (entrada de habilitación) . Esta señal de habilitación deberá permanecer activa durante la temporización, ya que si la misma pasa a 0 el temporizador se reseteará (VA=0) o detendrá la operación de conteo (VA=X) según sea el caso.
Los temporizadores del PLC S7200, línea 21x, son de activación en la conexión, comienzan a temporizar cuando se activa la entrada de habilitación. Los mismos seguirán temporizando aún después de haber alcanzado el valor de preselección si dicha entrada es mantenida, pero el temporizador se detendrá cuando alcance el valor máximo que puede ser 32,767, 327,67 y 3.276,7 según sea la base de tiempo.
NOTA: Es práctica corriente resetear el temporizador una vez alcanzado el VP, para lo cual se utiliza el bit de control de temporización.
Temporizador en la desconexión
Si bien este PLC no cuenta con esta función la misma es de fácil implementación, para lo cual hay que incorporar un detector de flanco negativo entre la señal de habilitación y la entrada de habilitación del temporizador. De esta manera el temporizador se activará a partir del flanco descendente de la entrada de habilitación.
Ejemplo de Aplicación
I0.0 M0.0
( S )
1
M0.0 T37
50
Como se puede ver en el ejemplo anterior, no es conveniente poner un fin de carrera, un pulsador o un contacto común como entrada de un temporizador, ya que si desaparece la señal en dicha entrada el temporizador se pone a 0, por ello se utiliza una marca para retener el estado de la entrada asociada al temporizador.
DIAGRAMA KOP DE UN TEMPORIZADOR
Txxx
EN V.P.
T
V.P. V.A.
CONTADORES
Los contadores son dispositivos que permiten contabilizar la ocurrencia de eventos o ítems en líneas de procesos, por ejemplo la cantidad de piezas necesarias para llenar una caja, la cantidad de veces que se disparó alguna alarma, la cantidad de partes defectuosas en una línea de producción, etc.
El PLC S7200 (CPU214) consta de 128 contadores, enumerados de 0 a 127, los mismos son de dos tipos:
– CONTADOR PROGRESIVO (CTU)
– CONTADOR PROGRESIVO REGRESIVO (CTDU)
La CPU 214 cuenta con 128 contadores que se pueden programar como progresivos o progresivo / regresivo. En los progresivos la cuenta se va incrementando hasta alcanzar un valor prefijado (valor de preselección: V.P.) . Cuando dicho valor se alcanza se activa un bit de control (Cxxx) que puede ser utilizado para realizar subsecuentes acciones. Este tipo de contador está formado por dos entradas; una conteo y otra de puesta a cero, la entrada de conteo es sensible al flanco positivo y siempre deberá estar precedida por algún contacto.
La entrada de puesta a cero pone la cuenta actual al valor de cero. Mientras esta entrada permanezca activa el contador queda inhibido de contar.
El valor de preselección se programa una única vez y el mismo puede tomar valores entre 0 y 32767. Una vez alcanzada la cuenta máxima, el contador se detiene.
El contador progresivo regresivo consta de tres entradas: conteo progresivo(incrementa el valor actual), conteo regresivo (decrementa el valor actual), entrada de valor de preselección V.P. y entrada de puesta a cero, para poner a cero el valor actual. También este tipo de contador consta de un bit de control que se pone a 1 al alcanzarse la cuenta. Las entradas de conteo son sensibles al flanco creciente. Estos contadores pueden tomar valores entre -32768 a 32767.
CTUxxx Cxxx
EN EN UP
V.P. V.P.
V.P. EN DW
C V.P. C
RESET V.A. V.A.
RESET
En la fig. anterior de la derecha EN UP es la entrada para conteo creciente en un contador progresivo regresivo, mientras que EN DW es la entrada para descontar.
OPERACIONES INCREMENTAR-DECREMENTAR-INVERTIR
Este tipo de operaciones simplifica la programación en aquellos casos en que se producen procesos repetitivos.
La operación incrementar implica aumentar de a uno un valor, mientras que la operación decrementar significa disminuir en uno una determinada cantidad. Las operaciones mencionadas operan con datos de tipo palabra y doble palabra (no admiten operación con bytes).
En programación KOP, las operaciones incrementar y decrementar se representan mediante un cuadro. En programación AWL las instrucciones son:
INCW OP1 OP2DECW OP1 OP2
INCDW OP1 OP2DECDW OP1 OP2
En KOP el cuadro se representa en el siguiente ejemplo:
INC_W
I0.4 EN
AC0 AC0
EN DEC_W
VD100 VD100
De lo anterior resulta:
ANTES DESPUES
AC0:125126
VD100:128000127999
El programa correspondiente en AWL es:
LD I4.0
INCW AC0
DECD VD100
La entrada EN habilita la operación, la otra entrada contiene el operando cuyo valor será incrementado (o decrementado), guardándose el resultado de dicha operación en el operando de salida que puede ser el mismo que el de entrada siempre y cuando no sea una constante. Para el caso de operandos de tipo doble palabra se cambia W por D.
OPERACIONES ARITMÉTICAS
En los procesos de mayor complejidad resultan útiles las operaciones de suma, resta, división y multiplicación. En el PLC S7200 estas operaciones se pueden realizar con datos enteros de 16 y 32 bits.
En programación KOP las operaciones aritméticas se representan mediante cuadros. Los mismos poseen una entrada de habilitación de la operación, dos entradas de datos y la salida
ADD_DI (SUB_DI, MUL, DIV)
EN
OP1
OP2 OUT
Donde los operandos pueden ser:
Para las operaciones ADD_I y SUB_I
OP1 y OP2: VW, EW, AW, T, C, MW, SMW, AC, AEW, K, *VD, *AC
OUT: VW, EW, AW, T, Z, MW, SMW, AC, *VD, *AC
Para la operación MUL
OP1 y OP2: VW, EW, AW, MW, SMW, AC, AEW, K, *VD, *AC
OUT: VD, ED, AD, MD, SMD, AC, *VD, *AC
El resultado de la operación multiplicación se gurda en doble palabra.
Para la operación DIV
OP1: VW, EW, AW, T, C, MW, SMW, AC, AEW, K, *VD,
OP2: VW, EW, AW, T, C, MW, SMW, AC, *VD, *AC
OUT: VD, ED, AD, MD, SMD, AC, *VD, *AC
Para el caso de operaciones con doble palabra los descriptores de los cuadros son ADD_DI Y SUB_DI y los operandos pueden ser:
OP1 Y OP2: VD, ED, AD, MD, SMD, AC, HC, K, *VD, *AC
OUT: VD, ED, AD, MD, SMD, AC, *VD, *AC
En lenguaje AWL estas operaciones se representan por los siguientes mnemónicos:
+IOP1 OP2(OP2=OP1+OP2)
-IOP1 OP2(OP2=OP2-OP1)
+DOP1 OP2
-DOP1 OP2
MULOP1 OP2(OP2=OP1xOP2)
DIVOP1 OP2(OP2=OP2/OP1)
Para las operaciones MUL y DIV en formato AWL :
OP1: VW, T, Z , EW, AW, MW, SMW, AC, AEW, K, *VD, *AC
OP2: VD, ED, AD, MD, SMD, AC, *VD, *AC
NOTA: En programación KOP los operandos OP1 y OP2 en las operaciones MUL y DIV son de tipo palabra.
MARCAS ESPECIALES AFECTADAS POR OPERACIONES ARITMÉTICAS
Las operaciones aritméticas mencionadas repercuten sobre las siguientes marcas especiales (SM): SM1.0 (cero) , SM1.1 (desbordamiento ), SM1.2 (signo), SM1.3( división por cero). Estas marcas especiales son manipuladas por el PLC y se activan de acuerdo a las siguientes situaciones: La marca de cero se pone a uno cada vez que el resultado de una operación es cero; la marca de desbordamiento se pone a uno cada vez que el resultado excede el campo de representación; la marca de signo se pone a uno si el resultado de una determinada operación es negativo y la marca de división por cero solamente es activada cuando se realiza una operación por cero. (Ver APÉNDICE C).
OPERACIONES LÓGICAS
Estas operaciones se realizan bit a bit sobre datos de tipo palabra o doble palabra. Las mismas son AND,OR Y XOR. En la programación de diagrama de contacto las operaciones lógicas se representan mediante un cuadro con tres entradas y una salida. De las entradas una es de habilitación, la misma deberá estar precedida por un contacto de habilitación para activar la operación, y las otras dos representan los datos con que se realiza la operación. En lenguaje de programación AWL las operaciones tienen el formato general:
DATO: PALABRADATO DOBLE PALABRA
ANDW OP1 OP2 ANDD OP1 OP2
ORW OP1 OP2 ORD OP1 OP2
XORW OP1 OP2 XORD OP1 OP2
En programación KOP , cada una de las operaciones anteriores se representan mediante cuadros con 3 entradas ( 1 de habilitación, y dos para datos) y una salida, según se muestra en la figura:
WAND_W (WOR_W o WXOR_W)
EN
OP1
OP2 OUT
Para el caso de operandos de doble palabra el cuadro tiene el mismo formato, cambiando el nombre de los mismos:
WAND_DWWOR_DWWXOR_DW
Los valores que pueden adoptar los operandos son:
OP1 y OP2: VD, AD, ED, MD, SMD, K, HC, AC, *VD, *AC
OUT: VD, ED, AD, MD, SMD, AC, *VD, *AC
NOTA: En las operaciones en AWL el resultado se guarda en OP2.
OPERACIONES DE SALTO Y LLAMADO A SUBPROGRAMAS
Las operaciones de salto permiten romper la secuencia de un programa saltando de un punto a otro del mismo (JMP). Esto permite evitar la ejecución de alguna parte de un programa, interrumpiéndose en el punto donde se encuentra el salto, el cual se efectuará solo si se cumple la condición.
Si un programa se organiza en bloques independientes ( estructuras ) resulta más prolijo, fácil de depurar y de mantener. Esto es ante una determinada falla lógica podemos recurrir al bloque asociado en forma rápida, ya que el programa no será una secuencia de órdenes dispersas sino organizadas en bloques. Por otro lado esta forma de programación estructurada permite optimizar el uso de la memoria del PLC, debido a que aquellos bloques que requieran ejecutarse desde distintos puntos de un programa no requieren ser reprogramados.
OB1 PB1
CALL 5
CALL 1
PB2 PB5
CALL 12 CALL 5
Las operaciones de llamado a subrutina permiten invocar a un subprograma desde otro programa. La operación llamar a subrutina transfiere el control a la misma y una vez concluida vuelve a la posición desde donde fue llamada.
Existe la posibilidad de anidar hasta 8 subrutinas (profundidad de anidamiento 8 niveles ) .
La CPU214 asiste un máximo de 64 subrutinas las cuales se enumeran desde la cero a la quince (SBR0 a SBR63).
Las subrutinas se programan después del programa principal, y el orden en que se lo hace no requiere coincidir con el orden de llamado. Cada subrutina comienza con un número que la identifica. El llamado a la subrutina se realiza mediante la orden call y un número coloca automáticamente el editor SBR0, SBR1, etc.
Para insertar un llamado a subrutina nos ubicamos a continuación de un contacto, como si fuéramos a colocar una bobina o un cuadro, luego clic sobre botón derecho del mouse y seleccionar insertar subrutina, esto nos lleva al modulo creado que si es el primero se identifica como SBR0, allí podemos programar lo que contiene la subrutina. En el programa principal ubicarse en el punto de llamado y buscar en la carpeta de operaciones la carpeta subrutinas seleccionar SBR0 y hacer doble clic. Lo dicho se esquematiza a continuación.
Ej:
AREA DE PROGRAMA (OB1)
SM0.1
SBR0
AREA DE SUBRUTINAS (SBR)
SM0.0 MOV_B
16#F QB0
El programa representado en KOP transfiere el control a la subrutina 0 (SBR0) en el primer ciclo de operación del PLC (habilitada por la marca de primer ciclo SM0.1), la rutina transfiere el valor F (hexa) a la salida, esto activa las 4 salidas menos significativas. Para que se ingrese a la subrutina en forma independiente de algún control del usuario, y si es así como se lo requiere, se utiliza una marca de estado permanente (SM0.0).