Controllo dei Processi

Documenti analoghi
PREMESSA In questa lezione analizziamo le diverse modalità di programmazione del PLC, soffermandoci in particolare sulle programmazioni KOP e AWL.

Reggio Calabria, 29 Aprile 2009 ING.VALERIO SCORDAMAGLIA

Tecnologie dei Sistemi di Automazione e Controllo

Automazione e territorio

PLC. PROGRAMMABLE LOGIC CONTROLLER 2a parte CON RIFERIMENTO ALLE CPU SIEMENS ST 200 ED AL SW STEP 7 MICRO/WIN 32

INFORMATICA INDUSTRIALE

Sequential Functional Chart

Programmable Logic Controller. Ing. Stefano MAGGI

PLC E AUTOMAZIONE INDUSTRIALE

Perché il P.L.C.? Introduzione di base al P.L.C. (Programmable Logic Controller) SAVE Veronafiere Ottobre 2007

PLC Sistemi a Logica Programmabile Il linguaggio AWL istruzioni di base

Ingegneria e Tecnologie dei Sistemi di Controllo. Sistemi di controllo industriale general-purpose. purpose: : PLC.

Corso di Automazione industriale

NORMA CEI EN PLC: programmazione. PLC: programmazione. PLC: programmazione. Automazione Industriale 3. Automazione Industriale

Programmable Logic Controller Seconda Parte

I SISTEMI AUTOMATICI

PLC e standard IEC

PLC e standard IEC PLC e standard IEC

Architettura hardware

Il linguaggio LD (Ladder Diagram)

Indice Introduzione Avviso importante per i lettori Capitolo 1 Apparecchi di manovra, di protezione e sensori

Tecnica basata su Relazioni I/O Circuito di Clock

Function Block Diagram

Laboratorio di Sistemi e Automazione (A020-C320) esperienza competenze Competenze trasversali

EcoRemote SISTEMA DI GESTIONE DI UNA STAZIONE DI MONITORAGGIO DELLA QUALITÀ DELL ARIA. Ingegneria dei sistemi

Alimentatore master. Introduzione

IL CONTROLLO DI UN PROCESSO

Rappresentazione base 2

Introduzione ad ISaGRAF

Corso di Informatica

PIANO DI LAVORO DEI DOCENTI

senza stato una ed una sola

STEP7: blocchi. Vi sono diversi tipi di blocchi che possono essere utilizzati all'interno di programmi utente:

DMX 30. PLC visualizzato per montaggio a quadro. CARATTERISTICHE ELETTRICHE Min 20Vcc ; Max 26 Vcc Min 15 Vac ; Max 21 Vac

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

La tecnica proporzionale

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Tecniche di Progettazione Digitale Logiche programmabili; standard cells; generazione automatica del layout: algoritmi di partitioning p.

Componenti e connessioni. Capitolo 3

Architettura dei computer

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Programmazione dei PLC in linguaggio Ladder

Esame di INFORMATICA Lezione 4

Sequential Functional Chart (SFC) - Parte 1

IL PLC. Programmable Logic Controller (Controllore a Logica Programmabile)

TSP 240. Terminale operatore con PLC integrato. inferiore a 500 ma senza carichi. Memoria Programma

SISTEMI PER L INDUSTRIA E PLC 2/02/16 Minimo 4 punti su 12 su Programmazione Nome Matricola

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Lezione 15. L elaboratore Elettronico

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Ambiente di sviluppo STEP 7 Micro/Win

Lezione2: Circuiti Logici

MODULO 2 ELEMENTI DI PROGRAMMAZIONE DEL PLC S SIEMENS PARTE PRIMA IL LINGUAGGIO A CONTATTI

Com è fatto un computer (seconda puntata) Appunti per le classi 1 A cura del prof. Ing. Mario Catalano

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Modulo 1 Concetti di base della Tecnologia dell Informazione

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il Processore. Informatica di Base -- R.Gaeta 27

SISTEMI DISTRIBUITI E PLC 02/02/15 SISTEMI ELETTRONICI PER L AUTOMAZIONE E PLC, LABORATORIO DI STRUMENTAZIONE PER L AUTOMAZIONE

Elementi di base del calcolatore

6.5 CPU 314C-2 PtP e CPU 314C-2 DP

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

CONTROLLORI LOGICI PROGRAMMABILI PLC

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

La memoria principale

Introduzione al funzionamento di un calcolatore elettronico

Lezione 7 Sommatori e Moltiplicatori

Esempio PROGRAMMAZIONE IN LADDER IN AMBIENTE SIMATIC STEP7. Corso su. creato in esclusiva per Associazione PLC Forum

PORTE LOGICHE. Si effettua su due o più variabili, l uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1.

Informatica giuridica

PLC FUNZIONAMENTO. attuatori. Sensori PLC PROGRAMMA INPUT OUTPUT CPU MICROPROCESSOR E. Trasduttori CONSOLLE DI PROGRMMAZIONE MEMORIA CENTRALE

Come è fatto un computer

LA GESTIONE DELLA I/O

P R O G E T T O L A R S A A P P U N T I S U L P. L. C.

P. L. C. Marino prof. Mazzoni. (Programmable Logic Controller)

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Pluto Manager. Pluto Manager 4/2. Manuale della sicurezza ABB 2TLC172001C0202 4/1

ESEMPIO QUATTRO: TRAPANO COMPLESSO

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Programmable Logic Controller Prima Parte

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Il controllore a logica programmabile nell automazione industriale 1.1 L automazione industriale

PLC Sistemi a Logica Programmabile Il linguaggio Ladder-Parte

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Reti logiche

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Capitolo 6 Le infrastrutture SoftWare

Applicazioni del PLC: software

Luigi Piroddi

L insieme delle istruzioni, atte ad elaborare convenientemente i dati ed organizzate in modo organico, viene normalmente definito programma.

