Sommario Introduzione La norma IEC ISaGRAF

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sommario Introduzione La norma IEC 1131-3 ISaGRAF"

Transcript

1 Sommario Introduzione 6 1 La norma IEC Introduzione alle variabili e alle unità di organizzazione di programma Dichiarazione di conformità alla norma Conformità (1.5) Elementi Comuni(2) I tipi elementari, generici e derivati (2.3) VARIABILI (2.4) 16 Dichiarazione (2.4.3) POU - Unità Organizzative di Programma (2.5) Funzioni (2.5.1) Blocchi funzionali (2.5.2) Elementi di Configurazione (2.7) SFC - Sequential Functional Chart (2.6) Controllo delle azioni ( ) Regole di evoluzione (2.6.5) 36 2 ISaGRAF THE WORKBENCH (ambiente di lavoro) THE PROJECT (il progetto) LINK ARCHITECTURE (architettura dei collegamenti) RESOURCE (Risorsa) 42 PARAMETRI 43 GRUPPO DI VARIABILI 44 PROGRAMMI 44 PROPRIETA DELLA RISORSA DATA LINK (collegamento di dati) ARCHITETTURA HARDWARE DIZIONARIO (Dictionary) 48 VALORI INIZIALI 52 GRIGLIA PARAMETRI 53 GRIGLIA TIPI STRUTTURATI 54 GRIGLIA COSTANTI 55 1

2 2.1.7 I/O WIRING SECTION (sezione collegamenti I/O) THE TARGET LINGUAGGI LINGUAGGIO SFC AZIONI COLLEGATE AI PASSI 64 BOOLEAN 65 PULSE (impulsiva) 65 NON STORED (non memorizzata) 65 SFC ACTIONS (azioni SFC) 65 IL (lista istruzioni) 66 CALLING FUNCT. OR FUNCT. BLOCK TRANSITIONS (transizioni) EVOLUZIONE DINAMICA HIERARCHY (gerarchia) COMPATIBILITA CON LA NORMA PROGRAMMAZIONE SFC TIPI DI DATI TIPI DI DATI DERIVATI TASKS 71 3 RSLogix Il Progetto Files del Progetto L ambiente di lavoro Privilegi di classe Sequential Functional Chart Passo Transizione Divergenza selettiva Divergenza parallela Parametri della lista di azioni Forzare una transizione GOTO LABEL MacroFase (SFC macro) Compatibilità con la norma 82 2

3 4 Una versione accademica del Sequential Functional Chart Gli elementi di base Passi Transizioni Tipi di Azioni 85 Azione Continuata 86 Azione Condizionata 86 Azione Limitata nel Tempo 86 Azione impulsiva 86 Azione Ritardata 87 Azione Memorizzata Le Strutture Classiche Macrofase e Macroazione 88 Forzatura : 88 Sospensione : 89 5 Sviluppo software di un editor SFC Perchè realizzare un editor SFC Obiettivi del programma Documentazione esterna del programma Motivazione Generale Istruzioni per l uso 95 Finestra Principale (Main Window) 96 Gestione File (File Managing) 96 Syntax Check 97 Edit Tools 98 Visualizzazione dettagliata 99 Impostazione dimensioni documento 99 Refresh Menù 100 File 101 MLF 101 View 101 Zoom 101 Edit SFC Area di Lavoro ed Editing 102 3

4 Passo (Step) 102 Transizione 103 Oggetti di convergenza e divergenza (multilink) Stampa Meta Linguaggio 105 Sintassi Documentazione interna del programma Struttura Dati Classi 110 CDrawObj 111 CSFCDoc 114 CSFCView 117 CMainFrame 119 CGraph Esempi di output Esempio Esempio Appendice A Codice Sorgente del Programma SFC Editor 126 class CActionDlg 127 class CArcObj 129 class CArcTool 133 class CCheckDlg 137 class CDocPageDlg 139 class CDrawArc 141 class CDrawObj 144 class CGraph 150 class CMainFrame 167 class CMultiObj 173 class CMultiDlg 183 class CMultiTool 185 class CPageSplitDlg 188 class CPhaseObj 193 class CPhaseTool 200 class CSelectTool 203 4

5 class CSFCApp 208 class CSFCDlg 212 class CSFCDoc 213 class CSFCView 232 class CTimer 251 class CTimeDlg 254 class CTransDlg 256 class CTransObj 257 class CTransTool 266 Bibliografia 271 5

6 Introduzione Il lavoro si occupa del linguaggio SFC usato per la programmazione dei controllori a logica programmabile, largamente utilizzati nell automazione industriale. Esso si compone di due parti : una di analisi del linguaggio con particolare riferimento alla norma IEC redatta per regolamentare la standardizzazione della programmazione dei PLC, e una seconda parte di sviluppo software in Microsoft Visual C++ di un editor grafico per gli SFC (Sequential Functional Chart). Nella prima parte, oltre alla disamina degli aspetti fondamentali e innovativi della norma, vengono analizzati e messi a confronto con la norma stessa due pacchetti software industriali : IsAGRAF, un kit di sviluppo software target independent e RsLogix della Allen Bradley orientato esclusivamente alla programmazione dei PLC Allen-Bradley. Infine viene preso in esame l SFC così come proposto in ambito accademico e confrontato anch esso con la norma. La seconda parte consta di un unico capitolo nel quale viene descritto il software sviluppato. Si tratta di un programma originale in quanto vuole essere versatile, potente e, soprattutto, aperto e gratuito; la filosofia che ha spinto a realizzare un editor del genere muove tra l altro dalla possibilità di poter analizzare con tecniche statistiche (reti di Petri) un SFC e di poter tradurre questo linguaggio in Ladder, specifico per ogni PLC, e avere quindi la possibilità di programmare in SFC standard qualsiasi macchina industriale; tale traduzione può quindi diventare semplice e soprattutto 6

7 meccanica. Il programma consente l interfacciamento con tali tools di sviluppo attraverso l esportazione dell SFC in un Meta Linguaggio testuale, interpretabile successivamente e quindi traducibile, come evidenziato nella figura 1. figura 1: Collegamenti dell editor con tools esterni. 7

8 Capitolo 1 La norma IEC La norma IEC 1131 è stata redatta dalla Commissione Elettrotecnica Internazionale, con la funzione di regolamentare la standardizzazione del Controllori a Logica Programmabile. La norma si divide in: IEC Informazioni generali (1992) IEC Specifiche dei test sui prodotti (1992) IEC Linguaggi di programmazione (1993) IEC Raccomandazioni e consigli per l utilizzatore IEC Specifiche dei servizi di comunicazione La norma IEC definisce i Linguaggi di Programmazione e, per ciascun linguaggio: La sintassi e la simbologia degli oggetti di programmazione. La struttura dei programmi. La definizione delle variabili di programmazione. I linguaggi normalizzati sono: Ladder Diagram o diagramma a contatti (LD). Instruction List o lista di istruzioni (IL). Structured Text o testuale strutturato (ST). 8

9 Sequential Function Chart o diagramma funzionale in sequenza (SFC). Function Block Diagram o diagramma a blocchi funzionale (FBD). La norma IEC 1131 si applica ai Controllori programmabili (e alle periferiche associate) e in particolare la Parte 3, tradotta in Norma Italiana (CEI EN ), specifica le regole sintattiche e semantiche dei linguaggi di programmazione, i quali soddisfano in genere le necessità di qualsiasi operatore che si avvicini a tale ambiente. Tale filosofia di adattabilità è sostenuta dal fatto che l introduzione del PLC nelle aziende deve avvenire nel modo più naturale possibile, senza sconvolgere le metodologie di impiego delle apparecchiature che vanno a sostituire ; infatti, se nelle fabbriche di nuova concezione e costruzione il PLCè elemento essenziale nella gestione dei processi, molti sono ancora i reparti lavorativi e le macchine dove potenzialmente il PLC può essere impiegato per rimpiazzare vecchie apparecchiature con logica a relè. 1 Introduzione alle variabili e alle unità di organizzazione di programma Due elementi importanti della programmazione dei PLC sono rappresentati dalle variabili e dalle unità di organizzazione di programma. Una variabile può essere dichiarata come appartenente ad uno dei tipi elementari o ad un tipo derivato, inoltre essa viene rappresentata simbolicamente con degli identificatori. È necessario che il costruttore del PLC specifichi la corrispondenza tra la rappresentazione diretta delle variabili di I/O e la locazione fisica dell elemento indirizzato in ingresso o in uscita alla quale la variabile fa capo. Se degli interi sono 9

10 separati da punti, la rappresentazione deve essere letta come un indirizzo gerarchico fisico o logico, nel quale la parte a sinistra indica il livello più elevato della gerarchia, mentre quella destra l inferiore. Per esempio, la variabile %IW indicherà il primo canale (parola) del sesto modulo del quarto rack del primo bus di I/O di un sistema a controllore programmabile. L uso dell indirizzamento gerarchico che permette al programma l accesso ai dati di un secondo controllore programmabile si deve considerare un estensione di linguaggio. Le variabili rappresentate direttamente sono consentite solamente nei programmi (cioè quegli insiemi logici composti da tutti gli elementi e costruzioni del linguaggio di programmazione che permettono di gestire ed elaborare i segnali per il comando di una macchina o di un processo mediante un PLC), nelle configurazioni (cioè negli elementi di linguaggio che corrispondono ad un sistema a controllore programmabile) e nelle risorse (cioè in quegli elementi di linguaggio che corrispondono ad una funzione di trattamento di segnale, alle sue funzioni di interfaccia uomo-macchina e alle eventuali funzioni di interfaccia di sensori e attuatori). Le variabili a molti elementi sono invece rappresentate da: array, insieme di elementi di dati che appartiene allo stesso tipo di dato, indicizzati da uno o più indici racchiusi tra parentesi e separati da virgole; strutture, un tipo di dato formato da un insieme di elementi nominati, rappresentato da almeno due identificatori separati da un punto (.) il primo dei quali indica il nome dell elemento strutturato, mentre i successivi rappresentano la sequenza di nomi che permettono l accesso ad un elemento particolare nella struttura di dati. Le unità di organizzazione di programma (POU) sono costituite dalle funzioni, dai blocchi funzionali e dai programmi. Esse si possono trovare precostituite (dal 10

11 costruttore) o possono essere programmate dall utilizzatore. Le unità di organizzazione di programmi non possono invocare altre unità dello stesso tipo (cioè non devono essere ricorsive). 2 Dichiarazione di conformità alla norma Viene riportato per esteso il testo contenuto in questa sezione della norma al fine di capire quali requisiti un sistema di programmazione di PLC debba possedere per essere conforme a questa Norma, sia esso un sistema PLC-based, detto target dependent (adatto alla programmazione specifica di alcuni PLC) o PC-based, detto target independent (come ISaGRAF e InControl - di solito sistemi real-time che implementano le funzionalità di un PLC rimandando ad esso la parte esecutiva dei programmi): MODELLO DI SOFTWARE (1.4.1) MODELLO DI COMUNICAZIONE (1.4.2) MODELLO DI PROGRAMMAZIONE (1.4.3) 2.1 Conformità (1.5) Questo paragrafo si occupa di definire i requisiti che un sistema PLC deve avere per dichiararsi conforme alla parte terza della pubblicazione IEC (1131-3) Le condizioni per la conformità sono indicate di sotto. Deve inoltre essere prodotta una dichiarazione di conformità con la seguente dicitura: 11

12 Questo sistema è conforme alle prescrizioni della Pubblicazione IEC , in base alle seguenti caratteristiche di linguaggio : seguita da una serie di tabelle del tipo : Tabella n Caratteristica n Descrizione delle caratteristiche Condizioni : non deve richiedere l inclusione di elementi addizionali di linguaggio per soddisfare i requisiti specificati in questa parte deve essere accompagnata da un documento che specifica i valori di tutti i parametri dipendenti dall implementazione come riportato in allegato D deve essere capace di determinare eventuali condizioni di errore e di non conformità col documento di cui sopra specificate nell allegato E e segnalare tali anomalie di programmazione all utente. Se il sistema non esamina la totalità delle non conformità riportate nell allegato E, l utente deve essere avvisato di ciò. deve trattare le non conformità in uno dei seguenti modi : con una dichiarazione di accompagnamento che attesta il mancato controllo su determinati errori con una segnalazione della possibilità di errore all utente durante la preparazione per l esecuzione del programma con una segnalazione dell errore all utente durante la preparazione per l esecuzione del programma con una segnalazione all utente durante l esecuzione delprogramma e iniziare le appropriate procedure di trattamento dell errore deve essere accompagnato da un documento che descrive separatamente le caratteristiche del sistema proibite o non specificate in questo documento e descritte come estensione al linguaggio anche per tali estensioni deve trattare gli errori come definito sopra non deve utilizzare nessun nome di funzione o di blocco funzionale standard che non abbia il comportamento specificato in questo documento 12

13 deve essere accompagnato da un documento che descrive formalmente la sintassi di linguaggio confomemente all allegato A Nel caso in cui il caricamento o la compilazione di un programma vengano interrotti a causa di alcune limitazioni di tabelle, ecc., una dichiarazione incompleta del tipo nessuna non conformità è stata rilevata, ma l esaminazione è incompleta soddisferà comunque alle prescrizioni di questo paragrafo. Per i programmi invece la conformità richiede : di utilizzare solo le caratteristiche specificate in questo documento per lo specifico linguaggio utilizzato di non utilizzare nessuna caratteristica identificata come estensione dilinguaggio. di non contare su alcuna interpretazione particolare delle caratteristiche dipendenti dall implementazione 3 Elementi Comuni(2) 3.1 I tipi elementari, generici e derivati (2.3) I tipi di dati elementari previsti dalla Norma sono elencati nella tabella 1 e rappresentano un insieme strutturalmente completo per soddisfare le esigenze di programmazione di ogni utente PLC. La Norma prevede inoltre l utilizzo di dati generici contraddistinti dal prefisso ANY e che vengono utilizzati per generare funzioni o operatori sovraccaricati (overloaded) che cioè accettano tipi diversi come parametri. Essi sono organizzati gerarchicamente come indicato in Tabella 2. Tale implementazione rappresenta in pratica la possibilità di dichiarare una variabile indipendentemente dal tipo e quindi 13

14 N Parola chiave Tipo di dato Bits 1 BOOL Booleano 1 2 SINT Intero corto 8 3 INT Intero 16 4 DINT Intero doppio 32 5 LINT Intero lungo 64 6 USINT Int. corto senza segno 8 7 UINT Intero senza segno 16 8 UDINT Int. doppio senza segno 32 9 ULINT Int. lungo senza segno REAL Reale LREAL Reale lungo TIME Durata Nota 1 13 DATE Data Nota 1 14 TIME_OF_DAY (TOD) Ora del giorno Nota 1 15 DATE_AND_TIME (DT) Data e ora del giorno Nota 1 16 STRING Stringa Nota 1 17 BYTE 8 bit 8 18 WORD 16 bit DWORD 32 bit LWORD 64 bit 64 Tabella 1: Tipi di dati elementari di mantenere una certa compatibilità con la rappresentazione interna dei dati che, in molti PLC, sono identificati con semplici locazioni di memoria. Nei PLC Allen Bradley, ad esempio, la memoria programmi è organizzata nei cosiddetti program files di dimensioni massime fissate dal Sistema Operativo e numerati da 0 a 999. I primi tre sono dichiarati di default come dati di uscita, di ingresso e di stato processore;agli altri possono essere associate strutture dati ditipo contatore, variabili binarie, temporizzatori, variabili reali in virgola mobile, caratteri, strutture PID, ecc... Come si vede dunque in questo tipo di processori non è possibile dichiarare una struttura utente particolare ma bisogna attenersi a quelle preesistenti; la Norma rappresenta allora un validissimo supporto ad una programmazione di più alto livello; 14

15 ANY ANY_NUM ANY_INT ANY_BIT STRING ANY_DATE TIME LREAL REAL LINT, DINT,INT, SINT ULINT, UDINT, UINT, USINT LWORD, DWORD, WORD, BYTE, BOOL DATE_AND_TIME DATE TIME_OF_DAY Tabella 2: Tipi di dati generici prevede infatti l istanziazione di tipi derivati che possono essere dichiarati utilizzando il costrutto TYPE...END_TYPE e sono: enumerato sottocampo o intervallo di valori struttura (STRUCT) Array Notiamo che il tipo enumerato e struttura in particolare possono risultare molto comodi per aumentare la leggibilità e l identificazione gerarchica e contestuale deidati in un programma; ad esempio potremmo avere una dichiarazione del tipo: TYPE DIMESIONE_PEZZO : (PICCOLO, MEDIO, GRANDE); END_TYPE che aumenta di molto la leggibilità in un programma che ad esempio deve gestire la lavorazione di pezzi differenti in una fabbrica. Diversamente in un PLC non dotato della possibilità di definire un dato di questo tipo si sarbbe dovuto assegnare un valore 15

