LogicLab (Manuale) è un Integrated Development Environment (IDE) per lo sviluppo di applicazioni con i linguaggi definiti dallo standard IEC61131-3, il programma include:
- Editor codice testuale per i linguaggi Instruction List (IL) e Structured Text (ST).
- Editor codice grafico per i linguaggi Ladder Diagram (LD), Function Block Diagram (FBD) e Sequential Function Chart (SFC)
- Compilatore, che traduce in codice macchina le applicazioni scritte.
- Comunicazione con sistema target per download e debug applicazione.
Video tutorial
Sul nostro sito sono disponibili dei video tutorial che illustrano come utilizzare LogicLab. Per iniziare consiglio questo tutorial che spiega come realizzare un semplice programma Marcia/Arresto in linguaggio ladder.
Librerie
Per LogicLab è disponibile una serie di oggetti (funzioni “F“, blocchi funzione “FB“, strutture dati, ecc) suddivisi in librerie (Elenco), sul Manuale programmazione IEC61131-3 per ogni oggetto è indicata la libreria in cui si trova oltre alle informazioni sull’oggetto ed a programmi di esempio. Per utilizzare gli oggetti di libreria nel proprio programma rimandiamo a questo articolo. Dalla versione 5.22.x.xx di LogicLab le librerie sono fornite in un package, le versioni aggiornate sono scaricabili da qui.
Programmi di esempio
Nella descrizione degli oggetti (Funzioni e FB) è sempre riportato un programma di esempio, solitamente il programma è sviluppato in linguaggio ST che permette un semplice taglia/incolla direttamente nel progetto (Vedi articolo). Se si vuole importare direttamente il programma di esempio nel proprio progetto, dalla zona Download del sito con la funzione Cerca è possibile scaricare il programma dimostrativo che contiene l’esempio. Il codice del programma da scaricare (Ptpxxx) è indicato nell’esempio.
Toolly il nostro coltellino svizzero
Dal menù Tools è possibile eseguire Toolly un set di utilities gratuito in ambiente Windows™ progettato per l’utilizzo con i controllori delle serie SlimLine e Netlog III, ma non solo, che include funzioni di utilità e diagnostica dei sistemi (Vedi manuale).
Informazioni ambiente di sviluppo
Barra progetto
La barra progetto di LogicLab (Normalmente quella più a sinistra) definisce l’albero del progetto, la barra puà essere customizzata definendo cartelle al cui interno verranno inseriti i vari Program Organisation Unit (POU) che possono essere:
- PROG, Program: al loro interno viene scritto il programma da eseguire utilizzando gli altri oggetti. Un progetto può essere suddiviso in molti programmi che andranno assegnati alla relativa task di esecuzione. Se non assegnati ad una task hanno nella icona il simbolo “?” e non sono eseguiti (Video).
- FB, Function Block: possono avere diversi parametri di ingresso e diversi parametri di uscita ed hanno una memoria interna. Ogni FB da utilizzare deve essere istanziato definendo un nome di istanza, che lo identifichi in modo univoco (Video).
- F, Function: possono avere diversi parametri di ingresso ma sempre e solo un parametro di uscita e non hanno memoria interna. Le funzioni possono essere utilizzate senza essere istanziate (Video).
Dopo aver definito i vari POUs del progetto è possibile definire le variabili globali che possono essere a loro volta suddivise in gruppi di variabili per una gestione più ordinata. Sotto alla definizione Task si trovano le cartelle in cui inserire i PROG da eseguire nella relativa task:
- Boot: Assegnare programmi da eseguire una sola volta all’avvio del sistema.
- Fast: Assegnare programmi da eseguire real time ogni 1mS. Da utilizzare in casi particolari di solito non si assegnano programmi.
- Slow: Assegnare programmi da eseguire real time ogni 10mS, si assegnano tutti i programmi di gestione logica.
- Back: Assegnare programmi da eseguire in background, non ha esecuzione real time, si assegnano i programmi di gestione strems di comunicazione, accesso al disco, ecc.
Comunicazione con sistema target
LogicLab può gestire la comunicazione con il sistema target da porta seriale, USB o Ethernet (Consigliata). Le impostazioni di connessione possono variare in base al sistema.
Download ed esecuzione programma
Effettuata la scrittura del programma è possibile compilarlo e poi eseguirlo all’interno di logicLab utilizzando il simulatore integrato (Sul simulatore non è possibile eseguire comunicazioni seriale e TCP e accessi al file system). Connettendosi al dispositivo target (Via seriale o TCP) e possibile trasferire ed eseguire il programma sul dispositivo. Per l’esecuzione serve solo il codice compilato, non è necessario il programma sorgente, nelle opzioni di download è possibile selezionare come gestire il trasferimento. Sul dispositivo viene trasferito un file compresso in formato (.rsm) protetto da password (Se abilitata).
- On PLC application download: Default, viene trasferito sul dispositivo.
- Before disconnession: viene trasferito il solo programma eseguibile, il programma sorgente sarà trasferito solo alla disconnessione di LogicLab dal dispositivo. Questa opzione permette di velocizzare le operazioni di download durante lo sviluppo ma occorre ricordarsi di eseguire correttamente la disconnessione.
- Never: Il programma sorgente non viene trasferito sul dispositivo.
Upload programma da dispositivo
Il nostro consiglio è di archiviare con cura una copia della cartella del programma sviluppato per poter in futuro eseguirne il debug o effettuare modifiche. Come abbiamo visto comunque è possibile scegliere di trasferire sul dispositivo anche il codice sorgente per avere una copia disponibile per future modifiche. Nel caso non avessimo più la copia del programma originale, se si è eseguito il download del codice sorgente è possibile eseguirne upload da LogicLab.
Dal dispositivo non è possibile eseguire upload del codice compilato ma solo del codice sorgente che andrà ricompilato per trasferirlo su di un altro dispositivo. Utilizzare la funzione Import from target, scegliendo il tipo di comunicazione in base al sistema. Configurare la connessione e con il tasto Verify Connection verificarla. Il tasto Upload Sources effettuerà l’upload del programma sorgente dal dispositivo. Definita la cartella in cui salvare i sorgenti, verrà ricreata la cartella con il progetto e LogicLab si aprirà in editing.
Funzioni avanzate
Questo capitolo non vuole sostituire il manuale, ma evidenziare gli strumenti ed i trucchi di utilizzo di LogicLab che permettono di semplificare lo svilupo dei programmi.
(1) Help contestuale
L’help contestuale si attiva evidenziando la voce ed agendo sul tasto F1. E’ possibile selezionare oggetti di libreria e/o funzioni all’interno del proprio programma come evidenziato nella immagine. L’help contestuale fà riferimento alla versione On-line (Indice).
Se si prevede di dover utilizzare LogicLab in un sito dove non si dispone della connessione Internet consigliamo di scaricare la versione Off-line (Download). Decomprimere lo zip in una cartella, e creare un link sul desktop al file index.html.
(2) Ricerca oggetti
Le librerie mettono a disposizione un vasto numero di oggetti (Funzioni, FB, definizioni, ecc.) per orientarsi e quindi trovare quello che mi serve LogicLab mette a disposizione il Symbol browser.
Ipotizzando di dover realizzare una connessione TCP, definisco nella ricerca la parola TCP tra wildcard (*) e mi verranno visualizzati tutti gli oggetti che hanno TCP nel nome. Individuato l’oggetto SysTCPClient che potrebbe fare al caso mio, con un doppio click apro la libreria dove si trova l’oggetto e con F1 verrà aperta la pagina di manuale relativa.
(3) Errori esecuzione
Le funzioni ed i FB possono generare errori di esecuzione che sono visualizzati nella finestra Output->Debug. Per informazioni sull’errore è possibile cercare il numero di errore nella pagina Elenco errori.
(4) Report variabili globali
Dal menù Tools->Global variables report è possibile visualizzare l’elenco di tutte le variabili globali definite. Si può ordinare per colonna con un click del mouse sul nome della colonna.
Un doppio click del mouse sulla variabile apre l’editor nel punto in cui la variabile è definita.
(5) Report variabili non utilizzate
Dal menù Tools->Unused variables report è possibile visualizzare l’elenco di tutte le variabili definite e non utilizzate. Si può ordinare per colonna con un click del mouse sul nome della colonna.
Un doppio click del mouse sulla variabile apre l’editor nel punto in cui la variabile è definita.
(6) Report POUs non utilizzati
Dal menù Tools->Unused POUs report è possibile visualizzare l’elenco di tutti i POUs definiti e non utilizzati. Per visualizzare solo quelli definiti nel progetto selezionare Project in Location. Si può ordinare per colonna con un click del mouse sul nome della colonna.
Un doppio click del mouse sulla variabile apre l’editor nel punto in cui la variabile è definita.
(7) Visualizzazione dipendenze
Dal menù Tools->Dependency Viewer è possibile visualizzare le dipendenze dei vari oggetti. Selezionando un oggetto vengono visualizzate tutte le dipendenze degli oggetti.
Un click del mouse sugli oggetti visualizzati sposta il focus sull’oggetto, con il tasto Back è possibile ritornare indietro sulla selezione.
(8) Trovare le occorrenze di un oggetto
Nella scrittura di programmi capita di dover cercare tutte le occorrenze di un oggetto (Variabile, funzione, blocco funzione) all’interno del programma. A questo scopo è possibile utilizzare la funzione Find in project (Tasti rapidi Ctrl+Shift+F).
Verranno cercate tutte le occorrenze dell’oggetto nel programma e visualizzate nella finestra Output con l’indicazione di dove sono state trovate. Un doppio click del mouse sulla riga apre in editing il punto relativo.
- Location, permette di delimitare l’area di ricerca.
- Object type filters, permette di definire i filtri di ricerca limitando il tipo di oggetti da cercare.
- Find options, permette di definire le opzioni di ricerca.
(9) Cross reference oggetti
Permette di visualizzare tutte le occorrenze di un oggetto all’interno di un programma.
Occorre abilitarne nel menù Project->Options->Cross Reference la generazione. Al termine della compilazione del programma aprendo la finestra View->Tool windows->Cross Reference è possibile selezionare l’oggetto per visualizzare tutte le occorrenze nel programma. Accanto ad ogni occorrenza ne viene indicata la posizione con l’indicazione del tipo di accesso.
- RD, accesso in lettura.
- WR, accesso in scrittura.
(10) Controlli run time
Nella scrittura di un programma si possono commettere errori che possono determinare funzionamenti anomali del sistema di cui risulta difficile determinarne le cause. LogicLab permette di introdurre automaticamente in compilazione dei controlli specifici. In caso di errore l’esecuzione del programma si arresta e nella finestra Output si visualizza l’errore. Questi controlli aumentano la dimensione del programma ed il tempo di esecuzione quindi si consiglia di attivarli solo in caso di funzionamento anomalo.
Run-time check of array bounds: Controlla se il programma accede ad una posizione di array non corretta.
MyArray : ARRAY[0..10] OF BYTE;
FOR i:=0 TO 11 DO MyArray[i]:=0; END_FOR;
Genera errore:
PLC EXECUTION ERROR: Bad array index (11) in module MyProgram (3), task Slow
Run-time check of pointers: Controlla la validità di un puntatore.
APtr : @BYTE;
@APtr:=0;
Genera errore:
PLC EXECUTION ERROR: Invalid pointer (00000000) in module MyProgram (4), task Slow
Run-time check of division by zero: Controlla le divisioni per 0.
RVar: ARRAY[0..1] OF REAL;
RVar[0]:=0.0;
RVar[1]:=100.0/RVar[0];
Genera errore:
PLC EXECUTION ERROR: Division by zero in module MyProgram (7), task Slow