# Autòmat programable

En electrònica un autòmat és un sistema seqüencial, encara que a vegades la paraula és utilitzada també per referir-se a un robot. Pot definir-se com un equip electrònic programable en llenguatge no informàtic i dissenyat per controlar, en temps real i en ambient industrial, processos seqüencials. No obstant això, la ràpida evolució dels autòmats fa que aquesta definició no estigui tancada.

## Introducció

En la disciplina pertanyent a la informàtica, es descriuen tres tipus d'autòmats que reconeixen tipus diferents de llenguatges: els autòmats finits, els autòmats a pila i les màquines de Turing.
L'autòmat és la primera màquina amb llenguatge, és a dir, un calculador lògic el joc del qual d'instruccions s'orienta cap als sistemes d'evolució seqüencial.
L'aparició dels ordinadors a mitjan 50's va inaugurar el camp de la lògica programada per al control de processos industrials. No obstant això, encara que aquests ordinadors resolien els inconvenients d'un sistema cablejat o la trucada lògica cablejada, presentaven nous problemes:
   * Mala adaptació a l'entorn industrial.
   * Cost elevat dels equips.
   * Necessitat de personal informàtic per a la realització dels programes.
   * Necessitat de personal especialitzat per al manteniment.
Aquests problemes se solucionarien amb l'aparició de l'autòmat programable o PLC (Controlador Lògic Programable; en anglès Programable Logic Controler).

### Desenvolupament històric

A mitjan anys 60, General Motors, preocupada pels elevats costos dels sistemes de control a força de relés, de lògica cablejada, va començar a treballar amb Digital en el desenvolupament d'un sistema de control que evités els inconvenients de la lògica programada. El resultat de la col·laboració va ser un equip programat, denominat PDP-14, l'ocupació del qual no va trigar a estendre's a altres indústries. Al principi, els autòmats programables només treballaven amb control discreta (Si o No), per la qual cosa els problemes que requerien la manipulació de magnituds analògiques es van deixar per als tradicionals sistemes de control distribuït.
Resulta curiós anotar que R. I. Moreley, considerat per molts el pare de l'autòmat programable, treballant independentment de les especificacions de la General Motors va desenvolupar un equip que responia a les necessitats d'aquesta multinacional.
Cap a la primera meitat dels anys 70 els autòmats programables incorporen la tecnologia dels microcontroladors, augmentant d'aquesta manera les seves prestacions:
   * Realització d'operacions aritmètiques.
   * Comunicació amb els ordinadors.
   * Increment de la capacitat de memòria.
   * Millores en els llenguatges de programació.
   * Possibilitat d'entrades i sortides analògiques.
   * Possibilitat d'utilitzar xarxes de comunicacions.
