Come si utilizza la console di spionaggio
Certo non vi sarà sfuggito che quasi tutti i blocchi funzione forniti con le nostre libreria hanno un ingresso definito come SpyOn**_. Non pensiamo al grande fratello che ci stà spiando od a guerre tra spie, l'attivazione di questo ingresso permette di poter "spiare" il funzionamento del FB. Per lo "spionaggio" viene eseguita la funzione SysWrSpyData_ che permette da programma utente di inviare dati verso la console di spionaggio accessibile da Telnet. Naturalmente l'esecuzione dello spionaggio (Solo se è attiva la console da telnet) rallenta l'esecuzione del FB.
Come utilizzare gli esempi
Nella descrizione degli oggetti (Funzioni e FB) è sempre riportato un programma di esempio sia per l'ambiente di sviluppo LogicLab_** che per l'ambiente CODESYS. Solitamente il programma riportato è sviluppato in linguaggio ST che permette un semplice copia/incolla direttamente nel progetto. Tutti iprogrammi dimostrativi citati nella knowledge sono forniti con la distribuzione di **_LogicLab.
Informazioni sulla memoria dei sistemi
I nostri sistemi programmabili sono realizzati utilizzando microcontrollori ARM Cortex, una famiglia di processori RISC (Reduced Instruction Set Computing) a 32 e 64 bit progettati da Arm Holdings ampiamente utilizzati in molti dispositivi di uso comune e specialmente in dispositivi elettronici a basso consumo energetico.
Eccezioni di esecuzione
Il sistema operativo dei sistemi SlimLine e Netsyst gestisce una serie di errori di eccezione che possono generarsi durante l'esecuzione del programma utente. L'eccezione è un meccanismo che interrompe l'esecuzione del programma in caso di errore di run-time.
Elenco errori
Le funzioni ed i FB utilizzabili nel programma possono generare condizioni di errore, gli errori sono visibili collegandosi in Telnet con il sistema inviando il comando SysLog, nella finestra messaggi di LogicLab e da pagina web, vedi video tutorial. Cercando il numero di errore nella tabella sottostante ne viene visualizzato il significato e si rimanda alla pagina di manuale dell'oggetto che lo ha generato. Il codice di errore è composto come segue:
Energy logger su cloud in FTP, MQTT o REST API
In questo articolo vediamo come realizzare in modo semplice un energy logger utilizzando i nostri prodotti in grado di memorizzare i dati su file locali CSV e trasferirli su server FTP in cloud o inviarli ad un broker MQTT o ad un API REST. Un energy logger è un dispositivo elettronico progettato per misurare, registrare e analizzare i consumi energetici di impianti, macchinari o edifici. È uno strumento fondamentale per il monitoraggio energetico, consentendo di raccogliere dati precisi e continui sull'uso dell'energia, al fine di ottimizzare l'efficienza e ridurre gli sprechi. Gli energy logger trovano impiego in diversi contesti:
Immagine di processo I/O
In tutti i PLC una parte di memoria RAM è utilizzata come memoria intermedia per l’accesso alla periferia (I/O). Questa memoria identificata come immagine di processo è divisa in immagine ingressi ed immagine uscite. Durante l’elaborazione del programma, ogni accesso agli I/O non viene riferito al canale fisico ma ad un bit nella immagine di processo. La lettura di un ingresso corrisponde ad un bit di memoria copiato dall’ingresso ad inizio esecuzione loop di programma. La scrittura di una uscita scrive un bit di memoria che verrà trasferito sul canale fisico di uscita a fine esecuzione loop di programma.
Libreria "eLLabDTimeAdjLib" oggetti Data/Ora deprecati
Con il rilascio della versione 5.20.x.xx di LogicLab è stata implementata la gestione degli operatori di Data e Ora. Quindi l'uso di alcuni oggetti embedded della libreria eLLabXUnified12Lib_** è deprecato. Per permettere comunque la compilazione dei progetti esistenti viene rilasciata la libreria eLLabDTimeAdjLib_ che andrà inclusa nel proprio progetto.
Libreria "eLLabObsoleteLib" oggetti obsoleti
Gli oggetti di programma (Funzioni e blocchi funzione) a disposizione dell'ambiente di sviluppo LogicLab sono in continua evoluzione, vengono resi disponibili nuovi oggetti e/o vengono modificati oggetti esistenti per soluzionare bugs di funzionamento o per migliorarne l'utilizzo. Questa continua evoluzione porta a rendere obsoleti alcuni oggetti che sono rimpiazzati da nuovi oggetti più performanti.
Note di rilascio raccolta librerie
Tutti gli oggetti (Funzioni e blocchi funzioni) sono rilasciati in raccolte di librerie (Vedi articolo), LogicLab permette di definire nel progetto la cartella in cui si trova la raccolta (Package) ed esegue automaticamente l'inclusione degli oggetti utilizzati nel prorio programma. In occasione di aggiunte/modifiche importanti nelle librerie sono rilasciate nuove versioni di packages (Ns codice Pck055xxxx).
Oggetti privati di libreria
All'interno delle varie librerie esistono oggetti privati che sono ad esclusivo uso interno delle librerie e non devono essere utilizzati dal programma utente. Questi oggetti sono riconoscibili dal loro nome che inizia con il carattere underscore "\_".
Segnaposti del formato printf
Nelle funzioni di uscita formattata su stream (Indicate come printf) la formattazione avviene attraverso segnaposti nella stringa di formato. Per esempio, se un programma vuole stampare l'età di una persona, può presentare l'output con il prefisso "Your age is "Your age is: %d". La sintassi del segnaposto di formato è **%\[Flag\]\[Width\]\[. Accuracy\] \[Length\]Type**.
Problema dell’anno 2038 (Y2K38)
Il problema dell’anno 2038 (Y2K38) è un bug di overflow che riguarda alcuni sistemi informatici che utilizzano il tempo Unix rappresentato come un numero intero a 32 bit con segno. In questi sistemi, il tempo è contato come il numero di secondi trascorsi dal 1° gennaio 1970 (Epoch Unix). Un intero a 32 bit con segno può rappresentare valori fino a 2.147.483.647.
Protezione funzioni e blocchi funzione
Anche se molte delle librerie sono gratuite, esistono alcuni oggetti e/o librerie a pagamento, gli oggetti a pagamento si possono liberamente utilizzare per un periodo di test (Solitamente 30 minuti) dalla accensione del sistema. Per poterli utilizzare in modo continuativo occorre acquistare una chiave di attivazione (Stringa alfabetica di 18 caratteri) che andrà inserita nel prorio progetto con la funzione *_SysPCodeVerify_* o in alternativa và definita da pagina web.
Stringa formato della funzione scanf
Le funzioni di gestione lettura formattata da stream (Indicate come scanf) permettono di gestire l'iinput da stream di comunicazione e/o da stringa in modo flessibile gestendone la scansione formattata attraverso la definizione di un segnaposto nella stringa di formato. Vedere esempi di utilizzo nella funzione _SysVsscanf_.
SystemVariables, variabili di sistema
| Variable | IECType | Description |
Utilizzare FB connesse con modello a cascata
Il modello a cascata, conosciuto come “waterfall model”, è il più classico dei modelli per il ciclo di vita del software. Prevede l’esecuzione lineare di una precisa sequenza di fasi, ciascuna delle quali genera un output utilizzato come input dalla fase successiva (da qui l’origine del termine “a cascata”).
Valutazione prestazioni (Benchmark) nei sistemi PLC
Nel contesto dell’automazione industriale moderna, i Programmable Logic Controller (PLC) rappresentano il cuore dei sistemi di controllo. Con l’evoluzione delle tecnologie e l’aumento della complessità degli impianti, non è più sufficiente considerare solo il numero di I/O (Input/Output). L’esigenza di eseguire operazioni sempre più complesse nel minor tempo possibile rende fondamentale valutare le prestazioni dell’hardware, e i benchmark diventano uno strumento essenziale per verificare se un microcontrollore è in grado di reggere i ritmi della produzione.