Corso di Automazione Industriale 1. Capitolo 2

MATERIALI PER LA DISCUSSIONE

CORSO DI BASE SUI CONTROLLORI A LOGICA PROGRAMMABILE (PLC)

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Linguaggio C - sezione dichiarativa: costanti e variabili

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Transcript:

Controllo dei Processi Università degli Studi di Siena Sede di Arezzo Corso di Laurea in Ingegneria dell Automazione Controllo dei Processi - Esercitazioni A.A. 2004-2005 dott. ing. Luca Polverini Lezione n. 1 Introduzione In questa lezione conosceremo il PLC, lo standard IEC1131-3, i cinque linguaggi che tale standard definisce, e vedremo gli elementi sintattici fondamentali di uno dei linguaggi che studieremo (il linguaggio LD) con riferimento allo standard IEC ed alla versione Siemens (linguaggio KOP) Maggio 2005 Corso di Controllo dei Processi Pagina 2 1

Controllo modulante e logico concetti fondamentali controllo modulante: l uscita del controllore varia in modo continuo. Il formalismo naturale per i problemi di controllo modulante è quello dei sistemi dinamici a tempo continuo o discreto. controllo logico: l uscita del controllore varia in modo discreto (n. finito di valori). Il formalismo naturale per i problemi di controllo logico è quello dei sistemi dinamici a eventi discreti. Maggio 2005 Corso di Controllo dei Processi Pagina 3 Controllo modulante e logico struttura Le funzioni di controllo modulante e logico interagiscono in modo molto stretto. I sistemi di controllo hanno una struttura gerarchica a vari livelli, dove operano controllori di tipo modulante, logico o ibrido. Molta importanza hanno gli aspetti di comunicazione, interoperabilità, e così via. Le strutture di comunicazione sono di solito reti a bus, e si usano protocolli la cui standardizzazione è di estrema rilevanza e criticità. La gestione dei sistemi di controllo è un problema complesso, e per farla non si può prescindere da conoscenze di tipo tecnico. I livelli inferiori del sistema di controllo, che interagiscono con l impianto, sono per lo più di tipo modulante: controlli primari (livelli, temperature,...) controlli asserviti (pompe, valvole,...) I livelli superiori del sistema di controllo svolgono soprattutto funzioni di controllo logico: supervisione, avviamento e spegnimento, controllo delle sequenze di lavorazione, gestione di guasti ed emergenze. Maggio 2005 Corso di Controllo dei Processi Pagina 4 2

Controllo modulante e logico logica cablata Il dispositivo fondamentale per il controllo logico è il PLC (Programmable Logic Controller) Fino agli anni 60, il controllo logico era fatto con dispositivi elettromeccanici come i relé. Si riuscivano ad implementare controlli anche di elevata complessità, ma c erano diversi problemi: i sistemi erano costosi e ingombranti; non era facile integrarli col controllo modulante (fatto all epoca con dispositivi discreti di tipo elettronico e/o pneumatico); una volta realizzato un sistema non era agevole modificarlo. Ci si riferisce al controllo con relè con il termine logica cablata. Maggio 2005 Corso di Controllo dei Processi Pagina 5 Controllo modulante e logico esempio di logica cablata Maggio 2005 Corso di Controllo dei Processi Pagina 6 3

Controllo modulante e logico logica programmabile Occorrevano controllori concettualmente nuovi, che fossero programmabili e (soprattutto) riprogrammabili in sito, modulari, robusti, di dimensioni ridotte e basso costo, standardizzabili, in modo da poter mescolare prodotti di case diverse. Il primo PLC con queste caratteristiche fu prodotto nel 1968 dalla General Motors. Verso la metà degli anni 70, la Allen Bradley introdusse il primo PLC basato su microprocessore (8080). I moderni PLC hanno capacità di controllo sia logico che modulante. Per il controllo con PLC si usa il termine logica programmabile. Maggio 2005 Corso di Controllo dei Processi Pagina 7 Controllo modulante e logico logica programmabile In seguito i PLC si sono affermati per gestire logiche in sostituzione a ingombranti e complesse logiche a relè. Comprovati vantaggi derivati dal loro uso sono: Sistemi più affidabili, flessibili, economici Soluzioni espandibili, scalabili Diagnostica semplificata Riduzione della potenza (100 ma) Tempi di reazione inferiori Regolazione, controllo, calcolo multi-variabile Maggio 2005 Corso di Controllo dei Processi Pagina 8 4

PLC e standard IEC 1131-3 definizione Definizioni secondo lo standard IEC 1131. PLC (Programmable Logic Controller): sistema elettronico a funzionamento digitale, destinato all uso in ambito industriale, che utilizza una memoria programmabile per l archiviazione interna di istruzioni orientate all utilizzazione per l implementazione di funzioni specifiche, come quelle logiche, di sequenziamento, di temporizzazione, di conteggio e di calcolo aritmetico, e per controllare, mediante ingressi ed uscite sia digitali che analogici, vari tipi di macchine e processi. Sistema PLC: configurazione realizzata dall utilizzatore, formata da un PLC e dalle periferiche associate, necessaria al sistema automatizzato previsto. Maggio 2005 Corso di Controllo dei Processi Pagina 9 PLC e standard IEC1131-3 PLC compatti ed espandibili COMPATTI: Basso costo Struttura hardware rigida: unico blocco caratterizzato da pochi I\O ESPANDIBILI: Architettura semplice a singola CPU Flessibilità maggiore dovuta alla disponibilità di schede hardware di espansione Maggio 2005 Corso di Controllo dei Processi Pagina 10 5

