Programmable Logic Controllers - PLC. Lezione 3

Documenti analoghi
Lista operazioni S Dati della CPU CPU 312 IFM DP

1. Un array è: A. Un simbolo usato nel linguaggio C per rappresentare un numero non specificato di variabili B. Un insieme di indirizzi di memoria

Assegnazione di una variabile

Il primo programma C++

Fondamenti di Informatica

Lista operazioni S7-400H CPU 412-3H, 414-4H, 417-4H. Edizione 09/2007 A5E

Lista operazioni S7-300 CPU 312 IFM, 314 IFM, 313, 314, 315, DP, DP, ES AA03-8EN0 Edizione 2

Campo di validità... 5 Operandi e campi dei parametri... 6 Constanti e campi dei valori... 9 Abbreviazioni... 10

Lista operazioni S7-400H CPU 412-5H PN/DP, 414-5H PN/DP, 416-5H PN/DP, 417-5H PN/DP 07/2012 A5E

Lista operazioni S7-400

Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria. Docente : Ing. Secondulfo Giovanni Anno Accademico

Lista operazioni S7-400 CPU 412, 414, 416, /2009 A5E

Lista operazioni S7-400 CPU 412, 414, 416, 417. Questa lista di operazioni ha il seguente numero d ordinazione: 6ES7498-8AA04-8EN0.

Variabili e assegnazione

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

Rappresentazione dell informazione

Aritmetica dei Calcolatori

Dati due punti sul piano calcolare la loro distanza

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

5.4 Istruzione di input L istruzione di input ha la forma:

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Strutture dati e loro organizzazione. Gabriella Trucco

Ambiente di sviluppo STEP 7 Micro/Win

Sistemi a microprocessore

Funzioni, Stack e Visibilità delle Variabili in C

CORSO DI PROGRAMMAZIONE

Tecnica basata su Relazioni I/O Circuito di Clock

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 8 14/11/2013

Guida di Riferimento. SAIA PCD Serie xx7. Il controllore a logica programmabile compatibile con SIMATIC S7. Edizione Italiana 26/758 I1

Istruzioni di Controllo

I Dati Strutturati ed il Linguaggio C

Introduzione alla programmazione

Strutture di controllo decisionali

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Costanti e Variabili

Corso di Informatica

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Luigi Piroddi

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Lezione 6 Introduzione al C++ Mauro Piccolo

Caratteristiche di un linguaggio ad alto livello

Programmazione Orientata agli Oggetti in Linguaggio Java

Corso di Programmazione Dati e Istruzioni. Comunicazione dell algoritmo all elaboratore. Programmazione. Dott. Pasquale Lops

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Logica per la Programmazione

Istruction List. Istruction List. Marco Mauri. Politecnico di Milano P.zza Leonardo da Vinci, Maggio

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

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Istituto Tecnico Industriale A. Righi

4. I moduli in Access 2000/2003

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Programmable Logic Controllers - PLC. Lezione 5

Funzioni, Stack e Visibilità delle Variabili in C

Lista operazioni CPU 410-5H Process. Automation SIMATIC. Sistema di controllo del processo PCS 7 Lista operazioni CPU 410-5H Process Automation

CIRCUITI DIGITALI. La grandezza fisica utilizzata nella maggior parte dei circuiti digitali è la differenza di potenziale (tensione).

Moduli combinatori Barbara Masucci

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti

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

SIMATIC. Lista istruzioni (AWL) per S7-300/400. Prefazione. Operazioni logiche combinatorie di bit. Operazioni di confronto. Operazioni di conversione

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

LOGICA SEQUENZIALE. Un blocco di logica puramente combinatoria è un. blocco con N variabili di ingresso e M variabili di uscita

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

Istruzioni e linguaggio macchina

Elementi di Base. Introduzione a Python.

Elementi di Informatica A. A. 2016/2017

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Il linguaggio macchina

Fondamenti di Informatica

Espressioni e Comandi