16 I Q M X nessuno B W D L Locazione di ingresso Locazione di uscita Locazione di memoria Taglia di un solo bit Taglia di un solo bit Taglia di un byte (8 bit) Taglia di una parola (16 bit) Taglia di una parola doppia (32 bit) Taglia di una parola lunga (64 bit) Tabella 3: Variabili rappresentate direttamente: prefissi di locazione e di taglia. ad una variabile intera (per esempio N7:1) e controllare all interno del programma se il valore era 1 (pezzo piccolo), 2 (pezzo medio), 3 (pezzo grande); senza un adeguato commento il programma, specie se scritto in ladder, risulta poco comprensibile. Il tipo enumerato consente dunque una autodocumentazione del listato. 3.2 VARIABILI (2.4) Gli identificatori delle variabili a singolo elemento, cioè quelle comunemente impiegate in ogni PLC, per la Norma devono rispettare la sintassi descritta dalla Tabella 3 La rappresentazione diretta deve essere provvista di uno speciale simbolo, formato dalla concatenazione di un segno di percentuale %, un prefisso di locazione e un prefisso di taglia e da uno o più interi senza segno, separati da punti (.). Il costruttore deve specificare la corrispondenza tra la rappresentazione diretta e la locazione fisica o logica per gli elementi indirizzati in ingresso o in uscita. Quando una rappresentazione diretta è estesa con delle zone di interi separati da punti, essa deve essere interpretata come un indirizzo gerarchico fisico o logico, con il campo più a sinistra che rappresenta il livello più alto della gerarchia. Per esempio la variabile 16

17 %IW può rappresentare il primo canale (word) del settimo modulo nel quinto rack del secondo bus di I/O di un sistema a controllore programmabile. L utilizzazione di un indirizzamento gerarchico per permettere ad un programma in un sistema PLC di accedere a dati di un altro PLC deve essere considerato come una estensione di linguaggio. L utilizzo di variabili direttamente rappresentate è consentito solo nei Programmi, nelle Configurazioni e nelle Risorse. Il numero massimo di livelli nella gerarchia è un parametro proprio dell implementazione. Esempi : %IW53 parola della zona degli ingressi %MW30 parola della zona della memoria %MX41 oppure %M41 (la X può essere omessa) bit della zona della memoria %MD48 doppia parola della zona della memoria %MW4:8 tabella di 8 parole %MW0:X4 bit di rango 4 della parola interna %MW0 %QX21 oppure %Q21 (la X può essere omessa) bit della zona delle uscite Le variabili direttamente rappresentate nei processori Allen Bradley rispettano regole sintattiche molto simili; ecco un altra sezione della norma che tenta di non stravolgere ciò che già esiste. Per quanto riguarda gli Array e la loro gestione nei PLC, se si adotta un sistema di rappresentazione delle variabili come quello adottato dai PLC-5 Allen Bradley, risulta alquanto scomodo e poco comprensibile il sistema che utilizza l aggiunta di un offset contenuto in una word di stato all indirizzo della variabile (indicato inserendo il simbolo # all inizio dell identificatore della variabile). Si vede come invece un tipo di indicizzazione classica risulta molto più leggibile e gestibile potendo dichiarare una 17

18 qualsiasi variabile intera che funga da indice dell Array. Per gli Array l indice deve essere di tipo ANY_INT. Un altro tipo di dato derivato di fondamentale importanza non solo per raggruppare contestualmente i dati ma anche per aumentare la leggibilità e il data hiding di un programma è la struttura. Nei PLC-5 Allen Bradley non è consentito dichiarare una struttura usando dei campi definiti dall utente ma sono implementate già dal sistema operativo delle strutture dati utili al funzionamento del PLC (per esempio la struttura Temporizzatore, che contiene i campi.pre - preset -,.ACC -accumulatore-,.dn - bit fine conteggio-,.tt -bit timer attivo-,.en -bit di alimentazione-). La Norma consentirebbe invece di fare una dichiarazione del tipo : TYPE PEZZO : STRUCT PESO : REAL; COLORE : (ROSSO, GIALLO); QUALITA : INT (0..10); END_STRUCT; END_TYPE; allora una variabile strutturata di questo tipo potrà facilmente aiutare a tener conto dei differenti processi di lavorazione a cui dovrà essere sottoposto un oggetto che venga identificato con tale variabile. Per esempio dichiarando : VAR BOTTIGLIA : PEZZO; END_VAR si potrà scrivere nei programmi : BOTTIGLIA.PESO := 150.2; BOTTIGLIA.COLORE := ROSSO; BOTTIGLIA.QUALITA := 8; 18

19 elevando contemporaneamente il livello di incapsulamento e di leggibilità dei dati. Pensiamo ancora all enorme vantaggio di creare strutture dati particolari; si potrebbe allora pensare ad una libreria di strutture e funzioni predefinite che possono tornare utili per la programmazione dei PLC come il tipo coda, stack o lista e ancora nuovi tipi come il tipo matrice ecc Dichiarazione (2.4.3) Un altra possibilità che offre la Norma è di dichiarare una variabile o addirittura una intera sezione di programma con l attributo retained o a valore ritenuto. Ciò comporta che, nel cosiddetto riavvio a caldo (quando la unità di organizzazione di programma viene richiamata non per la prima volta), i valori della variabile o delle variabili contenute all interno della POU vengono conservati tra un attivazione e la successiva. Non tutti i linguaggi PLC consentono una dichiarazione del genere perchè ciò vuol dire gestire i tasks in modo dinamico, il che appesantirebbe il compito del kernel del sistema operativo che invece lo si vuole più stabile e compatto possibile. Concetto molto importante è pure la visibilità (scope) delle variabili all interno dei programmi. La Norma dice che la visibilità delle variabili dichiarate deve essere locale alla POU che la contiene. L unica eccezione è per le variabili globali accessibili alle altre POU grazie ad una dichiarazione di un blocco di tipo VAR_EXTERNAL compatibile con la dichiarazione fatta altrove. La visibilità neiprocessoriè un concetto quasi inesistente per quelli che utilizzano programmazione a basso livello (ladder), ed incompleto per quelli più avanzati; per fare un esempio i processori Allen Bradley consentono una sorta di protezione su alcune zone di memoria occupate da programmi 19

20 Parola chiave VAR VAR_INPUT VAR_OUTPUT VAR_IN_OUT VAR_EXTERNAL VAR_GLOBAL VAR_ACCESS RETAIN CONSTANT AT Utilizzazione delle variabili Interna alla POU Fornita dall esterno, non modificabile dalla POU Fornita dalla POU alle entità esterne Fornite dalle entità esterne, può essere modif. dalla POU Fornita dalla Configurazione attraverso VAR_GLOBAL, può essere modificata dalla POU Dichiarazione di variabile globale Dichiarazione di percorso di accesso Variabili a valore ritenuto Costante Assegnamento di locazione Tabella 4: Dichiarazioni delle variabili o dati e gestite gerarchicamente tra i programmi. Più che di visibilità si potrebbe parlare quindi di protezione. La Norma impone ancora che ogni dichiarazione di programma, funzione o blocco funzionale deve contenere all inizio almeno una parte dichiarativa che specifica i tipi delle variabili utilizzate nelle unità organizzative di programma (POU). Tale parte dichiarativa deve avere forma testuale con le parole chiave VAR, VAR_INPUT, VAR_OUTPUT come definiti nella Tabella 4, e seguite eventualmente dai qualificatori RETAIN o CONSTANT e nel caso di VAR_OUTPUT da nessuno o un occorrenza del qualificatore RETAIN, seguiti da una o più dichiarazioni separate da virgole e terminare con la parola chiave END_VAR. La maggior parte dei sistemi sviluppati per la programmazione dei PLC o non consente la dichiarazione di variabili potendo il programmatore sfruttare solo quelle predichiarate dal costruttore, oppure stabilisce una corrispondenza di Simboli/Indirizzi (identificativo variabile - rappresentazione diretta) in una tabella didatabase al fine di 20

21 rendere più agevole la comprensione dei programmi che sfruttano le variabili altrimenti direttamente rappresentate. Un aspetto molto interessante che troviamo tra le possibilità di dichiarare le variabili è quello della keyword AT che consente, senza bisogno di tabelle ecc.., di assegnare direttamente ad un identificativo di variabile una locazione fisica specificata da una rappresentazione diretta : VAR PULSANTE AT %IX27 : BOOL; (* ingresso booleano *) START AT %QX25 : BOOL; (* uscita booleana *) TEMPERATURA AT %IW28 : INT; (* ingr. analogico 16 bit *) END_VAR La Norma prevede comunque che nel momento in cui l assegnazione dell indirizzo fisico alla variabile non viene esplicitamente fatta, deve essere prevista una allocazione automatica nella memoria del PLC. Viene prevista anche una assegnazone di valore iniziale di default per le variabili non ritenute e per quelle ritenute al riavvio a freddo. E possibile inoltre specificare da parte del programmatore il valore iniziale direttamente nella parte dichiarativa delle variabili. 4 POU - Unità Organizzative di Programma (2.5) Esse sono la funzione, il blocco funzionale e il programma. Possono essere implementate dal fabbricante di PLC o dall utente programmatore in accordo con le regole che seguono. Le POU non possono essere ricorsive. 21

22 4.1 Funzioni (2.5.1) Una funzione è definita come una POU che, quando eseguita, fornisce esattamente un solo dato (che può essere anche multi-valore come Array o Strutture), e la chiamata alla stessa può essere utilizzata nei linguaggi testuali come un operando in un espressione. Per la Norma una Funzione non può avere stati interni, quindi la chiamata ad una funzione con gli stessi argomenti deve sempre restituire lo stesso valore. Le funzioni e le loro invocazioni possono essere rappresentate sia testualmente sia graficamente. Per le funzioni richiamate nel linguaggio LD deve essere previsto un ingresso e un uscita Booleana di abilitazione EN (ENable) e ENO (ENable Output) mentre per il linguaggio FBD è opzionale. Una funzione deve essere dichiarata testualmente o graficamente. La dichiarazione testuale consiste dei seguenti elementi : La parola chiave FUNCTION, seguita da un identificatore che specifica il nome della funzione, il simbolo due punti (:), e il tipo di dato restituito dalla funzione. un costrutto VAR_INPUT...END_VAR, specificando il nome e i tipi degli argomenti di ingresso alla funzione. un costrutto VAR...END_VAR, se richiesto, specificando il nome e i tipi delle variabili interne alla funzione. un corpo della funzione (function body), scritto in uno dei linguaggi definiti in questa parte o qualsiasi altro linguaggio come definito in 1.4.3, che specifica le operazioni che la funzione deve eseguire sui parametri di ingresso per assegnare uno o più valori ad una variabile con lo stesso nome della funzione e che rappresenta l uscita della funzione stessa. la parola chiave conclusiva END_FUNCTION. La dichiarazione grafica consiste dei seguenti elementi : 22

23 Le parole chiavi FUNCTION...END_FUNCTION che fungono da parentesi al corpo della funzione o un loro equivalente grafico. una specificazione grafica del nome della funzione e dei nomi e dei tipi degli ingressi e delle uscite. una specificazione dei nomi e dei tipi delle variabili interne usate nella funzione, per esempio usando il costrtto VAR...END_VAR. Le funzioni ci rendiamo conto possono risultare molto utili alla programmazione; pensiamo ad operazioni standard quali conversione di dati, scalatura e a tutte le operazioni matamatiche. Le funzioni consenono un elevato livello di incapsulamnto delle istruzioni ; pensiamo ad esempio a delle funzioni che svolgono anche operazioni sulle variabili di I/O. Si potrebbe considrare, ad esempio, una funzione che riceve in ingresso il tipo di pezzo da lavorare e manda i comandi appropriati per la sua lavorazione. Essa ingloba allora la funzionalità di una macchina che sitrova all interno del ciclo di lavorazione di un prodotto. Di seguito si fa un esempio di una possibile implementazione di funzione di questo tipo : FUNCTION COLORA : BOOL VAR_INPUT OGGETTO : PEZZO; END_VAR IF OGGETTO.COLORE = ROSSO THEN COLORAROSSO = TRUE; COLORA = TRUE; ELSIF OGGETTO.COLORE = GIALLO THEN COLORAGIALLO = TRUE; COLORA = TRUE; ELSE COLORA = FALSE; END_IF END_FUNCTION 23

24 Questa funzione allora riceve in ingresso un oggetto di tipo pezzo e, a seconda del colore, attiva l uscita che fa capo al comando della pompa che spruzza il colore corrispondente. Come si vede allora l oggetto da lavorare acquista delle proprietà tipiche degli oggetti informatici, e risulta semplice, con un linguaggio completo e ben strutturato, tenere in conto tutte le fasi di lavorazione di un prodotto e le sue caratteristiche. La Norma inoltre consente che una funzione o un operazione sipossa sovraccaricare (overloaded) e cioè può operare con dati in ingresso di tipi differenti dichiarati all interno della funzione con un tipo generico (ANY). Definisce inoltre un insieme di Funzioni Standard ( ). 4.2 Blocchi funzionali (2.5.2) Oltre alle Funzioni la norma definisce i Blocchi Funzionali, che sono delle unità di organizzazione che una volta eseguite forniscono uno o più valori. Al contrario delle funzioni, tutte le variabili di uscita e le variabili interne necessarie alla struttura devono conservare il loro valore tra un esecuzione del blocco funzionale e la successiva chiamata. Ciò significa che una stessa chiamata, con gli stessi parametri in ingresso al blocco, può non produrre la stessa uscita. Inoltre le variabili interne al blocco non possono essere accessibili all utente esterno.la visibilità di una istanza di un blocco funzionale deve essere locale alla POU nella quale è istanziato, a meno che non venga dichiarato in un blocco VAR_GLOBAL. Il nome del blocco può essere usato come ingresso ad una funzione o ad un blocco funzionale se dichiarato come VAR_INPUT, oppure come variabile di ingresso/uscita se dichiarato come VAR_IN_OUT. 24

25 Un istanza di blocco funzionale può essere creata testualmente dichiarando un dato di tipo block type usando il costrutto VAR...END_VAR, oppure graficamente usando una rappresentazione grafica del blocco funzionale, con il nome del blocco all interno, e il nome che si vuole istanziare al di sopra del blocco. Le variabili di ingresso e di uscita di un istanza di un blocco funzionale possono esere richiamate usando lo stesso formalismo delle strutture. Esempio di dichiarazione testuale : VAR FF75 : SR ; END_VAR (*dichiarazione*) FF75(S1:=%IX1, R:=%IX2); (*chiamata*) %QX3:=FF75.Q1; (*assegnazione di uscita*) Le istanze di blocchi funzionali possono essere dichiarate con il qualificatore RETAIN. L assegnazione di un valore ad una variabile di uscita di un blocco funzionale non è permessa eccetto che dall interno del blocco stesso. L assegnazione di un valore ad una variabile di ingresso invece è permesso solo all atto della chiamata al blocco. Un blocco funzionale deve essere dichiarato testualmente o graficamente in modo molto simile a quello di una funzione. Anche per i Blocchi funzionali la Norma ne definisce alcuni standard ( ) comuni a tutti i linguaggi di programmazione del PLC e che si possono raggruppare in : elementi bistabili rilevazione di fronti contatori temporizzatori 25

26 di comunicazione 5 Elementi di Configurazione (2.7) Una configurazione è composta da risorse, tasks, variabili globali e percorsi d accesso. Essa rappresenta in pratica un processore fisico sulquale vengono istanziate le risorse elemento Un esempio di dichiarazione testuale di configurazione conforme alla norma è riportato di seguito: CONFIGURATION CELL1 VAR_GLOBAL w : UINT; END_VAR RESOURCE STATION_1 ON PROCESSOR_TYPE_1 VAR_GLOBAL z1 : BYTE; END_VAR TASK SLOW_1(INTERVAL := t#20ms, PRIORITY := 2); TASK FAST_1(INTERVAL := t#10ms, PRIORITY := 1); PROGRAM P1 WITH SLOW_1 : F(x1 := %IX1.1); PROGRAM P2 : G(out1 = w, FB1 WITH SLOW_1, FB2 WITH FAST_1); END_RESOURCE RESOURCE STATION_2 ON PROCESSOR_TYPE_2 VAR_GLOBAL z2 : BOOL; AT %QW5 : INT; END_VAR TASK PER_2 (INTERVAL := t#50ms, PRIORITY := 2); TASK INT_2 (SINGLE := z2, PRIORITY := 1); PROGRAM P1 WITH PER_2 : F(x1 := z2, x2 := w); PROGRAM P4 WITH INT_2 : H(HOUT1 = %QW5, FB1 WITH PER_2); END_RESOURCE VAR_ACCESS ABLE : STATION_1.%IX1.1 : BOOL READ_ONLY; BACKER : STATION_1.P1.x2 : UINT READ_ONLY; CHARLIE : STATION_1.z1 : BYTE; DOG : w : UINT READ_ONLY; 26

27 ALPHA : STATION_2.P1.y1 : BYTE READ_ONLY; BETA : STATION_2.P4.HOUT1 : INT READ_ONLY; GAMMA : STATION_2.z2 : BOOL READ_ONLY; END_VAR END_CONFIGURATION a cui corrisponde lo schema di figura nella pagina seguente che illustra graficamente l organizzazione della configurazione. Andiamo a vedere come va interpretato uno schema del genere. Il qualificatore ON nel costrutto RESOURCE...ON...END_RESOURCE è usato per specificare su quale processing function o funzione di interfaccia uomo-macchina o funzione di interfaccia sensore-attuatore viene implementata la risorsa, con i suoi programmi e tasks. La risorsa può essere quindi pensata come una unità fisica indipendente sulla quale vengono implementati i programmi associati a dei tasks. La norma prevede inoltre che la visibilità della dichiarazione VAR_GLOBAL deve limitarsi alla configurazione o alla risorsa nella quale è istanziata, a meno che non venga dichiarata con un percorso d accesso (rendendola visibile all esterno) attraverso il costrutto VAR_ACCESS...END_VAR; esso fornisce un mezzo per specificare delle variabili alle quali possono aver accesso i servizi di comunicazione specificati nella IEC Il percorso d accesso così creato può agire su variabili globali, variabili di I/O del programma, variabili direttamente rappresentate. Può inoltre essere specificata la direzione del percorso d accesso come READ_WRITE o READ_ONLY, che indicano che nel primo caso la variabili può essere letta e modificata dai servizi di comunicazione, solo letta nel secondo. Il valore di default è READ_ONLY. 27

28 . Figura tratta dalla Norma che illustra lo schema di configurazione descritto alla pagina precedente 28

29 Per quanto riguarda i tasks sono definiti come elementi di controllo di esecuzione, capaci di attivare, sia periodicamente che in sincronia con il fronte di salita di una variabile booleana (ingressi INTERVAL e SINGLE), l esecuzione di una serie di unità organizzative di programma (POU), che includono programmi e blocchi funzionali, istanziati questi ultimi all interno dei programmi. I tasks possono essere rappresentati graficamente o testualmente come parte delle risorse all interno delle configurazioni e sono implicitamente abilitati o disabilitati dalla risorsa alla quale sono associati. Nell esempio troviamo implementati tutti gli elementi appena descritti e si vede come sia relativamente semplice creare una struttura diprogramma anche complessa e gestire i suoi parametri dal punto di vista funzionale-operativo. Il programma P1 ad esempio è associato ad un task lento (SLOW_1) gestito dalla risorsa 1; tale risorsa implementa anche un secondo task più veloce (FAST_1). Il programma P2 non è associato a nessun task e quindi ha la priorità più bassa, ma i blocchi funzionali che lo compongono hanno entrambi associazioni con i due tasks della risorsa. Potremmo pensare che il programma P2 serva per monitorare lentamente (per esempio controllare un quadro sinottico) una evoluzione di dati mentre i blocchi funzionali che la contengono a tenere sotto controllo esatto un certo trend per gestire situazioni di allarme ecc.. Come si vede il tutto risulta molto versatile ed adattabile a qualunque esigenza di progettazione, qualunque sia il sistama da controllare, cosa molto più complessa se non si dispone di strumenti come questo. Vengono inserite nell esempio anche dichiarazioni di variabili globali con il loro percorso d accesso e anche qui il metodo risulta subito chiaro leggendo la dichiarazione. Gli identificativi DOG, CHARLIE, GAMMA, ecc... verranno usati per accedere, 29

30 dall esterno della configurazione, alle variabili ai quali sono associati, seguendo appunto un percorso che è quello specificato nella loro dichiarazione. La norma fissa le seguenti regole di schedulazione per il controllo delle POU associate ai tasks: Le POU devono essere programmate (scheduled) per l esecuzione ad ogni fronte di salita dell ingresso SINGLE del Task. Se l ingresso INTERVAL è diverso da zero, la POU deve essere programmata per una esecuzione periodica per l intervallo specificato, finchè l ingresso SINLGLE rimane zero. Se l ingresso INTERVAL è zero non deve avvenire alcuna programmazione periodica. L ingresso PRIORITY stabilisce la priorità di attivazione della POU associata. Il valore più basso è quello a maggiore priorità. Tale priorità può essere usata per organizzare una programmazione preempitive o non-preempitive In una programmazione NON-PREEMPITIVE la CPU diventa disponibile per una risorsa quando l esecuzione di una POU o di una funzione del S.O. è sata completata. Appena si libera quindi la CPU viene attivata la POU con priorità più alta. Se più di una POU si trovano alla stessa priorità più alta, viene servita prima quella che esibisce il tempo di attesa più lungo. In una programmazione PREEMPITIVE quando viene richiamata una POU, essa può interrompere l esecuzione di una POU a prirità più bassa sulla stessa risorsa; la sua esecuzione verrà ripresa al termine della POU a priorità più alta. Un programma senza alcuna associazione con task deve essere considerato con priorità più bassa. Quando una istanza di blocco funzionale è associata ad un task, la sua esecuzione deve essere fatta sotto l esclusivo controllo del task, indipendentemente dalle regole di valutazione della POU nella quale l istanza di blocco funzionale è dichiarata. 30

31 L esecuzione di blocchi funzionali all interno di programmi deve essere sincronizzata per assicurare la concorrenza dei dati conformemente alle seguenti regole : Se un blocco funzionale riceve più di un ingresso da un altro blocco funzionale, quando viene eseguito gli ingressi devono rappresentare il risultato di una stessa valutazione e non di valutazioni differenti (fatte in tempi differenti). Se due o più blocchi funzionali ricevono gli ingressi da uno stesso blocco funzionale, e se i blocchi destinazione sono tutti esplicitamente o implicitamente associati allo stesso task alora gli ingressi di tali blocchi destinatari al tempo della loro valutazione devono rappresentare il risultato di una stessa elaborazione del blocco sorgente. Osserviamo che questo tipo di organizzazione nei PLC odierni è appena accennata; si parla talvolta di PLC a ciclo monotask o bitask (task master e task fast richiamata da una interruzione per le eccezioni); il multitasking può essere gestito solo da un sistema operativo che abbia le funzionalità di multitasking realtime e che quindi sia assolutamente stabile e sicuro. I programmi che si avvicinano ad una filosofia del genere si basano tutti su sistemi operativi come Windows NT, VxWorks, OS-9 ecc.. Riuscire con una relativa facilità a gestire situazioni complesse con un livello di incapsulamento tale da preoccuparsi, all atto della programmazione, unicamente della configurazione, della risorsa o della POU che si sta trattando, riuscendo ad assegnare priorità e velocità di esecuzioni fissate a priori, è sicuramente molto comodo e nello stesso tempo affascinante. Pensiamo solo per un attimo a cosa potrebbe significare realizzare un programma per PLC per una industria, anche di media complessita, unicamente in Ladder!!. Si capisce allora come una struttura a interrupt può risultare sicuramente valida per gestire situazioni eccezionali come gli allarmi ma l architettuta monotask o bitask 31

32 è sicuramente insufficiente per gestire automazioni di livello medio-alto. Alcuni PLC multiprocessore hanno implementato un sistema multitasking con una task per processore. Il numero di tasks è quindi limitato a quattro o cinque e non può essere modificato via software come prevede la norma ma tale situazione risulta comunque funzionalmente valida per gestire scansioni I/O più veloci, allarmi particolari di watchdog, ecc... 6 SFC - Sequential Functional Chart (2.6) La Norma detta le specifiche per il linguaggio SFC che derivano direttamente dalla norma IEC 848. L SFC si presta molto bene a descrivere le operazioni dei sistemi industriali (tipicamente modellati come sistemi ad eventi discreti) con un linguaggio grafico molto intuitivo. I suoi elementi sono : passi e azioni, transizioni e condizioni sulle transizioni e collegamenti diretti. I passi (o fasi) possono essere rappresentati graficamente con un blocco contenente il suo nome sotto forma di identificatore, o testualmente con un costrutto STEP...END_STEP. Il passo può essere attivo o inattivo. In ogni istante, lo stato del programma è definito dall insieme dei passi attivi, segnalati tramite il segnalatore di fase (step flag) che rappresenta lo stato logico di attività di un passo (***.X è una variabile booleana) mentre il tempo trascorso dall attivzione del passo (***.T) viene segnalato tramite una variabile di tipo Tempo, campo della struttura che porta il nome della fase (***). 32

33 Per quanto riguarda l inizializzazione delle fasi, esse sono tutte inattive tranne le fasi iniziali (initial steps) (il flag booleano ***.X è zero per ogni fase, uno per le fasi iniziali). Ogni rete SFC deve avere esattamente una fase iniziale. Ogni passo può avere associate una o più azioni; se ne fosse sprovvisto invece esso si troverebbe nella condizione di attendere (WAIT) che diventi vera la condizione della transizione seguente. Un azione può essere programmata con un linguaggio qualsiasi tra quelli consentiti dalla presente Norma. Essa deve essere dichiarata ( ) e associata con il passo, in via testuale con i step bodies o graficamente con gli action blocks ( /3). I controlli sull azione devono essere espressi dai qualificatori di azione (action qualifiers). La Norma inoltre specifica che se ad esempio S4 è il nome di un passo, allora le seguenti istruzioni devono essere considerate errori : S4.X:=1; S4.T:=t#100ms; Ciò vuol dire che non è possibile alterare lo stato di un SFC con nessuna istruzione e quindi istruzioni che vanno ad agire su un programma SFC per bloccarlo o sospenderlo sono da considerarsi errori; eppure diversi PLC che implementano il linguaggio SFC prevedono una gerarchia tra i programmi che consente appunto operazioni di questo tipo. Altro elemento dell SFC è la transizione alla quale viene sempre legata una condizione che permette di passare da uno o più passi a uno o più passi successivi. 33

34 La norma prevede che i modi con i quali è possibile legare una condizione ad una transizione siano i seguenti: 1) espressione booleana, espressa in linguaggio testuale strutturato, situata sulla destra della linea di collegamento. 2) con rete, espressa in Diagramma a contatti, senza barra destra e con l uscita che interseca la linea di collegamento. 3) con rete, in Diagramma a blocchi funzionali, con l uscita che interseca la linea di collegamento verticale. 4) con uscite, espresse in Diagramma a contatti o a blocchi funzionali, che intersecano con un connettore la linea di collegamento verticale. 5) con costruzione TRANSITION...END_TRANSITION in linguaggio testuale strutturato, contenente la parola chiave TRANSITION FROM seguita dal nome del passo o dei passi precedenti, dalla parola chiave TO seguita dal nome del passo o dei passi susseguenti, un operatore di assegnazione (:=) seguito da un espressione booleana che determina la condizione e dalla parola chiave finale END_TRANSITION. 6) con costruzione TRANSITION...END_TRANSITION in linguaggio lista di istruzioni, contenente la parola chiave TRANSITION FROM seguita dal nome del passo o dei passi precedenti e da due punti (:), dalla parola chiave TO seguita dal nome del passo o dei passi susseguenti, su una linea separata da una lista di istruzioni il cui risultato determina la condizione e dalla parola chiave finale END_TRANSITION su un altra linea separata ( fig. 26); 7) adoperando il nome di transizione come identificatore, messo a destra del collegamento diretto. Tale identificatore deve riferirsi al costrutto TRANSITION...END_TRANSITION, deve essere booleano e dovrà contenere il risultato della valutazione del superamento della transizione; sarà specificato con uno dei seguenti linguaggi : rete in LD o FBD lista di istruzioni IL assegnazione con espressione booleana in linguaggio ST 34

