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.0 |
WORD | Status word |
0x6064.0 |
LREAL | Posizione attuale |
0x606C.0 |
LREAL | Velocità attuale |
0x31C1.1 |
WORD | Input digitali Drive |
0x3C2D.1 |
WORD | Codice errore Drive |
0x3321.2 |
LREAL | Corrente attuale |
- Output PLC --> Input PSD
| Nome | DataType | Contenuto |
|---|---|---|
0x6040.0 |
WORD | Control word |
0x607A.0 |
LREAL | Posizione target |
0x6081.0 |
LREAL | Velocità posizionamento |
0x6083.0 |
LREAL | Accel. posizionamento |
0x6084.0 |
LREAL | 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 | Funzione |
|---|---|
HW_Address |
Indirizzo hardware Profinet del PSD1 |
Enable |
Abilitazione Drive |
Reset |
Reset allarmi Drive |
QuickStop |
Fermata rapida Drive^1^ |
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 |
Speed |
Velocita posizionamento |
Accel |
Accel. posizionamento |
Decel |
Decel. 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

La variabile MovingMode può assumere valori 0-3 corrispondenti alle seguenti modalità di movimento:
| Valore | Funzione |
|---|---|
0 |
Controllo assoluto |
1 |
Controllo relativo |
2 |
Controllo in velocità |
3 |
Modalità Jog |
- Output:
| Nome | Funzione |
|---|---|
Enabled |
Drive abilitato |
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) |
Esempi di modalità di movimento:
- Modalità di Movimento Assoluto o Relativo (
MovingMode = 0/1) I parametri necessari sono:
| Nome | Valore |
|---|---|
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:
| Nome | Valore |
|---|---|
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:
| Nome | Valore |
|---|---|
MovingMode |
3 |
Il movimento viene gestito tramite gli ingressi JogP e JogN, 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 psd1-profinet-advanced-102 (Solo PSD ad asse singolo)