La dècada dels anys 80 es caracteritza per la incorporació dels microprocessadors, aconseguint:
   * Alta velocitat de resposta.
   * Reducció de les dimensions.
   * Major seguretat de funcionament.
   * Gran capacitat d'emmagatzematge de dades.
   * Llenguatges de programació més potents: contactes, blocs funcionals, GRAFCET (GRAFica de Control d'Etapa de Transició).
En l'actualitat existeixen autòmats que permeten automatitzar a tots els nivells, des de petits sistemes mitjançant autòmats compactes, fins a sistemes summament complexos mitjançant la utilització de grans xarxes d'autòmats.

### Aplicacions

Com ja s'ha comentat, les primeres aplicacions dels autòmats programables es van donar en la indústria automotriu per substituir els complexos equips basats en relés. No obstant això, la disminució de grandària i el menor cost han permès que els autòmats siguin utilitzats en tots els sectors de la indústria. Només a manera d'exemple, s'esmenten a continuació alguns dels múltiples camps d'aplicació.

#### Automòbil

   * Cadenes de muntatge, soldadura, cabines de pintura, etc.
   * Màquines eines: Torns, fresadores, perforadores, etc.

#### Plantes químiques i petroquímiques

   * Control de processos (dosatge, barreja, pesatge, etc).
   * Banys electrolítics, oleoductes, refinat, tractament d'aigües residuals, etc.

#### Metal·lúrgia

   * Control de forns, laminatge, fosa, soldadura, forja, grues, entre d'altres.

#### Alimentació

   * Envasament, empaquetat, embotellat, magatzematge, omplert d'ampolles, etc.

#### Papereres i serradores

   * Control de processos, serradores, producció de conglomerats i de laminatges, etc.a

#### Producció d'energia

   * Centrals elèctriques, turbines, transport de combustible, energia solar, etc.

#### Tràfic

   * Regulació i control del tràfic, ferrocarrils, línies de metro, etc .

#### Domòtica

   * Il·luminació, temperatura ambienti, sistemes anti-robatori, comoditat i benestar en la llar, etc.

#### Fabricació de pneumàtics

   * Control de calderes, sistemes de refrigeració, premses que volcanitzen els pneumàtics.
   * Control de les màquines per a l'armat de les cobertes, extrusores de goma.
   * Control de les màquines per barrejar goma.

## L'autòmat programable
### Estructura general

Un autòmat programable es pot considerar com un sistema basat en un microprocessador, sent les seves parts fonamentals la Unitat Central de Procés (CPU), la Memòria i el Sistema d'Entrades i Sortides (E/S).
La CPU realitza el control intern i extern de l'autòmat i la interpretació de les instruccions del programa. A partir de les instruccions emmagatzemades en la memòria i de les dades que rep de les entrades, genera els senyals de les sortides. La memòria es divideix en dos blocs, la memòria de solament lectura o ROM (Read Only Memory) i la memòria de lectura i escriptura o RAM (Random Access Memory).
En la memòria ROM s'emmagatzemen programes per al correcte funcionament del sistema, com el programa de comprovació de l'engegada i el programa d'exploració de la memòria RAM.
La memòria RAM al seu torn pot dividir-se en dues àrees:
   * Memòria de dades, en la qual s'emmagatzema la informació dels estats de les entrades i sortides i de variables internes.
   * Memòria d'usuari, en la qual s'emmagatzema el programa amb el qual treballarà l'autòmat.
El sistema d'Entrades i Sortides recull la informació del procés controlat (Entrades) i envia les accions de control del mateix (sortides). Els dispositius d'entrada poden ser polsadors, interruptors, finals de carrera, termòstats, pressòstats, detectors de nivell, detectors de proximitat, contactes auxiliars, etc.
Per la seva banda, els dispositius de sortida són també molt variats: Pilots indicadors, relés, contactorés, arrancadores de motors, vàlvules, etc. En el següent punt es tracta amb més detall aquest sistema.

### Sistema d'entrades i sortides

En general, les entrades i sortides (E/S) d'un autòmat poden ser discretes, analògiques, numèriques o especials.
Les E/S discretes es caracteritzen per presentar dos estats diferenciats: presència o absència de tensió, relé obert o tancat, etc. El seu estat es pot visualitzar mitjançant indicadors tipus LED que s'il·luminen quan hi ha senyal en l'entrada o quan s'activa la sortida. Els nivells de tensió de les entrades més comunes són 5 V cc, 24 V cc/ca, 48 V cc/ca i 220 V ca.
Els dispositius de sortida més freqüents són relés, transistors i triacs.
Les E/S analògiques tenen com a funció la conversió d'una magnitud analògica (tensió o corrent) equivalent a una magnitud física (temperatura, pressió, grau d'acidesa, etc.) en una expressió binària d'11, 12 o més bits, depenent de la precisió desitjada. Això es realitza mitjançant convertidors analògic-digitals (ADC's).
Les E/S numèriques permeten l'adquisició o generació d'informació a nivell numèric, en codis BCD, Gray o uns altres (vegeu codi binari). La informació numèrica pot ser entrada mitjançant dispositius electrònics digitals apropiats. Per la seva banda, les sortides numèriques subministren informació per ser utilitzada en dispositius visualitzadors (de 7 segments) o altres equips digitals.
Finalment, les E/S especials s'utilitzen en processos en els quals amb les anteriors E/S vistes són poc efectives, bé perquè és necessari un gran nombre d'elements addicionals, bé perquè el programa necessita moltes instruccions. Entre les més importants estan:
   * Entrades per termoparell i termoresistència: Per al control de temperatures.
   * Sortides de trens d'impuls: Per al control de motors pas a pas (PAP).
   * Entrades i sortides de regulació P+R+D (Proporcional + Integral + Derivatiu): Per a processos de regulació d'alta precisió.
   * Sortides ASCII: Per a la comunicació amb perifèrics intel·ligents (equip de programació, impressora, PC, etc.).

### Cicle de funcionament o d'Scan

Quan s'engega el PLC es realitzen una sèrie de comprovacions:
   * Funcionament de les memòries.
   * Comunicacions internes i externes.
   * Elements d'E/S.
   * Tensions correctes de la font d'alimentació.
Una vegada efectuades aquestes comprovacions i si les mateixes resulten ser correctes, la CPU… inicia l'exploració del programa i reinicialitza. Això últim si l'autòmat es troba en manera RUN (marxa), ja que d'estar en manera STOP (atur) esperaria, sense explorar el programa, fins a la posada en RUN.
En produir-se el pas a la manera STOP o si s'interromp la tensió d'alimentació durant un temps prou llarg, la CPU realitza les següents accions:
   * Deté l'exploració del programa.
   * Posa a zero, és a dir, desactiva totes les sortides.
Mentre s'està executant el programa, la CPU realitza en successius intervals de temps diferents funcions de diagnòstic (watch-dog en anglès). Qualsevol anomalia que es detecti es reflectirà en els indicadors de diagnòstic del processador i depenent de la seva importància es generarà un codi d'error o es pararà totalment el sistema.
El temps total del cicle d'execució ve determinat pels temps emprats en les diferents operacions. El temps d'exploració del programa és variable en funció de la quantitat i tipus de les instruccions així com de l'execució de subrutines. El temps d'exploració és un dels paràmetres que caracteritza a un PLC i generalment se sol expressar en mil·lisegons per cada mil instruccions. Per reduir els temps d'execució, algunes CPU's consten de dues o més processadors que operen simultàniament i estan dedicats a funcions específiques. També es pot descarregar de tasques a la CPU incorporant mòduls intel·ligents dedicats a tasques específiques.

