Nel campo dell’automazione industriale, un elemento ricorrente è il controllo di servomotori utilizzati in macchine automatiche e assi di movimentazione per le più svariate applicazioni. Tali servomotori sono controllati a basso livello dai driver, responsabili degli anelli di controllo di posizione, velocità e corrente, e, a un livello superiore, da un PLC (Programmable Logic Controller) che ne gestisce le modalità operative, la generazione dei profili di moto, il setting dei parametri, la gestione degli errori e le funzionalità di safety. Attualmente per implementare il controllo dei servomotori tramite linguaggio strutturato in ambiente PLC, si utilizzano funzioni specifiche per ciascun driver. Esse sono caratterizzate da variabili di input-output e unità di misura che sono differenti da driver a driver in quanto ciascuna azienda produttrice sceglie internamente come effettuare la gestione dei propri servoazionamenti. L’obiettivo del presente lavoro consiste nella realizzazione di un Function Block (FB) generico che integri al suo interno le funzioni specifiche dei diversi driver, rendendo il codice più modulare, portabile e facilmente riutilizzabile. Il progetto è stato sviluppato in Beckhoff TwinCAT 3, che supporta la programmazione a oggetti, approccio indispensabile per il raggiungimento dell’obiettivo. In una prima fase, sono state riscritte in TwinCAT 3 le singole funzioni di ciascun driver. Successivamente, è stato definito un set comune di variabili di input-output in grado di rappresentare un generico oggetto servomotore. Tramite l’uso delle interfacce rese disponibili dalla programmazione a oggetti, è stato poi realizzato il FB_Motore, nel quale le funzioni specifiche dei driver vengono richiamate automaticamente. In questo modo, il programmatore può istanziare un nuovo servomotore nel progetto PLC semplicemente dichiarando quale driver utilizza, senza doversi più preoccupare del richiamo esplicito delle funzioni di controllo, che risultano ora gestite internamente al Function Block. Infine, è stato sviluppato un ulteriore Function Block per il Data Logging, capace di salvare variabili di stato di un sistema (ad esempio quelle relative ad un servomotore) su file di testo in formato CSV secondo criteri personalizzabili dall’utente. Tale strumento consente un monitoraggio flessibile e strutturato delle prestazioni del sistema, utile sia in fase di test sia in contesto operativo.

Sviluppo di Function Blocks in Ambiente PLC per la Gestione Universale di Driver per Servomotori

CASARINI, GIORGIO
2024/2025

Abstract

Nel campo dell’automazione industriale, un elemento ricorrente è il controllo di servomotori utilizzati in macchine automatiche e assi di movimentazione per le più svariate applicazioni. Tali servomotori sono controllati a basso livello dai driver, responsabili degli anelli di controllo di posizione, velocità e corrente, e, a un livello superiore, da un PLC (Programmable Logic Controller) che ne gestisce le modalità operative, la generazione dei profili di moto, il setting dei parametri, la gestione degli errori e le funzionalità di safety. Attualmente per implementare il controllo dei servomotori tramite linguaggio strutturato in ambiente PLC, si utilizzano funzioni specifiche per ciascun driver. Esse sono caratterizzate da variabili di input-output e unità di misura che sono differenti da driver a driver in quanto ciascuna azienda produttrice sceglie internamente come effettuare la gestione dei propri servoazionamenti. L’obiettivo del presente lavoro consiste nella realizzazione di un Function Block (FB) generico che integri al suo interno le funzioni specifiche dei diversi driver, rendendo il codice più modulare, portabile e facilmente riutilizzabile. Il progetto è stato sviluppato in Beckhoff TwinCAT 3, che supporta la programmazione a oggetti, approccio indispensabile per il raggiungimento dell’obiettivo. In una prima fase, sono state riscritte in TwinCAT 3 le singole funzioni di ciascun driver. Successivamente, è stato definito un set comune di variabili di input-output in grado di rappresentare un generico oggetto servomotore. Tramite l’uso delle interfacce rese disponibili dalla programmazione a oggetti, è stato poi realizzato il FB_Motore, nel quale le funzioni specifiche dei driver vengono richiamate automaticamente. In questo modo, il programmatore può istanziare un nuovo servomotore nel progetto PLC semplicemente dichiarando quale driver utilizza, senza doversi più preoccupare del richiamo esplicito delle funzioni di controllo, che risultano ora gestite internamente al Function Block. Infine, è stato sviluppato un ulteriore Function Block per il Data Logging, capace di salvare variabili di stato di un sistema (ad esempio quelle relative ad un servomotore) su file di testo in formato CSV secondo criteri personalizzabili dall’utente. Tale strumento consente un monitoraggio flessibile e strutturato delle prestazioni del sistema, utile sia in fase di test sia in contesto operativo.
2024
Automazione
PLC
Function Block
Servomotori
Data Logging
File in questo prodotto:
File Dimensione Formato  
Casarini.Giorgio.pdf

Accesso riservato

Dimensione 2.84 MB
Formato Adobe PDF
2.84 MB Adobe PDF

I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14251/4815