Skip to main content

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.0 WORD Status word
0x6064.0 LREAL Posizione attuale
0x606C.0 LREAL Velocità attuale
0x31C1.1 WORD Input digitali Drive
0x603F.0 WORD Codice errore Drive
0x3321.2 LREAL Corrente attuale
  • Output PLC --> Input PSD

Nome DataType Contenuto
0x6040.0 WORD Control word
0x6081.0 LREAL Posizione target
0x6083.0 LREAL Velocità posizionamento
0x6084.0 LREAL Accel. posizionamento
0x346A.0 LREAL Decel. posizionamento
0x3468.0 LREAL Velocità Jog
0x346E.0 LREAL Accel. Jog
0x341C.5 WORD Decel. Jog
0x3212.1 WORD Jerk
0x3212.2 WORD Limite corrente positivo
0x3402.0 LREAL 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

    tia-add-source.png

  • Ora è necessario generare l'FB premendo il tasto destro del mouse sul file appena importato e selezionando la voce generate blocks from source

    tia-generate-blocks.png

    A questo punto sarà possibile richiamare il blocco nella sezione desiserata, assegnargli un'istanza e parametrizzarlo.

Parametrizzazione del Function Block:

  • Input:

|Input:

|Funzione||-------------------|---------------------------------------||| ||| ||| ||| ||| ||| ||| ||| ||| ||| ||| | | ||| ||| ||| ||| ||| ||| ||| ||| ||| |

Nome Funzione
HW_Address Indirizzo hardware Profinet del PSD1
Enable Abilitazione Drive
Reset Reset allarmi Drive
QuickStop Fermata rapida Drive^1^
OpenBrake Apertura freno quando Enable = 0
StartMove Start movimento (NON-latching)
JogP Comando Jog positivo
JogN Comando Jog negativo
Homing Avvio procedura di homing del Drive
MovingMode Modalità di movimento
Limit_Range Finestra di raggiungimento TargetRef|
PosCurrentLimit Limite di corrente positivo
NegCurrentLimit Limite di corrente negativo
JogSpeed Velocità di Jog
JogAccel Acccel. Jog
JogDecel Decel. Jog
Speed Velocita posizionamento
Accel Accel. posizionamento
Decel Decel. posizionamento
Jerk Jerk posizionamento
TargetRef Target di posizione/velocità ^2^

^1^ Il drive necessita di essere riabilitato tramite Enable dopo un QuickStop ^2^ TargetRef rappresenta il target di posizione per MovingMode = 0/1 oppure il target veolcità per MovingMode = 2

la variabile HW_Address identifica il driver specifico controllato dalla FB e può essere configurato dinamicamente scrivendo al suo interno l'oggetto Profinet corrispondente al Drive desiderato tia-psd-hw-address-20words.png

La variabile MovingMode può assumere valori 0-3 corrispondenti alle seguenti modalità di movimento:

|-----|-------------------------| | 0 | Controllo assoluto | | 1 | Controllo relativo | | 2 | Controllo in velocità | | 3 | Modalità Jog |

  • Output:
Nome Funzione
Enabled Drive abilitato
SafeTorqueOff STO attivato
Error errore Drive
Moving Motore in movimento
Homed Homing eseguito
TargetReached Target posizione/velocità raggiunto
InPos la posizione è in TargetRef ± Limit_Range
ActualPos Posizione attuale
ActualSpeed Velocità attuale
ActualCurrent Corrente attuale
CommunicationError Comunicazione interrotta o configurazione Profinet errata
DriveStatus Stato del Drive
_Status Descrizione dello stato
ErrorCode Codice di errore Drive (lista allarmi PSD)
ErrorQuittable Indica se l'errore è resettabile^3^
ErrorDescription Descrizione dell'errore

^3^ Se ErrorQuittable = False sarà 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:

|---------------|-----------| | MovingMode | 0 | | Speed | 305000 | | Accel | 1000000 | | Decel | 1000000 | | TargetRef | 2450 |

TargetRef corrisponde alla quota da raggiungere in modalità assoluta o all'incremento in modalita relativa

  • Modalità di Movimento in Velocità (MovingMode = 2) I parametri necessari sono:

|---------------|-----------| | MovingMode | 2 | | Accel | 1000000 | | Decel | 1000000 | | TargetRef | 305000 |

TargetRef corrisponde alla velocità da mantenere e può essere modificato anche in movimento. Il motore può essere fermato con StartMove = 0 oppure con TargetRef = 0.

  • Modalità di Movimento Jog (MovingMode = 3) I parametri necessari sono:

|---------------|-----------| | MovingMode | 3 | | JogSpeed | 20000 | | JogAccel | 1000000 | | JogDecel | 1000000 |

Il movimento viene gestito tramite gli ingressi JogP e JogN.