Sei sulla pagina 1di 4

Laboratorio Informatica Industriale

Controllo in ambito industriale:


Il controllo in ambito industriale si occupa di gestire i processi industrali in maniera automatizzata. I principali ambiti sono: 1. monitoraggio: uso di algoritmi di supervisione, capaci di individuare condizioni di funzionamento anomalo, di memorizzare ed analizzare la storia del processo. Basati su utilizzo di display, indicatori, segnalatori di allarme e logica digitale sequenziamento: passi di lavorazione sequenziali e ciclici. Basati su relay, logica digitale, timers, contatori controllo a ciclo chiuso: sistema di controllo

2.

2.

3.

Basati su sistemi di controllo PID, amplificatori DO o su sistemi pneumatici Vi anche la possibilit di usare dispositivi di controllo basati su Elaboratori; il vantaggio di questi metodi sono la flessibilit, la riusabilit il costo. I metodi tradizionali basati sull'uso dei pc, presentano dei problemi: 1. schedulazione real-time 2. ambienti ostili all'uomo 3. Alimentazione soggetta a forti variazioni 4. Problematiche relative all'adattamento dei vari flussi informativi con gli standard industriali. 5. Calcolo non orientato ai bit 6. necessit di ripristinare lo stato dopo eventuali problemi 7. linguaggi di programmazione basati su relay 8. monitoring on-line

connessione meccanica, il collegamento elettrico e la messa a terra. Modulo Processo + Memoria: 1. microprocessori orientati alla gestione dei singoli bit 2. Memoria: 1. Area S.O. ( ROM/EEPROM/FLASH) 2. Area parametri ( ROM/EEPROM/FLASH) 3. I/O (RAM) 4. Area programmi utenti (EEPROM/FLASH) 5. Area di Lavoro (RAM/EEPROM/FLASH) 6. Area Dati Utente (RAM EEPROM/FLASH) 7. Area contatori/timers (RAM EEPROM/FLASH) 8. RAM pu essere alimentata con batterie tampone, comunque di dimensione di un centinaio di Kbytes. 3. Moduli I/O: 1. Analogici/Digitali 2. Valori di ON/OFF 0-24V o 0-5 TTL 3. Valori di segnali analogici +/- 5V, +/10V, 0-5V, 4-20mA in continua 4. Isolamento galvanico di protezione tramite fotoaccoppiatori o trasformatori 5. Indirizzamento dei moduli I/O basato 4. Terminale di Programmazione 1. terminale e tastiera 2. tramite PC: Programmazione off-line e supervisione on-line

Principi di funzionamento PLC:

Program scan: 2-3 ms per Kbytes Limiti: 1. Shannon: se f la frequenza di variazione essa deve essere f <= program scan Si preferisce percio' l'uso di PLC che riesce a superare tutti 2. Ritardi casuali tra dati di ingresso e uscita del i limiti precedentemente elencati programma 3. Differenti linguaggi di programmazione PLC 4. Difficolt nell'utilizzo delle subroutine 5. Difficolt nel produrre software riutilizzabile I PLC sono costituiti da varie parti fondamentali: 6. Limiti nella definizione di strutture dati complesse 1. Armadio: contenitore che assicura una 7. Difficolt nel differenziare l'esecuzione di pezzi di

uno stesso programma o di pi programma in base funzione. alle esigenze temporali Il concetto l'analogo concetto delle funzioni nella programmazione, infatti una POU puo' essere utilizzzata un numero illimitato di volte, come programmi e blocchi di Uno dei linguaggi vecchi pi utilizzati per la funzioni. programmazione PLC il linguaggio di tipo LADDER. Esso usato per applicazioni di sequencing e per eseguire Ogni POU, puo' quindi essere istanziata numerose volte, funzioni pi o meno complesse. analogamente alla programmazione reale, ogni istanza ha il suo spazio di memoria privato. La configurazione rappresenta un ambito del sistema, ove vi possono essere pi istanze dei programmi e varie risorse. Per ovviare a tutti i limiti precedentemente elencati stata IMPORTANTE: NON E' AMESSA RICORSIONE NEL proposto lo standard IEC 1131-3 elaborata dalla POU. commissione tecnica TC65, sottocommissione SC65B Le POU possono comunicare su tre livelli: Configuration, Devices, WG7 Programmable control System Resource e Program. Gli ambiti di comunicazione POU Questo standard definisce 5 linguaggi: sono analoghi al concetto di scope nei linguaggi di programmazione tradizionali. Le POU, riusano il concetto ladder di parametri formali delle funzioni. sequential function chart