Il linguaggio C. Puntatori e dintorni

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Studio degli algoritmi

Logica per la Programmazione

Multiplexer. Multiplexer 2 a 1 (a 1 bit) e sua implementazione. Multiplexer 2 a 1 (a 32 bit) e sua implementazione

Laboratorio di informatica Ingegneria meccanica

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Informatica: Lez. 1. Andrea Payaro. (European Logistics Association)

Descrizione. Assegnazione. Chiusura parentesi

Javascript: il browser

Concetti base programmazione. Antonio Gallo

Istruzioni, algoritmi, linguaggi

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.

LEZIONE 2 SCRATCH: INPUT DEI DATI Laboratorio di Informatica per l Educazione A. A. 2015/ /05/16 1 Dott. Aniello Castiglione

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

SISTEMA DI ELABORAZIONE

INTRODUZIONE ALLA LOGICA DI HOARE. Corso di Logica per la Programmazione

La programmazione nel linguaggio JavaScript. Il programma

DEC PDP8, III Generazione, '65-'75

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Nozioni fondamentali su Algoritmi e programmazione

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI

Introduzione al linguaggio macchina. Istruzione l/m

Transcript:

Programmable Logic Controllers - PLC Lezione 3

PLC- Programmazione Introdurremo nel seguito i fondamenti della programmazione dei PLC Siemens, disponibili in laboratorio Il laboratorio ha 10 postazioni con Simatic S7-300, che vengono programmati col linguaggio STEP 7 Tale linguaggio consente la programmazione sia a contatti, che a blocchi che con liste di istruzioni

Generalità Un programma per PLC è costituito da blocchi che vengono richiamati all'interno di un blocco principale e/o di altri blocchi. Il blocco principale, denominato OB1, deve essere sempre presente nella memoria del PLC. Possono essere realizzati: Blocchi Organizzativi, OB Funzioni, FC Blocchi Funzionali, FB

Blocchi organizzativi Si tratta di blocchi messi a disposizione dal sistema operativo che normalmente non vengono usati per realizzare delle logiche di funzionamento di impianto, bensì per caratterizzare il funzionamento del PLC: decidere le modalità di avviamento, scegliere le reazioni del PLC in caso di errori di programmazione, fissare il tempo di ciclo massimo, programmare routine di interruzione a tempo, ecc.

Blocchi organizzativi Il numero e il tipo di OB a disposizione sono variabili a seconda del PLC. Essi vengono individuati dalla sigla OB seguita da un numero: così ad esempio OB10 è il blocco organizzativo numero 10. Il più importante tra questi blocchi è OB1 il sistema operativo del PLC inizia l'esecuzione del programma utente proprio con OB1 E' il blocco principale dal quale possono essere richiamati tutti gli altri.

Blocchi organizzativi

Blocchi organizzativi

Blocchi organizzativi

Funzioni Sono blocchi programmabili adatti a realizzare logiche di funzionamento di impianto. Il set di istruzioni messo a disposizione dal linguaggio Step7 consente una programmazione strutturata e quindi la realizzazione di cicli iterativi e strutture decisionali di tipo IF-THEN- ELSE Anche questi blocchi vengono individuati dalla sigla (FC) seguita dal numero

Funzioni Sono blocchi programmabili adatti a realizzare logiche di funzionamento di impianto. Il set di istruzioni messo a disposizione dal linguaggio Step7 consente una programmazione strutturata e quindi la realizzazione di cicli iterativi e strutture decisionali di tipo IF-THEN- ELSE Anche questi blocchi vengono individuati dalla sigla (FC) seguita dal numero

Funzioni La quantità totale di funzioni a disposizione dipende dal tipo di PLC Ad esempio per la CPU 315 del PLC S7-300 ne sono disponibili 128, da FC1 a FC128 Come per le routine dei comuni linguaggi di programmazione, alle funzioni in esecuzione viene assegnata un area di memoria di lavoro, detta stack