35 Inoltre la Norma impone che la visibilità del nome della transizione deve essere locale alla POU nella quale si trova e, durante il processo di valutazione della condizione, deve considerarsi un errore una assegnazione di valore ad una variabile che non rappresenti l identificatore della transizione. Per definire le azioni associate ai passi può essere utilizzato un blocco diazione ossia un elemento grafico formato da una variabile booleana e da un qualificatore di azione, aventi lo scopo di creare una condizione di validazione per l azione associata. a b c d Tabella 5: Blocco tipo Esso è costituito da : a : un qualificatore d azione a cui è associato una variabile booleana; può essere omesso se il qualificatore è N (none). b : nome dell azione c : variabili booleane di segnalazione (può essere omesso se non ci sono variabili di questo tipo. d : azione vera e propria specificata utilizzando Linguaggio IL Linguaggio ST Linguaggio LD Linguaggio FBD Il qualificatore di azioni deve essere collegato ad ogni associazione passo/azione oppure ad ogni presenza di un blocco di azione. Il suo valore è legato a dei codici specifici: nessuno (qualificatore nullo, non memorizzato), N (non memorizzato) 35

36 R (rimesso a zero prioritario) S (posizionato, memorizzato) L (limitato nel tempo) D (ritardato nel tempo) P (impulso) SD (memorizzato e ritardato) DS (ritardato e memorizzato) SL (memorizzato e limitato nel tempo) 6.1 Controllo delle azioni ( ) Per definire il comportamento e le regole per il controllo delle azioni viene definito un blocco in linguaggio FBD chiamato ACTION_CONTROL che riceve in ingresso i qualificatori e ha in uscita una variabile booleana che sta ad indicare la attivazione dell azione. Chiaramente non è indispensabile che il blocco ACTION_CONTROL sia implementato; è sufficiente che il comando di azioni sia equivalente alle regole fissate dal significato dei qualificatori. 6.2 Regole di evoluzione (2.6.5) Inizialmente l SFC è caratterizzato dall avere una fase iniziale attiva. Una transizione è detta abilitata (enabled) quando tutti i passi che la precedono sono attivi. Ilsuperamento avviene in corrispondenza dell abilitazione e dell avverarsi della condizione associata. Il superamento della transizione causa la deattivazione di tutti i passi che la precedono e l attivazione di tutti i passi immediatamente a valle. Tra una transizione e l altra deve sempre esserci un passo; viceversa tra un passo e l altro deve essere presente una transzione. 36

37 Quando il superamento di una transizione determina l attivazione di più passi si parla di attivazione di sequenze simultanee ossia diparallelismo, indicato graficamente da una doppia linea orizzontale. Teoricamente il tempo di superamento di una transizione può essere considerato piccolo a piacere ma non può mai essere zero. Più transizioni che possono essere superate contemporaneamente, devono esserlo nei limiti di tempo imposti dal controllore. La valutazione di una o più condizioni di transizione non deve essere effettuata prima che l effetto dell attivazione della fase si sia propagato attraverso tutta l unita organizzativa di programma all interno della quale la fase è stata dichiarata. Importanza particolare va attribuita al costrutto di scelta; la norma dice che se più transizioni di una scelta possono essere superati contemporaneamente, esse vengono effettivamente superate dando luogo all esecuzione in parallelo dei rami. Ciò è però sconsigliato e viene demandato all utente programmatore il compito di stabilire una priorità tra le sequenze in parallelo. Con l apposizione di un asterisco in corrispondenza della divergenza si fisserà automaticamente una priorità crescente delle transizioni da sinistra verso destra (a meno che non venga esplicitamente fissata con dei numeri sui rami un altra sequenza di priorità) e quindi la prima transizione che risulterà superabile verrà superata, inibendo il superamento delle altre. L applicazione delle regole non garantisce che sipossano evitare degli SFC unsafe (insicuri) o unreachable (inaccessibili); va pertanto considerato un errore l esistenza di condizioni che possano determinare tali situazioni. 37

38 Infine vengono riportati, nelle tabelle della Norma, i requisiti minimi a cui un SFC deve attenersi per rispettare la compatibilità. 38

39 Capitolo 2 ISaGRAF Il pacchetto software ISaGRAF PRO distribuito dalla CJ International permette di scrivere programmi per PLC target independent, ossia in un ambiente del tutto indipendente dalla macchina target PLC sulla quale essi dovranno poi funzionare. Le caratteristiche funzionali del software possono così essere suddivise: THE WORKBENCH Esso è l ambiente dilavoro vero e proprio delsoftware e rappresenta l interfaccia tra l utente e tutte le funzionalità di cui il programma può disporre. LINGUAGGI Molti cicli PLC, chiamati Risorse possono essere programmati con uno dei cinque linguaggi di programmazione descritti dalla norma IEC : SFC (Sequential Function Chart), FBD (Function Block Diagram), LD (Ladder Diagram), ST (Structured Text), IL (Instuction List). E possibile utilizzare inoltre il linguaggio FC (Flow Chart). TIPI DI VARIABILI Per ogni risorsa si possono dichiarare variabili usando tipi semplici (booleano, intero, reale, stringa, tempo) oppure tipi definiti dall utente come array o strutture. 39

40 Le variabili posossono essere associate a dispositivi di I/O COMUNICAZIONI Ogni risorsa può condividere variabili con altre risorse usando il meccanismo di Binding (aggancio). Le risorse sono collocate su piattaforme hardware chiamate Configurazioni. Le comunicazioni tra Confiurazioni possono essere implementate con qualsiasi rete. E disponibile un driver Ethernet off-the shelf (esterno al programma) ed è possibile implementarne qualunque altro. HARDWARE Ilsoftware che implementa una risorsa in una configurazione è detto Target Kernel. Esso è disponibile off-the-shelf per Windows NT, VxWorks e OS-9. Esso può inoltre essere portato su qualsiasi hardware grazie ad un compilatore C. CODICE Le risorse programmate con il workbench sono compilate per produrre il codice TIC (Target Indipendent Code), che viene scaricato su una Configurazione per essere eseguito da un Kernel. Il compilatore può anche produrre il codice sorgente C DEBUG Sono disponibili strumenti di bebugging di alto livello, incluso un simulatore. 1 THE WORKBENCH (ambiente di lavoro) 40

41 1.1 THE PROJECT (il progetto) Il processo di installazione crea la seguente struttura di directory: Il Progetto viene memorizzato nella directory di progetto, con formato MS Access Database file (PRJLIBRARY.MDB). Come si osserva esiste una cartella per ogni configurazione e per ognuna di esse una cartella per le risorse; la gerarchia tra gli elementi di programmazione quindi è rispecchiata nella sruttura delle directory. Si può scegliere il modello mono risorsa oppure multi risorsa che contiene due Risorse in due differenti Configurazioni Connesse da una rete Ethernet. Tale modello è disponibile solo nelle versioni del workbench abilitate alla gestione delle reti. Root bin grp prj tpl progetto mono-resource multi-resource config. config. config. Eseguibili Gruppi Windows Progetti Directory individuale di progetto Una directory per ogni configurazione hardware Risorsa Una directory per ogni risorsa Modello del Progetto Nome del Modello Una directory per ogni configurazione hardware Risorsa Una directory per ogni risorsa Nome del Modello Una directory per ogni configurazione hardware Risorsa Una directory per ogni risorsa Tabella 6: Struttura Directory del progetto 1.2 LINK ARCHITECTURE (architettura dei collegamenti) La finestra Link Architecture visualiza graficamente le Risorse di un Progetto e i collegamenti di dati tra loro. Questa è la vista di default per il workbench. 41

42 figura 2: Workshop : Rappresentazione grafica del flusso di dati tra le Risorse Tale finestra è usata per: Creare Risorse. Definire i collegamenti di dati (Bindings) tra le Risorse. Definire e gestire i Gruppi di Variabili. Creare e manipolare i Programmi. Creare Funzioni. Creare Blocchi di Funzioni. Definire i collegamenti di I/O. 1.3 RESOURCE (Risorsa) Ogni Risorsa (fig. 3) viene visualizzata in una diversa finestra all interno della finestra Link Architecture. La barra del titolo include il nome e il commento riferito alla Risorsa, il pulsante per massimizzare la finestra e il pulsante Data Link (vedi dopo) per creare ed evidenziare graficamente i collegamenti di dati tra le Risorse. 42

43 figura 3: Esempio di Risorsa L ambiente di lavoro visualizza una rappresentazione grafica dei vari componenti di ogni Risorsa: Parametri (Parameters) Gruppi di Variabili (Variable groups) Programmi (Programs) Funzioni (Functions) Blocchi Funzionali (Function Blocks) PARAMETRI La voce Parameters consiste di tre sottocampi: I/O Wiring Defined Words User Data I/O Wiring (Collegamenti I/O) Consente di accedere allo strumento I/O Wiring per selezionare i dispositivi di I/O e per connettere essi con le variabili. E lo strumento che in pratica nella norma è descritto come percorso d accesso per le variabili 43

44 Defined Words (Dichiarazioni) Consente di apire il Dizionario ed editare le costanti del progetto. User Data (Dati Utente) Consente di aprire l ambiente per editare codice o dichiarazioni specifiche da inglobare nel progetto e interpretabile del kernel della macchina target. Questo oggetto potrebbe non apparire (in conformità con il Target collegato alla Risorsa) GRUPPO DI VARIABILI Fornisce un metodo per gestire le variabili ordinandole logicamente all interno della Risorsa. I gruppi divariabili sono mostrati nell albero delle variabili (Variables Tree ) e il loro contenuto è definito all interno della griglia di variabili del Dizionario (Dictionary Variables Grid ) PROGRAMMI I Programmi sono conosciuti anche come POUs (Program Organizaton Unit). Le POUs sono eseguite sul sistema Target rispettando l ordine mostrato nella sezione Linguaggi. Il tipo di linguaggio di ogni programma è mostrato con una icona alla sinistra del nome del programma stesso. All interno di una Risorsa ci sono alcune restrizioni sulle posizioni relative dei programmi che fanno parte di una certa gerarchia: Tutti i programmi SFC e FC devono essere adiacenti nel livello gerarchico. I programmi SFC Figlio o Sotto-Programmi FC devono usare lo stesso linguaggio dei loro programmi padri. 44

45 N.B. Si richiama alla sezione dedicata alla programmazione per ulteriori dettagli PROPRIETA DELLA RISORSA figura 4: Finestra di dialogo delle Proprietà della Risorsa Molte proprietà devono essere date a livello di Risorsa, intimamente legata alla macchina Target (e alla sua implementazione). Queste proprietà determinano il comportamento dei Programmi e delle macchine Hardware (per esempio il codice generato, la temporizzazione, ecc). Il numero della Risorsa deve essere unico all interno del Progetto; esso identifica il Kernel che farà funzionare il codice della risorsa. TARGET SELECT Il Target viene attaccato alla Configurazione alla quale appartiene la Risorsa. Esso può essere scelto nella finestra Hardware Architecture come una proprietà della Configurazione. Se il Target viene cambiato qui, automaticamente cambierà per tutte le Risorse che fanno parte della suddetta Configurazione. In relazione al Target prescelto, la lista dei codici disponibili può cambiare. I codici descritti di sotto sono gli unici dello standard messi a disposizione dalla CJ (CJ Standard Targets). 45

46 CODE SELECT Il codice per la simulazione è dedicato per il simulatore dell ambiente di lavoro ISaGRAF. Il simulatore non può funzionare se non viene selezionato per produrre il relativo codice. Il codice TIC (Target Independent Code) può essere eseguito dal Kernel di ISaGRAF PRO. Il codice C Strutturato può essere prodotto dal compilatore e linkato grazie alle librerie incorporate di ISaGRAF PRO per specifici Target (S.O.) 1.4 DATA LINK (collegamento di dati) figura 5: Esempio di comunicazione di dati tra le Risorse I Data Links sono la rappresentazione grafica dei legami (Bindings ) tra le Risorse (vedi fig. 5). Quando viene creato un Link, cliccando sul collegamento viene visualizzata la finestra di dialogo che permette di definire appunto tali link tra due Risorse. Da notare che i legami (Binding) rappresentano un collegamento direzionale tra due variabili, una in una Risorsa e l altra in un altra Risorsa. C è quindi un Produttore (producer ) di variabile e un Consumatore (consumer) di variabile. 1.5 ARCHITETTURA HARDWARE 46

47 figura 6: Finestra Architettura Hardware La Finestra Architettura Hardware (vedi fig.6) è usata per: Creare una Configurazione. Assegnare un target ad una configurazione. Inserire una Risorsa in una Configurazione. Trasferire Risorse tra le Configurazioni. Creare Reti. Creare una connessione tra una Configurazione e una Rete. Definire le proprietà delle Reti. Definire le proprietà di Connessione delle Configurazioni. Definire le proprietà delle Risorse di Rete. Fare i collegamenti I/O. Proprietà della Configurazione: La scelta del Target determina: Le Reti alle quali può essere connessa la configurazione e che possono essere usate nella definizione dei legami tra le variabili. I dispositivi di I/O che potranno essere usati nello strumento di connessione I/O (I/OWiring Tool). La lista delle Funzioni C e i Blocchi Funzionali che sarà possibile richiamare all interno dei programmi. 47

48 Attenzione: Cambiare il Target di una Configurazione può portare alla distruzione di tutti i collegamenti di I/O di tutte le Risorse contenute nella Configurazione nonchè le connessioni alla rete. E necessario assegnare i Targets alle Configurazioni come prima cosa nello sviluppo del Progetto; infatti le Reti sono usate per permettere la comunicazione tra due Configurazioni, e il Target assegnato alla configurazione deve supportare la Rete alla quale la Configurazione è connessa. Se una Rete non è implementata nel Target, sarà responsabilità del progettista sviluppare ed implementare un driver per la particolare Rete. Viene inoltre visualizzata una finestra di dialogo con le proprietà di connessione quando: viene creata una nuova Connessione, si fa un double-click su una Connessione esistente, selezionando il comando Properties dal menu Edit con una connessione selezionata. La lista dei parametri dipende dalla Configurazione connessa alla Rete. Essa potrebbe essere anche vuota. Alcuni parametri sono di sola lettura: per il driver ETCP (Ethernet), è richiesto il solo indirizzo IP della Configurazione. 1.6 DIZIONARIO (Dictionary) Il Dizionario (vedi 7) è uno strumento di editing per la dichiarazione delle Variabili, dei parametri delle Funzioni e dei Blocchi Funzionali, dei Tipi Utente e delle dichiarazioni del Progetto. 48

49 figura 7: Elenco delle variabili di programma I vari componenti sono ordinati con una sorta di gerarchia in un albero, per esempio, per Risorse o per Tipo. I componenti selezionati nell albero vengono visualizzati nel dettaglio in una tabella database formattato, detto Griglia (Grid ). Esso rappresenta uno strumento di editing di variabili molto potente e versatile, alla stregua di un comune database elettronico per quanto riguarda le funzioni di trattamento e movimentazione dei dati. La finestra del Dizionario (Dictionary window ) viene visualizzata nell ambiente di lavoro. I menù e le barre degli strumenti in tal caso propongono solo le opzioni del Dizionario (context menu). La parte sinistra della finestra contiene una vista ad albero gerarchica delle Variabili, Parametri, Tipi e Definizioni. Ci sono quattro alberi che possono essere usati per creare e modificare i dati. La parte destra invece mosta la tabella tipo griglia. 49

50 I vari rami dell albero forniscono modi differenti di accesso ai dati trattati dal Dizionario (rif. Tab. 7) Top Level Resources Variable Group Any Group All Variables Global Variables Programs Functions La Griglia visualizza solo le variabili di quel gruppo La Griglia contiene tutte le variabili della Risorsa La Griglia contiene tutte le variabili globali La Griglia contiene tutte le variabili locali al Programma La Griglia contiene tutte le variabili locali alla funzione Tabella 7: Albero del Dizionario GRIGLIA VARIABILI CONTROLLO SUI DATI INSERITI Viene eseguito un controllo sintattico-semantico sulle variabili gestite dal dizionario: per singola cella: La compatibilità con la norma IEC su: Nomi di Variabili, Array e Structure Dimensioni Valori Iniziali Lunghezza testo (commenti o alias) i nomi delle Variabili, Array e Strutture non possono essere gli stessi delle parole riservate Validità e range degli Indirizzi per colonna Retain : non può essere Input/Output se il tipo non è Stringa, la colonna () deve essere vuota Controllo del flusso: Internal: la cella Wiring deve essere vuota Input: la cella Wiring deve iniziare con %I Output: la cella Wiring deve iniziare con %Q 50

51 Controllo degli attributi: Può essere solo Read-only per Inputs Può essere solo Write o Free per Outputs Una variabile di tipo Inputs non può avere valore iniziale Una variabile di tipo Retain non può avere valore iniziale per tutto il database COLONNA DESCRIZIONE Name Nome della Variabile: limitato a 128 caratteri, deve conformarsi allo standard IEC Alias Qualsiasi nome. E usato nell editor LD (Ladder) Group Nome del gruppo o None Type BOOL, DINT, SINT, REAL, TIME, STRING, Array Types, Structure Types, Function Blocks ( ) Se il tipo è STRING rappresenta la lunghezza della stringa (max. 255 caratteri) Dimension La dimensione (numero di elementi) di un Array. Per esempio: [1..3,1..10] rappresenta un Array bidimensionale contenente un totale di 30 elementi Attribute Una variabile può essere read-only, write-only oppure può essere letta e scritta ( free ) Scope Global : La visibilità della variabile è estesa a tutte le POUs di una Risorsa Common : La visibilità della variabile è estesa a tutte le POUs all interno di un Progetto. (N.B. Solo le Defined Words e le variabili tipizzate possono avere visibilità di tipo common) Local : La visibilità della variabile è estesa alla sola POU nella quale è dichiarata. Tabella 8: Griglia Variabili Le funzioni IEC hanno uno e un solo Parametro di uscita, chiamato come la Funzione I nomi dei Parametri delle Funzioni e dei Blocchi Funzionali non sono duplicati I Parametri sono ordinati (Input poi Outputs) I nomi delle Variabili non sono duplicati all interno di una Risorsa I nomi delle Variabili Locali: Non sono duplicati all interno di una POU Non hanno il nome di una Variabile Globale 51

52 All interno di una Struttura, un campo non è ripetuto Il numero massimo di Parametri nelle Funzioni e nei Blocchi Funzionali è compatibile con le possibilità del Target COLONNA Direction Init.value Wiring Comment Retain Address DESCRIZIONE INPUT : Una variabile di input connessa adun canale di input di un Dispositivo di ingresso. OUTPUT : Una variabile di output connessa ad un canale di output di un Dispositivo di uscita. Internal : che non è connessa ad un dispositivo di I/O. Si può anche chiamare Memory Variable Valore che ha la variabile quando il kernel comincia l esecuzione della Risorsa. Esso può essere un valore di default, un valore definito dall utente quando la variabile è dichiarata oppure il valore di retain (mantenuto) che essa aveva quando il kernel è stato fermato l ultima volta. Cella non editabile : generata dal tool di I/O Wiring. Usa la sintassi delle variabili direttamente rappresentate Commenti dell utente in formato libero Variabile a valore ritenuto (Yes/No). Opzionale. Espresso in Esadecimale nel range da 1 a FFFF. Liberamente definito per ogni Variabile. Questo indirizzo può essere usato da un applicazione esterna per accedere al valore della variable quando la risorsa è eseguita dal kernel. Tabella 9: Griglia Variabili VALORI INIZIALI Viene applicato alle sole Variabili. Se non è immesso alcun valore, viene usato 0 (o FALSE) per default come previsto dalla norma. I valori iniziali per tipo di variabile sono specificati in tabella 10 52

53 TIPO DEFAULT DETTAGLI BOOL FALSE TRUE o FALSE DINT 0 qualsiasi altro valore intero SINT 0 qualsiasi altro valore intero short REAL 0.0 qualsiasi altro valore reale float (non double). Può essere inserito il formato scientifico (1.2E+10) STRING empty qualsiasi set di caratteri contenuti all interno degli apici, per es. hello TIME t#0s qualsiasi altro valore di tipo tempo che usila seguente sintassi : t#whxmyszms or t#z 0 = W: numero di ore 0 = X: numero di minuti 0 = Y: numero di secondi 0 = Z: numero di millisecondi i campi h, m, s o ms non sono richiesti. Se viene immesso Array initialization Structure initialization 0 or FALSE 0 or FALSE t#100, esso corrisponde a t#100ms. Tabella 10: Valori Iniziali GRIGLIA PARAMETRI La griglia dei parametri definisce l interfaccia delle Funzioni e dei Blocchi Funzionali creati nelle Risorse del Progetto. Le colonne per i Parametri sono illustrati in tabella 11 COLONNA DETTAGLI Name Nome Parametro : limitato ad un max. di 128 caratteri e conforme allo Standard IEC. Short Name Nome breve usato negli editor FBD e LD per la sola visualizzazione (max. 4 car.). Type Tipo : BOOL, DINT, SINT, REAL, TIME, STRING, Array Type, Structure Type, Function Block. ( ) Se il tipo è STRING, ( ) è la sua lunghezza (max. 255 car.). Dimension Esempio : [1..4,1..7] per un Array bidimensionale. Direction Parametro di Input, Output o Local. Comment Commenti dell utente in formato libero Tabella 11: Parametri I Parametri sono ordinati all interno del database : Input, poi Output, e infine Local. Le funzioni hanno solo un Parametro di uscita; esso deve essere un tipo semplice (per es. no Arrays o Structures). Le istanze dei Blocchi di Funzioni possono 53

54 essere definiti solo come Parametri Locali di Blocchi di Funzioni. Per chiamare un Blocco Funzionale in un altro Blocco Funzionale (nesting), è necessario creare l istanza del Blocco chiamato come Parametro Locale del Blocco chiamante GRIGLIA TIPI STRUTTURATI Viene usata per creare tipi complessi che saranno poi disponibili per le dichiarazioni di variabili, e tali nuovi tipi saranno disponibili poi nella casella Type di tutte le griglie. Arrays: COLONNA Name Elt. Type DETTAGLI Tipo dell elemento dell Array : BOOL, DINT, SINT, REAL, TIME, STRING, User Arrays, Structures ( ) Se il tipo è STRING, ( ) è la sua lunghezza (max. 255 car.). Dimension Example: [1..10] per un Array monodimensionale, [1..4,1..7] per un Array bidimensionale. Comment Commenti dell utente in formato libero Tabella 12: Array Structures: COLONNA DETTAGLI Name Nome dell Elemento : limitato ad un max. di 128 caratteri e conforme allo Standard IEC. Elt. Type BOOL, DINT, SINT, REAL, TIME, STRING, User Arrays, Structures. ( ) Se il tipo è STRING, ( ) è la sua lunghezza (max. 255 car.). Comment Commenti dell utente in formato libero Tabella 13: Strutture Per creare una struttura con un elemento dimensionale, prima si crea un Array e poi una struttura con un elemento del tipo! nome Array". I tipi ricorsivi non sono ammessi (per esempio: un campo di str1 non può essere di tipo str1 ). 54

55 1.6.4 GRIGLIA COSTANTI Le colonne per le costanti (defined word) sono espresse nella tab.14 COLONNA Word Equivalent Comment DETTAGLI Nome usato nei files sorgente ST : il primo carattere deve essere una lettera, seguito da lettere, cifre o underscore ( _ ) Una stringa compatibile con la sintassi ST, che rimpiazza la word definita durante la compilazione. Per esempio: Word = PI, Equivalent = Commenti dell utente in formato libero Tabella 14: Costanti 1.7 I/O WIRING SECTION (sezione collegamenti I/O) Come ultima cosa accenniamo alle potenzialità di gestire collegamenti remoti in rete di ISaGRAF per completare una prima panoramica sulle caratteristiche del workbench. L ambiente di lavoro mette a disposizione uno strumento completo simile al Dictionary già presentato nella sezione precedente. La parte sinistra del workspace di I/O wiring è costituito da una vista ad albero gerarchico dei dispositivi di I/O che sono stati definiti. La parte destra visualizza una tabella di variabili free (non connesse) della Risorsa corrente. figura 8: Albero delle proprietà di connessione 55

56 Una variabile di I/O è una variabile connessa ad un dispositivo di ingresso o di uscita. Essa deve essere collegata in particolare ad un canale di un dispositivo di I/O. Il wiring I/O definisce i collegamenti tra le variabili del progetto e i canali dei Dispositivi esistenti su un sistema Target. Quando viene aggiunto un Dispositivo di I/O si può usare la rappresentazione delle variabili in forma diretta (%IX1.1) per accedere al suo valore. Si possono inoltre connettere Variabili che sono già state dichiarate nel Dizionario e usare i nomi di tali variabili per accedere ai valori di I/O remoto. Il Dispositivo di accesso remoto può essere classificato in una delle due categorie: complex o simple ; tali voci corrispondono rispettivamente ad un elemento che raggruppa più dispositivi oppure ad un elemento che raggruppa più canali dello stesso tipo (Bool, DINT, SINT, REAL, STRING) e che hanno la stessa Direzione (INPUT, OUTPUT). L implementazione di un driver di un dispositivo di I/O complex equivale all implementazione di ciascuno dei Driver dei singoli Dispositivi di cui è composto. Vengono attribuiti a tale Dispositivo i parametri OEM (Original Equipment Manufacturer - impostazioni di fabbrica ) Per i Dipositivi simple è disponibile la connessione di un Array se tutti gli elementi dello stesso appartengono a canali contigui e il tipo dell Array deve essere lo stesso del Dispositivo. Anche le Strutture possono essere connesse. Il driver I/O viene scritto in codice C e implementa appunto l interfaccia tra il Kernel e i Dispositivi hardware. Esso può risiedere nelkerneloppure fuoriin una DLL (per il Target Windows NT). 56

57 2 THE TARGET Il pacchetto Target permette di: # Eseguire i progetti in modo Real Time # Integrare nuove Funzioni C e Blocchi Funzionali La parola Target ha diversi significati: # La piattaforma Hardware sulla quale il Kernel manda in esecuzione le Risorse di un Progetto. La parola appropriata in questo caso è però Configurazione. # Il Kernel stesso della macchina virtuale. Il Kernel è il software che esegue una Risorsa di un Progetto. Su ogni Configurazione possono risiedere più Kernels. La parola Target appare anche nel workbench: si può selezionare e attribuire un Targetad una Configurazione. Esso viene registrato neldatabase del Progetto e definisce molte peculiarità della piattaforma hardware nonchè le caratteristiche e le funzionalità supportate dai Kernels che operano su quella configurazione. Per esempio selezionando un Target per una Configurazione si avrà accesso a una lista di Dispositivi di I/O che possono essere usati dalle Risorse che operano su questa Configurazione. Viene data inoltre la possibilità di richiamare nei programmi specifiche Funzioni e Blocchi Funzionali C. La definizione del Target è fatta dall integratore del Kernel di ISaGRAF PRO. Si possono inoltre aggiungere Funzioni e Blocchi Funzionali C se si ha la licenza Target. Per modificare la definizione del Target si può usare MS-Access aprendo il file PLCtools.mdb che contiene diverse macro e strutture per facilitare il compito al programmatore. 57

58 KERNEL ISaGRAF PRO (Conosciuto anche come ISaGRAF PRO VirtualMachine ) è un software real-time che esegue una Risorsa di un Progetto sul vostro Target. Il Target deve essere installato su una piattaforma con un Sistema Operativo Multi-Tasking. C è, come abbiamo detto, la possibilità di espandere e di integrare i pacchetti di Funzioni e di Blocchi Funzionali in codice C per ogni tipo di Target; la differenza tra i vari Targets è il modo con il quale queste integrazioni vengono inglobate nel Kernel (per esempio, per il Windows NT essi risiedono in una DLL). 3 LINGUAGGI Un Progetto è composto da Configurazioni, cioè delle piattaforme hardware composte da una o più Risorse. Le Risorse sono suddivise in più unità di programma dette POU (Program Organisation Unit). Le POUs di una Risorsa sono connesse tra loro in una architettura di tipo ad albero. Tali unità di programma possono essere scritte usando uno dei seguenti linguaggi: $ SFC (Sequntial Functional Chart) $ FC (Functional Chart - Estensione della norma IEC ) $ FBD (Diagramma a blocchi funzionali) $ LD (Ladder) $ ST (Testo Strutturato) $ IL (Lista di Istruzioni) Le POUs possono essere $ Programmi $ Funzioni 58

59 % Blocchi Funzionali. I Programmi descrivono sia operazioni sequenziali che cicliche; I programmi ciclici vengono eseguiti ad ogni ciclo run-time del sistema Target; l esecuzione di un Programma sequenziale invece ha un comportamento dinamico. I Programmi sono collegati tra loro da una gerarchia ad albero; i Programmi di livello più alto vengono attivati dal sistema, mentre i Child-Programs (livello più basso di gerarchia - solo SFC e FC possono avere tale gerarchia) sono attivati dai loro padri. Gli stessi programmi non possono miscelare diversi linguaggi, eccetto LD e FBD che possono essere combinati in un diagramma. La gerarchia delle POUs è divisa in tre sezioni principali: % Program Section (sezione Programmi): I Programmi collocati in questa sezione rappresentano il ciclo target (ciclo della macchina). Da notare che qui i Programmi SFC e FC, che rappresentano le operazioni sequenziali, sono raggruppati insieme. % Function Section (sezione Funzioni): set di Funzioni che possono essere richiamate da qualsiasi Programma. Le funzioni in questa sezione possono richiamare altre funzioni. % Function Block Section (sezione Blocchi Funzionali): set di Blocchi Funzionali Function Blocks che possono essere richiamati da qualsiasi Programma. I FB in questa sezione possono richiamare altri FB oppure funzioni. I programmi sequenziali principali devono essere descritti con il linguaggio SFC o FC, mentre i programmi ciclici non possono essere implementati in SFC nè in FC. Qualsiasi Programma SFC può avere uno o più figli di tipo SFC. Ogni programma FC può richiamare uno o più sub-programmi FC. 59

60 Le Funzioni e i Blocchi Funzionali non possono essere descritti con i linguaggi SFC o FC. Essi possono essere richiamati però dalle azioni o dalle condizioni dei Programmi SFC e FC. I Programmi collocati all inizio del ciclo (prima dei Programmi sequenziali) sono tipicamente usati per descrivere azioni preliminari su un dispositivo di ingresso. I Programmi collocati alla fine del ciclo (dopo i Programmi sequenziali) sono usualmente implementati per garantire livelli di sicurezza per le variabili utilizzate dai Programi sequenziali, prima che i loro valori vengano trasmessi ai dispositivi di output. CHILD SFC PROGRAMS Ogni Programma SFC può controllare altri Programmi SFC di livello più basso detti Child-SFC. Esso è un Programma parallelo che può essere iniziato (started), chiuso (killed), bloccato o congelato (frozen) oppure fatto ripartire dopo essere stato bloccato (restarted) dal suo programma padre. Essi devono essere descritti entrambi in linguaggio SFC. Un Programma child SFC può avere delle variabili locali. FC SUB-PROGRAM Ogni Programma FC può richiamare uno o più Programmi FC. L esecuzione dei sotto-programmi FC viene pilotata dall FC padre, la cui avanzata viene sospesa fino al termine del programma figlio. FUNCTIONS L esecuzione di una Funzione è comandata dal programma padre. Anche qui l esecuzione del programma padre viene sospesa. Le Funzioni possono essere richiamate da qualsiasi programma in qualsiasi sezione. Una funzione può avere 60

61 variabili locali e per descriverle può essere usato un qualsiasi linguaggio eccetto SFC e FC. ATTENZIONE: & Il sistema non supporta la ricorsività delle chiamate. Verrà generato un errore in run-time se si verifica tale evenienza. & Una Funzione non può memorizzare il valore delle sue variabili locali : essa non viene istanziata e quindi non può richiamare nessun blocco funzionale. L interfaccia di una Funzione deve essere esplicitamente definita, con un tipo e un unico nome per ognuno dei suoi parametri di ingresso o per il parametro di ritorno (di uscita). Per garantire la convenzione del linguaggio ST, il parametro di uscita deve avere lo stesso nome della funzione e ci può essere un unico parametro di uscita. Ecco come assegnare il valore al parametro di uscita nei differenti linguaggi: & ST: viene assegnato attraverso il suo nome (uguale a quello della funzione): FunctionName:= ' expression( ; & IL: il valore del parametro è quello del risultato corrente (registro IL) alla fine della sequenza di istruzioni & FBD: viene assegnato attraverso il nome del blocco funzionale & LD: usando una bobina con il nome del parametro di ritorno FUNCTION BLOCK Essi possono usare i seguenti linguaggi: LD, FBD, ST o IL. Vengono inoltre istanziati cioè le variabili locali di un Blocco Funzionale vengono copiate per ogni istanziazione per cui conservano il loro valore tra un ciclo ed un altro quando vengono richiamati all interno di un programma. 61

62 L interfaccia di un Blocco Funzionale deve esseere esplicitamente dichiarata, con un tipo e un unico nome per ognuno dei suoi parametri di ingresso e di uscita. A differenza delle Funzioni, è possibile avere più di un parametro di uscita. L assegnazione dei valori alle variabili di uscita è fatta in maniera analoga a quella delle Funzioni. ATTENZIONE Quando si crea un loop con i blocchi funzionali è necessario usare variabili locali prima della chiusura del ciclo. EXECUTION RULES (regole di evoluzione) Il sistema è Sincrono. Tutte le operazioni sono scandite da un clock. figura 9: Ciclo del Target Questo sistema rende possibile: ) garantire che le variabili mantengano lo stesso valore all interno del ciclo 62

