Home

ManualeCodesys

image

Contents

1. 4 4 Bitmap E possibile inserire nella visualizzazione corrente anche un un immagine Bitmap attraverso il comando Insert Bitmap o usando direttamente il relativo tasto presente nella barra appli cazioni dell Editor grafico Per configurare questo tipo di elemento sar necessario digitare la path del file bitmap che si vuole inserire nel campo di testo Bitmap presente nella finestra di 43 Category Text Text variables Colorvariables Line width Motion absolute Motion relative Variables Input Text for tooltip Security Programmability Bitmap C DOCUMENTS AND SETTIN E Background transparent Frame f Anisotropic Cancel Draw Isotropic I Clip te Fixed Color Alarm color Verkn pfung zu Datei X Figure 38 Finestra di configurazione di immagine Bitmap configurazione Possono essere selezionati inoltre altri parametri utili per per la definizione delle dimensioni e dell aspetto dell immagine in modalit on line 4 5 Visualization E possibile inserire all interno della visualizzazione corrente anche un elemento visualizzazione creando una istanza un riferimento della visualizzazione che si vuole aprire sopra quella corrente La configurazione di questa istanza viene definita nella categoria Visualization presente all interno della finestra di configurazione di questo particolare tipo di elemento Si puo utilizzare il tasto per aprire una finestra contenente la lista dell
2. pos sibile interagire con i programmi Selezionando nel browser di progetto di Codesys nella parte Visualization possibile inserire degli oggetti cliccando con il tasto destro su Visualization ed usando il comando Add object nel quale possibile inserire degli elementi grafici come forme geometriche immagini ed oggetti predefiniti per la visualizzazione di valori istogrammi display virtuali ecc e pulsanti da collegare alle variabili Ciascuno di questi oggetti pu essere inserito selezionando il pulsante relativo nella barra degli strumenti in lato nella schermata puntando il mouse in un punto del foglio e trascinando il puntatore tenendo premuto il tasto sinistro per im postare la grandezza dell oggetto Per una descrizione approfondita degli oggetti grafici guardare la sezione 4 A questo punto una volta completata la scrittura di tutte le componenti del progetto bisogna inserire le POU desiderate nel ciclo di esecuzione come spiegato nella sezione 3 6 nel nos tro caso andando nel men Resources e scegliendo Task Configuration dobbiamo andare ad inserire uno o pi task a seconda di come vogliamo implementare le nostre POU Una volta completato un progetto nel suo insieme programmi definizioni delle variabili possibile ver ificarne la correttezza selezionando il comando Build dal men Project Se il comando non e corretto verr visualizzato l errore tra i messaggi tra i messaggi nella parte in basso a destra della f
3. 0 Liv bot 0 END IF Figure 50 ST del programma di simulazione plant 95 opzione dovrebbe essere gi impostata e non modificabile Viene riportato in seguito il codice SFC della logica di controllo ed il codice ST per il programma per la simulazione dell impianto 6 Esempio con attuatore generalizzato 6 1 Il concetto dell attuatore generalizzato Nella scrittura dei software c stata una evoluzione con l aumentare della complessit si sono dovute trovare tecniche che andavano oltre al concetto classico di funzione e cos nata l idea di incapsulamento cio del creare degli oggetti base che potevano essere riutilizzati in pi software Questa teoria della programmazione prende il nome di programmazione ad oggetti Per spiegare meglio come tutto questo discorso si possa abbinare anche al controllo di sequenze si pu pensare al semplice esempio di un impianto che in un particolare momento deve aprire una porta Si possono avere tre tipi di sensore che mi dicono in che stato la porta A Singola Retroazione Un sensore di questo tipo mi dice quando l azione finita nel nostro caso avr un valore TRUE quando la porta completamente aperta o FALSE quando chiusa o in fase di movimento A Doppia Retroazione Questo tipo mi dar informazione sia sulla partenza che sulla conclu sione dell operazione Con una prima variabile mi dir se la porta completamente chiusa o no mentre con una seconda vari
4. Text variables Content Line width Cancel Colors Horizontal Colorvariables C Left P TIGE C Right Motion absolute Motion relative WES Variables C G pa Input Top Center Bottom Text for tooltip Security Font Standard Font Programmability Figure 26 Finestra di configurazione dell elemento visualizzato Categoria Text 4 2 4 Textvariables Nella categoria Textvariables possible specificare una variabile che setti dinamicamente il colore e il formato della stringa definita nella categoria Text Inoltre possibile usare componenti della struttura VisualObjectType per definire le propriet del testo Per informarsi sui valori e sugli effetti dei componenti di queste strutture vedi la categoria Programmability Sotto viene mostrata una tabella di possibili dichiarazioni di variabili che possono essere usate in questa categoria e la rispettiva finestra di configurazione che utilizza queste variabili Parameter Meaning Example entry of Example Usage of variable corresponding project variable in program component of structure VisualObjectType Textcolor Text color blc prg var textcolor var textcolorz162FFOO0FF dwTextColor Farbe Textflags Alignmenttridht plc_pra textpos textpos 2 dwTextFlags left centered gt Text right justified Fontheight Font height in Pixel fonth fonth 1 6 ntFontHeight Font height 16 pt Fontname Fontname vis1 fontn fontn arial
5. e Sequential Function Chart SFC E un linguaggio grafico estremamente espressivo E molto usato in quanto permette di partizionare in una sequenza di stati consecutivi l esecuzione dell applicativo e Structured Text ST E un linguaggio testuale strutturato di alto livello simile al Pascal e al C creato appositamente per la programmazione automatizzata di processi Viene generalmente usato per implementare complesse procedure non facilmente esprimibili attraverso linguaggi grafici e Ladder Diagram LD Linguaggio grafico che implementa una logica booleana serven dosi di schemi elettrici e Function Block Diagram FBD E un linguaggio grafico basato sull interpretazione del comportamento del sistema in termini di flusso dei segnali tra gli elementi del processo analogia con il diagramma dei flussi di segnali all interno di un circuito elettronico Per la descrizione dell analisi strutturale dei linguaggi introdotti dalla norma si rimanda alla consultazione di testi specializzati che hanno come argomento la divulgazione della stessa 3 L ambiente CoDeSys Struttura e programmazione Una volta installato il tool di sviluppo si pu vedere come esso presenti pi programmi al suo interno il principale Codesys V2 3 all interno del quale possibile sviluppare e simulare il codice per il controllo di sistemi industriali secondo la norma IEC 61131 3 Il pacchetto comprende anche e il programma Configuration che ser
6. essere effettuata in quattro modi e Direttamente dal programma quando si opera in simulation mode si pu immediatamente visualizzare l interfaccia grafica collegata al controllore senza aver bisogno di altri tool e Attraverso il programma CoDeSys HMI che il sistema run time necessario per la visu alizzazione il sistema permette all utente di creare un software a basso costo per operare sulla macchina usando la visualizzazione generata in CoDeSys e Visualizzazione via web CoDeSys genera una descrizione nel formato XML che viene car icato nel controllore insieme ad un Java Applet e che pu essere visualizzato attraverso TCP IP su un browser e Per controllori con display integrato la visualizzazione dei dati pu essere caricata insieme all applicazione sul sistema obiettivo questa soluzione puo essere applicata con poca fatica su qualsiasi dispositivo programmabile in CoDeSys Per visualizzazione si intende una rappresentazione grafica delle variabile del progetto l editor di visualizzazione all interno di CoDeSys che una parte integrante del tool di sviluppo fornisce elementi grafici che possono essere modificati e collegati alla variabili di progetto in questo modo quindi possibile collegare gli ingressi del PLC alla tastiera o al mouse e di visualizzare le variabili di uscita le propriet del singolo elemento per la visualizzazione vengono definite attraverso appropriate finestre di configurazione 4 1 Editor
7. FALSE l elemento sar visibile viceversa se TRUE sar invisibile Disable Input Se la variabile inserita 6 TRUE tutte le impostazioni della categoria Input verranno ignorate Change Color Se la variabile booleana presente all interno di questo campo ha il valore FALSE l elemento assumer il colore di default Se la variabile TRUE l elemento assumer il colore scelto nel box Alarm Color della categoria Color 39 Regular Element Configuration 1 Category Variables Text variables Invisible varlnvisible Line width ln Cancel Col h i orsi disable vaDisabie Motion absolute Motion relative Change color varColor Textdisplay varT ext Tooltip i r varToolti Programmability display P Figure 33 Finestra di configurazione dell elemento visualizzato Categoria Variables Textdisplay e Se stato inserito un 96s nel campo Content della categoria Text allora il valore della variabile che stata definita in Textdisplay sar visualizzato in modalit on line al posto del 96s e Se stato inserito un PREFIX dove PREFIX un prefisso una sequenza di lettere nel campo Content della categoria Text allora la variabile o il valore nu merico inserito qui in Textdisplay sar interpretato come un ID che in combinazione con il prefisso crea un riferimento ad un testo contenuto in un XML file Questo testo verr visualizzato al posto di PREFIX
8. PROGRAM GeneralizedActuator HH GeneralizedActuator PRG 2 Main PRG MarkFB FB E PackFB FB E PLANT PRG nt PLC PRG FB 2 TempContFB FB SensorPosition Model SHTatt MarkFB Done DoneWhat pe Figure 17 Definizione di istanze di function block 23 CoDeSys Untitled E Task configuration Ei Main LE PLC_PRGO i SjSimulazoneQ Input assistant Q Watch and Recipe Manager Lm m 13 Workspace hs 1 Figure 18 Finestra di configurazione per i Task l unica POU eseguita automaticamente dal sistema sar proprio il Program con il nome chiave PLC_PRG Tutte le altre POU saranno eseguite solo se richiamate esplicitamente da tale Pro gram Nel nostro caso invece vogliamo che sia eseguite pi POU cio vogliamo che sia eseguita sia la POU dove presente il programma per il controllo logico sia la POU dove pre sente il programma per la simulazione del Plant per fare questo dobbiamo modificare il Task Configuration situato nel men Resources come si puo vedere dalla figura 18 Supponiamo ad esempio che il programma per il controllo logico sia nella POU chiamata PLC PRG mentre il programma per la simulazione del plant sia nel programma chiamato S mulazione Cliccando due volte su Task Configuration appare una nuova finestra da dove possibile definire nuovi task cliccando col tasto destro su Task Config
9. TRUE 4 o Step FALSE 5 0 Steps TRUE 6 LI mi TALSE 6 o Step FALSE 6 _ 16 Steps TRUE 0 17 hit FALSE 0 Impostiamo ora sempre un unico task di tipo ciclico dove mettiamo prima Plant e poi PLC PRG L1 m FASE 0 7 3 Step FALSE 0 3 Stop2 TRUE 0 5 Step2 TRUE 3 Si EAE 9 E possibile vedere come a seconda della sequenza con cui A mi FALSE 6 12 Step FALSE 6 13 Steps TRUE 6 A mi FALSE 0 si mettono i due programmi nel ciclo di esecuzione vari l andamento delle variabili si vedano primi tre cicli di esecuzione ad esempio questo fatto dovuto che a seconda che venga effet tuato prima un programma di un altro cambia la sequenza di valutazione della variabile e suo incremento Quando si esegue il programma non cycle to cycle ma in modalit run sembra che Codesys perda questa diversit di esecuzione e che scheduli i programmi con un suo ordine che non e possibile cambiare tranne che andando a implementare i programmi su pi task e dandogli 26 tempi di ciclo diversi 3 7 La gestione Padre Figlio La gesione di tipo padre figlio una gestione particolare secondo la quale uno o pi SFC de nominati figli sono dipendenti da un altro SFC detto padre Il padre e solo lui ha il potere di far partire o fermare in qualsiasi momento l esecuzione dei figli Inoltre i figli una volta che sono partiti si evolvono in parallelo
10. al padre Nell ambiente ISAGRAF si possono creare degli SFC figli di altri SFC ed esistono delle funzioni primitive che regolano la gestione di tipo padre figlio GSTART per avviare il programma figlio GKILL per terminare l evoluzione del figlio GFREEZE per sospendere l evoluzione del figlio GRST per riavviare l evoluzione del figlio La norma IEC 61131 3 non molto precisa riguardo a questo punto impone solo di lasciare la possibilit che ci possano essere delle dipendenze tra diversi diagrammi SFC L ambiente CoDeSys conforme a questa norma riguardo al punto in esame Infatti non mette a disposizione del programmatore delle funzioni primitive simili alle suddette Ci sono per alcune variabili che se gestite in maniera opportuna permettono di fare anche nell ambiente CoDeSys una gestione che si pu definire pseudo padre figlio Il metodo pit importante e funzionale prevede l utilizzo dei flag Codesys ha dei nomi predefiniti per questi flag agendo sui quali e possibile mettere in relazione programmi differenti SFCInit Quando viene settato al valore TRUE l esecuzione dell SFC torna allo step iniziale Init tutti gli altri flags vengono resettati Il blocco Init verr eseguito solo quando questo flag verr reimpostato al valore FALSE SFCPause L esecuzione dell SFC rimane bloccata fintanto che questo flag avr valore TRUE SFCTrans Questo flag diveta TRUE ogni volta che viene attivata una transizione nell esecuzione dell
11. ddil E LevelBottleFB FB a ein E Plant PRG New POU E E PLC PRG PRG bs E PositioningFB FB Name of the new POU LevelFB E TempContFB FB Type of POLI gt Language of the POU Cancel C Program wale Function Block C LD C Funchon C FBD Retum Type SFC Boo C SI C CFC Figure 51 Definizione del function block TankLevel Declare Variable LevelFB x Class Name Type za VAR GLOBAL TankLevel LevelFB m 7 Cancel Symbol list Initial Value Address omes Global Variables y pai CONSTANT Comment RETAIN PERSISTENT Figure 52 Definizione di un attuatore generalizzato 60 0001 Positioning PositioningFB sime TemperatureValue 60 3 3 LevelFB Figure 53 Finestra del function block digram 61 istanza chiamiamola ad esempio TankLevel una volta finita di scrivere apparir la finestra per l assegnamento delle variabili come in figura 52 si vede che LevelFB un tipo di variabile mentre TankLevel un dato di quel tipo di variabile Per definire un altro GA bisogna inserire una riga nella finestra per fare questo bisogna cliccare con il tasto destro e cliccare su network before oppure network after in questo modo si inserisce una riga prima o dopo della riga selezionata Inserendo pi righe possibile inserire tutti i GA che servono per il nostro controllo logico come in figura 53 Una
12. della sequenza Una volta che sono state trovate le funzionalit di base bisogna indicare la sequenza con la quale vengono usate Questa descrizione serve per capire come e quando vanno usati i vari attua tori generalizzati creati quando si andr a implementare il controllo principale Nell esempio 57 dell impianto di imbottigliamento la sequenza la seguente Riempimento Serbatoio Posizionamento Riempimento Bottiglia Posizionamento Riempimento Bottiglia Posizionamento Riempimento Bottiglia fino a quando il serbatoio e completamente vuoto nel qual caso si riparte con un altro Riempimento Serbatoio In parallelo a tutto questo c il Controllo Temperatura solo quando c e del liquido all interno della cisterna Dopo che sono state definite le funzionalit e la sequenza con la quale sono usate bisogna andare ad un livello pi basso ed iniziare a pensare a quali sensori e attuatori servono per per permettere all attuatore generalizzato di eseguire la sua funzionalit E anche possibile che siano gi stati definiti prima i sensori e gli attuatori da utilizzare in questo caso basta semplicemente associarli all attuatore generalizzato Nell impianto di imbottigliamento delll esempio i sensori ed attua tori erano gi assegnati Sensori e 2 sensori analogici di livello uno per la cisterna e uno per la bottiglia e 1 sensore digitale di presenza per le bottiglia e 1 sensore analogico di temperatura per la ci
13. front 470 270 650 480 210 330 260 490 410 330 460 490 Meno 10 60 251 111 420 60 661 111 Delete 10 170 251 211 10 120 251 161 420 170 661 211 420 120 661 161 670 20 791 271 mn 270 150 401 491 T Undo Edit FUHR P 420 f 20 661 f 61 Figure 24 Finestra Extras Elementlist nhir LS Dove Rectangle C Rd rectangle Motion relative Elipse Variables E Line Programmability Figure 25 Finestra di configurazione dell elemento di visualizzazione 33 Cancel Si procede ora all analisi delle singole categorie a disposizione in modo da descrivere le pro priet che possiamo dare ad un particolare elemento 4 2 1 Shape Selezionando Shape possibile configurare la forma dell elemento vedi figura 25 4 2 2 Angle Questa categoria disponibile solo nella configurazione di un elemento circolare Configure Pie E possibile infatti definire il valore iniziale Start Angle e quello finale End angle dell angolo descritto dall elemento 4 2 3 Text In questa categoria e possible specificare un testo per l elemento Questo pu essere inserito direttamente digitando nel campo denominato Content e 5e si vuole visualizzare il valore di una particolare variabile definita precedentemente necessario inserire nel sudetto campo 96 pi un carattere a seconda del tipo di variabile che si vuole inserire vedi la tabella sottostante Contestual
14. nell ultimo step eseguito qualsiasi sia il valore dei flag del sistema In questo esempio l evoluzione dal punto di vista esterno non ha delle differenze ma rimane solo un problema concettuale In casi pi complessi per potrebbe portare anche a grossi errori nel funzionamento del progetto Questa simulazione ha messo in luce un fattore importante nella gestione pseudo padre figlio in CoDeSys Quando disattiviamo un figlio le variabili non vengono resettate perch lo stato Init non viene eseguito fino alla successiva riattivazione Quindi se vogliamo che alcune variabili del figlio vengano resettate con la sua disattivazione dobbiamo farlo esplicitamente dal diagramma padre Nel nostro caso mettendo una espressione del tipo number 0 all interno dello stato Init del padre all occorrenza dello Stop il grafico sarebbe ritornato al valore nullo 30 4 L ambiente Codesys l interfaccia grafica Il tool di sviluppo contiene al suo interno un editor integrato per la visualizzazione che permette all utente di creare oggetti grafici collegati al programma in modo da sviluppare una interfaccia grafica per la simulazione dell applicazione L integrazione offerta in CoDeSys permette che l accesso alle variabili sia diretto e che non ci sia bisogno di configurare OPC o DDE layer che spesso sono difficoltosi da configurare perch la comunicazione viene effettuata con lo stesso meccanismo usato per la programmazione La visualizzazione pu
15. resettati Il blocco Init verr eseguito solo quando questo flag verr reimpostato al valore FALSE SFCPause L esecuzione dell SFC rimane bloccata fintanto che questo flag avr valore TRUE SFCTrans Questo flag diveta TRUE ogni volta che viene attivata una transizione nell esecuzione dell SFC SFCCurrentStep E una STRING con valore pari al nome dello step attivo in quel deter minato istante Questi risultano essere molto utili per la gestione pseudo padre figlio di cui si parlera nella sezione 3 7 3 3 Il linguaggio CFC Il linguaggio CFC Continuous Function Chart un linguaggio introdotto da CoDeSys ma non presente nella norma IEC 61131 3 Questo linguaggio pu essere definito anche come FreeFBD infatti analogo al linguaggio FBD della norma ma permette di inserire liberamente i vari blocchi in qualsiasi punto dell editor Questa propriet permette di creare diagrammi pi complessi e di inserire anche delle retroazioni in maniera diretta Figure 12 Esempio di diagramma CFC Nel diagramma si possono inserire tutti i tipi di blocchi gi esistenti nel linguaggio FBD e anche 17 tutti i blocchi che sono creati dall utente insieme a input output return commenti didascalie e salti Le linee di connessione tra gli input e gli output dei vari blocchi sono disegnate automat icemnte trascinando il mouse Verr sempre disegnata la connessione pi corta possibile tenendo conto delle connessioni gi disegnate d
16. simulazione combacia perfettamente con quanto detto infatti quando arriva lo Stop lo stato di Init diventa attivo ma non viene eseguito quindi la variabile globale mantiene l ultimo valore con la quale era stata settata All occorrenza del successivo Start viene eseguito lo stato Init quindi number riottiene il valore nullo per 5 secondi per poi riiniziare la sua evoluzione tra i 28 0001 PROGRAM Figlio 0002 AR_INPUT SFCInitBOOL SFCPause BOOL StartBOOL Stop BOOL Pause BOOL RestarttBOOL Step3 t gt t 2s Step2 b Step2 Figure 21 Diagrammi SFC di Padre PRG a e Figlio PRG b 20 0 15 49 17 15 49 27 15 49 37 15 49 47 15 49 57 15 50 07 Figure 22 Risultato della simulazione dei programmi Padre PRG e Figlio PRG valori 1 e 2 Per fare funzionare correttamente questo progetto bisogna andare nel Task Configuration e creare un nuovo task che faccia partire entrambi i programmi sia Padre che Figlio Questo perch in genere CoDeSys fa partire di default solo la POU PLC_PRG quindi se vogliamo fare partire pi POU contemporaneamente o anche una sola con un nome differente bisogna creare un nuovo task In alternativa si potrebbe anche richiamare il diagramma figlio con una chiamata simile a quelle per i function block all interno di uno step del padre ma questo metodo provoca una errata evoluzione del diagramma figlio Infatti quando si esce dalo step dove viene chiamato il figlio si blocca
17. stFontName gt Arial is used Fontflags Font display bold plc_pra fontchar fontchar 2 dwFontFlags underlined italic Text will be displayed bold 4 2 5 Line width In questo box di configurazione e possibile scegliere la larghezza delle linee che delimitano l elemento In alternativa si puo inserire nel campo Variable for line width una variabile che 35 Regular Element Configuration 0 x Category Variables for textdisplay Textcolor var testeolor Line width Color Textflags prog lextpos Colorvariables Motion absolute Motion relative Fontheight oth Variables Input Fontname prog fontn Text for Tooltip Security Fontflags progi fontcha Programability Cancel di Figure 27 Finestra di configurazione dell elemento visualizzato Categoria Textvariables setti questo parametro dinamicamente Es Regular Element Configuration 1 Category Shape r Line width ow Tet variables 1 Pixel z a Cancel Colors Colorvariables C 3Pixe Motion absolute Motion relative 4 Pixel Variables Input C 5Pixel Test for tooltip Security C Other Programmability dea varLarghezza Figure 28 Finestra di configurazione dell elemento visualizzato Categoria Line width 4 2 6 Color In questa categoria si pu specificare il colore che l elemento assumer in modalit on
18. volta definiti tutti i GA bisogna inserire nel task configuration il programma FBD dove sono presenti le definizioni dei vari GA I GA definiti in questo modo diventano delle entit sempre vive in questo modo ogni singolo GA pu incapsulare la diagnostica locale e lasciare alla politica solo la diagnostica riguardante guasti ad alto livello come possono essere una errata sequenza di operazioni La politica dovr soltanto azionare il GA ed aspettare che il GA finisca la proprio operazione in questo modo c una completa divisione tra politica ed implementazione del mec canismo Naturalmente ci dovr essere una gestione di sincronizzazione per i GA ad esempio per un GA di tipo Do Done la politica dovr dare il segnale Do controllando che il GA sia libero in stato di Ready e una volta che ha ricevuto il segnale di Done dovr resettare il segnale di Do in maniera analoga il GA dovr agire sul segnale di Done Per la definizione dei singoli GA per l esempio dell imbottigliatore si veda l esempio ImbottigliatoreGA pro 62
19. 16 FFOOFF dwFillColor a fill color pink Fillcolor alarm fill color if the blc prg var fillcol a var_fillcol_a 16 FFOOFF dwFillColorAlarm Change color alarm fill color pink variable is TRUE Framecolor frame color plc prg var framecol var_framecol 16 FFOOFF dwFrameColor gt frame color pink Framecolor frame color ifthe alarm Change color variable is TRUE The current inside color configuration can be activated FALSE resp deactivated TRUE plc prg var framecol jvar_framecol 1 64F FOOFF blc prg var col off Frameflags Display ofthe frame plc prg var linetype solid dotted etc 37 gt alarm frame color farbe pink dwFrameColorAlarm dwFillFlags dwFrameFlags var col offz1 gt the color definition for the fill color will not be regarded that for the frame remains valid var linetype z2 gt frame will be displayed as dotted line Regular Element Configuration 0 x Category m Variables for colors Fillcolor var filcol Textvariables Line width A Cancel Color Fillcolor alarm vat_fillcol_alarm Motion absolute Framecolor var framecol Motion relative Variables Framecolor alarm var framecol alarm Input Text for Tooltip Fillflags pre var coloff Security Programability Frameflags var linetype Figure 30 Finestra di configurazione dell elemento visualizzato Categoria Color Variables 4 2 8 Mo
20. Functions CI User defined Function Blocks User defined Functions i E MarkFB FB E PackFB FB EE Standard Programs El PAG F8 User defined Programs amp TempContFB FB Conversion Operators Figure 16 Definizione di un function block di tutti i function block creati dall utente e possibile richiamare quello desiderato ed associarlo ad una istanza Alla singola istanza possibile associare le variabili di ingresso ed uscita Per definire un nuova istanza bisogna cliccare con il tasto destro nell editor ed usare il comando Network per inserire una nuova riga orizzontale dove poter inserire una nuova istanza di un function block Alla fine si ottiene uno schema come quello di figura 17 dove sono rappresentati le istanze dei vari function block In questo caso i function block sono quelli chiamati PackFB TempContFB MarkFB mentre le istanze sono Pack TempCont e Mark 3 6 Task Configuration In precedenza si visto che quando si crea un progetto da zero compare il men per la creazione della prima POU del progetto di default la nuova POU un Program con il nome PLC_PRG da programmare in ST Il nome di default non e casuale infatti se non verranno fatte in se guito modifiche alla configurazione del progetto una volta lanciata l esecuzione del progetto 22 1 CoDeSys Timb4AG pro GeneralizedActuator PRG FBD File Edit Project Insert Extras Online Window Help BEC Lelea vo aaa 0001
21. Manuale di utilizzo del software Codesys L ambiente di sviluppo di Codesys e un marchio della 35 Software il seguente non un manuale ufficiale ma tratto dal manuale in lingua inglese della 3S Software ed alcune applicazioni svolte all interno dell universit di Bologna Nel caso si trovassero errori potete comunicarli a Matteo Sartini matteo sartini unibo it versione 1 1 Contents 1 Introduzione 4 2 Definizioni e richiami della norma IEC61131 3 5 2 Il modello software su cre ta Sry coi ow AS A XE A LS 5 2 2 Program Organization Unite ae ae doe oe fg DAA ORT RR T 2 3 I linguaggi di programmazione 0 dci a a 8 3 L ambiente CoDeSys Struttura e programmazione 9 Solo Primi passi Le iino nis cm e a E ta we PRADA Aa Rae doe Rodin 9 oes L Editor SEG eite he nt dad oet uod Peut Te pus de Rolle ER m Aides se ons 13 SS MENU Ta crura iu pira hee Ae ck A ae et e A ph 17 Sd SINT SD ao vrai 42 ck ee Vidc SE edes S p odd Rd Be d lea 18 DUET CERERE REA RARA AES ee ek ees 18 dla er 4 ace ct dopo hoe ek oe ee Qi wel UR ne ee es ee ee Ain 19 BAGG REG EIGENS s ab eg pre roe pe AS UE eh x odo ga 19 SL o UNG te SER E Seo hoes id E 19 deo podi dato data E o a Ie toe eae vnd 19 SEO ANd Suo E ates oo E E uS ols Sod ead 20 DOC lo s mood ue oe ye Se as Bat eM ENSE RAE BUR ea RC E E PASCO SE SS 20 9o HutebignDIgoR oie ecce AO A E ACE GUN Bc ieee CS 20 3 0 Task Configuration Gas Lube eek a e dA ope eR b LORA 22 3 7 La gestion
22. PRG gestione PRG motorem BOOL END VAR E es my 59 59 fun Add Object Rename Object Edit Object Copy Object Delete Object Bloccaggio Init HN Visual GenerazioneF in par v Sbloccaggio premuto FUN spegni FUN i n Object Properties Project database gt Em PE UNITIES New Folder inizio Collapse Node TRUE Save as template Exclude from buid SteP5 Figure 10 Creare un azione utilizzabile da un Iec Step aggiungere due azioni Action_1 e Action 2 queste devono essere definite a parte e solo richiamate con il nome all interno del rettangolo a fianco dello step Per definire una nuova azione associata ad una POU basta cliccare con il tasto destro del mouse sulla POU e selezionare Add Action A questo punto si apre una finestra dove ci viene chiesto il linguaggio in cui verr scritta la nuova azione e il nome che le vogliamo associare In base al linguaggio scelto si aprir il rispettivo editor per la scrittura dell azione L Editor SFC di CoDeSys permette inoltre di definire delle azioni addizionali per ogni tipo di step che vengono eseguite una sola volta o non appena lo step diventa attivo Entry Action o un attimo prima di disattivarsi Exit Action Uno step contenente una entry action indicato con una E nell angolo in basso a sinistra mentre una exit action contrassegnata da
23. SFC SFCCurrentStep E una STRING con valore pari al nome dello step attivo in quel determinato istante Se infatti questi flag vengono elencati tra le VAR INPUT cio le variabili di ingresso di un programma questi possono essere modificati da qualsiasi altro programma presente nel progetto Usando opportunamente i flag SFCInit e SFCPause si puo quindi ricreare una gestione che e simile a quella padre figlio di ISAGRAF Questa non e una vera e propria gestione padre figlio per due motivi Innanzi tutto in teoria solo il padre potrebbe avviare e terminare il figlio invece i flag di sistema possono essere modificati da qualsiasi programma presente nel progetto come se tutti fossero padri dei figli Si pu ovviare a questo problema stando attenti a fare in modo che un solo programma usi queste variabili 27 sul figlio anche se tutti gli altri avrebbero la potenzialit di farlo Il secondo motivo riguarda il fatto che quando il padre esegue l azione GKILL il figlio scompare proprio mentre con l uso di SFCInit il figlio rimane presente anche se congelato nella posizione di Init fino a quando il flag suddetto non ritorner al valore di FALSE Da un punto di vista dell utente questa non una grossa differenza anche perch non si nota nel funzionamento del sistema per un fattore importante dal punto di vista concettuale Un altro possibile metodo quello di inserire un SFC all interno dello stato di un altro SFC L ese
24. a il nostro processo e scomponiamolo nelle funzioni base che il nostro processo esegue per ottenere la funzione complessiva Il primo passo da fare per la definizione degli attuatori generalizzati quello di indetificare le funzionalit del sistema cio delle funzioni operazioni di base che devono essere eseguite dal sistema Nel sistema di esempio se ne possono individuare quattro 1 Riempimento del serbatoio 2 Posizionamento delle bottiglie 3 Svuotamento del serbatoio 4 Controllo della temperatura La prima ha solo il compito di immettere i due liquidi nella cisterna nel rapporto indicato per generalizzare il tutto si pu anche permettere un rapporto variabile e contare i 10 secondi nec essari per il miscelamento La seconda gestir il nastro trasportatore per mettere in posizione corretta le bottiglie Qui si inizia gi a notare la riutilizzabilit se abbiamo una altro sistema che ha una funzionalit che prevede il posizionamento possiamo benissimo utilizzare l attuatore generalizzato che creremo per l imbottigliatore basta solo cambiare i parametri che dicono al nostro oggetto quale motore e quale sensore usare per la sua funzionalit senza dover riprogettare tutto dall inizio La terza funzionalit si occuper di svuotare lentamente il serbatoio fino al riempimento di una bottiglia Infine la quarta user la resistenza per scaldare la miscela ed effettuare una isteresi della tem peratura 6 3 Descrizione
25. a sua evoluzione All occorrenza di uno Stop il padre ritorna nello stato di Init e disattiva il figlio rimettendo il valore TRUE nella variabile SFCInit All occorrenza di un Pause il padre congela il figlio agendo sulla variabile SFCPause dello stesso e si mette ad aspettare un Restart che puo far ripartire il figlio da dove si era fermato o uno Stop che ha gli stessi effetti di prima Tutti questi comandi vengono forniti tramite pulsanti nell oggetto grafico Nella visualizzazione ho anche plottato un grafico con l evoluazione temporale della variabile number il cui risultato indicato in figura 22 insieme ad alcune frecce che indicano quando e quali comandi sono stati impartiti al padre Si pu notare che una volta impartito lo Start si hanno i primi secondi con la variabile a 0 poi inizia la corretta evoluzione del figlio che cambia valore alla variabile ogni 2 secondi All occorrenza di un Pause il figlio si blocca nello stato in cui era quindi il valore della variabile non cambia fino ad un successivo Restart Alla fine della simulazione si incontra per un fatto molto importante Quando arriva lo Stop la variabile non ritorna a 0 ma rimane ad uno degli altri valori Questo si pu spiegare facilmente ricordando gli effetti di SFCInit su un diagramma SFC Infatti quando questo flag viene impostato a TRUE lo stato iniziale diventa quello attivo ma non viene eseguito fino a quando il suddetto flag non ritorna al valore FALSE Il risultato della
26. abile se completamente aperta o no Combinando le due informazioni posso sempre sapere in che condizione si trova il mio sistema A Time Out Questo non un sensore vero e proprio Io so quanto tempo ci vuole per fare una operazione quindi immagino che passata quella quantit di tempo dopo l emissione del comando quella certa operazione sia effetivamente conclusa tenendo conto magari di un certo margine di errore In ambito controllistico l astrazione si ottiene dividendo la politica di gestione dal meccanismo di funzionamento Avr cio un gestore che mi da il comando di aprire la porta e un oggetto che l insieme di uno o pi attuatori e uno o pi sensori che mi esegue l operazione voluta azionando un certo meccanismo Questo oggetto di controllo l Attuatore Generalizzato L astrazione si vede se si pensa al fatto che al gestore non interessa che tipo di sensore usa l attuatore generalizzato per aprire la porta L importante che quando arriva il comando di apertura la porta si apra Oltre all astrazione si possono ritrovare le propriet di incapsulamento e riutilizzabilit infatti il meccanismo di funzionamento incapsulato all interno dell oggetto attuatore generalizzato che pu essere riutilizzato tranquillamente in un impianto completamente diverso ma che ha una operazione simile all apertura della porta Possiamo classificare questi oggetti in due famiglie di attuatori generalizzati Do Done Questo ti
27. aniera coerente con il funzionamento dell impianto Se ad esempio SFC comanda il movimento di un carroponte verso l alto il simulatore dovr decrementare il valore di una variabile chiamata ad esempio Y ed imporre un valore TRUE al sensore di fine corsa quando la variabile Y arriva ad un certo valore limite I due programmi sviluppati dovranno interagire tra loro come mostrato nella figura 5 quindi le variabili dovranno essere definite globali le uniche variabili locali saranno quelle che vengono utilizzate soltanto all interno di un programma e che non devono leggere o scrivere sugli ingressi uscite del sistema Entrambi i programmi devono essere eseguite l unico per che viene eseguito di default quello chiamato PLC PRG bisogna quindi configurare il sistema in modo che esegua entrambi i programmi Per fare questo bisogna modificare il progetto andando a se lezionare la finestra Resources e selezionando l opzione Task configuration cliccandoci sopra due volte e poi cliccare col tasto destro su Task configuration quello nella parte destra dello schermo non sul browser di progetto Una volta selezionato il comando Append Task e definito un nuovo task chiamato ad esempio Main come nella figura 6 bisogna configurare gli attributi del task ed inserire da qui tutti i programmi che si vogliano eseguire su quel task attraverso il comando Append program call Nell esempio vengono chiamati i due programmi PLC PRG e simulazione 12 Il tool di sv
28. ato il codice di controllo Codesys integra nel suo ambiente una modalit di funzionamento chiamata Simulation mode che permette di eseguire il programma sviluppato senza avere ne l ambiente real time ne un vero e proprio PLC E possibile creare una propria interfaccia grafica per interagire con il codice di controllo a questa interfaccia possibile collegare un programma che il compito di simulare il comportamento del plant per il quale e stato scritto il codice di controllo In questo modo mandando in esecuzione entrambi i programmi codice di controllo codice per simulare il plant possibile testare il codice di controllo inoltre tramite l interfaccia grafica e possibile interagire durante la simulazione Nella versione demo del tool e possibile lavorare soltanto in simulation mode cio non possibile generare codice per l ambiente real time o per PLC 2 Definizioni e richiami della norma IEC61131 3 Lo standard IEC 61131 3 e la terza parte di una norma pi generale IEC 61131 che fornisce una standardizzazione dei PLC IEC 61131 1 Definizione del dispositivo PLC IEC 61131 2 Architettura hardware e software dei PLC IEC 61131 3 Linguaggi di programmazione per implementare i controlli di sequenze sui PLC IEC 61131 4 Linee guida per l utente IEC 61131 5 Descrizione dei servizi di messaggistica IEC 61131 6 Comunicazione tramite bus di campo fieldbus IEC 61131 7 Programmazione di controllo a logica sfumata fuzzy logi
29. c IEC 61131 8 Linee guida per l applicazione e l implementazione di linguaggi di programmazione Lo standard IEC 1131 3 fornisce una definizione dei linguaggi di programmazione per i controllori a logica programmabile allo scopo di far evolvere verso una normalizzazione di tali linguaggi in modo che il programmatore possa astrarre il pit possibile dall architettura del particolare con trollore che verr utilizzato Per la medesima ragione si sono definite una serie di caratteristiche comuni a tutti i linguaggi relative in particolar modo alla sintassi di dichiarazione di variabili simboliche e di moduli software 2 1 Il modello software L IEC ha elaborato un modello del sistema di controllo cercando di definirne i suoi componenti software Per fare ci sono state considerate tutte le interazioni fra il programma e l ambiente operativo del sistema di controllo Alla fine si optato per un modello software di tipo stratificato e gerarchico che si basa su di un insieme ben preciso di elementi oggetti ognuno dei quali si trova ad un determinato livello della gerarchia e racchiude gli elementi del livello sottostante Tale gerarchia pu essere schematicamente descritta dalla figura 1 I componenti sono quindi distribuiti secondo una struttura gerarchica simile ad un sistema ad oggetti in cui ogni elemento ha caratteristiche proprie ed connesso agli altri secondo opportuni vincoli di aggregazione appartenenza o utilizzo Segue la presen
30. cuzione ovviamente strettamente dipendente dall esecuzione del primo per in questo caso non rispetta la propriet secondo la quale il figlio pu evolversi indipendentemente dal padre Infatti in questo caso se il padre cambia stato il figio non viene pi eseguito Questo metodo non pi utilizzabile se lo stato dell SFC padre in cui il figlio andrebbe terminato distante uno o piu stati da quello in cui il figlio viene avviato E invece possibile utilizzarlo se durante l esecuzione del figlio il padre deve stare fermo in un unico stato cosa che per non sempre avviene Per capire meglio come funzione la gestione pseudo padre figlio a flag si creato un piccolo progetto formato da due diagrammi SFC Padre e Figlio la cui struttura visibile in figura 21 Figlio fa solamente tre azioni denominate var0 vari e var2 le quali salvano rispettivamente il valore 0 1 e 2 in una variabile globale chiamata number Una volta che avviato rimane nello stato Init per 5 secondi poi cicla saltando tra gli stati 2 e 3 ogni 2 secondi Ho dovuto usare degli IEC Steps perch gli Step normali non hanno la variabile t associata che calcola il tempo di attivazione Il Padre invece e pilotato dall esterno con 4 variabili Start Stop Pause e Restart che ne determinano l evoluzione e le azioni sopra il figlio Quando il padre riceve lo Start attiva il figlio rimettendo a FALSE la variabile SFCInit dello stesso A questo punto il figlio comincia l
31. e E possibile digitare con la tastiera in modalit on line il valore da attribuire alla variabile inserita in questo campo utilizzando Text Input of variable Textdisplay della categoria Input Tooltip display In questo campo possibile inserire una variabile di tipo STRING il cui valore vuole essere visualizzato in un tooltip dell elemento visibile in modalit on line vedi la categoria Text for Tooltip 4 3 1 Input Nella categoria Input devono essere inserite tutte le variabili il cui valore vuole essere modificato in online mode agendo sull elemento Toggle Variable Se questa opzione viene attivata e possibile inserire nell apposito campo il nome di una variabile booleana il cui valore pu essere modificato in modalit on line Pi precisamente cliccando una volta sull elemento il valore passa da TRUE a FALSE e ritorna ad essere TRUE inseguito ad un successivo clicco Tap Variable Anche questa opzione permette di modificare il valore della variabile booleana data nel campo d ingresso ma funziona in maniera diversa Infatti in questo caso il valore della variabile cambier solo istantaneamente poich il valore iniziale verr ripristinato non appena il pulsante del mouse viene rilasciato Se la variabile non 6 stata inizializzata in 40 Regular Element Configuration 1 Category nput OK T Lui Toggle variable mew ext variables Line width Tap variable Cancel Colors Colorvariables Is Motion absolu
32. e Padre Figlio sce deze ru dex LR ee ED UE WIS a tee Db ds 27 4 L ambiente Codesys l interfaccia grafica 31 AM a MO Clie mda eoe at stis Ah a Bad i li ee abi 31 4 2 Configurazione di un elemento 2 4 464 1 6 we dee De Ere due Muere ue Rs 32 Ad Shape o uda au metere cire b eu a padre ek o d ni ror de aia ashen a 34 2502 o NN ee n A Band i Be aM reni onte Ia 34 du EOXb a Ar e acd up AR d use B bust alle Le point dis a 34 AZA WER Vantin less esci erts Rire de be ee Ito calici pa 35 42 0 Lmewidth e a do urhe x Lok oet x Lk uh ur nal Log 35 AO a teuic didi Ve Be Giles dpud Jes end tis ID bep eri eut each habia sr moth 36 42 Color Vaslables ae an eo SS A IR ND Hc du Apes 36 4 2 8 Motion absolute seda Me AMA dum IE ava 38 4 2 9 Motion relativo 4 ecg Was dores doe Xr ae bes ede bes AG do beh Qs debug 39 dort Mata DIOS taa usce RIS RUEDA S eue S Ge eren uve di mg ci 39 dod cM igs ae A S UTE TIUS eM ed x 40 32 Text for Tooltip r aa d etd TR River add To db het diete d ee e RR ES 42 4 3 35 SOC IN 42 To Paoetammablliby Pere CE e do A dete MA RA 43 Zo CERRADO opo o ede hs ELEM PE ru A ostii a Dac Nd Dci LR Moda de 43 dido Alsualizatiotio ira DL GN aee aC dee des 44 4 5 1 La funzione dei Placeholders ie wee idos IRA rat ees 44 LG Grappr di Elensentr c a Se ESA do AE ROSSE om e de qwe ele a 46 Esempio 48 Esempio con attuatore generalizzato 56 6 1 Ileonucetto dell attuatore generalizzato AA a de y ER vC a 56 6 2 Imb
33. e il cambio 38 di dimensione dell elemento nel caso in cui sia presente anche una varibiale all interno del campo Angle 4 2 9 Motion relative Nella categoria Motion relative sono disponibili quattro campi di inserimento relativi ai quattro margini che formano l elemento Left edge Top edge Right edge bottom edge I valori delle eventuali variabili di tipo INT inserite nei campi permettono di generare un movimento relativo e indipendente di ogni singolo lato dell elemento e quindi anche di pi lati contemporaneamente La posizione di base di ogni margine dell oggetto rappresenta lo zero a cui riferire il valore della variabile che eventualmente ne regoler il movimento in modalit on line E necessario inoltre precisare che il valore della variabile quantizzato nel campo di visualizzazione in pixel Regular Element Configuration 1 Category Shape Motion relative Text Text variables Left edge varLeft Line width Cancel Colors Top edge varTop Colorvariables Motion absolute Right edge varRight Bottom edge vaBotom Test for tooltip Security Programmability Figure 32 Finestra di configurazione dell elemento visualizzato Categoria Motion relative 4 3 Variables In questa categoria vengono dichiarate tutte le variabili che caratterizzeranno l aspetto e le propriet dell elemento in modalit on line Sono disponibili cinque campi Invisible Quando la variabile booleana qui inserita
34. e visualizzazioni disponbili all interno del progetto Per spiegare a cosa serva il tasto Placeholder presente all interno di questa finestra di con figurazione necessario descrivere il funzionamento dei placeholders 4 5 1 La funzione dei Placeholders Nel momento in cui l utente va a configurare qualsiasi tipo di elemento ha la possibilit di inserire nei vari campi di testo un determinato placeholder letteralmente tieni posto che rimpiazzi il rispettivo testo o variabile Ora utilizzare questi particolari puntatori ha senso solo se la visualizzazione che si sta config urando non sar usata direttamente nel programma bensi se e stata creata per essere inserita come istanza all interno di un altra visualizzazione Ogni stringa inclusa in due successivi segni a forma di dollaro un placeholder valido es variablel 44 Sh IE A AE ES ES Text Visualization DoubleBadE levators E OK i Test variables Colorvariables PME Cancel Line width Motion absolute Foa Mation relative Variables iw Draw Color Input Test for tooltip iv Cip Security Programmability f Anisotropic Alarm color Isotropic Fixed Figure 39 Finestra di configurazione di un elemento visualizzazione 45 Ogni placeholder che viene usato deve essere inserito in un apposita lista nella finestra Ex tras List of Placeholders figura 40 in cui necessario specificare anche il gruppo di vari abi
35. ei blocchi gi inseriti e degli spazi liberi presenti Inoltre le linee vengo regolate automaticamente se vengono spostati i blocchi di origine o destinazione della connessione stessa e e amp bees 9 eld s 8 alolo ra a r Figure 13 Pulsanti dell Editor CFC In figura 13 sono indicati i pulsanti dell Editor CFC dell ambiente CoDeSys Nel gruppo di sinistra ci sono tutti quei pulsanti che servono per l inserimento di tutti i possibili blocchi 1 Input 2 Output 3 Box 4 Jump 5 Label 6 Return T Comment 8 Negation 9 Set Reset 10 Enable Enable Output Nella parte centrale ci sono tre pulsanti che servono per la definizione di macroblocchi mentre con i pulsanti di destra ci si pu muovere tra i vari livelli di questi macroblocchi per editarne l interno 3 4 Tipi di dato CoDeSys supporta dei tipi di dati standard a questi tipi di dato sono associati lo spazio in memoria necessaria per allocarli ed il valore che pu essere memorizzato 3 4 1 BOOL Questi tipi di dato sono le variabili booleane ad esse possono essere associati i valori TRUE e FALSE Vengono riservati 8 bit di memoria per queste variabili 18 3 4 2 Interi I tipi di dato interi presenti in CoDeSys sono i seguenti BYTE WORD DWORDS SINT USINT INT UNIT DINT e UDINT Ciascun di questi tipi presenta differenti range per il val ore che possibile memorizzare Tipo Valore minimo Valore massimo Spazio allocato i
36. eiCoDe V2 3 Library Analyzation lib Loading library CProgrammn38 SofwareiCoDe DLibranAutil lib a TTT Am Figure 3 Browser di progetto 10 e Data types elenco dei tipi di dato definiti dall utente es strutture dati tipi enumerativi ecc e Visualizations elenco dei pannelli grafici di visualizzazione e Resource elenco dei men di configurazione degli elementi comuni del progetto es variabili globali tasks di esecuzione librerie configurazione del sistema PLC Target ecc J FUNCTION BLOCK CTUD c Analyzation lib 5 10 99 09 05 06 Counter Up Down Bo library Analyzation lib 5 10 99 03 05 06 globe CV is decremented by 1 if CD has a rising edge CV is incremented by 1 if CU has a rising edge QV is TRUE if counter is 0 QU is TRUE if counter is PV VAR INPUT CU BOOL Count Up CD BOOL Count Down RESET BOOL Reset Counter to Null LOAD BOOL Load Start Value PV WORD Start Value Counter Limit END VAR VAR OUTPUT QU BOOL Counter reached Limit QD BOOL Counter reached Null CV WORD Current Counter Value END VAR VAR MU BOOL Variable for CU Edge Detection MN ROOI Variable fnr CD Frine Detertinn Y Figure 4 Browser di libreria In qualsiasi momento possibile selezionare una delle quattro finestre che compongono il browser di progetto In POU presente tutto l elenco dei programmi prese
37. elemento in modalit on line si torna alla eventuale visualizzazione chiamante Execute program Se questa opzione viene attivata e possibile inserire nel campo di testo dei speciali assegnamenti a variabili gi dichiarate ASSIGN o definire dei comandi interni che verranno eseguiti non appena l elemento verr cliccato in modalit on line Premendo il tasto si accede alla finestra Configure programs dove si possono selezionare i comandi da eseguire Add e disporli nell ordine desiderato Before After 41 Text input of variable Testdisplay Se viene selezionato allora in modalit on line si ha la possibilit di inserire un valore che dopo aver premuto Enter verr scritto sulla variabile che appare nel campo Textdisplay della categoria Variables Attraverso lo scroll box viene scelto il tipo di dato che possibile ricevere in ingresso Selezionando Text verr mostrato in on line mode un campo di testo su cui sar possibile digitare il valore desiderato Selezionando invece Numpad o Keypad verr visualizzata una tastiera rispettivamente numerica o alfabetica dove si potr premere direttamente il valore tra quelli disponibili Il range valido di questa tastiera viene definito digitando i valori di massimo e di minimo nei rispettivi campi Max e Min 4 3 2 Text for Tooltip Questa categoria offre la possibilit di visualizzare in modalit on line un testo nel momento in cui il cursore del mouse viene posizionato s
38. ema di controllo logico ed il programma per la simulazione del Plant consideriamo inizialmente il controllo logico senza il controllo della temperatura Si crea un nuovo progetto in Codesys clic cando su new appare una finestra con il nome Target Settings selezionare none nell opzione Configuration di solito gi di default cos e cliccare su ok A questo punto appare una finestra come quella di figura figura 44 lasciamo il nome e selezioniamo come tipo di linguaggio SFC questa POU sar il programma dove presente il controllo logico dell impianto A questo punto appare la finestra come in figura 45 ci troviamo nell editor per scrivere un programma in SFC e possibile vedere come l ambiente Codesys sia diviso in due parti sulla sinistra c e la parte di gestione delle POU e delle possibili configurazioni del progetto Risorce interfaccia grafica per la visualizzaizone ecc mentre nella parte destra aperto l editor corrispondente alla parte sinistra selezionata In questo caso essendo selezionato il programma PLC PRG aperto l editor per scrivere programmi in SFC A questo punto al fase preliminare di creazione di un nuovo progetto conclusa Andando nel browser di progetto nella parte Resources dovrebbero essere visualizzate le librerie inserite di default Standard e IECSFC come in figura 46 Se il progetto non presenta queste librerie si deve accedere al men Library Manager con un doppio click del 1T nomi dei sensori e a
39. er lo sviluppo di un sistema di controllo all interno di CoDeSys puo essere pensato diviso in due programmi principali uno il programma che si occupa del controllo logico del 11 sistema che si vuole controllare e lo chiameremo controllo mentre l altro programma quello che simula l impianto il plant del progetto e lo chiameremo simulatore Solitamente il programma controllo viene scritto in linguaggio SFC mentre il programma simulatore viene scritto in lin guaggio strutturato naturalmente questi due programmi devono interagire tra loro dal punto di vista degli ingressi e delle uscite di un PLC il programma controllo genera le uscita una volta elaborati gli ingressi cio deve comandare attraverso le azioni gli attuatori del PLC Il programma Variabili globali INPUT per PLC A BOOL LEGOS B BOOL eS A Programma SFC a OUTPUT per PLC MEOS Programma ST SCRIVE APRI B00L l CONTROLLO CHIUDI BOOL SIMULATORE SCRIVE PER VISUALIZZAZIONE X REAL Y REAL JAIXAXDS D VISUALIZATION pannello grafico Figure 5 Schema funzionamento di Codesys simulatore invece legge lo stato dei comandi impartiti tramite SFC agli attuatori e modifica lo stato dei sensori installati che sono gli ingressi del PLC e modifica il valore di opportune vari abili che vengono utilizzate per la visualizzazione sul pannello grafico in m
40. finire l istanza per l attuatore generalizzato Per definire l attuatore generalizzato possiamo definire una POU di tipo Program e come lin guaggio della POU il linguaggio FBD Function Block Diagram questo ci permette di creare un attuatore generalizzato del tipo di function block che abbiamo definito precdentemente Il FBD definito per righe su ogni riga possibile mettere un elemento oppure una serie di elementi Quando si definisce il programma presente una sola riga e su questa ci sono 3 punti interrogativi ed un piccolo box tratteggiato cliccando su questo con il tasto destro del mouse e cliccando su box possibile inserire il blocco desiderato Apparira di default il block AND cliccando sulla scritta AND e premendo il tasto F2 Input Assistant possibile richiamare il function block creato in precedenze Premendo F2 appare una finestra come quella di figura 16 con tutti i tipi di function block cliccando su User defined Function Block possibile richiamare i FB definiti dall utente Se ad esempio avevamo chiamato il nostro FB come Lev elFB apparira un blocco chiamato LevelFB che avr gli ingressi e le uscite definite nel FB Ora e possibile assegnare una istanza a quel FB infatti sopra blocco bisogna mettere il nome di quella 59 CoDeSys ImbottigliatoreGAZ pro Imbottigliatore El rie Edit Project Inse 3 nine Window ep 5 armas aja fo hr Sala AE SA ES MISES RS AON rotaia Hfj GA PRG Start Stop i
41. grafico Per aprire l editor grafico di CoDeSys bisogna aprire il browser di progetto nella parte Visual izations la finestra sar divisa in due parti nella parte destra presente lo spazio per collocare gli oggetti grafici mentre nella parte sinistra presente il browser di progetto dove posta la lista delle POU Per creare un nuovo Object basta cliccare col tasto destro su Visualization gt Add object come e possibile vedere dalla figura 23 dalla stessa figura possibile vedere nella barra degli strumenti gli oggetti che possono essere inseriti Dopo aver selezionato un elemento dalla barra per visualizzarlo sar necessario tenere premuto il tasto sinistro del mouse e creare la forma dell elemento in modo da definirne la dimensione approssimativa e Attraverso il comando Extras Elementlist viene aperta una finestra che mostra la lista degli elementi contenuti nella visualizzazione corrente In questo elenco gli elementi sono 3l CoDeSys DoppioAscensore pro DoubleBadElevators File Edit Project Insert Extras Online Window Help ada daras eje fo Li fa ee as Add Object a Edit Object Copy Object Ascensore 2 Project database gt Figure 23 Editor grafico posizionati in ordine di visualizzazione ovvero se due elementi risultano sovvrapposti nel campo di visualizzazione allora sar mostrato in primo piano l elemento contrassegnato da un numero maggiore Sono disponibil
42. i ovviamente una serie di pulsanti che permettono di modificare la posizione relativa dei vari elementi E possibile inoltre specificare con precisione la posizione di un elemento selezionato dalla lista sfruttando i quattro campi di testo posti nella parte inferiore della finestra stessa 4 2 Configurazione di un elemento Attraverso il comando Extras Configure viene aperta la finestra di configurazione di un qualsiasi elemento selezionato ed inserito all interno della visualizzazione possibile accedere a questo dialog anche cliccando due volte sull elemento stesso Nella parte sinistra di questa finestra sono presenti le varie categorie disponibili a seconda del tipo di elemento Scegliendo una particolare categoria vengono mostrati nella parte destra gli eventuali campi da riempire con opportune variabili definite in precedenza oppure le varie opzioni da settare per definire le propriet dell elemento in modalit on line 32 CoDeSys DoppivAscensore pro prove Element list Elements Number Type Position Rectangle Group Group Group Group Rectangle Rectangle Rectangle Rectangle Group Group Group Group Rectangle Rectangle Rectangle Rectangle Rectangle Rectangle Rectangle x1 y1 2 y2 0 40 571 501 170 590 266 971 700 290 797 571 0 510 320 554 340 510 669 554 To front Jj 0 220 121 261 A 450 220 551 261 130 220 241 261 Wess 560 220 561 261 10 270 200 490 One to
43. ianto da controllare come si pu vedere in figura 43 consiste in una cisterna principale Elettrovalvola EV1 Elettrovalvola EV2 Resistenza Bottiglia eg Motore Figure 43 Impianto di imbottigliamento in cui devono essere inseriti due liquidi differenti Il primo liquido viene immesso nella cisterna tramite l elettrovalvola EV1 mentre il secondo liquido viene immesso tramite l elettrovalvola EV2 Il rapporto in volume tra liquido 1 e liquido 2 deve essere di 4 1 Il livello del liquido all interno della cisterna acquisito tramite un sensore analogico Una volta raggiunto il livello di 200 all interno del serbatoio si deve permettere ai due liquidi di miscelarsi e di realizzare le oppor tune reazioni chimiche lasciandoli dentro la cisterna per 10 secondi A questo punto terminata la formazione del composto liquido finale si procede alla sua immissione nelle bottiglie Quando il liquido e imbottigliato deve essere mantenuto ad una certa temperatura 60 mediante una opportuna resistenza che scalda il liquido le bottiglie sono presenti su un nastro trasporta tore attivato dal segnale Motor Quando il sensore Pres Bottle che segnala che la bottiglia si trova sotto l elettrovalvola di espulsione del composto attivo si pu procedere al riempimento della bottiglia con l attivazione dell elettrovalvola EV3 Il riempimento della bottiglia termina quando il suo livello raggiunge il valore di 100 A questo punto il nastro
44. iluppo permette di simulare il progetto una volta completato in tutte le sue parti nix ore cord mr y ljana Man Bown 31 po Tae yd wemtedirg nggewde gwri xem vm rara jeg Bre zi f Figure 6 Finestra di configurazione dei task per lavorare in modalit simulazione bisogna che sia impostata l opzione Simulation Mode che si trova nel men Online Se quando si creato il progetto si era impostato il target del progetto come none allora l opzione Simulation mode dovrebbe essere gi impostata e non modificabile Una volta terminata la programmazione di tutti i blocchi e definite le variabili 6 possibile ver ificare la correttezza del progetto attraverso il comando Build che si trova nel men Project oppure premendo il tasto F11 della tastiera del PC nel caso in cui il programma non sia corretto nella parte inferiore della finestra viene visualizzato l errore cliccando due volte sopra l errore viene aperta automaticamente il programma nel punto dell errore Se la compilazione non ri porta errori allora possibile eseguire il progetto in modalit simulazione scegliendo dal ment Online il comando Login oppure usando la combinazione dei tasti ALT e F8 e poi scegliendo sempre dallo stesso men il comando Run oppure usando la combinazione dei tasti ALT e F5 in questo modo il programma in esecuzione sul PC il quale simula il funzionamento del PLC 3 2 L Editor SFC L SFC e il linguagg
45. inestra Codesys cliccando due volte sull errore selezionato Codesys apre automaticamente il programma nel punto dell errore Se il progetto e corretto possibile eseguirlo in modalit simulazione attraverso il men online ed il comando login ed una volta effettuato il login necessario lanciare l esecuzione del pro gramma mediante il comando Run A questo punto il programma in esecuzione sul PC il quale simula il funzionamento del PLC in modo virtuale nel men online deve essere impostata l opzione simulation mode se all inizio del progetto si impostato il target su None questa 53 Init Start Proc Liv_serb gt 160 Liv_serb gt 200 Step8 Step8 t gt t 10s Liv_Serb lt 0 Pres_Bottle AND Liv_serb gt 0 AND Liv_bot lt 50 gt Init Liv_bot gt 50 Liv_serb lt 0 Init L Step10 Figure 49 SFC del programma di controllo logico 54 001 E o o o N Riempimento del serbatoio IF EV1 OR EV2 THEN Liv_serb Liv_serb 1 END_IF o o o wo Svuotamento serbatoio riempimento bottiglia IF EV3 AND Liv_Serb gt 0 THEN Liv_bot Liv_bot 1 Liv_serb Liv_serb 1 IF Liv_serb lt 0 THEN Liv_serb 0 END_IF END_IF IF Motor THEN Pos_bottle Pos_bottle 5 END_IF IF Pos_bottle gt 195 AND Pos_bottle lt 205 THEN Pres_bottle TRUE ELSE Pres_bottle FALSE END_IF o N X o o N N o o N wo o o N AR IF Pos_bottle gt 300 THEN Pos bottle
46. io grafico che ci permette di definire l ordine cronologico delle differenti azioni all interno di un programma Come gi detto di solito il programma che si occupa del controllo logico del progetto il PLC_PRG e scritto in SFC Questo tipo di linguaggio grafico consiste in una serie di STEP che sono connessi l un l altro attraverso connessioni dirette transitions Creando un nuovo file ed aprendo il Program PLC PRG la schermata di CoDeSys appare come quella in figura 7 Possiamo vedere che lo step iniziale di ogni programma in SFC viene chiamato Init ed e contraddistinto da un blocco con il bordo doppio L Editor SFC in ambiente CoDeSys mette a disposizione due tipi di STEP e Lo Step semplice permette di definire al suo interno le azioni che devono essere eseguite in quel determinato blocco Se uno step e stato implementato cio se al suo interno stata definita un azione in un determinato linguaggio viene visualizzato un piccolo triangolo nero nell angolo in alto a destra In modalit on line quando si sta eseguendo lo step ovvero quando lo step attivo vengono eseguite tutte le istruzioni definite al suo interno fino a che la transizione che lo lega al blocco successivo non diventa TRUE e L IEC Step e un particolare tipo di step in cui le azioni da eseguire vengono definite separatamente in base alla loro durata all interno del tempo di esecuzione del programma 13 CoDeSys Untitled PLC PRG PRG SFC File Edit Projec
47. it debbano essere ripetute Quando si definisce una POU associandole un nome generico che identifica un tipo di quella particolare POU ancora in realt non si e generato un vero e proprio modulo di programma eseguibile Infatti per poter inserire una POU ad eccezione delle Function in un applicativo essa va istanziata cio dichiarata tra i moduli effettivamente utilizzati assegnandole un nome simbolico specifico ed univoco In questo modo e possibile definire e utilizzare pi istanze di una stessa POU in un unico applicativo Una POU pu in linea di principio essere programmata in uno qualunque dei linguaggi delle norma descritti nel seguito e contenere chiamate a qualunque altra POU istanziata Lo standard vieta in modo esplicito solamente l uso ricorsivo di POU tale scelta motivata dall esigenza di determinismo delle prestazioni real time dell applicativo 2 3 I linguaggi di programmazione Un aspetto dei controllori industriali tradizionalmente ostile per il progettista la difformit dei linguaggi di programmazione Per questo la norma ha inteso regolalamentare questo aspetto definendo cinque linguaggi standard dalle caratteristiche differenti in grado di coprire tutte le necessit nello sviluppo di un programma di controllo I linguaggi definiti nella norma IEC 61131 3 sono e Instruction List IL Linguaggio testuale di basso livello altamente utilizzato per piccole applicazioni o per ottimizare parti di un applicazione
48. ita per il programma di controllo le abbiamo definite rispetto all implementazione su un PLC In modalit di simulazione per le variabili di ingresso ed uscita devono poter essere manipolate anche dal programma per la simulazione del sistema quindi queste variabili devono avere una visibilit non locale ma globale Tutte le variabili che abbiamo definito precedentemente come di ingresso ed uscita andranno dichiarate globali perch vengono utilizzate anche dal programma per la simulazione del plant Una volta ultimato il programma in SFC possibile scrivere il programma per la simulazione del plant per definire una nuova POU basta cliccare con il tasto destro sull icona POUs e selezionare il comando Add object a questo punto compare una finestra come quella iniziale figura 44 da qui e possibile definire una nuova POU scegliendo il linguaggio desiderato Ad esempio per la scrittura del programma per la simulazione del plant possibile usare il linguaggio ST perche rende pitt semplice l implementazione del programma Terminata la scrittura del programma 52 eiii i poe 6 5 Class Name Type DK CEE Stat Proc BOOL mi yj Cancel Symbol it Initial Value Address Eos zl I CONSTANT Comment RETAIN PERSISTENT 93 Data t 25 Visual 324 Resou Figure 48 Inserimento delle variabili per la simulazione del plant possibile definire una interfaccia grafica tramite la quale
49. ite a fianco delle variabili di input output indicate all interno del rettangolo Possiamo anche usare gli interruttori e le bobine del linguaggio Quando si definisce un function block come se si definisce una nuova classe di variabili si definisce un nuovo tipo di variabile La sua principale caratteristica che il function block sempre vivo cio mentre una funzione 21 viene chiamata ed una volta chiamata non esiste pi il function block esiste per tutta la durata del programma Per utilizzare i function block in Codesys una volta averlo definito bisogna definire un programma di tipo FBD cio creare una nuova POU ti tipo Function Block Diagram Una volta create questa POU e possibile richiamare i function block creati in precedenza nel seguente modo una volta generato il programma FBD appaiono dei punti interrogativi seguiti da un box tratteggiato cliccando col pulsante destro e selezionando il comando Box possibile inserire un nuovo function block Una volta cliccato sul comando Box appare un blocco se si evidenzia il nome e si preme il comando F2 comando per il completamento istruzioni in Codesys appare una finestra come in figura 16 Selezionando User defined Function Block appare la lista CoDeSys Timb4AG pro prova PRG FED IE 0001 PR OGRAM prova E Main PRG E MarkFB FB E Clear E PackFB FB gl Clear PLANT PRG PLC PRG FB A prova PRG E TempContFB FB Standard
50. l iniziale t o T seguita da ed il valore numerico che pu essere definito in giorni identificato da d ore identificato da h minuti identi ficato da m secondi identificato da s e millisecondi identificato da ms L ordine dei valori inseriti deve essere posto come quello indicato non obbligatorio inserire tutti i campi ecco alcuni esempi Assegnamenti corretti TIME1 T 14ms 19 TIME1 T 100S12ms Il limite superiore pu superare il limite TIME1 t 12h34m15s Assegnamenti non corretti TIME1 t 5m68s Il componente inferiore ha superato il suo limite t 4ms13d Ordine non corretto Il valore massimo che si pu inserire 49d17h2m47s295ms che corrisponde a 4294967295ms 3 4 6 Indirizzi E possibile visualizzare o scrivere una singola locazione di memoria attraverso l uso di una sequenza di caratteri speciali che una concatenazione di con un prefisso per il campo un prefisso per la dimensione e dei numeri Il prefisso per il campo viene indicato con I per indicare ingressi Q per indicare uscite M per indicare locazioni di memorie mentre il prefisso per la dimensione sono X o niente per indicare singoli bit B per indicare byte W per indicare Word e D per indicare una duoble word Alcuni esempi AQX7T 5 Q7 5 bit uscita 7 5 41W215 Word ingresso 215 MD48 Double word alla locazione di memoria 48 3 4 7 Variabili Nella finestra Resource possibile i
51. li che pu essere rimpiazzato da ogni placeholder Placeholdets set possible replacements pic_pro var_farbwechsell plc rg var fe a b c d Figure 40 Finestra Extras List of Placeholders Per ogni placeholder deve esser spec ificato il numero dell elemento in cui viene usato e il gruppo di variabili che pu rimpiazzare all interno della definizione una eventuale istanza Quando poi si sta definendo nella visualizzazione corrente una istanza di questa visualizzazione proprio attraverso il pulsante Placeholder della finestra di configurazione si acceder alla colonna dei placeholder disponibili e si andr a definire per l istanza corrente il valore di og nuno di essi tra quelli che erano stati definiti nella visualizzazione madre figura 41 Replace placeholders Fi Placeholder te Figure 41 In questa finestra possibile definire il valore da attribuire ai placeholder per l istanza che si sta creando 4 6 Gruppi di Elementi Si possono definire gruppi di elementi selezionado i vari componenti tutti in una volta attraverso il mouse Il gruppo cosi formato potr essere configurato attraverso il comando ExtrasGroup 46 Group Configuration 5 Group Figure 42 Finestra di configurazione di un gruppo di elementi ogni gruppo si comporter come un singolo elemento AT 5 Esempio In questa sezione viene proposto un esempio di controllo logico si vedr come risolverlo partendo da zero L imp
52. line Infatti una volta inserita una variabile booleana nel campo Change Color della categoria Variables l elemento assumer il colore settato nel box denominato Color quando la variabile sara FALSE Viceversa quando il boolean TRUE verr visualizzato con il colore scelto nel box Alarm Color 4 2 7 Color Variables In questa categoria e possibile inserire eventuali variabili definite precedentemente all interno del progetto attraverso il quale venga modificato dinamicamente il colore interno e o dei bordi dell elemento In alternativa l aspetto dell elemento pu essere programmato con l aiuto dei 36 Regular Element Configuration 1 Category r Color Text variables Line width Colorvariables Motion absolute Motion relative Variables Input Test for tooltip Security Programmability Alarm color Inside Frame No color inside No frame color Inside Frame Figure 29 Finestra di configurazione dell elemento visualizzato Categoria Color componenti della struttura VisualObjectType vedi categoria Programmability La tabella sottostante mostra come si effettua la dichiarazione di variabili che settano il colore dell elemento nonch la lista dei componenti del VisualObject Type corrispondenti uu Example of an entry Example for using the variable in the program corresponding component of structure VisualObjectType fill color plc prg var fillcol var_var_fillcol
53. mente il nome della variabile deve essere inserito nel campo denominato Textdisplay della categoria Variables CARATTERE IPO DIDATO ai mumero decimale o mmmerooHalesenznsuno numero esadecimale senza segno numero decimale senza segno _ singolo carattere stringa numero rele e E possibile inserire nel campo di testo un t seguito da una certa sequenza di speciali puntatori placeholders che vengono rimpiazzati in modalit on line dalla temporizzazione del sistema A pagina 13 e 14 del manuale The CoDeSys Visualization presente l elenco di questi speciali puntatori e viene mostrato l effetto grafico prodotto da ognuno di essi La disposizione dei placeholders definisce il formato in cui la temporizzazione deve essere visualizzata e Se si include jPREFIX nel testo possibile inserire invece di PREFIX una certa stringa che funger da identificatore nell uso di un testo dinamico Il prefisso sar usato insieme ad un numero ID che deve essere definito nel campo Textdisplay della categoria Variables Questa coppia di valori si riferisce ad un certo testo che contenuto in un xml file fra i possibili testi dinamici Cosi in modalit on line verr visualizzato il testo indicato dalla corrente combinazione ID prefisso Per maggiori informazioni consultare il manuale 34 Regular Element Configuration 1 Category Text n s
54. mpostare le variabili globali attraverso la cartella Global Variables Le variabili globali sono le variabili che vengono riconosciute in tutto il progetto cio in tutti i programmi che compongono il progetto nel caso in cui siano presenti molte variabili possibile suddividirle in gruppi cliccando col tasto destro su Global Variables e scegliendo Add object si possono inserire delle cartelle per suddividere le variabili globali In un progetto possibile definire una variabile locale che ha lo stesso nome di una variabile globale in questo caso dentro un POU verr utilizzata la variabile locale 3 5 Function block Il Function Block un tipo di POU di CoDeSys molto simile ad una funzione Questo ha un certo numero di variabili di ingresso e di uscita ma a differenza delle funzioni standard non ha un valore di ritorno Un Function Block molto simile ad una classe nella programmazione ad oggetti e in quanto tale se ne possono creare molte istanze Ogni istanza ha un suo identificatore e una sua struttura di variabili di ingresso di uscita e interne Le varie istanze possono essere dichiare come variabili globali o locali mentre il nome del Function Block il tipo di variabile Per creare un Function Block non bisogna fare altro che creare una nuova POU e selezionare il pulsante Function Block nel dialog come mostrato in figura 14 Le variabili di input e di output di una istanza posso essere usate da un altra POU usando la seguen
55. n memoria BYTE 0 255 8 Bit WORD 0 65535 16 Bit DWORD 0 4294967295 32 Bit SINT 128 127 8 Bit USINT 0 255 8 Bit INT 32768 32767 16 Bit UINT 0 65535 16 Bit DINT 2147483648 2147483647 32 Bit UDINT 0 4294967295 32 Bit 3 4 3 REAL LREAL I tipi di dato REAL e LREAL sono tipi di dato reali a virgola mobile vengono usati per rap presentare numeri razionali Per il tipo REAL vengono riservati 32 bit di memoria il limite inferiore 1 175494351e 38 ed il limite superiore 3 402823466e 38 mentre per LREAL vengono riservati 64 bit di memoria il limite inferiore 2 2250738585072014e 308 ed il limite superiore 1 79769313486231e 308 3 4 4 STRING Il tipo STRING il tipo di dato che pu contenere qualsiasi tipo di carattere la dimensione della stringa definita nella dichiarazione nel caso non venga definita la dimensione di 80 caratteri La lunghezza di una stringa in CoDeSys illimitata per le funzioni che lavorano con le stringhe possono elaborare stringhe di al massimo 255 caratteri Esempio di una dichiarazione di stringa di 35 caratteri str STRING 35 Questa una stringa 3 4 5 Tipo di dato data I tipi di dato TIME TIME_OF_DAY abbrevazione TOD DATE and DATE_AND_TIME ab brevazione DT sono internamente memorizzate come DWORD il tempo viene fornito in mil lisecondi in TIME e TOD mentre in DATE and DT viene fornito in secondi La dichiarazione nelle variabili temporali viene eseguita dal
56. nato Parallel Branch left inserisce una diramazione parallela due sequenze di passi eseguite contemporaneamente aggiungendo un passo alla sinistra di quello selezionato Jump inserisce un salto verso uno stato Transition Jump inserisce un salto e una transizione E possibile ora scrivere il codice relativo al controllo per inserire le variabili ci sono due pos sibilit la prima quella di scrivere tutte le variabili prima di iniziare il codice la seconda quella di inserire la variabili di volta in volta Infatti mentre si scrive del codice in Codesys se non si scrive una parola chiave comandi predefiniti appare una finestra come quella riportata in figura 48 in cui possibile definire le variabili All interno della finestra e possibile definire la classe globale ingresso uscita locale ecc il nome il tipo intera reale ecc valore iniziale e un commento per descrivere la variabile per definire una variabile globale bisogna definirla di classe VAR GLOBAL E comunque possibile definire tutte le variabili all inizio se una variabile deve avere visibilit solo all interno di quella POU la variabile va definita all interno della POU stessa nella parte superiore dell editor se invece la variabile deve essere visibile a pi POU allora questa va definita nell editor delle variabili globali che si trova nel men Resources alla voce Global Variables Quando prima abbiamo definito le variabili di ingresso ed usc
57. nt alb Target Settings triggered by extemal event A Watch and Receipt Manager Figure 19 Finestra di configurazione per il singolo Task esecuzione cyclic Per capire come funziona la schedulazione dei programmi in Codesys andiamo ad implementare Controllo logico Simulazione Plant IF Counter 1 THEN VarCount VarCount 1 0005 IF VarCount gt 8 THEN 0006 VarCount 0 VarCount gt 4 fr Figure 20 Programmi esempio gestione TASK un semplice esempio con due programmi uno che sar il programma per la logica di controllo ed uno che sar quello della simulazione del plant Il programma della logica di controllo che chiameremo PLC PRG quando premuto un pulsante di start setta ad 1 la variabile counter e quando la variabile VarCount e maggiore di 4 resetta la variabile Counter per poi aspettare un secondo e ritornare nello stato di Init Il programma di simulazione del plant che chiameremo Plant quando la variabile Counter a 1 incrementa la variabile VarCount per poi resettarla quando questa variabile maggiore uguale ad 8 il codice di questi due programmi riportato in figura 20 Andiamo a vedere come variano queste variabili usando una esecuzione passo passo a seconda di come impostiamo i parametri nel Task Configuration Impostiamo un unico task di tipo ciclico dove mettiamo prima PLC PRG e poi Plant 25 1 m FALSE 0 3 Step FALSE 0 6 Step
58. nti nel progetto se si vuole aggiungere una nuova unit basta cliccare su POUS e selezionare Add object cos facendo ap pare la finestra come quella di figura 2 ed possibile selezionare in che linguaggio scrivere il nuovo programma CoDeSys offre anche la possibilit di convertire un programma scritto in un linguaggio in un altro linguaggio questo possibile cliccando sulla POU e selezionando Convert object apparir una finestra dove si selezioner il linguaggio in cui convertire il programma ed il nuovo nome la POU PLC PRG una volta definito il linguaggio non pu essere convertita Per utilizzare i linguaggi standard per scrivere i programmi bisogna caricare le librerie che supportano questi linguaggi per inserirle bisogna andare nella finestra Resource e selezionare cliccando due volte Library Manager Nella parte destra compare una schermata simile alla schermata principale di CoDeSys ma che mostra l elenco delle POU programmate che si pos sono inserire nel progetto timer contatori registri ecc mostrando sia la dichiarazione delle variabili sia l aspetto grafico dell oggetto visibile quando si inserisce durante la programmazione nei linguaggi LD e FBD Per inserire delle nuove librerie bisogna cliccare col tasto destro nella sotto finestra in alto dove e presente l elenco delle librerie e selezionando Additional Library possibile inserire ulteriori librerie nel progetto scegliendo un file con estensione LIB Il progetto p
59. obal Variables NN Alarm configuration i Library Manager IE Task configuration A Watch and Recipe Manager 1 32 Workspace Bl Figure 47 Inserimento di librerie standard in Codesys LIB una volta selezionate il browser di libreria presenta l elenco delle POU preprogrammate che si possono inserire nel programma in corso di progetto es Timer contatori ecc con sulla destra la loro dichiarazione di variabili e l aspetto grafico visibile durante la programmazione nei linguaggi LD e FBD 51 Tornando all editor SFC possibile ora scrivere il codice relativo al nostro sistema di controllo come si puo notare la barra degli strumenti con l editor SFC aperto visualizza le possibili modi fiche al diagramma che si possono fare Step transistion before inserisce una sequenza passo transizione prima del punto selezionato Step transition after inserisce una sequenza passo transizione dopo il punto selezionato Alternative Branch right inserisce una diramazione alternativa due transizioni in dis giunzione tra loro aggiungendo una transizione alla destra di quella selezionata Alternative Branch left inserisce una diramazione alternativa due transizioni in disgiun zione tra loro aggiungendo una transizione alla sinistra di quella selezionata Parallel Branch right inserisce una diramazione parallela due sequenze di passi eseguite contemporaneamente aggiungendo un passo alla destra di quello selezio
60. onfirm Password sen Figure 36 Finestra di definizione della password di user group 4 3 4 Programmability Le propriet di ogni elemento che compone una visualizzazione possono essere definite anche attraverso i componenti di una particolare variabile oggetto di tipo VisualObjectType che pu essere utilizzata esclusivamente per questo tipo di programmazione Ci possibile utilizzando Regular Element Configuration 1 Category Programmability Shape Text Fr ok K Text variables w Object name Elementol i Cancel Line width Colors Colorvariables Motion absolute Motion relative Variables Input Text for tooltip Securit Figure 37 Finestra di configurazione dell elemento visualizzato Categoria Programmability la struttura VisualObjectType che fa parte della libreria SysLibVisu lib Questa libreria di solito non presente nella versione demo gratuita di CoDeSys Per creare una variabile VisualObject Type riferita all elemento che si sta configurando sar necessario inserire nel campo di testo una variabile che verr cosi dichiarata automaticamente La dichiarazione avverr in modo implicito e non visibile per l utente ma la variabile diventer automaticamente visibile da tutti i programmi del progetto Per maggiori informazioni sulla struttura VisualObject Type e sull uso dei suoi vari componenti si consiglia di consultare la tabella di pagina 24 e seguenti del manuale The Codesys Visualization
61. opra l elemento Il testo che si vuole visualizzare deve essere scritto nell apposito campo Content 4 3 3 Security Questa categoria utile se chi crea l elemento vuole garantire delle differenti possibilit di ac cesso e di visualizzazione ai vari user group utilizzanti Codesys definiti precedentemente Infatti attraverso il comando Project User Group Passwords si accede ad una finestra in cui e possibile creare un proprio user group contrassegnato da un livello protetto da Password Le Regular Element Configuration 1 Category User Group Text variables Line width No Access Colors Colorvariables Motion absolute Motion relative Variables Full Access Input Text for toolti Er X Apply to all visual elements Programmability Read Access Figure 35 Finestra di configurazione dell elemento visualizzato Categoria Security possibilit di accesso e di visualizzazione che possono essere assegnate all elemento sono mostrate nella seguene tabella Se si vogliono assegnare le medesime regole d accesso anche agli altri el No Access L elemento non sar visibile Read Access L elemento sar visibile ma non utilizzabile non sono permessi input Full Access L elemento sar visibile e utilizzabile pu ricevere ingressi ementi presenti nella stessa visualizzazione baster attivare l opzione Apply to all visual elements 42 Password for user group User Group Password C
62. ottigliatore con attuatore generalizzato 2er 57 6 3 Descrizione della sequenza O ds e ds DR ERE E CRUS a 57 6 4 Accoppiamento sensore attuatore o e 58 6 5 Implementazione in Codesys ooo hie ar Bee aia 19308 3 59 1 Introduzione L ambiente di sviluppo Codesys Controlled Development System sviluppato dalla ditta 3S Soft ware www 3s software com permette di implementare automi per il controllo logico utilizzando uno dei linguaggi definiti dalla normativa IEC 61131 3 La demo dell ambiente di sviluppo e scaricabile dal sito ha durata illimitata e presenta tutte le componenti della versione completa le uniche limitazioni sono per le librerie fornite e per il numero massimo dei componenti da poter utilizzare che nei linguaggi SFC e ST non ha praticamente limitazioni mentre nei linguaggi LD ed altri sono limitati nel numero di righe da poter utilizzare Il tool di sviluppo viene utilizzato per due tipologie di applicazioni e Per programmare ed eseguire su PC controllori per macchine automatiche per queste appli cazioni Codesys funziona come compilatore di programmi a norma IEC 61131 3 generando un programma eseguibile per l ambiente di esecuzione real time CoDeSys SP RTE e Per programmare sistemi di controllo industriali come i PLC per queste applicazioni il costruttore di PLC acquista il programma Codesys con integrato il compilatore e una interfaccia personalizzata per quello specifico PLC Una volta gener
63. po di attuatore viene fatto partire dal controllo principale con un comando Do L apertura della porta proprio un esempio di questo tipo di attuatore generalizzato Start Stop In questo caso il controllo principale che fa partire e ferma l oggetto usando due comandi tipicamente Sart e Stop Per esempio il controllo di temperatura di un 56 liquido viene fatto partire e continua fintanto che il controllo principale dice che non e pit necessario 6 2 Imbottigliatore con attuatore generalizzato Supponiamo ora di voler aggiungere al nostro impianto la funzione per il mantenimento ad una certa temperatura del liquido miscelato durante il processo di imbottigliamento Si avr un sensore TemperatureValue che indicher il valore della temperatura del liquido ed una resistenza comandata attraverso il comando HotOn Aggiungere questa funzione al nostro impianto dato il modo in cui stato scritto il codice precedentemente non cos agevole vista la sua scarsa modularit lo stesso vale ad esempio se cambiassimo dei sensori Ad esempio invece di avere un sensore di livello della bottiglia vogliamo mettere un sensore di peso per sapere quando la bottiglia piena la logica dell impianto non cambia cambia solo l implementazione Anche questa variazione nel codice non sarebbe agevole visto che sono state completamente mischiate le funzioni da implementare con i meccanismi con cui si vogliono impelmentare Analizziamo or
64. re i Function Blocks sono dotati di un proprio stato interno le Function mancano di tale propriet per cui in corrispondenza della stessa configurazione d ingresso esse forniscono sempre lo stesso risultato Anche per questi oggetti l IEC specifica una serie di funzioni standard Access path E l ultimo degli elementi del modello software introdotto dallo standard Poich un sistema di controllo pu comporsi di diverse Configuration le quali devono scambiarsi dati ed informazioni attraverso collegamenti di tipo remoto e necessario supportare tale trasferimento con opportuni protocolli Sono quindi dei percorsi di comunicazione fra le varie Configuration ai quali possibile accedere attraverso un set di speciali variabili dichiarate usando il costrutto VAR ACCESS Questo set di variabili funge da interfaccia per la Configuration in cui viene dichiarato nel suo relazionarsi con eventali altre Configuration remote 2 2 Program Organization Units Lo standard IEC definisce come Program Organisation Units POU i seguenti tre elementi del modello software Programs Function blocks e Functions Questi tre oggetti sono gli elementi pit importanti definiti dalla norma in quanto definiscono finalmente una modalit di organizzazione 7 della struttura software efficace ed orientata al riuso La propriet che hanno in comune questi elementi che ognuno di essi pu essere replicato in diverse parti di una applicazione qualora le sue funzional
65. rocessore CPU Queste componenti possono aver accesso alle Global Variables ed alle Directly Represented Variables v seguito es sendo definite a livello di Configuration le quali quindi costituiscono un meccanismo di comunicazione fra le Resource Program Lo standard IEC 1131 3 lo definisce L insieme logico di tutti gli elementi di pro grammazione ed i costrutti necessari per la funzionalit di elaborazione di segnali richiesta ad un sistema controllore programmabile I Program si trovano necessariamente all interno di una Resource Essi contengono dei costrutti realmente eseguibili programmati nei lin guaggi previsti dallo standard L esecuzione di un Program avviene sotto il controllo di uno o pi Task v seguito Task E l elemento che si occupa di controllare un intero program o una parte di esso Ogni task puo essere attivato o periodicamente o al verificarsi di un determinato evento Local and Global variables Gli identificativi delle variabili sono dei nomi simbolici a cui il programmatore attribuisce un determinato significato dipendente dal tipo di dato e dalla zona di memoria incui si richiede sia allocata Possono essere definite come locali quindi accessibili unicamente dalle unit nelle quali sono dichiarate Programs e moduli di programma Resources Configurations o come globali Nel secondo caso risultano accessibili nell unit che le ha dichiarate ed in tutti gli oggetti in essa contenuti secondo la stru
66. sensore analogico per il livello della cisterna e 2 elettrovalvole di tipo on off per l immissione dei due liquidi 2 Posizionamento bottiglia e sensore digitale di presenza bottiglia e motore per la movimentazione del nastro trasportatore 3 Riempimento Bottiglia e sensore analogico per il livello della bottiglia e elettrovalvola di tipo on off per l espulsione della miscela 4 Controllo temperatura e sensore di temperatura e resistenza Con questo punto e terminata la parte di progettazione del controllo del sistema ora rimane l implementazione pratica 6 5 Implementazione in Codesys Per implementare l attuatore generalizzato useremo i function block Andiamo a definire il func tion block per il riempimento del serbatoio come mostrato in figura 51 Nella parte sinistra della finestra si definisce il tipo POU nel nostro caso Function Block mentre nella parte destra si definisce il linguaggio con il quale si vuole definire la POU un Function Block pu essere definito con qualsiasi tipo di linguaggio nella finestra dove sono l elenco delle POU e possibile vedere che le POU che sono function block hanno tra parentesi al sigla FB Una volta che abbiamo definito Il FB come se avessimo definito un tipo di dato definendo il FB per il serbatoio non abbiamo definito il programma per implementare l attuatore generalizzato per il controllo del livello del serbatoio ma abbiamo definito il tipo di dato con il quale potremo de
67. sterna Attuatori e 3 elettrovalvole di tipo on off per l immissione dei liquidi e l espulsione della miscela e motore per la movimentazione del nastro trasportatore e 1 resistenza per il controllo della temperatura del liquido all interno della cisterna 6 4 Accoppiamento sensore attuatore Nella sezione precedente stata riportata la lista dei sensori e degli attuatori ora dobbiamo legare questi sensori ed attuatori alle funzionalit per definire gli attuatori generalizzati che useremo Infatti l Attuatore Generalizzato realizza la sua funzione usando un certo numero di sensori e attuatori reali che vengono nascosti dentro la funzione stessa Tutto questo serve per separare la politica di gestione dal meccanismo di funzionamento Infatti il meccanismo implementato all interno degli attuatori generalizzati mentre la politica di gestione dell impianto nel programma principale il quale non vede i singoli sensori o i singoli attuatori ma dialoga solamente con gli Attuatori Generalizzati Questa separazione politca meccanismo la base della riutilizzabilit Per migliorare la leggibilit e la funzionalit del sistema bisogna cercare di creare degli oggetti disgiunti cio ogni sensore e ogni attuatore devono essere associati ad un solo attuatore generalizzato Ritornando al nostro esempio questo accoppiamento risulta essere molto semplice grazie alla semplicit del sistema stesso 1 Riempimento serbatoio 98 e
68. sto destro sul nome del programma presente nell editor di progetto e scegliendo poi nella finestra a discesa il comando Add Action vedi figura 10 Non possibile inserire direttamente delle azioni in un IEC Step Se volessi 14 P rarBeor F Peionet Figure 9 IEC STEP e azioni associate N L azione viene eseguita per tutta la durata dello step L azione viene eseguita e rimane attiva fino ad eventuale azione di Reset R FR T azione eseguita con SET viene disattivata L azione eseguita termina dopo un certo intervallo di tempo che pu durare al massimo fino a che lo step attivo L azione viene eseguita dopo un certo tempo e poi rimane attiva per tutta la durata dello step P L azione viene eseguita solo una volta se lo step attivo SD L azione viene eseguita come azione SET dopo un certo intervallo di tempo dall attivazione dello stato e rimane attivo fino ad un Reset R DS L azione viene eseguita come azione SET se lo stato rimane attivo per un certo intervallo di tempo e rimane attiva fino ad un Reset R SL L azione viene eseguita come SET dopo un certo tempo l azione l azione viene terminata con un azione RESET Table 1 Lista dei qualificatori 15 CoDeSys AscensoreSingolo pro PLC PRG PRG SFC File Edit Project Insert Extras Online Window Help asa amaia xil eleele IPROGRAM PLC_PRG VAR 3 POUS j E diez FUN figlio PRG figio2
69. t Insert Extras Online Window Help aca aaa aaa oo gt erm e alae I e 0001 PROGRAM PLC PRG i E PLC PRG PRG Trans0 Init Figure 7 Nuovo programma in SFC L utilizzo di questi step e subordinato all inclusione nel progetto della libreria Tecsfc lib Inoltre ogni volta che si vuole inserire uno step di questo tipo necessario settare l opzione Extras Use IEC Steps Se poi si vuole che il blocco Init sia IEC Step sar necessario CoDeSys Untitled PLC PRG PRG SFC File Edit Project Insert Extras Online Window Help ajja aaa eel poz seriis e re i e PROGRAM PLC PRG VAR END VAR lt a PLC PRG PRG Use IEC Steps HN Action_1 Trans Figure 8 Nuovo programma Il blocco iniziale un step IEC cancellare il PLC PRG e riaprirlo dopo aver selezionato l opzione sopraindicata vedi figura 8 Le azioni associate ad un IEC STEP vengono visualizzate alla destra dello step stesso attarverso un box diviso in due parti La parte sinistra contiene il qualificatore che ne definisce la durata vedi tabella Lista qualificatori mentre il campo destro contiene il nome dell azione o il nome della variabile da settare a TRUE Le azioni da associare ad un IEC Step devono essere appese direttamente sotto il programma in cui vengono usate Questo possibile cliccando con il ta
70. tazione dei vari componenti del modello Configuration E l elemento che contiene tutti gli altri elementi e corrisponde all intero sis tema controllore programmabile ovvero generalmente ad un PLC In un sistema di con trollo possibile avere pi configuration le quali possono comunicare tra loro le modalit di comunicazione sono descritte nella parte quinta della norma Resource E l oggetto che rappresenta il supporto di esecuzione dei programmi Di conseguenza un programma IEC per poter funzionare deve necessariamente esere caricato in una re source Configuration Resource Resource Program e a Access palhs Legenda Comunication functions defined in IEC 1131 5 Vai lefined in Functior Blocks Access path Execution control path Figure 1 Modello Software Lo standard definisce una Resource come Un elemento che corrisponde ad una unit funzionale di elaborazione dei segnali connessa a dispositivi di interfaccia uomo macchina e con funzioni di interazione con sensori ed attuatori Quindi una delle principali funzioni di questa componente del modello software di fornire un interfaccia fra il programma e gli I O fisici del PLC oltre che con l uomo tramite i terminali di programmazione Le Re source sono componenti del modello software tra loro autonome e sono solitamente poste in corrispondenza biunivoca con un diverso p
71. te Motion relative Zoom to vis Variables AT Execute program m Text for tooltip Security Text input of variable Textdisplay Programmability E P Max Dialog title Figure 34 Finestra di configurazione dell elemento visualizzato Categoria Input fase dichiarativa allora il valore di default FALSE se l opzione Tap False disattivata altrimenti e TRUE Zoom to Vis Se l opzione viene attivata possibile dare in ingresso il nome di una visualiz zazione che verr aperta nel momento in cui si cliccher sull elemento in modalit on line In ingresso e possibile fornire e il nome di un oggetto visualizzazione facente parte del progetto corrente e un puntatore a oggetto visualizzazione instance Se questa istanza a cui si vuole saltare contiene dei placeholders vedi paragrafo 3 4 1 La funzione dei Placeholders allora questi possono essere sostituiti da nomi di variabili Per fare ci necessario utilizzare la seguente sintassi lt nomeVisualizzazione gt lt Placeholder1 gt lt Testo1 gt lt Placeholder2 gt lt Testo2 gt lt PlaceholderN gt lt TestoN gt Esempio Chiamando la visualizzazione visul nella quale erano stati usati i placeholders varRefl e varRef2 questi vengono rimpiazzati rispettivamente dalle variabili PROG var1 e PROG var2 visul varRefl PROG varl varRef2 2 PROG var2 e Se viene digitato il comando ZOOMTOCALLER quando si clicca sull
72. te sintassi lt nome istanza gt lt nome variabile gt Per chiamare una istanza di un function block si possono utilizzare tutti i linguaggi di program mazione dei PLC I pi usati sono comunque lo ST in quanto un liguaggio di alto livello ed il 20 New POU Name of the new POU Place Bot Type of POU Language of the POU Cancel C Program Function Block gt Return Type BOOL Figure 14 Creazione di un Function Block 4 Action Step3 LD PLC PRG PRG SFC 4 Action Step3 ST PLC_PRG PRG SFC aL Place Bottle END DOO1 Pos START 1 Sensor Pres bob 0002 Motore Pos Motor a Chiamata function block ST b Chiamata function block LD Figure 15 Esempio di chimata di un function block linguaggio LD perch risulta pi intuitivo dal punto di vista grafico In linguaggio ST bisogna scrivere una istruzione del tipo lt nome istanza gt InputVarl vall InputVar2 val2 Wee Se poi si vogliono associare le varibili di uscita ad altre varibili globali o locali al programma chiamante bisogna aggiungere varl lt nome istanza gt OutputVarl Per chiamare un function block in linguaggio LD bisogna selezionare function block nella finestra che appare cliccando col tasto destro del mouse sulla linea orizzontale e scegliere quello che vogliamo inserire Una volta inserito il blocco basta indicare i nomi delle variabili da associare agli ingressi e alle usc
73. tion absolute In questo dialog di configurazione possibile inserire delle variabili il cui valore regoler nella modalit on line uno spostamento dell intero elemento lungo l asse delle ascisse campo X Offset e o lungo l asse delle ordinate campo Y Offset Il valore di un eventuale variabile Regular Element Configuration 1 Category Motion absolute Test variables X Offset vaixOffset Line width Cancel Colors Y Offset varrOftset Colorvariables Motion relative Scale vas cale Variables Input Angle vatAngle Text for tooltip Security Programmability Figure 31 Finestra di configurazione dell elemento visualizzato Categoria Motion Absolute inserita nel campo Scale determiner invece dinamicamente la dimensione dell elemento Questo valore funziona quindi da fattore di scala che sar diviso automaticamente per 1000 in modo che non sia necessario usare delle variabili di tipo REAL per generare una riduzione di scala dell elemento Una variabile nel campo Angle causer il ruotare dell elemento intorno al cosidetto turning point dipendente ovviamente dal valore della variabile stessa Il valore valutato in gradi Il turning point appare dopo un singolo click sull elemento ed visualizzato con un piccolo cerchio nero con una croce nel mezzo E possibile spostare il turning point trascinandolo con il mouse tenendone premuto il tasto sinistro Inoltre a questo punto fa riferimento anch
74. trasportatore pu es sere riattivato per il riempimento di una nuova bottiglia Il processo viene avviato dal segnale Start Proc attivo e pu essere interrotto solo quando il serbatoio completamente vuoto Nelle 48 seguenti tabelle sono raccolti tutti i sensori e gli attuatori dell impianto Attuatori Tipo Descrizione SSCS Motor Digitale Segnale di pilotaggio per il motore che aziona il nastro trasportatore ei Digitale Rappresenta il segnale di accensione e spegnimento per scaldare il liquido EV1 Digitale Segnale che se vero fa aprire l elettrovalvola uno EV2 Digitale Segnale che se vero fa aprire l elettrovalvola due EV3 Digitale Digitale Segnale che se vero fa aprire l elettrovalvola tre Table 2 Sono mostrati gli attuatori presenti nell impianto imbottigliatore Sensor Tipo Descriziome Start Proc Digitale Sensore che rileva l inizio del processo Pres_bottle Digitale Sensore che rileva la presenza della bottiglia nella zona di riempimento TemperatureValue Analogico Sensore che indica il valore della temperatura in C Liv serb Analogico Sensore che indica il livello del liquido contenuto nel or mti Liv bot Analogico Sensore che indica il livello del liquido contenuto nella oM T ii Table 3 Sono mostrati i sensori presenti nell impianto imbottigliatore Una volta definite le nostre variabili andiamo ad implementare su Codesys il nostro sist
75. ttuatori sono quelli utilizzati nel codice di controllo in CoDeSys 49 000 10 Microsoft Windows XP Parallels CoDeS titled Edit Project Insert Extras Online Window Help New POU Name of the new POU Type of POU gt Language of the POU Casi Program C IL Function Block CLD Function C FBD Betum Type C SFC pant usd ST C crc Figure 44 Definizione nuova POU i CoDeSys Untitled File Edit Project nse PLC_PRG PRG SFC 0001 PROGRAM PLC PRG POUs 3 Data t ONLINE OV READ Figure 45 Editor SFC per PLC_PRG 50 Resources Br B Global Variables j Z3 library IECSFC LIB 25 03 13 18 DB global varia i i E STANDARD LIB 25 11 03 13 18 06 globas 0 PLC Configuration al Sampling Trace P p Target Settings be 8 Task configuration e Watch and Receipt Manager Figure 46 Librerie standard in Codesys mouse che far comparire la schermata come in figura 47 A questo punto cliccando con il pul sante destro nella finestra in mezzo allo schermo con il nome di Library Manager e cliccando sul comando Additional Library e possibile inserire le librerie standard e IECSFC quest ultima serve per la gestione degli step IEC Per inserire le librerie bisogna selezionare i file con estensione 21 CoDeSys Untitled File Edit Project Insert Extras Online Window Help xps a 0 sese Resources e Gl
76. ttura gerarchica definita nel modello software Directly represented variable Sono variabili che si riferiscono a indirizzi di memoria del PLC Lo Standard suggerisce uso di queste variabili limitato al livello di Program in modo da mantenere un certo grado di riutilizzabilit del codice Function Blocks Sono moduli di programma riutilizzabili grazie al quale possibile ottenere programmi strutturati Un Function Block solitamente formato da due componenti e DATI insieme delle variabili utilizzate all interno del Function Block parametri in ingresso e in uscita variabili interne e ALGORITMO insieme di istruzioni che costituiscono il corpo del Function Block vengono eseguite ogni volta che viene chiamato L algoritmo elabora un nouvo set di paramentri in uscita ed eventualmente un nuovo valore delle variabili interne a partire dal valore corrente degli ingressi e delle stesse variabili interne Le variabili manipolate all interno di un Function Block possono essere locali o globali L IEC 61131 3 definisce una insieme di Function Block standard tra i quali temporizzatori e contatori Functions Le Functions sono anch esse moduli di programma riutilizzabili che ricevono in ingresso un set di valori e producono in uscita un solo valore Nei Function Blocks il valore delle variabili interne veniva mantenuto tra due esecuzioni successive mentre le variabili interne di una Function possono essere solo temporanee In sostanza ment
77. una X nell angolo in basso a destra Figure 11 Step che contiene un Azione normale una entry action ed una exit action Variabili implicite Le variabili implicite sono delle variabili che immagazzinano lo stato di uno step Vengono spesso utilizzate per regolare o controllare il flusso di esecuzione del programma SFC e sono perci visibili e utilizzabili negli altri programmi del progetto Esiste una variabile implicita per ogni step che identificata con lt nomedellostep x gt 16 per gli step IEC o lt nomedellostep gt per gli step semplici Quando lo step attivo assumono il valore TRUE e viceversa sono FALSE se lo step inattivo E possibile inoltre utilizzare la variabile lt nomedell azione gt x che permette di sapere se un azione associata ad uno blocco IEC attiva o no Per questo tipo di step esiste anche una variabile lt nomedellostep gt t di tipo TIME che conta il tempo in cui il blocco rimane attivo SFC Flags Per il controllo dell esecuzione di un SFC POU possono essere usati i cosidetti flag variabili che vengono generate automaticamente da CoDeSys durante l esecuzione del progetto Per leggere questi flag bisogna definire appropriate variabili globali o locali come ingressi o come uscite Ecco alcuni degli SFC flag pit utili per la lista completa consultare il manuale SFCInit Quando viene settato al valore TRUE l esecuzione dell SFC torna allo step iniziale Init tutti gli altri flags vengono
78. ura 2 che indica il nome da dare al programma ed in che linguaggio si vuole scriverlo Di default la nuova POU e un Program in linguaggio ST con nome PLC PRG se non verranno cambiate le impostazioni nella configurazione del progetto nella Task configuration l unica POU eseguita automaticamente dal sistema sar proprio il Program col nome PLC PRG tutte le altre POU saranno eseguite solo se richiamate esplicitamente Una volta creato un nuovo progetto oppure aperto un progetto esistente cliccando su File gt Open CoDeSys si presenta con la schermata come quella di figura 3 La schermata divisa in due parti nella parte destra viene visualizzata la finestra collegata all elemento selezionato nella parte sinistra nella parte sinistra viene visualizzato il Browser di progetto costituito da quattro sotto schermate che sono selezionabili cliccandoci sopra nella parte in basso a sinistra I quattro oggetti che compongono il browser di progetto sono e POU elenco delle unit di programma Program Organization Unit distinte come speci ficato dalla norma IEC 61131 3 in Program PRG Function FC e Function Blocks FB 9 E Name of the new POU PLC_PRG OK Type of POLI Language of the POU Cancel Program C IL Function Block C LD C Function FBD Return Type C SFC eooL af esr C CFC Figure 2 Nuova Pou dading library C Programmi3S SoftwareiCoDeSys V2 ALIbranicheck lib pading library C Programmf3S Softwar
79. uration di questa finestra possibile inserire un nuovo task con il comando Append Task Possiamo ad esempio chiamare questo Task Main a questo punto dobbiamo inserire i programmi che devono essere eseguiti in questo Task per fare questo si deve cliccare con il tasto destro su Main e selezionare il comando Append Program Call In questo modo appare una finestra da dove possibile inserire il programma si pu digitare il nome oppure cercandolo attraverso l opzione sfoglia quella che in figura rappresentata con dei puntini In figura 19 possibile vedere le opzioni per configuarare i singoli task possibile assegnare una priorit di esecuzione il tipo di esecuzione e la velocit del ciclo di esecuzione Per tipo di esecuzione si intende quando deve essere eseguito il programma se ad esempio viene selezionato l opzione cyclic il programma viene eseguito ciclicamente e possibile scegliere di fare eseguire il programma tramite eventi Nelle esercitazioni e nelle tesine per gli esami la modalit di 24 Resources E I Global Vanables E gj Task configuration Taskattibutes E Global Variables e Q i Variable_Configuration VAR CONFIG Name man E library IECSFC LIB 25 11 03 13 18 06 global v E simulazione S E library STANDARD LIB 25 11 03 13 18 06 global va Priority 10 31 fi x Library Manager Type E Log GB PLC Browser pa E PLC Configuration C freewheeling DI Sampling Trace C wggered by eve
80. ve per configurare i server OPC e DDE Codesys supporta questi due server per la comunicazione e le applicazioni remote e l interfaccia ENI che permette di connettere l ambiente di programmazione CoDeSys ad un database esterno in modo che i dati possano essere eventualmente condivisi da pit user progetti o programmi e il programma CoDeSys SP RTE utilizzabile per esecuzioni realtime non utilizzabile nella versione demo e il sistema runtime HMI per le esecuzioni di visualizzazioni grafiche create in ambiente CoDeSys non utilizzabile nella vesione demo Nel tool di sviluppo con il termine Progetto si intendono tutti gli oggetti necessari per la stesura del programma per PLC gli oggetti sono POU Program Organization Unit tipi di dato definiti dall utente la parte di visualizzazione risorse e librerie Ciascuna P OU consiste di una parte di dichiarazione e da una parte centrale scritta secondo uno dei linguaggi previsti dalla norma IEC per poter utilizzare questi linguaggi per necessario caricare la libreria standard lib nel progetto una POU pu chiamare un altra POU ma non ammessa ricorsione 3 1 Primi passi Lanciando il programma CoDeSys esso carica l ultimo progetto su cui si lavorato o se il programma viene lanciato per la prima volta carica un esempio Per creare un nuovo progetto basta cliccare su File New e quando appare Target setting selezionare none a questo punto appare la schermata come quella di fig

Download Pdf Manuals

image

Related Search

ManualeCodesys manuale codesys manuale codesys italiano

Related Contents

2 - RcRevolution.net  GALVANIC ISOLATOR  B E N N IN G IT 1 0 0  Guía del usuario del software  Samsung Galaxy S5 mini Instrukcja obsługi  ENGAGEMENT ACTIFS BÉNÉVOLAT MOdE d`EMpLOI À VOS  Resources for the new Curriculum  Doro PhoneEasy® 509  飼料用稲の小型ロールベール 収穫・調製体系マニュアル    

Copyright © All rights reserved.
Failed to retrieve file