PLC e standard IEC 1131-3 componenti fondamentali di un sistema PLC Armadio (o Rack o Guida Profilata). Contiene i vari moduli assicurandone la connessione meccanica ed elettrica (tramite bus) e la schermatura. Le sue caratteristiche fondamentali sono il numero di slot, il grado di protezione, le dimensioni e il tipo di fissaggio. Modulo alimentatore. Fornisce l alimentazione stabilizzata ai moduli del rack. Le sue caratteristiche principali sono la potenza massima erogabile, la connettibilità in parallelo (per aumentare la potenza o per motivi di ridondanza), la possibilità di inviare al PLC un segnale di shutdown in caso di mancanza di alimentazione, la presenza di batterie tampone e di indicatori di stato. Moduli di ingresso/uscita (I/O). Il PLC comunica con il campo attraverso moduli di I/O digitali e analogici, che assicurano l isolamento galvanico per salvaguardare l elettronica interna. La trasmissione avviene in tensione o - più spesso - in corrente, modulando l assorbimento sulle linee di alimentazione (il che richiede un solo cavo ed è preferibile in presenza delle alte cadute resistive date dai collegamenti lunghi). I moduli di I/O analogici realizzano anche le conversioni D/A e A/D. Maggio 2005 Corso di Controllo dei Processi Pagina 11 PLC e standard IEC 1131-3 componenti fondamentali di un sistema PLC Moduli speciali. Ne esistono di molti tipi. I principali sono: moduli di I/O remoto (posti in un rack diverso da quello del PLC), moduli per connessione in rete (per bus di campo, ethernet,...), moduli per controllo PID, moduli per la lettura di sensori particolari (termocoppie, encoder, ), moduli d interfaccia operatore (tastierini, display, ), moduli di backup (CPU di riserva sincronizzate con quella principale, che le subentrano in caso di malfunzionamento). Terminale di programmazione. Vi sono terminali di tipo dedicato che si collegano direttamente al PLC tramite una porta di comunicazione e sono dotati di una tastiera per l inserimento delle istruzioni e di un display per il controllo del programma. Sono sempre più diffusi sistemi di sviluppo basati su PC, con cui si effettua off-line la programmazione del codice da memorizzare sul PLC. Si utilizzano dei pacchetti software appositi. I terminali PC sono connessi al PLC direttamente o via rete. Spesso consentono anche il monitoraggio del PLC durante il suo normale funzionamento. Maggio 2005 Corso di Controllo dei Processi Pagina 12 6

PLC e standard IEC 1131-3 componenti fondamentali di un sistema PLC Modulo processore. Il modulo processore (CPU) contiene uno o più microprocessori, che eseguono i programmi del sistema operativo e quelli sviluppati dall utente, la memoria dove questi programmi sono conservati e l hardware per l interfacciamento con gli altri moduli del sistema. La sua modalità di funzionamento standard consiste nell eseguire periodicamente il ciclo di copia massiva degli ingressi e delle uscite (immagine di processo degli ingressi e delle uscite), che consiste dei seguenti passi: Lettura degli ingressi fisici e aggiornamento coi valori così ottenuti di un area specifica della memoria; Esecuzione del programma utente, che opera sui valori in memoria e in memoria pone i risultati; Esecuzione dei programmi di gestione del sistema (ad es. di diagnostica); Scrittura sulle uscite fisiche dei valori corrispondenti conservati nell area di memoria riservata a questo scopo. In casi particolari (tipicamente guasti o emergenze) una CPU può eseguire operazioni con accesso immediato ai punti di ingresso/uscita, tipicamente in risposta ad interrupt. E bene limitare l uso degli interrupt il più possibile, dal momento che un loro utilizzo esagerato riduce la leggibilità del codice. Maggio 2005 Corso di Controllo dei Processi Pagina 13 PLC e standard IEC 1131-3 componenti fondamentali di un sistema PLC La velocità di elaborazione di una CPU è misurata dal tempo di ciclo, cioè dal tempo che intercorre tra due attivazioni successive della stessa porzione del programma utente. Il tempo di ciclo dipende da quanti ingressi e uscite bisogna aggiornare e dalle dimensioni e dalla complessità del programma utente. Il tempo di scansione è definito in millisecondi per kiloword di programma (con word di 8 o 16 bit) eseguito dalla CPU. Il produttore di un PLC indica tipicamente un valor medio del tempo di scansione per programmi di media complessità (non tutte le istruzioni hanno la stessa durata). I tempi di scansione tipici sono dell ordine di qualche frazione di ms/kw. Il tempo di risposta (di reazione) del PLC è, invece, il massimo intervallo di tempo che passa tra la rilevazione di un certo evento e l esecuzione dell azione di risposta per esso programmata. Il tempo di risposta, quindi, tiene conto anche dei ritardi introdotti dai moduli di I/O e dei tempi di comunicazione (fieldbus). Maggio 2005 Corso di Controllo dei Processi Pagina 14 7

PLC e standard IEC 1131-3 componenti fondamentali di un sistema PLC Il sistema operativo di un PLC è un insieme di programmi memorizzati in modo permanente, che si occupano (tra l altro) di controllo delle attività del PLC, elaborazione dei programmi utente, comunicazione, diagnostica interna, ovvero watchdog timer (controllo del tempo di esecuzione di alcune funzionalità e generazione di un allarme se esso supera una soglia assegnata), controlli di parità sulla memoria e sulle linee di comunicazione, controllo della tensione di alimentazione e dello stato delle batterie tampone. Un generico PLC può trovarsi in tre modalità operative: esecuzione: si eseguono i programmi utente aggiornando ingressi e uscite; validazione: si eseguono i programmi ma l aggiornamento delle uscite è disabilitato (questa modalità serve tipicamente a verificare la correttezza del codice); programmazione: questa è la modalità utilizzata per caricare il codice nella memoria del PLC. Maggio 2005 Corso di Controllo dei Processi Pagina 15 PLC e standard IEC 1131-3 componenti fondamentali di un sistema PLC La memoria di un PLC è organizzata per aree distinte: area del sistema operativo (ROM), area di lavoro del sistema operativo (RAM), area di I/O (RAM), area dei programmi utente (RAM durante lo sviluppo, poi PROM o EPROM), area dei dati utente (RAM). La memoria a disposizione dei programmi utente varia tipicamente da circa mezzo kiloword a qualche centinaio di kiloword, con word di 8 o 16 bit. Altre caratteristiche importanti di un PLC sono: l espandibilità della memoria, il numero di moduli di I/O collegabili direttamente o in remoto, il numero e il tipo di porte di comunicazione disponibili (seriali, parallele, di rete), i linguaggi supportati, le capacità ed eventualmente le modalità di multitasking, la possibilità di gestire interrupt. Maggio 2005 Corso di Controllo dei Processi Pagina 16 8