63 * garantire che un dispositivo di uscita non venga aggiornato per più di una volta in un ciclo * lavorare in sicurezza sulle stesse variabili globali tra differenti programmi * stimare e controllare il tempo di risposta dell applicazione intera. 4 LINGUAGGIO SFC L SFC (Sequential Function Chart) è il linguaggio grafico usato per descrivere operazioni sequenziali. Esso è composto da una serie di ben definiti passi (Steps), collegati da transizioni (Transitions). Ad ogni transizione è associata una condizione booleana. Una o più azioni invece sono associate ai passi. Le Condizioni e le Azioni sono esplicitate attraverso altri linguaggi (ST, IL o LD). Dalle Condizioni e dalle Azioni possono essere richiamate Funzioni e Blocchi Funzionali. Le regole di sintassi dell SFC sono quelle standard che prevede la norma: * I Programmi SFC devono avere almeno una fase iniziale. * Un passo non può essere seguito da un altro passo. * Una transizione non può essere seguita da un altra transizione. Gli elementi visualizzati e i parametri dell SFC sono: * In esecuzione, un gettone (Token) indica che il passo è attivo * StepName.x : attività del passo (valore Booleano) * StepName.t : durata dall attivazione del passo (volre di tipo time) Possono essere usati simboli di salto (Jump) per indicare la connessione la una transizione a un passo, omettendo di tracciare l arco orientato. Il salto si deve riferire al nome del passo destinazione. 63

