4. Programmazione del PLC Siemens
Il Function Block avanzato permette, rispetto all'FB base, di controllare tramite fieldbus parametri aggiuntivi quali velocità e accelerazione di Jog, limitazione di corrente e freno. Richiedendo un maggior numero di words Profinet rispetto alla configurazione base, l'applicazione avanzata è compatibile unicamente con PSD1 ad asse singolo. 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 0x603F.0WORD Codice errore Drive 0x3321.2LREAL Corrente attuale -
Output PLC --> Input PSD
Nome DataType Contenuto 0x6040.0WORD Control word 0x6081.0LREAL Posizione target 0x6083.0LREAL Velocità posizionamento 0x6084.0LREAL Accel. posizionamento 0x346A.0LREAL Decel. posizionamento 0x3468.0LREAL Velocità Jog 0x346E.0LREAL Accel. Jog 0x341C.5WORD Decel. Jog 0x3212.1WORD Jerk 0x3212.2WORD Limite corrente positivo 0x3402.0LREAL Limite corrente negativo
Importare il Function Block in TIA Portal:
Per poter utilizzare l'FB in TIA Portal sarà necessario importarne il codice sorgente dal pacchetto FB avanzato 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_1_0_2.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 OpenBrakeBOOL Apertura freno quando Enable = 0StartMoveBOOL 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 TargetRefPosCurrentLimitINT Limite di corrente positivo NegCurrentLimitINT Limite di corrente negativo JogSpeedDINT Velocità di Jog JogAccelDINT Acccel. Jog JogDecelDINT Decel. Jog SpeedDINT Velocita posizionamento AccelDINT Accel. posizionamento DecelDINT Decel. posizionamento JerkINT Jerk 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 variabile
MovingModepuò 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 SafeTorqueOffBOOL STO attivato 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 CodiceUltimo codice di errore Drive (lista allarmi PSD)ErrorQuittableBOOL Indica se l'errore è resettabile 3 ErrorDescriptionSTRING[100] Descrizione dell'errore 3 Se
ErrorQuittable = Falsesarà necessario riavviare il drive per resettare l'errore
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 MovingMode3JogSpeed20000JogAccel1000000JogDecel1000000Il movimento viene gestito tramite gli ingressi
JogPeJogN.