PLC e standard IEC 1131-3 componenti fondamentali di un sistema PLC Nonostante abbiano una struttura apparentemente semplice, dal punto di vista hardware/firmware/software i PLC sono oggetti piuttosto complessi. Proviamo a tracciare uno schema molto semplificato della situazione, limitando il campo ad una CPU: Maggio 2005 Corso di Controllo dei Processi Pagina 17 PLC e standard IEC 1131-3 obiettivi IEC 1131 La normativa IEC 1131 definisce uno standard per il controllo logico. Essa riguarda lo sviluppo di sistemi di controllo basati su PLC ed ha come obiettivi primari la correttezza, la qualità e il contenimento del costo dei sistemi medesimi. La normativa si sviluppa secondo alcune linee guida: definire modelli, concetti e terminologia comuni; definire un riferimento per la realizzazione di strumenti di sviluppo, verifica e simulazione dei sistemi di controllo; facilitare l interazione tra progettisti e il riuso di elementi dei progetti; consentire la sopravvivenza dei progetti sviluppati a diverse generazioni tecnologiche dei prodotti (hw/sw) usati per implementarli. Maggio 2005 Corso di Controllo dei Processi Pagina 18 9

PLC e standard IEC 1131-3 i linguaggi di programmazione La normativa IEC 1131-3 definisce cinque linguaggi di programmazione per i PLC, di cui tre grafici e due testuali. Linguaggi grafici: diagramma funzionale sequenziale (SFC, Sequential Functional Chart), linguaggio a contatti (LD, Ladder Diagram), diagramma a blocchi funzionali (FBD, Function Block Diagram). Linguaggi testuali: lista di istruzioni (IL, Instruction List), testo strutturato (ST, Structured Text). Vi sono oggi diversi ambienti di sviluppo che supportano più di un linguaggio IEC 1131-3. Alcuni di questi ambienti consentono anche di mescolare i linguaggi entro un progetto, ossia d implementare alcune parti del progetto con un linguaggio ed altre con un altro. L aderenza allo standard è indice di portabilità del codice (anche se non implica la compatibilità del formato dei file). Maggio 2005 Corso di Controllo dei Processi Pagina 19 PLC e standard IEC 1131-3 i linguaggi di programmazione SFC (cenni) Sequential Functional Chart. Il Diagramma Funzionale Sequenziale (Sequential Functional Chart, SFC) è basato sui concetti di fase (entro cui si eseguono azioni) e di transizione (con cui, al verificarsi di certe condizioni, si passa da un certo insieme di fasi attive ad un altro). E' un linguaggio palesemente derivato dalle reti di Petri e gerarchicamente superiore agli altri quattro, nel senso che le azioni possono essere programmate in uno degli altri linguaggi e che spesso SFC è usato come strumento di specifica. Esempio di codice SFC: 1 2 FASE 1 Transizione 1 FASE 2 Transizione 2 Maggio 2005 Corso di Controllo dei Processi Pagina 20 10

PLC e standard IEC 1131-3 i linguaggi di programmazione LD (cenni) Ladder Diagram. Il Linguaggio a Contatti o Diagramma a Scala (Ladder Diagram, LD) è derivato dai disegni dei sistemi di controllo realizzati relè elettromeccanici, il che lo rende facilmente accettabile a tecnici di vecchia scuola. Si basa sui concetti di contatto e bobina ed è stato inizialmente pensato per funzioni di logica binaria; poi è stato esteso per trattare anche numeri interi e/o reali. E un linguaggio di basso livello e poco strutturato, non molto adatto a sistemi complessi. Tuttavia è importante perché è stato il primo linguaggio grafico per PLC, è presente in tutti i PLC industriali ed è uno standard di fatto del mercato americano. Esempio di codice LD: Maggio 2005 Corso di Controllo dei Processi Pagina 21 PLC e standard IEC 1131-3 i linguaggi di programmazione FBD (cenni) Function Block Diagram. Il Diagramma a Blocchi Funzionali (Function Block Diagram, FBD) può essere visto come analogo ai diagrammi circuitali, in cui le connessioni rappresentano i percorsi dei segnali tra i componenti. Un blocco funzionale ha due caratteristiche principali, ovvero la definizione dei dati (ingressi e uscite) e un algoritmo che processa i valori correnti degli ingressi e delle variabili interne (locali o globali) e produce i nuovi valori delle uscite. Esempio di codice FBD: Maggio 2005 Corso di Controllo dei Processi Pagina 22 11