64 Per quanto riguarda le convergenze e le divergenze esse seguono fedelmente la norma e come tale detta a proposito delle divergenze singole (scelta), non sono esplicitamente esclusive, come del resto prevede la norma. La mutua esclusività viene indicata con un asterisco in corrispondenza della divergenza stessa. MACRO STEPS (MarcoFase) E un unica rappresentazione di un gruppo di passi e transizioni. Essa deve iniziare con un passo e terminare con una transizione. La stessa macrofase non può essere richiamata per più di una volta nel programma. 4.1 AZIONI COLLEGATE AI PASSI La descrizione dettagliata delle Azioni eseguite durante l attività del passo viene fatta usando il linguaggio letterale proprio dell SFC (le istruzioni possibili) oppure un qualsiasi altro linguaggio (ST o LD). I tipi basilari di azioni sono: + Azioni Booleane con qualificatore di tipo Set, Reset o Non-Stored. + Lista di istruzioni programmata in ST, LD o IL con qualificatore Pulse o Non- Stored. + AzioniSFC (gestione di SFC children) con qualificatoriset, Reseto Non-Stored. Più Azioni possono inoltre essere associate allo stesso passo. Di seguito vengono descritti i tipi di azioni comuni: 64

65 4.1.1 BOOLEAN Un azione boolana consiste di un assegnazione di un valore ad una variabile booleana in corrispondenza dell attivazione del passo. Essa può essere una variabile di uscita o di memoria. I qualificatori hanno il significato descritto dalla norma PULSE (impulsiva) E una lista di istruzioni che viene eseguita una sola volta all attivazione del passo (qualificatore P1) oppure alla deattivazione del passo (qualificatore P0). Le istruzioni sono scritte in linguaggio ST, IL o LD NON STORED (non memorizzata) Una azione non-stored (normale) è una lista di istruzioni in linguaggio ST, IL o LD che sono eseguite ciclicamente durante il tempo in cui il passo è attivo. Il qualificatore è N SFC ACTIONS (azioni SFC) Un azione SFC è un SFC-child, lanciato o fermato in corrispondenza dell attivazione e della disattivazione del segnale di attività del passo. A seconda del qualificatore dell azione abbiamo:, N : L SFC child viene lanciato con l attivazione del passo e interrotto con la sua deattivazione., S : L SFC child viene solo lanciato all attivazione del passo; prosegue come task indipendente da questo punto in poi., R : L SFC child viene interrotto con l attivaione del passo. 65

66 4.1.5 IL (lista istruzioni) Le azioni corrispondenti a più operazioni possono essere implementate usando il linguaggio ST, IL o LD. Tali azioni possono avere il qualificatore N, P0 o P CALLING FUNCT. OR FUNCT. BLOCK Possono inoltre essere richiamate direttamente Funzioni o Blocchi Funzionali scritti in linguaggio ST, IL, LD o FBD oltre che in linguaggio C, basate sul linguaggio usato negli Action Block. 4.2 TRANSITIONS (transizioni) La condizione di solito è espressa nel linguaggio ST o LD. Questo è il cosiddetto livello 2 della transizione. I modi per programmare una condizione sono: - Programmata in ST, LD o IL - Richiamando una funzione valutando il valore restituito. ATTENZIONE: - Quando nessuna condizione viene associata alla transizione viene implicitamente assegnato il valore TRUE. - E raccomandabile non richiamare un Blocco Funzionale in una condizione SFC perchè: 1) Un FB dovrebbe essere richiamato ad ogni ciclo, tipicamente in un programma ciclico. Per esempio i blocchi contatore fanno un operazione di incremento ad ogni ciclo, i blocchi trigger hanno bisogno di memorizzare un valore booleano ad ogni ciclo per testare i fronti di salita o di discesa. 66

