SOFTWARE - STEP-7
Transcript
SOFTWARE - STEP-7
SOFTWARE - STEP-7 -AVVIAMENTO DI “STEP 7”-Micro/Win (Win’95/98/NT)Nella cartella SIMATIC, a cui si accede dal menù di AVVIO, è contenuta la cartella STEP 7Micro/Win32.Questa contiene a sua volta l’icona di avvio per STEP 7-Micro/Win 32 v3.0. Fare clic con il tasto sinistro del mouse per avviare il programma.. Questa è la schermata iniziale con cui si presenta Step-7: Si possono distinguere tre zone di lavoro, la prima chiamata comunemente anche “barra di navigazione”; la seconda è la “barra di lavoro”, in cui si trovano tutti i riferimenti al progetto e i componenti; l’ultima è il vero ambiente di lavoro detto editor di programma. L’editor di programma è come una griglia suddivisa in celle (le celle rappresentano le aree in cui è possibile inserire un'operazione, assegnare un valore a un parametro oppure disegnare una linea). All'interno della griglia, i singoli segmenti non devono estendersi oltre le 32 celle in senso orizzontale o le 32 celle in senso verticale Barra degli strumenti. -Per aprire un nuovo progetto cliccare con il mouse nell’icona . -Per aprire un progetto già esistente cliccare con il mouse sull’icona . -Per salvare il progetto in corso cliccare con il mouse sull’icona . -Per stampare il progetto cliccare sull’icona . -Per visualizzare l’anteprima di stampa cliccare con il mouse sull’icona . -Per tagliare parti di testo o immagini tenere premuto il tasto del mouse mentre si seleziona l’oggetto da tagliare con il mouse -Per incollare l’oggetto tagliato cliccare con il mouse su -Per compilare la finestra attiva del programma cliccare con il mouse su -Per compilare tutto il programma cliccare con il mouse su Per eseguire la compilazione si può anche utilizzare il menu CPU: "Compila" consente di compilare un singolo elemento del progetto. La finestra (editor di programma o blocco dati) che viene evidenziata nel momento in cui si sceglie "Compila" viene compilata; mentre le altre due finestre non vengono compilate. "Compila tutto" consente di compilare l'editor di programma, il blocco di sistema e il blocco dati. Se si sceglie questo comando, non ha più alcuna rilevanza quale finestra sia evidenziata. -Per trasferire il programma da PLC al PC cliccare con il mouse su. -Per trasferire nel PLC il programma momentaneamente aperto clicca. -Tutti questi comandi sono attuabili anche selezionando dalla barra menù -Permette di ingrandire la visualizzazione corrente modificando le impostazioni originali. -Permette di mostrare le descrizioni delle dimensioni costanti. -Questi pulsanti permettono di lanciare il programma su CPU e arrestarlo al termine del ciclo. Barra degli strumenti test Modi RUN / STOP della CPU La CPU ha due modi di funzionamento: STOP e RUN. In STOP è possibile creare, caricare e modificare il programma, ma non eseguirlo. In RUN è invece possibile eseguire il programma e creare, modificare e controllare il funzionamento del programma e i dati. Per modificare il modo di funzionamento della CPU: fare clic sul pulsante RUN selezionare il comando di menu CPU > RUN per attivare il modo RUN o CPU > STOP per attivare il modo STOP oppure modificare manualmente l'interruttore dei modi di funzionamento posto sulla CPU oppure inserire nel programma un'operazione di STOP. o STOP oppure - Permette di attivare e disattivare lo stato del programma . -Permette di attivare e disattivare la tabella di stato . -Premendo questa icona si effettua una lettura singola della CPU. -Selezionando questa icona si inseriscono tutti i valori all’interno della CPU. -Permette di forzare un valore nella CPU. -Permette di deforzare un valore della CPU. -Permette di deforzare tutti i valori della CPU . -Permette di leggere tutti i valori forzati della CPU . Barra degli strumenti programma -Inserisce una linea verticale sotto la posizione corrente. -Inserisce una linea verticale sopra la posizione corrente. -Inserisce una linea orizzontale a sinistra della posizione corrente . -Inserisce una linea orizzontale a destra della posizione corrente. -Questi pulsanti permettono di inserire contatti (il primo) e bobine (il secondo) . -Inserisce un box nella posizione corrente . -Permettono di inserire o eliminare un segmento dalla posizione corrente . In questa barra si visualizzano tutte le operazioni eseguite, le dimensioni in byte di ogni elemento utilizzato; gli eventuali errori commessi durante la progettazione. Quando si effettua la compilazione, la finestra dei risultati elenca gli errori rilevati. L'identificazione avviene in base alla posizione in cui si è verificato l'errore (segmento, riga e colonna) e al tipo di errore. Facendo doppio clic sulla riga di un errore è possibile visualizzare il segmento del codice d'errore all'interno dell'editor di programma. Premendo questo pulsante si può accedere ad un sottomenù che include tre distinti modi di programmazione: AWL KOP FUP Esistono, infatti, tre editor di programmazione di un PLC nel set di operazioni SIMATIC: AWL è il linguaggio informatico, molto complesso quindi poco usato; KOP è il linguaggio a contatti: il più usato data la facilità di comprensione essendo la sua struttura molto simile a quella tipica dei circuiti degli impianti industriali. FUP è il linguaggio internazionale che utilizza variabili ed operazioni logiche o Booleane ma è poco utilizzato. LINGUAGGIO A CONTATTI (KOP) Il linguaggio a contatti è senza dubbio ancora oggi il più utilizzato, l’utente conserva la sensazione di operare con strutture hardware a relè. Il linguaggio a contatti (KOP) è un linguaggio grafico che presenta delle analogie con gli schemi elettrici. Quando si scrive un programma in KOP, si utilizzano componenti grafici e li si organizza in modo da creare segmenti logici. Un programma scritto in linguaggio a contatti è formato da una successione di raggruppamenti di segmenti o reti disposti orizzontalmente e paragonabili alle linee di un programma tradizionale. Ciascuna rete (vedi figura) è costituita da elementi collegati fra di loro ed è connessa alle estremità da due linee verticali; queste rappresentano le due polarità di alimentazione usate negli schemi elettrici a relè. Il programma viene eseguito come indicato dal programma, un segmento per volta, da sinistra a destra e dall'inizio alla fine. Una volta che la CPU ha raggiunto la fine del programma, riparte dall'inizio. Contatto N.A Contatto N.C Apertura di ramo in parallelo Chiusura di ramo in parallelo Bobina-Variabile interna o di uscita Le operazioni sono rappresentate mediante simboli grafici e comprendono tre forme base. I contatti: rappresentano le condizioni logiche di "ingresso" analoghe a interruttori, pulsanti, condizioni interne di ingresso e così via. Le bobine: rappresentano generalmente risultati logici di "uscita" quali lampade, motorini di avviamento, relè di interposizione, condizioni interne di uscita e così via. I box: rappresentano operazioni aggiuntive quali temporizzatori, contatori o operazioni matematiche. Regole per la realizzazione di segmenti semplici, in serie e in parallelo, in linguaggio KOP Regole per il posizionamento dei contatti. 1. Ogni segmento deve iniziare con un contatto. 2. Non è possibile concludere un segmento con un contatto. Regole per il posizionamento delle bobine. 1. Non è possibile iniziare un segmento con una bobina; le bobine servono per la conclusione di un segmento di logica. 2. Un singolo segmento può contenere più bobine, purché si trovino su diramazioni parallele di quel particolare segmento. 3. Non è possibile posizionare più bobine in serie (ossia, non si possono avere più bobine su una stessa linea orizzontale del segmento). Modalità di immissione delle operazioni KOP Disegno delle linee. È possibile completare un segmento disegnando linee di collegamento tra gli elementi del segmento e la barra di alimentazione sinistra servendosi delle linee orizzontali o verticali della barra degli strumenti del programma oppure tenendo premuto il tasto CTRL e premendo i tasti FRECCIA SINISTRA, FRECCIA DESTRA, FRECCIA SU o FRECCIA GIU' della tastiera. direzione filo. inserisci o elimina segmenti. contatti box bobine È anche possibile inserire i contatti e le bobine dalla finestra che compare alla sinistra del foglio sul quale viene scritto il programma (albero delle operazioni). In questa finestra sono presenti tutti i comandi e le operazioni che sono possibili inserire nei vari editor di programmazione quali temporizzatori, contatori o operatori logici e matematici. Inserimento di indirizzi in KOP. Quando si inserisce un'operazione in KOP, i parametri vengono inizialmente rappresentati da punti interrogativi del tipo (??.?) oppure (????). ??.? A questo tipo di parametro di ingresso e di uscita si possono assegnare solo valori a bit (ad es. un indirizzo a bit simbolico o assoluto o un valore booleano come OFF o ON). È possibile negare questo tipo di ingresso e trasformare questo tipo di ingresso e uscita in un parametro immediato. ???? Non è possibile assegnare valori a bit a questo tipo di parametro di ingresso o di uscita. Poiché i tipi di dati ammessi variano da un'operazione all'altra, è opportuno visualizzare il relativo elenco premendo F1. << Questo parametro di ingresso può essere collegato ad un'operazione precedente oppure vi si può assegnare un valore a bit. Questo tipo di ingresso può essere negato e trasformato in un parametro immediato. Questo parametro di uscita può essere collegato ad un'operazione successiva oppure vi si può assegnare un valore a bit. Questo tipo di uscita può essere trasformato in un parametro immediato. >| Questo parametro di uscita ENO (uscita Box) può essere lasciato senza segno, collegato o ad un'operazione successiva oppure vi si può assegnare un valore a bit. I punti interrogativi indicano che il parametro non è stato assegnato. È possibile assegnare un valore costante oppure un indirizzo assoluto, simbolico o variabile ai parametri di un elemento, quando lo si inserisce o successivamente. Se non si effettuano le assegnazioni di alcuni parametri, non è possibile compilare correttamente il programma. Per assegnare un valore costante (ad es. 100) oppure un indirizzo assoluto (ad es. I0.1), è sufficiente digitare il valore desiderato all'interno dell'area dell'indirizzo dell'operazione (utilizzare il mouse o il tasto INVIO per selezionare l'area di indirizzo in cui scrivere). 3 esempi di assegnazione dell’indirizzo nei parametri KOP. Per assegnare un indirizzo simbolico (un simbolo globale o una variabile locale che utilizzi un nome del tipo INGRESSO1), eseguire la seguente procedura: 1. Digitare il simbolo o il nome della variabile nell'area dell'indirizzo dell'operazione. 2. Per i simboli globali, utilizzare la tabella dei simboli/delle variabili globali e assegnare un nome simbolico ad un indirizzo di memoria. Inserimento di commenti di programma in KOP. L'editor KOP consente di immettere commenti all’inizio di ogni segmento che ci permettere di capire con più facilità, la funzione svolta da quel segmento all’interno del programma. Tali commenti vengono chiamati “Commenti di segmento” e per crearli è sufficiente posizionare il cursore del mouse in un punto qualsiasi sulla riga del titolo del segmento e fare doppio clic o premere invio da tastiera per visualizzare la finestra nella quale è possibile immettere il titolo e i commenti al segmento. È possibile inserire un titolo che identifichi un segmento specifico e un commento relativo al suo contenuto. LINGUAGGIO AD ALTO LIVELLO (FUP) I linguaggi ad alto livello non hanno trovato finora grande applicazione anche se assicurano risultati decisamente migliori in termini di analisi e documentazione del software. L'editor di diagrammi funzionali (FUP) di STEP 7-Micro/WIN 32 consente di visualizzare tutte le operazioni come box logici simili ai normali diagrammi con porte logiche. La logica di programma si basa sulle connessioni tra le operazioni di box. Ciò significa che l'uscita di un'operazione (ad es. un box AND) può essere usata per attivare un'altra operazione (ad es. un temporizzatore) al fine di creare la necessaria logica di controllo. Come nell’editor KOP, i box e le porte logiche AND e OR, si possono prendere dalla barra degli strumenti o dall’albero delle operazioni: nella barra degli strumenti, sono presenti anche altri comandi che bisogna assolutamente conoscere e sapere usare se si vuole imparare a programmare in FUP. In questa barra vi sono infatti i comandi con i quali si possono aggiungere e togliere ingressi ai box presenti nel circuito, oppure coi quali è possibile negare gli ingressi stessi se si presenta la necessità. Inserisce operatore. crea e cancella segmenti. Disegna filo. aggiunge o toglie ingressi aggiuntivi. nega gli ingressi selezionati. Ovviamente per negare un ingresso a scelta è sufficiente selezionarlo col puntatore del mouse e ciccare nella barra degli strumenti l’icona che serve a negare l’ingresso voluto. LINGUAGGIO BOOLEANO (AWL) I linguaggi booleani presentano un set di istruzioni con simboli non più grafici ma letterali. Questo permette di trarre vantaggio dalle tecniche di programmazione strutturata sviluppata per i linguaggi ad alto livello senza perdere l’immediato contatto con la realtà dell’automazione caratteristica dei linguaggi Ladder. In un linguaggio booleano il programma si presenta come una lista di istruzioni elementari composta da un codice operativo, ad esempio un operatore logico, e un operando che rappresenta il segnale su cui bisogna operare. Lo sviluppo di un’espressione logica viene quindi a essere verticale anziché in linea come nella notazione algebrica. I simboli mnemonici dei codici operativi non sono unificati fra i vari costruttori; pertanto nel linguaggio AWL della Siemens si avrà ad esempio il codice U (UND) per la AND o con il simbolo A. La seguente figura illustra un esempio di un programma AWL. SEGMENTO 1 LD I0.0 LD I0.1 LD I2.0 A I2.1 OLD ALD = Q5.0 Come si può vedere nella figura, questo tipo di linguaggio testuale è molto simile alla programmazione in assembly. La CPU esegue ogni operazione nell'ordine indicato dal programma, dall'inizio alla fine, e quindi riparte dall'inizio. Questo segmento rappresenta un circuito in cui vi sono due contatti aperti, chiamati nell’ordine I2.0 e I2.1 in serie tra loro e in parallelo al contatto aperto I0.1. Il contatto I2.0 è infatti combinato tramite AND con quello successivo, cioè I2.0. Entrambi i contatti sono seguiti dalla sigla OLD, che sta ad indicare che entrambi i contatti sono in parallelo a quello corrispondente all’ultimo indirizzo caricato (LD) cioè I0.1. Infine vi è un contatto in serie a tutto il ramo (combinato tramite AND) con indirizzo I0.0 seguito da una bobina d’uscita chiamata Q5.0. Inserimento di un'istruzione in AWL Linee guida: Inserire solo un'istruzione e/o un commento per riga. Separare le istruzioni, gli indirizzi di memoria e i commenti tramite spazi o tabulatori. Per rappresentare i segmenti del programma, inserire la parola chiave NETWORK nella riga che precede le istruzioni che costituiscono il segmento (non digitare numeri di segmento, poiché questi vengono aggiunti automaticamente durante la compilazione). Esempio: Network 1 LD I0.0 O I0.1 // Questa riga introduce il primo segmento del programma // Carica il valore in I0.0 // Combina tramite OR il valore di I0.1 // Ulteriori operazioni: ciascun segmento è composto da più operazioni // Inizia un nuovo segmento di istruzioni Network 2 Per creare un programma nell’editor AWL è necessario per prima cosa creare un nuovo segmento il quale, in questo tipo di programmazione è chiamato NETWORK. Dopo aver iniziato e numerato con numeri progressivi e continui il segmento creato, si possono scrivere le operazioni da immettere all’inizio della riga seguente. Le istruzioni AWL sono elencate nell'albero delle operazioni solo come riferimento, ma non possono essere prelevate. Le si deve invece digitare nella finestra dell'editor di programma (editor AWL). Per immettere un'operazione nell'editor AWL: 1. Posizionare il cursore all'inizio di una riga. 2. Immettere l'operazione (ad esempio: LD). 3. Premere la BARRA SPAZIATRICE o il tasto di tabulazione. A questo punto è necessario immettere il nome e il numero dell’operando che si vuole immettere in quel punto del programma: esso può essere un pulsante esterno (I0.0), un contatto di una bobina ausiliaria interna (S0.0), una bobina o un contatto esterno (Q0.0) oppure temporizzatori o altri operandi che è possibile utilizzare in base al tipo di editor di cui si dispone. Importante è notare che i contatti hanno lo stesso nome, quindi lo stesso indirizzo della bobina alla quale sono logicamente collegati: l’unica differenza che c’è tra un contatto e una bobina è quindi determinata dall’operazione che si mette precedentemente all’indirizzo dell’operando utilizzato. Prima di un contatto si deve infatti mettere la sigla LD se bisogna caricare il valore dello stato del pulsante all’indirizzo scelto, mentre la lettera O (or) o A (and), se il contatto è in parallelo o in serie agli altri già inseriti precedentemente. Prima di una bobina bisogna invece inserire il simbolo = e scrivere lasciando uno spazio l’indirizzo della bobina. LD LDN A O AN ON Carica il valore dello stato del contatto nell’indirizzo scelto Carica il valore negato dello stato del contatto nell’indirizzo scelto Inserisce un contatto in serie Inserisce un contatto in parallelo Inserisce un contatto in serie negato Inserisce un contatto in parallelo negato Dalla precedente tabella si può facilmente capire che per negare un contatto o un pulsante è sufficiente aggiungere una lettera N all’operazione scelta. Inserimento di commenti di programma in AWL. Commenti di programma. In AWL i commenti devono essere preceduti da una doppia barra: // È possibile commentare un'intera riga e immettere i commenti in una riga dopo ciascuna operazione valida. Non è invece possibile creare commenti nelle righe intermedie, poiché il compiler considera un commento tutto ciò che viene scritto dopo la doppia barra. La lunghezza massima di una riga, compresi i commenti, è di 255 caratteri. Esempio: Visualizzazione degli errori di immissione in AWL. Una X prima di una riga indica che la riga non è sintatticamente completa, non è valida oppure non è stata compilata correttamente. Il testo in rosso indica una sintassi non corretta (ma mano che vengono inseriti, le operazioni o gli indirizzi vengono automaticamente visualizzati in rosso finché non sono stati completati). Se si sostituisce un valore non corretto con un valore valido, il carattere riprende automaticamente il colore predefinito (nero, a meno che non sia stata personalizzata la finestra in modo diverso). Una linea ondulata rossa di sottolineatura indica che un valore non rientra nei limiti previsti o che non è corretto per il tipo di operazione specifico. Una linea ondulata verde di sottolineatura indica che la variabile o il simbolo utilizzato non sono stati definiti. STEP 7Micro/WIN 32 consente infatti di scrivere il programma prima di definire le variabili o i simboli e di aggiungere i valori alle tabelle delle variabili locali o dei simboli anche successivamente. E’ importante ricordare che il programma non può essere compilato fino a quando continuano ad esserci errori: in tal modo il programma deve essere privato di eventuali errori presenti prima di essere compilato e quindi caricato nella CPU del PLC. Esempi di programmazione nei vari editor. Abbiamo eseguito lo stesso programma, cioè quello di una semplice autoalimentazione di una bobina esterna, nei tre editor a noi disponibili, allo scopo di comprendere meglio come bisogna procedere per eseguire un programma che comanda un PLC. In Fig. è stato svolto il programma in KOP: come si può vedere vi è un pulsante di arresto in serie al resto del circuito con l’indirizzo I0.0. Esso è un contatto esterno (lo si può capire dalla lettera I) ed è un contatto normalmente aperto, quindi chiuso (on) quando il bit vale 1. Abbiamo messo un contatto normalmente aperto anche se serve ad arrestare il motore, perché il pulsante I0.0, presente a uno degli ingressi del PLC, è normalmente chiuso: permane quindi al valore 1 fino a quando esso non viene spinto. Il pulsante I0.1 serve a far partire il motore, mentre il contatto della bobina Q0.0, serve ad autoalimentare la bobina stessa, in modo che resti attivata anche se il pulsante di avvio non è continuamente premuto. In Fig. è stato svolto il programma utilizzando l’editor AWL: il segmento come detto in precedenza inizia con la parola NETWORK, seguita da una numerazione progressiva. A fianco la scritta dopo aver digitato il simbolo // è stato possibile inserire il commento che descrive il funzionamento di quella parte di programma. L’indirizzo del contatto di arresto è preceduto dalla sigla LD, che sta ad indicare che il valore presente all’ingresso in quell’istante va caricato all’indirizzo I0.0. Il contatto della bobina Q0.0 viene invece combinato tramite OR col pulsante che serve ad avviare il motore. La bobina viene a sua volta combinata tramite AND al resto del ramo e la sigla LD sta ancora una volta ad indicare che il valore deve essere caricato all’indirizzo Q0.0 che corrisponde a quello della bobina stessa e a tutti i contatti ad essa connessi. Il FUP invece presenta uno schema costruito sotto forma di operatori logici (tipo le porte logiche), che, collegati tra loro determinano l’arrivo della corrente alla bobina o meno. In questo caso, il pulsante di arresto I0.0, è stato impostato come uno dei due ingressi di una porta AND, alla cui uscita è collegata la bobina che si vuole attivare per far muovere il motore. È intuitivo capire che per svolgere questa funzione, entrambi gli ingressi della porta AND devono essere a livello logico pari ad 1; quindi sia l’ingresso I0.0 che l’uscita della porta OR devono essere attivati. Come nei due precedenti casi è sufficiente solamente che sia attivo uno dei due contatti I0.1 (pulsante di marcia) o Q0.0 (autoritenuta), per fare in modo che si attivi correttamente la bobina. Una volta terminato il progetto occorre: salvarlo, compilarlo, caricarlo nel PLC, run