PLC e standard IEC 1131-3 i linguaggi di programmazione IL - ST (cenni) Instruction List. La Lista Istruzioni (Instruction List, IL) è un linguaggio di basso livello molto simile all assembler. E adatto per compiti molto specifici quali l interfacciamento di hardware particolare. Anch esso, come il LD, è disponibile per tutti i PLC. Structured Text. Il Testo Strutturato (Structured Text, ST) è un linguaggio testuale ad alto livello, simile al PASCAL o ad alcuni BASIC. In questo corso studieremo i linguaggi LD, ST ed SFC. In particolare analizzeremo il linguaggio LD IEC 1131-3 e il similare linguaggio KOP che utilizzeremo per la programmazione del PLC Siemens S7300. Maggio 2005 Corso di Controllo dei Processi Pagina 23 PLC e standard IEC 1131-3 variabili binarie - numeriche La memoria dei PLC è organizzata in word di 8 o 16 bit. L informazione digitale di base è il bit, una cella di memoria che può valere 0 (quando non attivo) o 1 (quando attivo). i bit vengono raggruppati a loro volta in blocchi: Nome Numero di bit Combinazioni possibili Numero decimale (intero senza segno) Bit 1 bit 2 1 =2 0 1 (false true) Byte 8 bit 2 8 = 256 0 255 Word 16 bit 2 16 =65536 0 65535 Double Word 32 bit 2 32 =4.294.967.296 0 4.294.967.295 Long Word 64 bit 2 64 = Maggio 2005 Corso di Controllo dei Processi Pagina 24 12

PLC e standard IEC 1131-3 variabili binarie - numeriche Esiste una differenza sostanziale tra la variabile binaria (blocco di memoria) e la variabile numerica (l informazione numerica in esso contenuta). ad esempio: variabile binaria tipo word (16 bit): Valore BIN HEX DEC DA: A: 2#0000000000000000 2#1111111111111111 16#0000 16#FFFF 10#0 10#65535 variabile numerica (16 bit): Tipo: INT integer UINT unsigned integer DA: A: -32768 32767 0 65535 Per utilizzare una variabile numerica occorre specificarne il tipo (Data Type): Maggio 2005 Corso di Controllo dei Processi Pagina 25 Data Type fondamentali: PLC e standard IEC 1131-3 Data Type Maggio 2005 Corso di Controllo dei Processi Pagina 26 13

Data Type fondamentali: PLC e standard IEC 1131-3 Data Type Maggio 2005 Corso di Controllo dei Processi Pagina 27 IL LINGUAGGIO LADDER (LD) IEC 1131-1 LD Siemens Step7 KOP 14

Il linguaggio Ladder Diagram (LD) introduzione Il linguaggio LD è un linguaggio grafico che si pone l obiettivo di riprodurre in un paradigma di programmazione, per quanto una siffatta riproduzione è possibile, il funzionamento di una rete elettrica in cui gli utilizzatori (o bobine) sono o non sono alimentati a seconda dello stato di interruttori (o contatti). La motivazione alla base della nascita di LD (precedente a IEC1131-3) è storica : LD è nato per far accettare l dea di programmare (e quindi l uso del PLC) a chi era abituato a fare i sistemi di controllo logico con i relé elettromeccanici. Gli elementi fondamentali di LD sono quindi derivati proprio dagli schemi di controllo a relé elettromeccanici, e sono due linee verticali laterali dette montanti perché ricordano appunto i montanti di una scala a pioli (donde il nome LD) e che rappresentano un alimentazione elettrica (il montante di sinistra è il polo positivo, quello di destra è la massa) dei collegamenti orizzontali tra i montanti, detti pioli o rung, che contengono a sinistra dei contatti e a destra delle bobine. Maggio 2005 Corso di Controllo dei Processi Pagina 29 Il linguaggio Ladder Diagram (LD) principio Il principio alla base di LD è elementare e lo si comprende con un semplice esempio: In1 In2 Out --- --- ---+----( )-- In3 ------ ------+ Alimentazione Massa In questo rung, la bobina Out è alimentata se sono chiusi i contatti In1 ed In2, oppure se è chiuso In3. Quindi, assumendo la convenzione che alimentato significhi vero e non alimentato significhi falso, il rung corrisponde all istruzione booleana di assegnamento Out = (In1 + In2) * In3 = (In1 AND In2) OR In3 dove le variabili in gioco sono tutte booleane. Come s intuisce, LD è un modo di programmare vicino a chi è abituato a ragionare coi relè, anche se non è certo questo (come vedremo) il motivo per cui lo trattiamo nel corso. Maggio 2005 Corso di Controllo dei Processi Pagina 30 15

Il linguaggio Ladder Diagram (LD) regole fondamentali Tuttavia, la corrispondenza di un programma LD (per definizione sequenziale) con una rete elettrica (per natura sede di fenomeni simultanei) non può essere totale. Per eliminare ogni possibile ambiguità a ciò conseguente, si stabiliscono quindi nella definizione di LD le regole enunciate nel seguito. Regola 1. La corrente può fluire nei contatti e nelle bobine soltanto da sinistra verso destra. Esempio: In1 In2 In3 Out ---- ----+---- --------- ----+----( )-- In4 In5 +---- ----+---- ----+ In6 ---- ----------------+ In questo rung il percorso di corrente indicato dalla freccia è vietato, quindi il rung medesimo corrisponde senza possibili ambiguità all istruzione Out = (In1 + ((In2 + In3) * (In4 + In5))) * (In6 + In5) Maggio 2005 Corso di Controllo dei Processi Pagina 31 Il linguaggio Ladder Diagram (LD) regole fondamentali Regola 2. I rung vengono esplorati dal PLC dal primo in alto all ultimo in basso, e giunti all ultimo si ricomincia dal primo. Di conseguenza, l ordine dei rung è rilevante (come lo è quello delle istruzioni in un programma e come non lo è quello di collegamenti elettrici in parallelo). Regola 3. La sincronizzazione delle variabili del programma con ingressi e uscite avviene secondo il principio della copia massiva (immagine di processo): si leggono gli ingressi (che quindi ai fini del programma restano costanti per tutto il ciclo); si eseguono tutti i rung (a meno di salti, che vedremo poi) e si scrivono (cioè si assegna un valore a) tutte le bobine normali (ci sono anche quelle a ritenuta e anch esse le vedremo poi), col che ogni bobina conserva il suo valore fino a che non viene riscritta in un ciclo successivo; si aggiornano le uscite; si ricomincia tutto da capo. Osservazione importante. LD è un linguaggio che descrive il ciclo operativo del PLC, nel senso che in un programma LD è scritta la sequenza delle cose che il PLC deve fare ad ogni ciclo. Maggio 2005 Corso di Controllo dei Processi Pagina 32 16