67 2) La condizione viene valutata solo quando tutti i passi precedenti la transizione sono attivi (non ad ogni ciclo) 4.3 EVOLUZIONE DINAMICA Le cinque regole di evoluzione dell SFC sono:. SITUAZIONE INIZIALE : E caratterizzata dai passi iniziali che sono, per definizione, attiviall inizio del programma; ce ne deve essere almeno uno in ogni programma. SUPERAMENTO DELLA TRANSIZIONE : Si dice che la transizione è abilitata (al suo superamento) quando tutti i passi che la precedono immediatamente sono attivi. Essa può essere superata se è abilitata e se la condizione ad essa associata è vera.. CAMBIAMENTO DI STATO DEI PASSI : Il superamento della transizione porta nello stato attivo tutti i passi immediatamente seguenti la transizione e contemporaneamente vengono disattivati tutti i passi a monte della transizione stessa.. SUPERAMENTO SIMULTANEO DI TRANSIZIONI : Tutte le transizioni che sono superabili vengono superate simultaneamente come pure l attivazione e la disattivazione dei passi; la priorità per questi ultimi è per la loro attivazione. 4.4 HIERARCHY (gerarchia) I Programmi SFC sono organizzati in gerarchie ad albero e ogni SFC può controllare i suoi SFC figli. Le regole di base derivanti da tali gerarchie sono:. Gli SFC che non hanno padre sono detti Programmi SFC main. I Programmi SFCMain SFC sono attivati dal sistema quando l applicazione viene lanciata. Un Programma può avere più Programmi figli 67

68 / Un Programma figlio non può avere più di un padre / Un Programma figlio può essere controllato solo dal suo padre / Un Programma non può controllare un figlio di un suo figlio 5 COMPATIBILITA CON LA NORMA 5.1 PROGRAMMAZIONE SFC Si elenca ora una serie di non-conformità riscontrate nella programmazione SFC: Non sono disponibili per le azioni tutti i qualificatori previsti dalla norma; in particolare vengono implementati i qualificatori: / N, S, R conformi / P0 e P1 estensioni del qualificatore P che agiscono rispettivamente sui fronti di salita e di discesa del segnale inoltre a seconda dei linguaggi adoperati per descrivere le azioni associate ai passi sono disonibili alcuni soltanto dei suddetti qualificatori; in particolare: / Azione Booleana : qualificatori disponibili N, S, R / Linguaggi LD, IL, ST : qualificatori disponibili N, P0 e P1 / Azioni SFC : N, S, R Notiamo esplicitamente che il qualificatore S (set) per il secondo punto è equivalente, dal punto di vista del comportamento, al qualificatore N (non-stored) per quanto detta la Norma. Per le Azioni SFC, essi servono a controllare l evoluzione di un altro SFC (child). ISaGRAF mette a disposizione anche delle istruzioni ST per il controllo di altri SFC (GSTART : equivalente a S ; GKILL equivalente a R ; GFREEZE : disabilita tutte le fasi del SFC pilotato memorizzando il suo stato in modo da poterlo ripristinare 68

69 Tabella Rappresentazione Grafica Rappresentazione testuale 40 1, 3a, 4 3a 41 1, , 2l, (2s) 3s, 3i 43 1, 2, , 2, 4, 5, , 2, 3, (7) 46 1, 2a?, 2c, 3, 4, 5a?, 5c, 6a?, 6c 57 da 1 a 14 Non richiesto Tabella 15: Tabella delle Compatibilità con GRST; infine con GSTATUS è possibile conoscere lo stato del programma SFC child attivo, inattivo, congelato ). Le istruzioni GFREEZE, GRST, GSTATUS non sono contemplate nella Norma IEC e vanno considerate a tutti gli effetti condizioni di errore per quanto dichiarato nel paragrafo 2.6.2, perchè equivalenti ad una assegnazione del tipo 0 nomepasso1.x := 0 valore booleano1 Osserviamo esplicitamente che l operazione che il qualificatore P, per azioni specificate in linguaggio SFC, avrebbe comportato, può convenientemente essere simulata ricorrendo alla macrofase che IsaGRAF consente di implementare. Per quanto riguarda i qualificatori L, D, SD, DS e SL essi non sono proprio presenti ma devono essere simulati dal programmatore di sistema. Manca la possibilità di esprimere azioni in linguaggio FBD In tabella 15 sono riportati i punti di compatibilità con la Norma (i numeri con il punto interrogativo (?) corrispondono a situazioni che è stato impossibile testare e riguardano la priorità nelle divergenze singole); il manuale di ISaGRAF dice che la divergenza con un asterisco implementa un or esclusivo ma non è chiaro se, come prevede la norma, 69

70 venga implicitamente assegnata priorità crescente da sinistra verso destra e cosa voglia effettivamente dire OR esclusivo (per esempio, se le transizioni divengono entrambe vere il risultato di una XOR è zero!). Osserviamo infine che manca del tutto nel manuale della versione demo che ho potuto testare, la dichiarazione di conformità e la documentazione di tutte le condizioni di errore che il programma dovrebbe rilevare in fase di programmazione e di run-time nonchè il tabulato sull implementazione di tutte le variabili e i parametri dipendenti dall applicazione. Ci sono solo sporadici richiami nell help in linea in merito ad istruzioni non presenti nella norma. Come estensione della Norma è da considerare tra l altro l implementazione completa di un nuovo linguaggio: FC (Flow Chart), che segue le regole classiche del diagramma di flusso. 5.2 TIPI DI DATI I seguenti tipi di dati, definiti nelle specifiche della IEC , non sono supportati da ISaGRAF: 2 INT 2 LINT 2 USINT 2 UINT 2 UDINT 2 ULINT 2 LREAL 2 DATE 2 TIME_OF_DAY (TOD) 2 DATE_AND_TIME (DT) 70

71 3 BYTE 3 WORD 3 DWORD 3 LWORD 5.3 TIPI DI DATI DERIVATI Mancano tra i tipi implementati il tipo enumerato e sottocampo definiti nel par della Norma. 5.4 TASKS Non sono presenti riferimenti ai tasks e quindi non è possibile associare ad una POU delle priorità o una qualsivoglia schedulazione. L esecuzione è quindi dipendente strettamente ed esclusivamente dal ciclo di Target descritto sopra. 71

72 Capitolo 3 RSLogix 5 Il software RSLogix 5 della Rockwell Software è sviluppato per lavorare esclusivamente con PLC Allen-Bradley e adotta un sistema di programmazione che non riflette sostanzialmente le indicazioni della norma IEC L ambiente di programmazione chiede, al momento di editare un nuovo progetto, delle informazioni generali sul tipo di PLC che si intende controllare e sulle reti di comunicazione che sono a disposizione per lo scopo. 1 Il Progetto figura 10: Finestra iniziale di proprietà Inizialmente vengono fatte delle scelte per stabilire il tipo di PLC che si sta impiegando e le sue caratteristiche, nonchè la rete con la quale tale PLC è connesso. Il tipo di piattaforma seleziona il gruppo al quale appartiene il PLC e può essere : 72

73 4 ORIGINAL PLC-5/10 PLC-5/12 PLC-5/15 PLC-5/25 PLC-5/VME 4 NEW PLATTFORM PLC-5/11 PLC-5/40 PLC-5/60 PLC-5/80V PLC-5/20 PLC-5/40V PLC-5/60V PLC-5/80L PLC-5/30 PLC-5/40L PLC-5/60L PLC-5/80VL PLC-5/30V PLC-5/40VL PLC-5/80 Questa categoria di PLC permette di creare SFC multipli, qualsiasi programma può essere descritto con linguaggio SFC; inoltre consente l interrupt di processore in ingresso (PII) per eseguire uno specifico programma per poi ripristinare l attività interrotta; consente di definire più programmi principali di controllo e più canali di comunicazione e configurare ognuno di essi per particolari funzioni. 4 SECURE PLC-5/16 PLC-5/46L PLC-5/26 PLC-5/66 PLC-5/36 PLC-5/66L PLC-5/46 PLC-5/86 Si tratta di una categoria di processori protetti nel senso che l accesso ad alcune aree di memoria (critiche o proprietarie dei programmi) è ristretto e tale livello di protezione è definibile dall utente. Si tratta dei cosiddetti privilegi di classe. 73

74 5 ETHERNET PLC-5/20E PLC-5/40E PLC-5/80E Posseggono una interfacci Ethernet integrata a 10 Mbps. 5 CONTROL NET PLC-5/20C PLC-5/40C PLC-5/60C PLC-5/80C PLC-5/20C phase 1.5 PLC-5/40C phase 1.5 PLC-5/60C phase 1.5 PLC-5/80C phase 1.5 PLC-5/46C phase 1.5 Usati per il controllo e l elaborazione delle informazioni. Offrono una comunicazione ad alta velocità tramite una porta ControlNet con due connettoribnce una porta i accesso NAP (RJ-45 ad 8 piedini con schermo). 5 SOFT CONTROLLER Il Controllo SoftLogix 5 è un sistema basato su NT che è compatibile e comunicante con i sistemi PLC-5 esistenti. Il sistema aumenta le capacità dei PLC-5 fornendo nuovi tipi di dato, istruzioni, funzioni e memoria estesa per le applicazioni. RSLogix 5 può trattare progetti e file di documentazione che sono stati sviluppati usando qualunque altro pacchetto software della Rockwell basato su software di 74

75 programmazione in ambiente DOS(Serie AI5 oplc ) o Windows (RSLogix 5 o WINtelligent Logic 5), usando sistemi di conversione da un formato ad un altro. 1.1 Files del Progetto I file generati da RSLogix 5 sono elencati di seguito : 6 file di informazione sul processore 6 informazioni di configurazione I/O 6 files di Programma 6 files di tabelle di dati 6 files di Database 6 files di linguaggio Testo Strutturato 6 files SFC (Sequential Function Charts) 6 files di Backup 2 L ambiente di lavoro figura 11: Ambiente di lavoro RSLogix 5 75

76 L ambiente di lavoro è organizzato su due finestre principali; una contiene una visualizzazione ad albero di tutti i componenti del progetto mentre l altra il file selezionato nella prima e che può essere editato. La vista ad albero presenta le seguenti sezioni : 7 Controllore Proprietà Stato processore Configurazioni di I/O Configurazione e stato dei canali di comunicazione Password e privilegi 7 Files dei programmi 7 Files di dati 7 Files di forzamenti 7 Monitoraggio dei dati 7 Andamenti dinamici dei programmi (Trends) 7 Database con : Tabella Simbolo/indirizzo Tabella Commento istruzioni Tabella Commento di Rung(s) - Serve ad inserire dei commenti nei programmi ladder e separare blocchi di Rung che esprimono una certa operazione. Raccoglitore di Simboli/indirizzi Tabella Gruppi di Simboli - Permette di specificare dei nomi di gruppi da utilizzare per caratterizzare un insieme di simboli/indirizzi e renderne più agevole la comprensione e lo scambio di dati tra programmi. 76

77 3 Privilegi di classe E implementata inoltre nel programma un intera sezione che si occupa di gestire i PLC secure cioè quelli protetti e mandare ad essi i necessari comandi per salvaguardare le zone di memoria, i canali di comunicazione e le porte di I/O che si vogliono tenere sotto controllo per proteggerli eventualmente da modificazioni accidentali o non autorizzate dal programma supervisore. Il sistema rispecchia essenzialmente quello del PLC che si sta utilizzando. Viene implementata inoltre una vera e propria gerarchia assegnando diversi livelli e password di accesso. RSLogix 5 permette di definire fino a 4 classi di privilegio, ognuna delle quali permette determinate operazioni e con una propria password per restringere l accesso alle funzioni e ai file del processore. Le restrizioni riguardano alcune funzionalità (creare o cancellare file, lettura e/o scrittura in memoria, cambiare il modo di funzionamento del PLC, forzare i canali di I/O, forzare le transizioni negli SFC, editare password), i privilegi di lettura e scrittura su determinati canali di comunicazione, i privilegi su determinati file di dati o di programma, ecc.. Si possono poi stabilire i privilegiper un singolo nodo o PLC in rete (Node privileges) indipendentemente da quelli assegnati al canale di comunicazione al quale fa capo il nodo. 4 Sequential Functional Chart Il metodo di programmazione con SFC viene qui presentato come modello per ridurre programmi di complessi sistemi di controllo ad un livello di strutturazione molto 77

78 elevato. Le istruzioni contenute in ogni passo vengono descritte come semplici reti Ladder e, dove il PLC lo permette, con istruzioni in testo strutturato ST comunque non pienamente compatibile con la norma. In fase di editing i passi e le transizioni sono sempre inseriti o cancellati insieme. Non c è possibilità di separarli ad esclusione dei passi iniziale e finale. 4.1 Passo Un passo rappresenta uno stato di macchina indipendente. Una sequenza di istruzioni ladder viene eseguita ripetutamente, dall alto verso il basso, finchè la condizione logica associata alla transizione non diventa vera e permette il passaggio del programma verso il passo successivo. I passi sono identificati con il numero o con il nome del file che contiene le istruzioni da eseguire e che può essere un file SFC, ladder e quando è disponibile ST. A seconda che la piattaforma sia quella Original o NewPlattform, l aspetto dei passi è diverso; in particolare, nel secondo caso viene implementato il blocco Action Block descritto dalla norma. I processori PLC-5 Enhanced (New Platform) possono avere fino a otto azioni per passo, dove per azione si intende la sequenza di istruzioni contenuta in un file editato dall utente; ciò consente di rappresentare meglio le fasi operative del programma che si sta eseguendo e renderlo più leggibile. 4.2 Transizione Rappresenta la condizione logica che permette al processore di passare da un passo ad un altro. La transizione diventa vera quando il rung della transizione con la bobina EOT 78

79 (End Of Transition) diventa vera. L unico modo quindi per esplicitare la condizione sulla transizione è con un rung di ladder, modo assolutamente insufficiente per la norma. La transizione è identificata con un numero che coincide con il numero del file che contiene la sequenza ladder con la bobina EOT. 4.3 Divergenza selettiva Viene in questo caso implementata una unica regola di priorità per eseguire l OR esclusivo e cioè se più transizioni diventano vere contemporaneamente, il ciclo di programma continuerà nel ramo più a sinistra. Notiamo esplicitamente quindi che non è possibile implementare in tal caso un semplice OR se più transizioni diventano vere, condizione non esplicitamente vietata dalla norma ma sconsigliata dal buon senso, nè apporre una sincronizzazione (che tra l altro sarebbe inutile visto l OR esclusivo) alla fine dei path in parallelo. 4.4 Divergenza parallela Vengono eseguiti contemporaneamente più rami e il processore divide il tempo per ogni path. E equivalente ad una struttura AND. Da notare che in questo caso c è un unica transizione al termine della sequenza in modo da realizzare anche una sincronizzazione finale dei path che viene automaticamente inserita. Notiamo a questo punto che non è consentito che un path termini e il programma prosegua mentre altri path della divergenza sono ancora in esecuzione, cioè non c è possibilità di inserire una semplice convergenza dopo un parallelismo ma è necessaria appunto una struttura sincronizzazione. 79

80 Il processore esegue il parallelismo eseguendo le istruzioni da sinistra a destra e dall alto verso il basso in modo che sembrino essere eseguite in parallelo. 4.5 Parametri della lista di azioni La finestra di dialogo della lista di azioni è disponibile solo per i processori PLC-5 Enhanced. 8 Azioni del Passo : ogni passo può avere fino a 8 azioni. 8 File di Programma : si può inserire il numero del file di programma che contiene le istruzioni dell azione, oppure selezionare il nome di una rete ladder, di un subprogramma SFC, o di un testo strutturato. 8 Qualificatore di azione : i qualificatori disponibili rispettano la norma; in particolare vengono introdotti i due qualificatori P0 e P1 al posto del qualificatore P per le azioni impulsive in corrispondenza rispettivamente del fronte di discesa o di salita della variabile che segnala l attività del passo. Essi sono : N (Non-Stored) L azione termina in corrispondenza della deattivazione del passo. S (Set/Stored) L azione continua anche dopo la deattivazione del passo. R (Reset) Una azione preventivamente memorizzata con iqualificatoris, SD, SL, o DS termina. L (Time Limited) L azione inizia quando il passo diviene attivo e continua finchè o il passo diviene inattivo o trascorre un certo intervallo di tempo dall attivazione. D (Time Delay) Parte un cronometro quando il passo diviene attivo. Se il passo è ancora attivo dopo l intervallo di tempo, l azione viene eseguita finchè il passo non viene disattivato. P1 (Rising Edge Pulse) L azione parte quando il passo diviene attivo e viene eseguita una sola volta. P0 (Falling Edge Pulse) L azione parte quando il passo viene disattivato e viene eseguita una sola volta. 80