### Equips de programació

La missió principal dels equips de programació, és la de servir d'interfície entre l'operador i l'autòmat per introduir en la memòria d'usuari el programa amb les instruccions que defineixen les seqüències de control.
Depenent del tipus d'autòmat, l'equip de programació produeix uns codis d'instrucció directament executables pel processador o bé un codi intermedi, que és interpretat per un programa resident en el processador (firmware).
Les tasques principals d'un equip de programació són:
   * Introducció de les instruccions del programa.
   * Edició i modificació del programa.
   * Detecció d'errors.
   * Arxiu de programes (cintes, discos).
Bàsicament existeixen tres tipus d'equips de programació:
   * Consola amb teclat i pantalla de tub de raigs catòdics (CRT) o de cristall líquid (LCD).
   * Programador manual, semblant a una calculadora de butxaca, més econòmic que l'anterior.
   * Ordinador personal amb el programari apropiat.
La connexió de la consola o ordinador a l'autòmat programable es realitza mitjançant una connexió en sèrie (generalment la RS-232C o la RS-422).

### Equips perifèrics

A més dels equips de programació, existeixen nombrosos dispositius que sense formar part directa de l'autòmat, poden connectar-se al mateix per realitzar diferents funcions. Normalment es connecten a les sortides ASCII o als canals de comunicació de l'autòmat.
Seguidament es descriuen alguns dels equips perifèrics més comuns:
   * Mòduls d'ampliació d'entrades i sortides: Necessaris per a aquells processos en els quals l'estructura d'E/S de l'autòmat sigui insuficient.
   * Mòduls de tractament de dades: Són petits ordinadors que manegen diferents dades (comptadors, temps, estat d'E/S, etc.), per a l'elaboració d'informes, gràfics, etc.
   * Impressores.
   * Visualitzadors alfanumèrics.
   * Lectors de codi de barres.
La forma de comunicar-se l'autòmat amb els seus perifèrics pot ser unidireccional, quan s'estableix en un només sentit, o ben bidireccional, quan s'estableix en els dos sentits. Els enllaços per a tots dos tipus de comunicació solen ser en general del tipus seriï, sent els més emprats els anteriorment esmentats RS-232C i RS-422, tots dos d'acord amb les normes de l'EIA (Electronic Industries Association).
El RS-232C és el mètode de transmissió de dades més difós, però té la limitació de la distància màxima de transmissió a 15 metres i la velocitat màxima de transmissió de 19.200 bauds (1 baud = 1 bit/segon). El RS-422 resol en part les limitacions del RS-232C. La distància de transmissió pot superar un quilòmetre i la velocitat pot arribar a 10 Mbauds.

## Programació de l'autòmat

Per controlar un determinat procés, l'autòmat realitza les seves tasques d'acord amb una sèrie de sentències o instruccions establertes en un programa. Aquestes instruccions hauran d'haver estat escrites amb anterioritat per l'usuari en un llenguatge comprensible per la CPU. En general, les instruccions poden ser de funcions lògiques, de temps, de compte, aritmètiques, d'espera, de salt, de comparació, de comunicació i auxiliars.
Depenent del fabricador, els llenguatges de programació són molt diversos, no obstant això, solen tenir alguna relació més o menys directa amb els llenguatges Ladder o GRAFCET.
Els programes per a autòmat poden realitzar-se de forma lineal o de forma estructurada. A la programació lineal el programa consta d'una sèrie d'instruccions que es van executant una rere l'altra de manera cíclica. Aquesta manera de programació se sol emprar en programes no gaire complexos o en autòmats que no posseeixin la manera estructurada. Quan els programes són molt complexos, la programació estructurada és més aconsellable, ja que pot dividir-se el procés general en subprogrames amb diferents subprocessos tecnològics. Unes altres dels avantatges d'aquesta manera de programació és que dona un caràcter més panoràmic al programa, la qual cosa comporta una més fàcil identificació d'errors així com una major facilitat de comprensió per altres programadors.
Programar un autòmat no és realment alguna cosa impossible, però sí que es necessita paciència. Com a exemple tenim un enllaç en la secció d'enllaços externs que condueix a una pàgina que ens porta on es troba un arxiu fet en java amb codi font perquè es pugui analitzar i comprendre d'una manera més senzilla com funciona un autòmat finit determinista (AFD).

## Vegeu també

* Autòmat finit

## Referències

* ↑ «Introducción a los Autómatas Programables (PLC)» (en castellà). Arxivat de l'original el 3 de març 2016. [Consulta: 17 octubre 2015].
* ↑ «El PLC» (en castellà). Universitat del País Basc. [Consulta: 17 octubre 2015].