Contatto normalmente aperto. Simbolo: --- --- Il linguaggio Ladder Diagram (LD) istruzioni di base Può essere associato ad un bit di ingresso (che si indica con Ix:y, intendendo il bit y della word x), ad un bit di uscita (Ux:y), ad un bit costituente una variabile booleana interna (Wx:y), oppure ad un bit di stato di un temporizzatore o di un contatore (che vedremo poi). Il nome del bit associato si pone sopra il contatto. Quasi tutti i sistemi consentono di dare ai bit anche dei nomi simbolici oltre ai nomi legati all indirizzo fisico di memoria come quelli sopra, per migliorare la leggibilità dei programmi. Se il bit associato al contatto vale 1 ( vero ) il contatto è chiuso e c è continuità logica (elettrica), altrimenti il contatto è aperto e non c è continuità. Contatto normalmente chiuso. Simbolo: --- / --- E del tutto analogo al contatto normalmente aperto, con la sola (ovvia) differenza che se il bit associato vale 1 il contatto è aperto, altrimenti è chiuso. Maggio 2005 Corso di Controllo dei Processi Pagina 33 Il linguaggio Ladder Diagram (LD) istruzioni di base Bobina (normale). Simbolo: ---( )--- Va inserita sempre alla fine del rung e può essere associata ad un bit di uscita (Ux:y) o interno (Wx:y), non ad un ingresso (il che non avrebbe senso). La bobina si attiva quando vi passa corrente. Quindi, il bit ad essa associato vale 1 ( vero, ON ) se le condizioni logiche alla sua sinistra sono verificate, altrimenti vale 0 ( falso, OFF ). Il nome del bit associato si pone sopra la bobina. Bobina (negata). Simbolo: ---(\)--- Va inserita sempre alla fine del rung e può essere associata ad un bit di uscita (Ux:y) o interno (Wx:y), non ad un ingresso (il che non avrebbe senso). La bobina si attiva quando non vi passa corrente. Quindi, il bit ad essa associato vale 1 ( vero, ON ) se le condizioni logiche alla sua sinistra non sono verificate, altrimenti vale 0 ( falso, OFF ). Il nome del bit associato si pone sopra la bobina. Maggio 2005 Corso di Controllo dei Processi Pagina 34 17

Il linguaggio Ladder Diagram (LD) istruzioni di base Bobina di tipo Set. Simbolo: ---(S)--- Quando si attiva, il bit associato va a 1 e vi resta finché non si attiva una bobina associata allo stesso bit e di tipo reset. Bobina di tipo Reset. Simbolo: ---(R)--- Quando si attiva, il bit associato va a 0 e vi resta finché non si attiva una bobina associata allo stesso bit e di tipo latch. L insieme di una bobina set e di una unlatch associate allo stesso bit costituisce di fatto un flip-flop di tipo set-reset. Maggio 2005 Corso di Controllo dei Processi Pagina 35 Contatto a riconoscimento di fronte. Simbolo: --- P --- (fronte positivo) --- N --- (fronte negativo) Il linguaggio Ladder Diagram (LD) istruzioni di base Il contatto a riconoscimento di fronte P si chiude per un solo ciclo quando il bit ad esso associato passa da 0 ad 1; resta aperto in tutti gli altri casi. Il contatto a riconoscimento di fronte N si chiude per un solo ciclo quando il bit ad esso associato passa da 1 a 0; resta aperto in tutti gli altri casi. Questi contatti semplificano a volte la programmazione, ma non sono disponibili in tutte le implementazioni del linguaggio LD. Maggio 2005 Corso di Controllo dei Processi Pagina 36 18

Teorema di de Morgan Il linguaggio Ladder Diagram (LD) esempi teoremi di De Morgan ----- - - (A*B) = A + B Il rung seguente: A C --- ----+----(\)--- B --- ----+ equivale a: A B C --- \ --- \ ---( )--- Maggio 2005 Corso di Controllo dei Processi Pagina 37 Teorema di de Morgan Il linguaggio Ladder Diagram (LD) esempi teoremi di De Morgan ----- - - (A+B) = A * B Il rung seguente: A B C --- --- ---(\)--- equivale a: A C --- \ ----+----( )--- B --- \ ----+ Maggio 2005 Corso di Controllo dei Processi Pagina 38 19

PLC Siemens S7 300 guida profilata (rack) Maggio 2005 Corso di Controllo dei Processi Pagina 39 PLC Siemens S7 300 struttura CPU Maggio 2005 Corso di Controllo dei Processi Pagina 40 20

PLC Siemens S7 300 aree di memoria Sistema operativo (firmware del PLC) ROM o EEPROM Programma applicativo RAM o EEPROM Dati interni al PLC RAM Registri Temporizzatori Contatori Blocchi dati Maggio 2005 Corso di Controllo dei Processi Pagina 41 PLC Siemens S7 300 RLC, ACCU1, ACCU2 Accumulatore logico RLC (Risultato Logico Combinatorio): memorizza il risultato parziale delle espressioni logiche in corso di elaborazione Accumulatori ACCU1 e ACCU2: elaborazione di operazioni a byte e word Maggio 2005 Corso di Controllo dei Processi Pagina 42 21

PLC Siemens S7 300 scelta CPU Capacità di memoria Tempo di scansione Interfacce disponibili Spazio di indirizzamento Maggio 2005 Corso di Controllo dei Processi Pagina 43 PLC Siemens S7 300 ciclo di funzionamento Concetto delle immagini di processo: Modello usato dai PLC SIEMENS Eccezioni: ingressi veloci, ingressi e routine di INTERRUPT Maggio 2005 Corso di Controllo dei Processi Pagina 44 22