81 SL (Stored and Time Limited) L azione parte quando il passo viene attivato e viene eseguita continuamente per un certo intervallo di tempo oppure finchè non viene resettata (indipendentemente dall attivazioe o deattivazione del passo). SD (Stored and Time Delayed) Un cronometro parte quando il passo viene attivato e l azione viene eseguita continuamente dopo un certo intervallo di tempo finchè non viene resettata (indipendentemente dall attivazioe o deattivazione del passo). DS (Delayed and Stored) Un cronometro parte quando il passo viene attivato e l azione viene eseguita continuamente dopo un certo intervallo di tempo (se il passo è ancora attivo) finchè non viene resettata. SFC (Subchart) Viene usato per indicare una azione escritta da un subprogramma SFC. Va considerato una estensione dei qualificatori previsti dalla Norma. 9 Elemento Temporizzatore (Timer Element) : disponibile solo se viene selezionato un qualificatore temporale (L, D, SL, SD, o DS). Bisogna inserire il numero del timer (0-999) che deve essere usato per questa azione del passo. 9 Risoluzione del Timer (Timer Resolution) : può essere 10ms o 1s. 9 Presettaggio Timer (Timer Preset) : valore iniziale del timer. 9 Timer Address : indica l indirizzo fisico del timer. E un campo read-only. 9 Timer del passo (Step Timer) : serve a monitorare il tempo trascorso dall attivazione di ogni passo e quindi a capire quanto velocemente si muove il nostro processo. Si possono far partire anche altri programmi basati su una combinazione dei passi attivi; specificando quali passi si vogliono monitorare si possono usare programmi ladder basati su tali timer per controllare il flusso del programma. Si possono monitorare fino a 1000 passi 1. : Questo dipende essenzialmente dal fatto che ci sono a disposizione del PLC 1000 timer complessivamente 81

82 4.6 Forzare una transizione Solo per processori PLC-5 Enhanced. E possibile, una volta abilitata la possibilità di forzamento, forzare il superamento di una transizione oppure bloccarla, lavorando online con il PLC. 4.7 GOTO Permette di muoversi all interno del programma saltando intere sezioni di programma, e riprendere l esecuzione in un dato punto. Tale punto specifico è indicato da una label. 4.8 LABEL Specifica il punto nel quale dovrà riprendere l esecuzione di un programma dopo un salto con GOTO. Si possono inserire come etichette i numeri da 001 a MacroFase (SFC macro) Una macro è una porzione di un SFC condensata in un unico passo. Può contenere un intero ramo o una coppia passo/transizione. Viene visualizzata con un rettangolo con una doppia linea sui bordi verticali. Con un doppio click viene espanso. 5 Compatibilità con la norma Il software RSLogix5 è progettato per controllare e gestire i PLC della Allen Bradley per cui le sue funzionalità sono strettamente correlate a quelle del processore che deve essere gestito. Ad esempio, vengono implementati soltanto i linguaggi di programmazione SFC e Ladder Diagram e, quando il processore PLC lo permette, il linguaggio Testo 82

83 Strutturato. Comunque per quanto riguarda tali linguaggi essi non rispondono agli standard della norma ma piuttosto alle istruzioni effettivamente implementate su ogni PLC. Se si sceglie invece come piattaforma quella SoftLogix 5 basata su controllo realtime NT, viene offerta una più ampia gamma di programmazione e istruzioni aggiuntive (tradotte poi dal software) e tutti e tre i linguaggi di programmazione che diventano disponibili per ogni PLC-5. Non è possibile implementare funzioni o blocchi funzionali richiamabili all interno di altriprogrammi; le istruzionidi un programma SFC, che rappresenta il più delle volte il Main Program, vengono scritte in LD o in ST (in formato Allen Bradley) oppure sono costituite da sub-sfc. E completamente assente, o quanto meno non esplicitamente implementato, il concetto di Configurazione, Risorsa e Task per la schedulazione dei programmi; anche in questo caso si fa riferimento alla capacità dei sistemi operativi delle macchine PLC. Per quanto concerne la programmazione SFC, si rimanda alla sezione precedente, rimarcando il fatto che per mantenere la compatibilità con i sistemi PLC Allen Bradley esistenti, a seconda della piattaforma che si usa, sono o non sono disponibili le caratteristiche elencate, che tentano un approccio con la Norma, quali ad esempio il blocco Action Block e i qualificatori d azione. 83

84 Capitolo 4 Una versione accademica del Sequential Functional Chart In questo capitolo viene presentato il linguaggio SFC così come trattato al corso di Ingegneria e Tecnologia dei Sistemi di Controllo. La sintassi è leggermente diversa da quella della norma anche se le regole di evoluzione sono le stesse. In ambito accademico tale linguaggio, insieme alla rappresentazione con reti di Petri, si presta bene a descrivere ed analizzare i sistemi ad eventi. 1 Gli elementi di base Per quanto riguarda gli aspetti grafici come pure le regole di evoluzione, essi sono pienamente rispondenti alla Norma. 1.1 Passi Ad ogni passo o fase viene associato un numero n per identificarla e un marker di fase contraddistinto con Xn. La Norma prevede un identificativo alfanumerico con il marker associato del tipo xxx.x (dove xxx rappresenta il nome della fase). 84

85 La variabile temporale associata al passo che la norma indica con xxx.t e che contiene il tempo trascorso dall attivazione della fase xxx, non è esplicitamente implementata ma viene associata alla condizione di superamento della transizione attraverso una variabile booleana indicata con t/xn/d inizialmente nulla; diventa 1 (TRUE) quando il tempo trascorso dall ultima attivazione continuata del passo Xn supera il valore d, e vale 0 (FALSE) quando il passo viene deattivato. Può quindi tra l altro essere utilizzata per implementare manualmente il comportamento delle azioni che richiedono i qualificatori temporali nel blocco Action Block descritto dalla Norma e qui non implementato. 1.2 Transizioni Le transizioni sono indicate con Tn dove n è il numero della transizione. Notiamo esplicitamente che, in alcuni linguaggiproposti da alcuni costruttori di PLC, se più transizioni sono superabili contemporaneamente inserite in una scelta, viene superata solo quella con priorità più elevata. Il linguaggio proposto dal teso rispetta invece le regole fissate dalla Norma, prevedendo il superamento contemporaneo di tutte le transizioni. 1.3 Tipi di Azioni La azioni vengono descritte in linguaggio naturale al fine di rendere comprensibile il funzionamento e facilitare la successiva codifica in uno dei linguaggi supportati dai PLC. 85

86 Le azioni possono essere caratterizzate da qualificatori a cui sono associati particolari simboli grafici e che rappresentano un sottoinsieme dei qualificatori descritti dalla Norma : Azione Continuata E il tipo di azione normale (di default) che viene attivata e disattivata in corrispondenza dell attivazione e della disattivazione della fase alla quale è associata. Non è previsto alcun simbolo grafico particolare per rappresentarla e equivale al qualificatore N Azione Condizionata Rappresenta una novità rispetto alla Norma e consiste nel fatto che l azione viene eseguita non solo se il passo a cui è associata è attivo ma deve essere vera anche una condizione booleana generica. E indicata graficamente con una freccia rivolta verso il blocco della fase sulla quale viene esplicitamente indicata la condizione di attivazione Azione Limitata nel Tempo E un caso particolare di azione condizionata nella quale però la condizione è espressa dalla variabile temporale (booleana - vedi sopra) associata al passo e negata. Simula il qualificatore L della Norma Azione impulsiva E l implementazione del qualificatore P della norma e graficamente si indica facendo seguire al nome dell azione un asterisco ( NomeAzione *). 86

87 1.3.5 Azione Ritardata Analoga all azione Limitata nel Tempo, viene implementata ponendo come condizione nell azione Condizionata la variabile temporale associata al passo, in modo che l azione venga eseguita dopo un certo intervallo di tempo. Simula il qualificatore D della Norma Azione Memorizzata Viene indicata con SET NomeAzione e simula il comportamento del qualificatore S. La keyword RESET simula invece il qualificatore R. Combinando tale azione con un condizionamento di quelli appena elencati è possibile implementare il comportamento di uno qualsiasi dei qualificatori descritti dalla Norma. 1.4 Le Strutture Classiche Si tratta delle strutture di scelta, convergenza, parallelismo e sincronizzazione pienamente compatibili con le stesse descritte dalla Norma. La struttura Semaforo e Sincronizzazione Locale sono delle particolari implementazioni delle strutture precedenti e servono la prima per realizzare una mutua esclusione tra due segmenti di SFC che non devono funzionare contemporaneamente (perchè magari agiscono sulla stessa risorsa) e la seconda a sincronizzare appunto due sequenze differenti che stanno operando in parallelo. 87

88 1.5 Macrofase e Macroazione La macrofase viene introdotta per raggruppare un intero segmento di SFC in un unico passo. Il segmento di SFC deve essere costituito da un unica fase di ingresso ed un unica fase di uscita. Dal punto di vista della compatibilità con la Norma, può essere considerata a tutti gli effetti come una fase a cui è associato un blocco di azioni descritte a loro volta in linguaggio SFC. La macroazione è un azione che ha effetti sulla condizione e lo stato di un altro SFC ed è introdotta per realizzare gerarchie tra SFC. Le macroazioni definite sono : forzatura, sospensione e bloccaggio. Diciamo esplicitamente che, siccome la macroazione comporta un cambiamento dello stato di un SFC e quindi una assegnazione indiretta del flag booleano di fase (xxx.x = TRUE/FALSE), tale azione è considerata per la norma un errore e quindi assolutamente non compatibile con essa Forzatura : Permette ad un SFC di livello gerarchico superiore di forzare quelli di livello inferiore ad assumere un certo stato (fasi attive). Viene indicata con FORZARE X:Y dove X è l SFC da forzare mentre Y è l insieme dei passi attivi. L effetto è equivalente all aggiunta di una transizione superabile in uscita da tutte le fasi che non devono diventare attive, e di una in ingresso a quelle che lo devono diventare. Osserviamo che una tale tipologia, con transizioni appese però è puramente esplicativa e non rispetta le regole di sintassi di un SFC. E comodo invece immaginarla così per rendere il lavoro di traduzione in Ladder più semplice. 88

89 1.5.2 Sospensione : Analoga alla forzatura ma con l attivazione di nessuna fase. E indicata con FORZARE X:. Bloccaggio : L effetto è di arrestare l evoluzione dell SFC controllato e quindi bloccarne il superamento di tutte le transizioni. Viene indicato con FORZARE X:* ed equivale ad inserire una AND Xn a tutte le transizioni dell SFC controllato, con Xn = fase abbinata alla azione di bloccaggio. E importante sottolineare come la struttura di linguaggio SFC appena descritta si presta ad una traduzione automatica in linguaggio Ladder attraverso delle regole semplici e lineari. (cfr.[1] ) 89

90 Capitolo 5 Sviluppo software di un editor SFC 1 Perchè realizzare un editor SFC Abbiamo visto dai precedenti capitoli che le aziende costruttrici di PLC realizzano software specifico per la programmazione e la supervisione delle loro macchine. Tali kit di sviluppo (i cosiddetti S.D.K. - Software Development Kit) sono specifici per la macchina sulla quale devono essere installati e quindi di solito inglobano nei loro linguaggi le funzionalità tipiche di un ben determinato PLC. Ci sono poi altre aziende produttrici di solo software di sviluppo, come ISaGRAF della CJ International, che tentano di offrire all utente una piattaforma standard di programmazione con la possibilità di acquistare pacchetti di interfacce per adattare il software standard alla macchina target specifica. La norma IEC dà uno standard di riferimento per i linguaggi di programmazione dei controllori programmabili e a tale norma fanno più o meno riferimento le aziende produttrici di software, cercando di uniformare il loro prodotto ad uno standard che esiste sulla carta ma che è ancora lontano dall essere raggiunto. 90

91 Si capisce chiaramente come avere a disposizione un unica sintassi e un unica orgnizzazione dei programmi e delle risorse per qualunque modello di macchina programmabile nell ambito dell automazione industriale porti a notevoli vantaggi, quali ad esempio poter far lavorare insieme macchine diverse o programmare un unica volta il software per qualsiasi controllore che faccia parte di un unico progetto di controllo, anche molto complesso. Nasce quindi l idea di realizzare un software aperto, semplice, potente e versatile, che contempli i contenuti della Norma riguardanti il Sequential Functional Chart e che possa interfacciarsi col mondo esterno attraverso un semplice file di testo (Meta Language File - MLF) che descrive testualmente l intero SFC o più SFC (un progetto) e che possa venir elaborato in seguito da altri tools di sviluppo implementabili in ambito accademico per supporto alla ricerca e all analisi di tale linguaggio. Possiamo ad esempio pensare ad un tool di traduzione che converte il linguaggio SFC in linguaggio Ladder specifico per una certa marca di PLC, visto che anche per tale linguaggio non esiste standard di fatto : operazione questa molto semplice e soprattutto essenzialmente meccanica alla luce del metodo di traduzione descritto nel testo di riferimento del corso di Ingegneria e Tecnologia dei Sistemi di Controllo (cfr [1, pagg 89-93] ) Il meta linguaggio inoltre potrebbe essere interpretato e trasformato in un file compatibile con i pacchetti software che analizzano, dal punto di vista statistico, il comportamento delle Reti di Petri, visto che un SFC è in pratica una rete di Petri. 91

92 2 Obiettivi del programma Il programma si prefigge di essere semplice da usare e versatile (mi si consenta, lo è più degli editor SFC analizzati in IsAGRAF o in RsLogix). Dovendo essere un editor di un linguaggio che per sua natura è grafico, sono state implementate le funzioni di manipolabilità di oggetti grafici sullo schermo che sono proprie di un CAD. Particolare cura è stata data all aspetto di visualizzazione e di stampa in WYSIWYG (What You See Is What You Get) con funzioni di Zoom e Scalatura; in fase di definizione di pagina (Page Setup) è possibile scalare il grafico ingrandendolo o rimpicciolendolo e distribuire l intero progetto su più pagine contigue. Il software è stato scritto in Microsoft Visual C++ v.5-32bit, facendo largo uso delle MFC 4.2 (Microsoft fundation classes) di Windows e quindi è compatibile con la piattaforma Windows 95 e successive versioni. Ciò perchè tale linguaggio si presta naturalmente ad implementare interfacce grafiche di elevata verstilità e potenza; inoltre il linguaggio C++ è quello più usato in ambito accademico e quindi mantiene una sorta di compatibilità con il lavoro universitario, facilitando eventuali modifiche o aggiornamenti a posteriori. Altro obiettivo del programma è l analisi sintattica del linguaggio ; attraverso un algoritmo di Check vengono individuati errori o avvertimenti (warnings) che possono essere stati commessi durante l editing dell SFC e che vengono graficamente segnalati con un diverso colore degli oggetti. Infine la traduzione in un Meta Linguaggio che è in corrispondenza uno a uno con il linguaggio grafico. E stato implementato anche un algoritmo di Import da Meta Linguaggio a SFC grafico che tenta di risolvere (e ci riesce nel 99% dei casi) il problema 92

93 (non semplice) del piazzamento di oggetti sullo schermo senza conoscerne le posizioni a priori ma solo la gerarchia tra gli elementi del grafo. L interfacciamento del software con gli altri tools di analisi e sviluppo è esemplificato nella fig. 12, dove i blocchi in grassetto sono quelli implementati dal sottoscritto. figura 12: Collegamenti dell editor con tools esterni. 93

94 3 Documentazione esterna del programma figura 13: Logo del Programma Dati generali : Nome Programma : SFC Editor Autore : Antonio Scaglione Revisione : 1.0 in data 15/10/1999 Piattaforma : Windows 95/98 32bit Hardware minimo : PC486DX66, 8Mb RAM 3.1 Motivazione Generale Il programma permette di editare graficamente uno o più SFC che fanno parte di un unico Progetto, di fare un analisi sintattica secondo le regole proprie dell SFC standard e di importare ed esportare un progetto in un Meta Linguaggio, interpretabile eventualmente da altri tools di sviluppo. Il programma gestisce le seguenti funzionalità : ; Editing, inserimento e modifica posizioni e proprietà dei seguenti oggetti Passo Transizione Arco Orientato 94

