Skip to main content

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

    tia-add-source.pngtia-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.pngtia-generate-blocks.png

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

Parametrizzazione del Function Block:

  • Input:

    Nome DataTypeFunzione
    HW_AddressHW_IO Indirizzo hardware Profinet del PSD1
    Enable BOOLAbilitazione Drive
    ResetBOOL Reset allarmi Drive
    QuickStopBOOL Fermata rapida Drive 1
    StartMove BOOLStart movimento (NON-latching)
    JogPBOOL Comando Jog positivo
    JogN BOOLComando Jog negativo
    HomingBOOL Avvio procedura di homing del Drive
    MovingMode INTModalità di movimento
    Limit_RangeINT Finestra di raggiungimento TargetRef
    Speed DINTVelocita posizionamento
    AccelDINT Accel. posizionamento
    Decel DINTDecel. posizionamento
    TargetRefDINT 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 di velocità 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-9words.pngtia-psd-hw-address-9words.png

    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 DataTypeFunzione
    EnabledBOOL Drive abilitato
    Error BOOLerrore Drive
    MovingBOOL Motore in movimento
    Homed BOOLHoming eseguito
    TargetReachedBOOL Target posizione/velocità raggiunto
    InPosBOOL la posizione è in TargetRef ± Limit_Range
    ActualPos DINTPosizione attuale
    ActualSpeedDINT Velocità attuale
    ActualCurrent DINTCorrente attuale
    CommunicationErrorBOOL Comunicazione interrotta o configurazione Profinet errata
    DriveStatus INTStato del Drive
    _Status STRING[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
    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)