PLC Siemens S7 300 Organizzazione dei programmi Programmazione di tipo strutturato e modulare: Blocchi di tipo organizzativo OB Funzioni FC Blocchi funzionali FB Funzioni di sistema SFC Blocchi funzionali di sistema SFB Maggio 2005 Corso di Controllo dei Processi Pagina 45 PLC Siemens S7 300 Blocchi organizzativi (OB) Interfaccia tra il sistema operativo ed il programma utente. Vengono richiamati dal sistema operativo e controllano l elaborazione del programma: Ciclica; INTERRUPT periodico, di processo, diagnostico; Elaborazione del tipo di avviamento\riavviamento; Elaborazioni in background; Maggio 2005 Corso di Controllo dei Processi Pagina 46 23

PLC Siemens S7 300 Blocco organizzativo OB1 (1 di 2) Maggio 2005 Corso di Controllo dei Processi Pagina 47 PLC Siemens S7 300 Blocco organizzativo OB1 (2 di 2) Maggio 2005 Corso di Controllo dei Processi Pagina 48 24

PLC Siemens S7 300 Funzioni (FC) Blocco di codice senza memoria. Le variabili locali della funzione vengono memorizzate nello stack dei dati locali e dopo l elaborazione vengono perduti. Contiene un blocco di programma che viene sempre ripetuto quando viene richiamata. Ai parametri formali devono essere assegnati i parametri attuali. Maggio 2005 Corso di Controllo dei Processi Pagina 49 PLC Siemens S7 300 Blocchi funzionali (FB) Blocco di codice con memoria : dispone di un blocco correlato (blocco dati di istanza). Sia i parametri che vengono trasmessi, sia le variabili statiche vengono memorizzati nello stack dei dati locali. Maggio 2005 Corso di Controllo dei Processi Pagina 50 25

PLC Siemens S7 300 Blocchi dati di istanza (DB) FB1 controllo motore DB1 Motore agitatore DB2 Motore pompa 1 DB3 Motore pompa 2 Maggio 2005 Corso di Controllo dei Processi Pagina 51 PLC Siemens S7 300 Aree di memoria dati Immagine di processo degli ingressi: E, EB, EW, ED Immagine di processo delle uscite: A, AB, AW, AD Merker: M, MB, MW, MD Temporizzatori: T Contatori: Z Blocco dati: DB Dati locali: L, LB, LW, LD Maggio 2005 Corso di Controllo dei Processi Pagina 52 26

PLC Siemens S7 300 indirizzamento diretto di memoria Indirizzamento per byte : Identificazione dell operando Indirizzo all interno dell area di memoria Esempio: ingresso digitali E 124.0 (byte.bit) Esempio: word MW 0 (2 byte: 0 e 1) Maggio 2005 Corso di Controllo dei Processi Pagina 53 PLC Siemens S7 300 Riferimento ad un indirizzo di memoria come indirizzo byte Maggio 2005 Corso di Controllo dei Processi Pagina 54 27

PLC Siemens S7 300 linguaggi di programmazione LADDER DIAGRAM (KOP) LISTA DI ISTRUZIONI (AWL) SCHEMA ELETTRICO FUNZIONALI (FUP) Maggio 2005 Corso di Controllo dei Processi Pagina 55 PLC Siemens S7 300 linguaggio AWL Elenco di istruzioni, una riga è una istruzione: Prima parte operazione da svolgere Seconda parte operando Maggio 2005 Corso di Controllo dei Processi Pagina 56 28

PLC Siemens S7 300 linguaggio AWL operandi E, ingressi fisici A, uscite fisiche M, merker D, dati T, temporizzatori Z, contatori P, periferia OB, FC, FB, DB, strutture di programma ausiliarie Maggio 2005 Corso di Controllo dei Processi Pagina 57 PLC Siemens S7 300 linguaggio AWL operazioni comuni (1 di 2) U, AND UN, NAND O, OR ON, NOR S, SET R, RESET =, ASSEGNAZIONE L, CARICAMENTO T, TRASFERIMENTO Maggio 2005 Corso di Controllo dei Processi Pagina 58 29

PLC Siemens S7 300 linguaggio AWL operazioni comuni (1 di 2) SI, attivazione di un temporizzatore come impulso SE, attivazione di un temporizzatore come ritardo inserzione SA, attivazione temporizzatore come ritardo disinserzione ZV, conteggio in avanti (+1 se ingresso 1) ZR, conteggio indietro (-1 se ingresso 1)!=F, confronto su uguale (ACCU1=ACCU2?) ><F, confronto su diverso (ACCU1><ACCU2?) >F, confronto su maggiore (ACCU1>ACCU2?) <F, confronto su minore (ACCU1<ACCU2?) +F, somma (ACCU1+ACCU2) -F, sottrazione(accu1-accu2) Maggio 2005 Corso di Controllo dei Processi Pagina 59 PLC Siemens S7 300 linguaggio AWL esempio (A1.0) = (E0.0)&(E0.1)+(E0.2)&(E0.3) U E0.0 U E0.1 O U E0.2 U E0.3 = A1.0 Maggio 2005 Corso di Controllo dei Processi Pagina 60 30

PLC Siemens S7 300 linguaggio FUP Simbologia ANSI\IEEE Standard 91. In pratica programmazione per blocchi grafici: Maggio 2005 Corso di Controllo dei Processi Pagina 61 PLC Siemens S7 300 linguaggio KOP Simboli grafici come in uno schema funzionale. È il più classico linguaggio per PLC. Maggio 2005 Corso di Controllo dei Processi Pagina 62 31

Strategie di programmazione: 5 buone regole da seguire (1 di 2) Ogni segmento deve poter essere commentato in modo chiaro e compiuto (strutturare il programma in sottoprogrammi ed eventualmente suddividere segmenti complessi in semplici facendo uso di merker come variabili intermedie) Seguire le logiche in sicurezza, possibilmente ridondando gli interblocchi su più segmenti Si raggruppino le condizioni relative ad un certo stato di una o più uscite secondo la logica del minimo impatto delle modifiche Maggio 2005 Corso di Controllo dei Processi Pagina 63 Strategie di programmazione: 5 buone regole da seguire (2 di 2) Uscite e merker devono essere assegnati una sola volta all interno di ogni ciclo di scansione Porre grande attenzione all ordine dei segmenti Maggio 2005 Corso di Controllo dei Processi Pagina 64 32

Strategie di programmazione: esempio Maggio 2005 Corso di Controllo dei Processi Pagina 65 Contatto normalmente aperto (NO) Maggio 2005 Corso di Controllo dei Processi Pagina 66 33

Contatto normalmente chiuso (NC) Maggio 2005 Corso di Controllo dei Processi Pagina 67 Circuito serie (AND) Maggio 2005 Corso di Controllo dei Processi Pagina 68 34

Circuito parallelo (OR) Maggio 2005 Corso di Controllo dei Processi Pagina 69 (XOR) Maggio 2005 Corso di Controllo dei Processi Pagina 70 35

(UN) Maggio 2005 Corso di Controllo dei Processi Pagina 71 (ON) Maggio 2005 Corso di Controllo dei Processi Pagina 72 36

(XN) Maggio 2005 Corso di Controllo dei Processi Pagina 73 Fronte di salita (P) Riconosce il cambiamento di stato del RLC da 0 a 1 Maggio 2005 Corso di Controllo dei Processi Pagina 74 37

Fronte di discesa (N) Riconosce il cambiamento di stato del RLC da 1 a 0 Maggio 2005 Corso di Controllo dei Processi Pagina 75 Strutture auto ritentive Mantengono memoria dell ultimo pulsante premuto o dell ultimo contatto attivato Gestione di logiche di avvio\arresto; Gestione di logiche di allarme; generale i contatti di avvio sono normalmente aperti (NO), i contatti di arresto normalmente chiusi (NC). In caso di rottura dei cavi infatti si avrebbe avvio=stato disattivo, arresto=stato attivo Maggio 2005 Corso di Controllo dei Processi Pagina 76 38

Marcia\Arresto: STOP prevalente (1 di 3) La pressione del pulsante di avvio E0.1 provoca l attivazione dell uscita A0.0 La pressione del pulsante di arresto E0.1 provoca la disattivazione dell uscita A0.0 La contemporanea pressione dei pulsanti provoca la disattivazione dell uscita A0.0 Maggio 2005 Corso di Controllo dei Processi Pagina 77 Marcia\Arresto: STOP prevalente (2 di 3) Maggio 2005 Corso di Controllo dei Processi Pagina 78 39

Marcia\Arresto: STOP prevalente (3 di 3) Maggio 2005 Corso di Controllo dei Processi Pagina 79 Allarme: START prevalente (1 di 3) L attivazione del contatto di allarme E0.0 (chiusura) provoca l attivazione dell uscita A0.0 La pressione del pulsante di ripristino E0.1 (apertura) provoca la disattivazione dell uscita A0.0 La contemporanea attivazione (E0.0 chiuso, E0.1 aperto) dei contatti provoca l attivazione dell uscita A0.0 Maggio 2005 Corso di Controllo dei Processi Pagina 80 40

Allarme: START prevalente (2 di 3) Maggio 2005 Corso di Controllo dei Processi Pagina 81 Allarme: START prevalente (3 di 3) Maggio 2005 Corso di Controllo dei Processi Pagina 82 41

Quesito 1 Dato il seguente diagramma dove E0.0 indica che il selettore locale\remoto è su locale, E0.1 indica che il selettore è su remoto, E0.2 è il pulsante di start da locale, E0.3 è il pulsante di start da remoto, M0.0 è la condizione di arresto, se commuto il selettore da locale a remoto e la pompa A0.0 è in moto, allora la pompa si arresta. Vero o falso? Maggio 2005 Corso di Controllo dei Processi Pagina 83 Soluzione 1 Falso. La pompa A0.0 non si ferma. Per rendere il sistema più sicuro si modifichi così: Maggio 2005 Corso di Controllo dei Processi Pagina 84 42

Temporizzatori Elemento funzionale del linguaggio di programmazione che attua e controlla le sequenze di tempo: Consente i tempi di attesa Consente i tempi di monitoraggio Genera impulsi Misura il tempo fra due eventi 256 Temporizzatori 16 bit Base dei tempi: 10 ms, 100 ms, 1 s, 10 s Valore di tempo: da 0 a 999 Maggio 2005 Corso di Controllo dei Processi Pagina 85 Temporizzatori Maggio 2005 Corso di Controllo dei Processi Pagina 86 43

Temporizzatori Maggio 2005 Corso di Controllo dei Processi Pagina 87 Temporizzatore impulso Maggio 2005 Corso di Controllo dei Processi Pagina 88 44

Temporizzatore imp. prolungato Maggio 2005 Corso di Controllo dei Processi Pagina 89 Temporizzatore ritardo inserzione Maggio 2005 Corso di Controllo dei Processi Pagina 90 45

Temporizzatore rit. inserzione mem. Maggio 2005 Corso di Controllo dei Processi Pagina 91 Temporizzatore ritardo disinserzione Maggio 2005 Corso di Controllo dei Processi Pagina 92 46

Contatori Elemento funzionale del linguaggio di programmazione dedicato al conteggio 256 contatori 16 bit Maggio 2005 Corso di Controllo dei Processi Pagina 93 Conteggi avanti\indietro Maggio 2005 Corso di Controllo dei Processi Pagina 94 47

Conteggi avanti Maggio 2005 Corso di Controllo dei Processi Pagina 95 Conteggi indietro Maggio 2005 Corso di Controllo dei Processi Pagina 96 48