4. Programmazione del PLC Siemens
Il Function Block base permette di controllare tramite fieldbus i parametri di base dell'azionamento PSD. Di seguito la struttura dei dati scambiati tra PSD e PLC:
-
Ouptut PSD --> Input PLC
Nome DataType Contenuto 0x6041.0WORD Status word 0x6064.0LREAL Posizione attuale 0x606C.0LREAL Velocità attuale 0x31C1.1WORD Input digitali Drive 0x3C2D.1WORD Codice errore Drive 0x3321.2LREAL Corrente attuale -
Output PLC --> Input PSD
Nome DataType Contenuto 0x6040.0WORD Control word 0x607A.0LREAL Posizione target 0x6081.0LREAL Velocità posizionamento 0x6083.0LREAL Accel. posizionamento 0x6084.0LREAL Decel. posizionamento
Importare il Function Block in TIA Portal:
Per poter utilizzare l'FB in TIA Portal sarà necessario importarne il codice sorgente dal pacchetto FB base per PSD1
-
In Project Tree > PLC_1 > External source files selezionare la voce Add new external file e indicare il percorso del file FB_PSD.scl
-
Ora è necessario generare l'FB premendo il tasto destro del mouse sul file appena importato e selezionando la voce generate blocks from source
A questo punto sarà possibile richiamare il blocco nella sezione desiserata, assegnargli un'istanza e parametrizzarlo.
Parametrizzazione del Function Block:
-
Input:
Nome DataType Funzione HW_AddressHW_IO Indirizzo hardware Profinet del PSD1 EnableBOOL Abilitazione Drive ResetBOOL Reset allarmi Drive QuickStopBOOL Fermata rapida Drive 1 StartMoveBOOL Start movimento (NON-latching) JogPBOOL Comando Jog positivo JogNBOOL Comando Jog negativo HomingBOOL Avvio procedura di homing del Drive MovingModeINT Modalità di movimento Limit_RangeINT Finestra di raggiungimento TargetRefSpeedDINT Velocita posizionamento AccelDINT Accel. posizionamento DecelDINT Decel. posizionamento TargetRefDINT Target di posizione/velocità 2 1 Il drive necessita di essere riabilitato tramite
Enabledopo unQuickStop2
TargetRefrappresenta il target di posizione perMovingMode = 0/1oppure di velocità perMovingMode = 2
la variabileHW_Addressidentifica il driver specifico controllato dalla FB e può essere configurato dinamicamente scrivendo al suo interno l'oggetto Profinet corrispondente al Drive desiderato
La variabileMovingModepuò assumere valori 0-3 corrispondenti alle seguenti modalità di movimento:Valore Funzione 0Controllo assoluto 1Controllo relativo 2Controllo in velocità 3Modalità Jog -
Output:
Nome DataType Funzione EnabledBOOL Drive abilitato ErrorBOOL Errore Drive MovingBOOL Motore in movimento HomedBOOL Homing eseguito TargetReachedBOOL Target posizione/velocità raggiunto InPosBOOL la posizione è in TargetRef ± Limit_RangeActualPosDINT Posizione attuale ActualSpeedDINT Velocità attuale ActualCurrentDINT Corrente attuale CommunicationErrorBOOL Comunicazione interrotta o configurazione Profinet errata DriveStatusINT Stato del Drive _StatusSTRING[30] Descrizione dello stato ErrorCodeWORD Codice di errore Drive (lista allarmi PSD)
Esempi di modalità di movimento:
-
Modalità di Movimento Assoluto o Relativo (
MovingMode = 0/1)I parametri necessari sono:
Nome Valore MovingMode0Speed305000Accel1000000Decel1000000TargetRef2450TargetRefcorrisponde alla quota da raggiungere in modalità assoluta o all'incremento in modalita relativa
-
Modalità di Movimento in Velocità (
MovingMode = 2)I parametri necessari sono:
Nome Valore MovingMode2Accel1000000Decel1000000TargetRef305000TargetRefcorrisponde alla velocità da mantenere e può essere modificato anche in movimento.Il motore può essere fermato con
StartMove = 0oppure conTargetRef = 0.
-
Modalità di Movimento Jog (
MovingMode = 3)I parametri necessari sono:
Nome Valore MovingMode3Il movimento viene gestito tramite gli ingressi
JogPeJogN, mentre velocità, accelerazione e decelerazione di Jog sono definite nella configurazione interna al PSD.
ℹ️Per poter modificare tramite Profinet velocità, accelerazione e decelerazione di Jog è necessario utilizzare il Function Block avanzato disponibile a questo indirizzo (Solo PSD ad asse singolo)