IEC 1131-3

Istruction List Function Block Diagram Structured Text. Lo standard permette: approcci top-down e bottom-up la divisione in Program Organization Unit (POU) pieno controllo dell'esecuzione dei sottoprogrammi tramite assegnazione dei task definizione di strutture dati: record,vettori portabilit del codice programmazione grafica

Linguaggi IEC 1131-3


Tutti e 5 i linguaggi definiti dallo standard IEC 1131-3 si identificano i seguenti elementi in comune: identificatori: (nomi di variabili,funzioni, etc. ) sequenza alfanumerica con primo carattere diverso da un numero, non deve contenere spazi e non deve contenere _ consecutivi. Identificatori simili devono differenziarsi di almeno un carattere entro i primi 6 caratteri. Keywords: sono definite delle keywords comuni come VAR, VAR_EXTERNAL, VAR_ACCESS. Non si possono usare le keywords come identificatori Commenti: Compresi tra (* *) Tipi di dati primitivi: Interi, Reali, Time, Date, String, Boolean

POU
Il PLC ha un corrispettivo rispetto ai modelli software dato dall'insieme di configurazione, risorse e programmi.

I programmi sono organizzati in POU, ovvero blocchi elementari di programmi che possono essere un programma, un blocco di funzioni ( librerie ) o una

Interi: SINT (8bit), INT(16bit), DINT(32bit), LINT (64bit) e rispettivi Unsigned, USINT, UINT,etc. Reali: REAL(32bit), LREAL (64bit) Time: TIME, rappresentazione in bit, machine dependent

Formato tempo e date: DATE, TIME_OF_DAY o TOD, DATE_AND_TIME o DT; implementazione machine dependent Stringhe: STRING; implementazioni machine dependent Stringhe di bit: BYTE (8bit), WORD(16bit), DWORD(32bit), LWORD(64bit) Boolean: BOOL

Range TYPE nome:tipo(range); END_TYPE; Vettore TYPE nome: ARRAY[inf ... Sup, inf sup ] OF tipo; END_TYPE;

Variabili: Locali: dichiarate in un POU VAR nome:tipo; nome:tipo; END_VAR; Globali: dichiarate in un program, Resource e in una Configuration VAR_GLOBAL nome:tipo; nome:tipo; END_VAR; Esterne: corrispondenti a variabili globali. VAR_EXTERNAL nome:tipo; nome:tipo; END_VAR; Variabili di Ingresso VAR_INPUT nome:tipo; nome:tipo; END_VAR;

Valori e costanti: numero decimale, se definiti in altra base si devono specificare con il prefisso base# ( esempio binario 2#1010 ) numero reale anche in forma e+, eespressioni di tempo: preceduti dal prefisso T# o TIME#, intervallati dagli operatori d(day),h(hour),m(minutes),s(seconds),ms(mse conds); esempio: T#12d33h22m6s1ms espressioni per le date DATE: preceduti dal prefisso D# o DATE# e seguito dalla data in formato anno-mese-giorno TOD: preceduti dal prefisso TOD# e seguito dal formato ora:minuti:secondi.millisecondi

DT: preceduti dal prefisso TD# e seguito Variabili di Uscita dal formato anno-mese-giornoora:minuti:secondi.millisecondi VAR_OUTPUT nome:tipo; caratteri: definiti tramite apici singoli 'a' nome:tipo; END_VAR caratteri speciali: $N ( new line), $P (new page), $R (carriage return), $T (tabulazione), Variabili di Ingresso/Uscita di un POU $' (apice), $$ (carattere $) VAR_IN_OUT nome:tipo; costanti booleane: FALSE, TRUE nome:tipo; Tipi di dato derivato END_VAR; RECORD: Variabili di riferimento diretto: TYPE referenziamento tramite indirizzo in memoria nome: che divisa in: STRUCT nome_campo_1:tipo; nome_campo_2:tipo; END_STRUCT; END_TYPE; Enumerativi TYPE input memory location output memory location internal memory location: contiene registri e flag

variabili con riferimento diretto simbolo% i simboli possono essere: I (Input memory location)

nome:(VALORE_1, VALORE_2, VALORE_n); END_TYPE;

Q ( Output memory location) M ( Memory location ) X (bit), B (byte), W (word 16 bit), D ( double word 32 bit ), L (Long word 64 bit ) Ingresso/uscita: rack oppure rack.numero Memoria interna: numero interno o intero.indice o byte.bit

RETAIN VAR_RETAIN Speed:REAL; END_VAR;