Funzioni Le funzioni possono avere dei parametri di ingresso e/o di uscita: si tratta di variabili che quando si scrive la funzione vanno dichiarate in maniera formale e che, quando la funzione viene richiamata all interno di un blocco, devono essere sostituite con degli operandi reali. Per una funzione possono anche essere definite delle variabili temporanee locali (memorizzate nello stack), utilizzate esclusivamente nell ambito della funzione stessa.

Funzioni L istruzione di richiamo di una funzione è CALL. Quando il sistema operativo incontra questa istruzione passa ad eseguire la funzione con i parametri specificati nella sintassi di chiamata. E anche possibile eseguire il richiamo condizionato di una funzione con l istruzione CC (conditional call) l esecuzione della funzione avviene se un determinato bit (denominato risultato logico combinatorio, RLC) aggiornato dal SO vale 1. In caso contrario il richiamo viene ignorato.

Blocchi Funzionali Si tratta di blocchi analoghi alle funzioni, con la differenza che essi danno la possibilità di definire anche delle variabili statiche. Inoltre, a ogni blocco funzionale devono essere collegate specifiche aree di memoria denominate blocchi dati di istanza, le quali permettono la memorizzazione del valore dei parametri e delle variabili statiche.

Blocchi Funzionali Più in dettaglio, come sarà chiarito in seguito, con il termine blocco dati si intende in generale un insieme di variabili raggruppate in un area specifica identificata dal numero del blocco. Quando un blocco dati di istanza viene associato a un blocco funzionale, il sistema di sviluppo automaticamente riporta nel blocco dati tutti i parametri del blocco funzionale e le variabili statiche.

Blocchi Funzionali La sintassi di chiamata di un blocco funzionale prevede che venga specificato anche il blocco dati di istanza associato. Pertanto, ad esempio, l istruzione CALL FB10, DB15 esegue il richiamo del blocco funzionale 10 usando come blocco dati di istanza il numero 15. Il sistema operativo del PLC ha il compito, durante l esecuzione del blocco funzionale, di mantenere aggiornati i valori delle variabili nel blocco dati di istanza associato.

Operandi ed istruzioni Un'istruzione nel linguaggio di programmazione Step7 è costituita da codice operativo e operando. Il codice operativo identifica univocamente l istruzione, mentre l operando specifica l oggetto dell istruzione stessa. I principali tipi di operandi sono i seguenti: Ingressi Uscite Merker Dati

Ingressi Gli ingressi sono operandi che provengono direttamente dal collegamento del PLC con il campo. Essi vengono identificati univocamente con il numero di byte. Normalmente un PLC mette a disposizione i byte di ingresso che iniziano dal numero 0 e vanno sino a un valore che dipende dalle caratteristiche del PLC (63, 127, 255, ecc.).

Ingressi Anche i bit che compongono i byte di ingresso possono essere usati come operandi; per identificarli è necessario specificare il byte e il numero del bit all interno del byte. E inoltre possibile riferirsi a strutture più complesse quali ad esempio una word o una doppia word di ingresso. Una word di ingresso è costituita da due byte contigui; una doppia word da quattro byte contigui. sono identificate dal numero del primo byte che le compone.

Ingressi Esempi di operandi Step7 di tipo ingresso sono: E 5.4 bit 4 del byte di ingresso 5 EB 7 byte di ingresso 7 EW 10 word di ingresso 10 (byte 10 e 11) ED 4 doppia word di ingresso 4 ( byte 4, 5, 6, 7). Si noti infine che l uso del simbolo E per gli ingressi deriva dalla lingua tedesca (Eingabe).

Uscite Le uscite sono gli operandi che permettono al PLC di inviare comandi verso il campo. Per quanto riguarda la loro organizzazione valgono tutte le considerazioni fatte per gli ingressi. Il simbolo che individua le uscite è A (dal tedesco Ausgabe).

Uscite Esempi di operandi Step7 di tipo uscita sono: A 6.3 bit 3 del byte di uscita 6 AB 100 byte di uscita 100 AW 88 word di uscita 88, ( byte 88 e 89) AD 16 doppia word di uscita 16 (byte 16, 17, 18, 19) Come già visto per gli ingressi, anche il numero di byte di uscita a disposizione dipende dal tipo di controllore programmabile.

Merker I merker sono dei registri residenti nella memoria di sistema del PLC da usare come memorie di lavoro. Il sistema operativo del PLC garantisce l accesso ai merker con modalità analoghe a quelle viste per gli ingressi e le uscite. E anche possibile specificare il comportamento dei merker a ogni avviamento ad esempio si può scegliere che essi vengano azzerati, oppure che il loro valore precedente venga mantenuto.

Merker Esempi di operandi Step7 di tipo merker sono: M 3.3 bit 3 del byte di merker 3 MB 108 byte di merker 108 MW 18 word di merker 18, (byte 18 e 19) MD 20 doppia word di merker 20 ( byte 20, 21, 22, 23). Il numero di byte di merker a disposizione dipende dal tipo di PLC.

Dati I blocchi dati sono delle aree di memoria, identificati da un numero e definibili con ampia libertà dall utente, che devono essere inserite nella memoria di programma del PLC. Successivamente alla loro introduzione, i dati all interno dei blocchi possono essere acceduti con modalità analoghe a quelle viste per ingressi, uscite e merker.

Dati I blocchi dati sono organizzati a byte, tuttavia oltre ai formati usuali dei dati (bit, byte, word, doppia word) possono essere introdotti formati molto più complessi quali array e strutture. Esempi di operandi Step7 di tipo dato sono: DB10.DBX 3.7 Bit 7 del byte 3 del blocco dati numero10 DB100.DBB 11 Byte 11 del blocco dati numero 100 DB8.DBW 12 Word 12 del blocco dati 8 (byte 12 e 13) DB16.DBD 4 Doppia word 4 del blocco dati 16 ( byte 4, 5, 6, 7).

Dati Si noti che non è sempre necessario specificare il numero di blocco dati per identificare l operando. può essere usata l istruzione AUF DBn con la quale viene aperto il blocco dati specificato dal numero n. Nella parte di programma successiva a tale istruzione si possono usare ad esempio operandi del tipo DBX 2.1 che identifica il bit 1 del byte 2 del blocco dati aperto in precedenza, oppure anche DBB12 che individua il byte 12 sempre del blocco dati aperto.

Dati I blocchi dati devono essere esplicitamente introdotti dall utente nella memoria di programma, e come tali occupano parte di questa memoria, riducendo quella a disposizione per il programma utente è opportuno usare i blocchi dati solo quando essi sono effettivamente necessari e prestando attenzione alle loro dimensioni. Lo stesso problema non si presenta con i merker in quanto essi sono in numero fisso e risiedono nella memoria di sistema del PLC.

Formato dei numeri Il linguaggio dà la possibilità di usare diversi formati per la rappresentazione dei numeri. booleano (1 bit) esadecimali a 8/16/32 bit interi a 8/16/32 bit virgola mobile a 32 bit Sono inoltre disponibili formati speciali per esprimere tempi, date, valori di conteggio. I PLC che si stanno analizzando sono dotati di due accumulatori a 32 bit (ACCU1 e ACCU2)

Operazioni su bit Le operazioni logiche combinatorie a bit interpretano gli stati di segnale di 1 e 0, e li combinano secondo la logica booleana per eseguire una varietà di funzioni. Queste combinazioni producono un risultato di 1 o 0 che è chiamato risultato logico combinatorio (RLC).

Operazioni su bit Per le combinazioni logiche con operandi a bit vi sono le seguenti operazioni di base: U AND UN AND negato O OR ON OR negato X OR esclusivo XN OR esclusivo negato

Operazioni su bit

Operazioni su bit

Operazioni su bit

Parola di stato I bit di stato che sono raccolti nella parola di stato forniscono informazioni sul risultato oppure sullo stato di operazioni. Il bit 0 (/bit ER) della parola di stato è il cosiddetto bit di prima interrogazione. Se lo stato di segnale del / bit ER è uguale a "0", allora la catena combinatoria inizia con una prima interrogazione. Lo stato del segnale "0" indica quindi che con la prossima operazione combinatoria nel programma applicativo comincia una nuova sequenza combinatoria.

Parola di stato Il bit 1 della parola di stato è il bit di RLC (RLC= "Risultato Logico Combinatorio") e serve come memoria intermedia nelle combinazioni binarie. Una operazione in una catena di operazioni combinatorie interroga lo stato del segnale di un contatto e combina il risultato dell'interrogazione (bit di stato), secondo le regole della logica booleana, con il bit di RLC. Il risultato viene nuovamente depositato nel bit di RLC. Il bit 2 (bit di stato) memorizza il valore di un bit interrogato e, nelle operazioni di interrogazione (A, AN, O,..) opp. di scrittura (=, S, R), mostra sempre lo stato del bit interrogato.

RLC Si tratta di un bit che viene continuamente elaborato dal PLC. Ogni istruzione del linguaggio Step7 può dipendere dal RLC, lo può influenzare oppure può essere indipendente dall RLC. All'inizio di una sequenza logico combinatoria l RLC assume il valore del primo bit interrogato (indipendentemente dal tipo di operazione) Nelle istruzioni successive l RLC è calcolato tenendo in considerazione il suo valore precedente, il tipo di operazione e il valore dell'operando.

RLC L'elaborazione dell RLC continua fino ad incontrare una istruzione che la termina, quale ad esempio l istruzione di assegnazione (=). Il calcolo di un nuovo RLC riprende con la prima istruzione di interrogazione di una nuova sequenza logico combinatoria Si può quindi affermare che le istruzioni U e O dipendono dall RLC e lo influenzano, mentre l istruzione = dipende dall RLC ma non lo influenza (anche se ne termina l elaborazione).

AND negato

AND negato

AND prima di OR

AND prima di OR

Istruzioni con parentesi Si possono adoperare le seguenti operazioni per combinare espressioni a parentesi: U( AND con diramazione UN( AND negato con apertura parentesi O( OR con apertura parentesi ON( OR negato con apertura parentesi X( OR esclusivo con apertura parentesi XN( OR esclusivo negato con apertura parentesi ) Chiusura parentesi

AND con parentesi

AND con parentesi

Set, reset e assegnazione Si può terminare una stringa logica a bit usando una delle seguenti operazioni: = Assegnazione R Resetta S Imposta Durante il funzionamento del PLC l operando dell operazione di assegnazione può assumere dinamicamente valori diversi a seconda dell RLC e quindi in definitiva dei valori dei bit coinvolti nelle operazioni logico combinatorie

Set, reset e assegnazione Le istruzioni Set (S) e Reset (R) dipendono dall RLC ma non lo influenzano. Il loro funzionamento consiste nel settare o resettare l operando quando l RLC vale 1. Se per esempio si usa l istruzione di Set, la prima volta che l RLC vale 1 l operando viene posto anch esso uguale a 1. Tutte le successive esecuzioni del programma con qualsiasi valore dell RLC sono ininfluenti e l operando rimane al valore 1. Analogamente l'istruzione di Reset (R) azzera il valore dell operando quando l RLC vale 1. Set e Reset terminano l elaborazione dell RLC.

Set, reset e assegnazione Si può adoperare una delle seguenti operazioni per modificare il risultato logico combinatorio (RLC): NOT Nega RLC SET Imposta RLC (=1) CLR Resetta RLC (=0) SAVE Salva RLC nel registro BIE Altre operazioni rispondono ad una transizione di fronte di salita: FN Fronte di discesa FP Fronte di salita