95 Oggetti Multilink < Check Sintattico < Operazioni di Stampa Preview Page Setup (Splitting) Printer Setup < Import/Export file in Meta Linguaggio (MLF) < Gestione Files SFC singoli Project files MLF files 3.2 Istruzioni per l uso Ogni elemento di un SFC viene contraddistinto da un nome formato da una lettera (S per la fase - T per la transizione) e da un numero di 3 cifre in cui la prima cifra corrisponde al numero dell SFC di cui l elemento fa parte; ad esempio l elemento S235 rappresenta lo step 35 dell SFC numero 2. Ad ogni elemento dell SFC viene abbinato un record che contiene le informazioni associate all elemento stesso. Così ad ogni passo (o Step) sono associati : < il nome dell azione associata al passo < il qualificatore d azione < una variabile di tipo tempo < una variabile booleana che indica se esso è un passo iniziale Ad ogni transizione invece è associata 95

96 = la condizione di superamento (espressa in linguaggio testuale in formato libero) Gli oggetti si muovono nell area di lavoro su una griglia che facilita le operazioni di allineamento. Tutte le operazioni possono essere eseguite con il solo mouse. La finestra del programma al momento in cui viene lanciato è illustrata in fig.14. figura 14: Finestra Principale (Main Window) Finestra Principale (Main Window) Gli elementi presenti nella finestra sono : = Una ToolBar = Un Menù = Un selezionatore a linguette (Tabs) per i vari SFC = L area di Lavoro con una griglia Andiamo a descrivere in dettaglio i pulsanti della ToolBar: Gestione File (File Managing) 96

97 Il primo è il pulsante di New Document che permette di cancellare tutto il progetto e di iniziarne uno nuovo. Poi ci sono tre coppie di pulsanti: La prima coppia permette rispettivamente di aprire o salvare un progetto; vale a dire che verranno memorizzate su file o caricate le informazioni relative ad ognuno degli SFC che compongono il progetto. La seconda coppia di pulsanti permette rispettivamente di caricare o salvare su disco un solo SFC, selezionato con il Tab corrispondente evidenziato. Ciò significa che se si carica un file SFC esso prenderà il posto corrispondente al Tab selezionato : ognuno degli elementi che compongono l SFC sarà numerato di conseguenza per evitare duplicazioni dei nomi tra gli elementi dei vari SFC che compongono il progetto. L ultima coppia di pulsanti permette rispettivamente di Importare (Imp) o Esportare (Exp) un progetto intero in Meta Linguaggio Syntax Check Proseguendo con i pulsanti troviamo il pulsante di Check (Chk) che serve a produrre un controllo sull SFC corrente descrivendone gli eventuali errori di sintassi o producendo i cosiddetti avvertimenti (warnings). Gli errori che saranno prodotti evidenzieranno : > Oggetti flottanti ossia non agganciati a niente > Transizioni con un link appeso > Ogetti di convergenza e divergenza con qualche link non agganciato > Ambiguità di flusso per la direzione degli archi orientati : per esempio entrambi gli archi entranti in un passo.? Si rimanda alla sezione dedicata al Meta Linguaggio per approfondimenti. 97

98 Gli avvertimenti o warnings sono invece per una fase : uno dei link non è agganciato Un esempio di output è dato nella fig. 15 figura 15: Output Check Edit Tools Attraverso questi 9 pulsanti è possibile inserire qualsiasi elemento all interno del nostro SFC. In sequenza i pulsanti sono associati ai seguenti oggetti Fase Iniziale (initial Fase Transizione Arco Orientato (Oriented Divergenza Sincronizzazione Selezione Convergenza Tool di Selezione (Select Tool) 98

99 Scegliendo uno di questi pulsanti (tranne l ultimo) il programma consente di inserire l oggetto corrispondente e di linkarlo direttamente qualora la sua posizione risulti compatibile con le regole sintattiche di un SFC; tale operazione viene segnalata acusticamente con un beep e visivamente con una croce (cross) in corrispondenza del punto in cui verrà creato l arco. L arco viene automaticamente orientato dall alto verso il basso secondo il normale flusso del programma. Lo strumento di selezione consente appunto di selezionare gli oggetti (direttamante oppure tramite net-selection - o a rete ), di cancellare (tramite il tasto CANC ) e di spostare gli oggetti selezionati (colorati in rosso) trascinandoli con il mouse. Osserviamo che durante l operazione di spostamento degli oggetti sullo schermo, essi non vengono collegati con altri oggetti, anche se le loro posizioni risultano compatibili con le regole sintattiche: bisogna provvedere ad un collegamento manuale attraverso lo strumento dell arco orientato Visualizzazione dettagliata Il pulsante successivo fa da toggle tra la visualizzazione dettagliata e non. Nella visualizzazione dettagliata accanto ad ogni passo compare un rettangolo con il qualificatore d azione e il nome dell azione associata al passo, mentre accanto ad ogni transizione viene visualizzata la condizione di superamento Impostazione dimensioni documento 99

100 Attraverso questo pulsante è possibile specificare le dimensioni del documento (in mm) relativo all SFC selezionato. Compare una finestra di dialogo che consente di immettere le nuove dimensioni oppure scegliere, tramite il pulsante di Auto Size di inserire le dimensionidel documento automaticamente in modo che esso racchiuda tutto l SFC. figura 16: Finestra di proprietà del documento Refresh L ultimo pulsante consente di fare il refresh dello schermo qualora, in fase di scorrimento ad esempio, la qualità del grafico venga deteriorata da particolarimancanti o non correttamente aggiornati. 3.3 Menù figura 17: Menù Vengono ora sommariamente descritte le voci del menù 100

101 3.3.1 File Sono presenti i comandi di salvataggio e caricamento degli SFC o dei progetti e i comandi di stampa, anteprima di stampa e di setup della pagina in fase di stampa. Tali comandi verranno dettagliatamente descritti nella sezione Stampa MLF Contiene due voci: una per esportare in Meta linguaggio il progetto, l altra per importarlo. Notiamo esplicitamente che quando viene esportato un progetto in Meta Linguaggio, automaticamente parte la procedura di verifica sintattica e solo se il progetto risulta corretto viene creato il file MLF. Rimandiamo alla sezione dedicata al Meta Linguaggio per approfondimenti View Tale voce consente di nascondere o visualizzare la barra degli strumenti e/o la barra di stato Zoom Ci sono 7 possibilità di zoom visivo con scalatura dal 40% al 250%. Ciò risulta utile per evidenziare particolari di un SFC oppure per visualizzare SFC molto grandi sullo schermo Edit SFC Le tre voci del menù Edit SFC servono a gestire il progetto e gli SFC che lo compongono. Esse sono 101

102 A Edit Name : Consente di immettere un nome simbolico per l SFC che inizialmente ha il nome NoName A Add SFC : Consente di aggiungere al progetto un nuovo SFC. Al massimo sono previsti 9 SFC per progetto (tale limitazione può comunque facilmente essere superata dato che viene tutto gestito dinamicamente e non con array) A Remove SFC : Consente di eliminare un SFC dal progetto previa richiesta di conferma del comando. 3.4 Area di Lavoro ed Editing L area di lavoro ha funzionalità di scrolling in orizzontale e in vericale in modo da spaziare all interno del documento i cui confini sono evidenziati da un rettangolo. All interno del documento ci sono poi dei punti equispaziati che rappresentano la griglia sulla quale è possibile posizionare gli oggetti. Le proprietà di ognuno degli oggetti possono essere modificate facendo doppio click sull oggetto stesso attraverso una finestra di dialogo che consente di modificarene le caratteristiche. Vediamo in dettaglio ognuna di queste possibilità : Passo (Step) In fig. 18 è rappresentata la finestra di dialogo per il passo. In essa si evidenziano i seguenti campi : A Step Number : E possibile modificare il nome del passo immettendo un numero compreso tra 0 e 99. A Initial : Casella a spunta (checkbox) che indica se la fase deve essere una fase iniziale per l SFC A Action Name : Il nome simbolico associato all azione del passo 102

103 figura 18: Finestra di proprietà per il passo B Action Qualifier : Con una casella lista a caduta (drop list) è possibile scegliere il qualifiatore d azione legato all azione stessa del passo B Time duration : Indica, in formato standard IEC1131-3, il tempo associato al passo e ha senso qualora il qualificatore d azione sia un qualificatore temporale B Set Timer : Il pulsante fa apparire un altra finestra di dialogo che consente di immettere la variabile temporale di cui al punto precedente. Essa si compone dei campi giorni (days), ore (hours), minuti (minutes), secondi (seconds) e millisecondi (milliseconds), ed è rappresentata in fig 19 figura 19: Finestra di dialogo per il settaggio del tempo Transizione La finestra di dialogo per la transizione (fig. 20) è essenzialmente costituita da una casella di edit (editbox) in formato libero. La valutazione sintattica della condizione di 103

104 figura 20: Finestra di proprietà per la transizione superamento non viene in alcun modo analizzata rimandando ai tools che riceveranno in ingresso il Meta Linguaggio tale onere Oggetti di convergenza e divergenza (multilink) figura 21: Finestra di proprietà per gli oggetti multilink La finestra di proprietà (fig. 21) è caratterizzata da due campi numerici; il primo indica il numero di link paralleli mentre il secondo lo spazio (in unità 2*griglia) tra i link stessi. 3.5 Stampa Particolare cura è stata posta alla sezione di stampa. Attraverso il comando di Page Setup è possibile dividere il documento su più pagine. Con riferimento alla figura 22 si può osservare il controllo a slitta con il quale si possono scalare le dimensioni del documento ingrandendolo fino a 3 volte o riducendolo al 10% della dimensione originale. A seconda poi delle dimensioni della pagina settate tramite i parametri della stampante, vengono calcolati il numero di pagine da stampare per produrre una stampa 104

105 figura 22: Finestra di Page Setup a porzioni in modo da poter ricostruire l intero documento ravvicinando i singoli fogli stampati. Viene presentato anche un preview di come il documento verrà suddiviso (splitted) tra le pagine; nell esempio il documento di figura (di dimensioni A4) viene ingrandito del doppio e suddiviso su 6 pagine A4 orizzontali. E possibile inoltre cambiare direttamente da questa finestra le impostazioni della stampante e del foglio di carta. Prima della stampa vera e propria è possibile anche vedere una anteprima di stampa selezionando Print Preview dal menù File. 3.6 Meta Linguaggio La necessità di poter usare l editor come strumento al quale appoggiare altri tools di sviluppo ha portato alla creazione di un algoritmo che traducesse l SFC editatato graficamente in un linguaggio testuale semplice e in corrispondenza uno a uno con l SFC originale. Il programma, come già detto, crea un file con estensione.mlf editabile 105

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

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

NORMA CEI EN 61131. PLC: programmazione. PLC: programmazione. PLC: programmazione. Automazione Industriale 3. Automazione Industriale NORMA CEI EN 61131 Ing.Francesco M. Raimondi www.unipa.it/fmraimondi Lezioni del corso di Dipartimento di Ingegneria dell Automazione e dei Sistemi 1 La normativa IEC 1131 del 1993 ha standardizzato 5

Dettagli

Il Linguaggio di Programmazione IEC 61131-3

Il Linguaggio di Programmazione IEC 61131-3 Il Linguaggio di Programmazione IEC 61131-3 Testo di Riferimento: R.W.Lewis, "Programming industrial control systems using IEC 1131-3", IEE Control Engineering Series 50. Limiti "Storici" della Programmazione

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Compilatore risorse display grafico LCD serie IEC-line

Compilatore risorse display grafico LCD serie IEC-line Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2

Dettagli

Tema di Progetto n 1

Tema di Progetto n 1 Ingegneria e Tecnologie dei Sistemi di Controllo L-A Tema di Progetto n 1 Si progetti in ambiente CoDeSys il controllo di sequenze di un sistema costituito da un ascensore. Si utilizzi il file AscensoreSingolo.pro

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC BMSO1001 Virtual Configurator Istruzioni d uso 02/10-01 PC 2 Virtual Configurator Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti

Dettagli

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1 Ernesto Cappelletti (ErnestoCappelletti) IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 6 April 2012 1. Requisiti per la scrittura del software secondo la norma UNI EN ISO 13849-1:2008

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

L'utilizzo delle strutture dati nella programmazione del PLC in ambiente IEC61131, rende la gestione di attuatori e sensori più intuitiva ed efficace.

L'utilizzo delle strutture dati nella programmazione del PLC in ambiente IEC61131, rende la gestione di attuatori e sensori più intuitiva ed efficace. L'utilizzo delle strutture dati nella programmazione del PLC in ambiente IEC61131, rende la gestione di attuatori e sensori più intuitiva ed efficace. 28/10/2014 IT 2 Regole per la dichiarazione delle

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali Introduzione Sistemi Informativi Linguaggi per la modellazione dei processi aziendali Paolo Maggi Per progettare un sistema informativo è necessario identificare tutti i suoi elementi

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

ACCESSO AL SISTEMA HELIOS...

ACCESSO AL SISTEMA HELIOS... Manuale Utente (Gestione Formazione) Versione 2.0.2 SOMMARIO 1. PREMESSA... 3 2. ACCESSO AL SISTEMA HELIOS... 4 2.1. Pagina Iniziale... 6 3. CARICAMENTO ORE FORMAZIONE GENERALE... 9 3.1. RECUPERO MODELLO

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Linguaggio C. Fondamenti. Struttura di un programma.

Linguaggio C. Fondamenti. Struttura di un programma. Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione

Dettagli

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate MODULO BASE Quanto segue deve essere rispettato se si vuole che le immagini presentate nei vari moduli corrispondano, con buona probabilità, a quanto apparirà nello schermo del proprio computer nel momento

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività Prerequisiti Mon Ami 000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività L opzione Centri di costo è disponibile per le versioni Contabilità o Azienda Pro. Introduzione

Dettagli

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Il controllo della visualizzazione

Il controllo della visualizzazione Capitolo 3 Il controllo della visualizzazione Per disegnare in modo preciso è necessario regolare continuamente l inquadratura in modo da vedere la parte di disegno che interessa. Saper utilizzare gli

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Capitolo 3 Guida operativa del programma TQ Sistema

Capitolo 3 Guida operativa del programma TQ Sistema Capitolo 3 Guida operativa del programma TQ Sistema Panoramica delle funzionalità Questa guida contiene le informazioni necessarie per utilizzare il pacchetto TQ Sistema in modo veloce ed efficiente, mediante

Dettagli

Sequence Diagram e Collaboration Diagram

Sequence Diagram e Collaboration Diagram Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction

Dettagli

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

NAVIGAORA HOTSPOT. Manuale utente per la configurazione

NAVIGAORA HOTSPOT. Manuale utente per la configurazione NAVIGAORA HOTSPOT Manuale utente per la configurazione NAVIGAORA Hotspot è l innovativo servizio che offre ai suoi clienti accesso ad Internet gratuito, in modo semplice e veloce, grazie al collegamento

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith Configurazione della ricerca desktop di Nepomuk Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith 2 Indice 1 Introduzione 4 1.1 Impostazioni di base....................................

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Gestione del workflow

Gestione del workflow Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software Volume GESTFLORA Gestione aziende agricole e floricole Guidaall uso del software GESTIONE AZIENDE AGRICOLE E FLORICOLE Guida all uso del software GestFlora Ver. 2.00 Inter-Ware Srl Viadegli Innocenti,

Dettagli

Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente

Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente Prerequisiti Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente L opzione Provvigioni agenti è disponibile per le versioni Vendite, Azienda Light e Azienda Pro. Introduzione

Dettagli

scada SCADA (Supervisory Control And Data Acquisition) L acronimo SCADA Scada e industria integrata

scada SCADA (Supervisory Control And Data Acquisition) L acronimo SCADA Scada e industria integrata SCADA (Supervisory Control And Data Acquisition) L acronimo SCADA L acronimo SCADA sta per Supervisory Control And Data Acquisition ed è nient altro che l enumerazione delle tre funzionalità principali

Dettagli

Finalità della soluzione... 3. Schema generale e modalità d integrazione... 4. Gestione centralizzata in TeamPortal... 6

Finalità della soluzione... 3. Schema generale e modalità d integrazione... 4. Gestione centralizzata in TeamPortal... 6 Finalità della soluzione... 3 Schema generale e modalità d integrazione... 4 Gestione centralizzata in TeamPortal... 6 Dati gestiti dall Anagrafica Unica... 8 Gestione anagrafica... 9 Storicizzazione...

Dettagli

Programma Gestione Presenze Manuale autorizzatore. Versione 1.0 25/08/2010. Area Sistemi Informatici - Università di Pisa

Programma Gestione Presenze Manuale autorizzatore. Versione 1.0 25/08/2010. Area Sistemi Informatici - Università di Pisa - Università di Pisa Programma Gestione Presenze Manuale autorizzatore Versione 1.0 25/08/2010 Email: service@adm.unipi.it 1 1 Sommario - Università di Pisa 1 SOMMARIO... 2 2 ACCESSO AL PROGRAMMA... 3

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli