Skip to main content

4. Programmazione del PLC Siemens

Il pacchetto applicazione tavola comprende un Function Block destinato al controllo dell'azionamento mediante la rete Profinet appena configurata, di seguito la struttura dei dati scambiati tra PSD e PLC:

  • Output 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 tavola
    0x6081.0 LREAL Velocità tavola
    0x6083.0 LREAL Accelerazione tavola
    0x6084.0 LREAL Decelerazione tavola
    0x346A.0 LREAL Velocità Jog
    0x3468.0 LREAL Accelerazione Jog
    0x60F2.0 WORD Option Code posizione

Importare il Function Block in TIA Portal:

Per poter utilizzare l'FB in TIA Portal sarà necessario importarne il codice sorgente dal pacchetto Applicazione Tavola

  • In Project Tree > PLC_1 > External source files selezionare la voce Add new external file e indicare il percorso del file TurnTable.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:

    Nome DataType Funzione
    HW_Address HW_IO Indirizzo hardware Profinet del PSD1
    Enable BOOL Abilitazione drive tavola
    Reset BOOL Reset allarmi drive/tavola
    GradiPassoA REAL Gradi di avanzamento con passo A
    GradiPassoB REAL Gradi di shifting rispetto a passo A
    StartPasso BOOL Start passo selezionato (NON-latching)
    EseguiPassoB BOOL Selezione passo B (shifting)
    nStazioni INT N. stazioni shift (Gradi A / Gradi B)
    JogP BOOL Comando Jog positivo
    JogN BOOL Comando Jog negativo
    PassoLento BOOL Attivazione passo lento
    JogLento BOOL Attivazione Jog lento
    AzzeramentoTavola BOOL Comando di azzeramento tavola
    RangePos REAL Range posizionamento (Es: 0,1° = 1/10°)
    VelPassoRapido DINT Velocità passo rapido
    AccPassoRapido DINT Acc/Dec passo rapido
    VelJogRapido DINT Velocità Jog rapido
    AccJogRapido DINT Acc/Dec Jog rapido
    VelPassoLento DINT Velocità passo lento
    AccPassoLento DINT Acc/Dec passo lento
    VelJogLento DINT Velocità Jog lento
    AccJogLento DINT Acc/Dec Jog lento

    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-14words.png

  • Output:

    Nome DataType Funzione
    DriveStatus INT Stato del Drive della tavola
    _Status STRING[30] Descrizione dello stato
    Enabled BOOL Tavola abilitata
    Fault BOOL Anomalia/Allarme tavola o Drive
    TavolaInPos BOOL Tavola in posizione
    TavolaFerma BOOL Tavola non in movimento
    ActPos REAL Posizione attuale Tavola
    ActShiftPos REAL Posizione attuale Tavola dopo shift (passo B)
    nPallet INT Riferimento di pallet dopo shift
    ErrorDrive WORD Codice di errore Drive (lista allarmi PSD)
    ErrorCode INT Codice di errore FB tavola

    La variabile DriveStatus può assumere valori 1-4 corrispondenti alle relative descrizioni nella variabile _Status:

    Valore Descrizione
    1 Switching On Inhibited
    2 Ready To Switch On
    3 Switched On
    4 Operation Enabled

    La variabile ErrorCode può assumere valori 1-7:

    Valore Descrizione
    1 Start senza abilitazione Tavola
    2 Jog senza abilitazione Tavola
    3 Homing senza abilitazione Tavola
    4 Gradi Passi errato (Passo A o Passo B non divide interamente 360°)
    5 Numero stazioni errato (Se Passo A / Passo B non è uguale a numero stazioni)
    6 Gradi tolleranza errato (Se la tolleranza di posizione è uguale a 0)
    7 parametri posizionamento errati (Se velocità o accelerazioni sono uguali a 0)

Esempi di gestione della Tavola:

  • Abilitazione Tavola: Per poter abilitare la tavola è necessario che non ci siano anomalie relative al Drive (ErrorDrive = 0)

  • Impostazione gradi step: Il numero di gradi espresso in GradiPassoA DEVE dividere per intero 360°, cioè un giro di tavola completo.

    Es: GradiPassoA = 90.0

  • Impostazione numero di stazioni: Se sulla tavola sono presenti shift da eseguire, impostare il numero di gradi in GradiPassoB in maniera tale da dividere interamente GradiPassoA.

    Es: GradiPassoA = 90.0 / GradiPassoB = 18.0 => nStazioni = 5

    Se correttamente impostato, nStazioni indica quanti shift è possibile eseguire in GradoPassoA gradi. Il numero di stazione in cui ci si trova dopo uno shift è indicato dalla variabile in uscita nPallet.

  • Impostazione tolleranza di posizionamento: Il parametro RangePos indica il range di tolleranza per il posizionamento della tavola.

    Es. RangePos = 0.1 => la tolleranza è 1/10 di grado

    ⚠️ Se RangePos = 0.0 la tavola NON eseguirà alcun movimento (ErrorCode = 6)

  • Impostazione parametri di posizionamento: Di seguito un esempio di parametrizzazione delle velocità è delle accelerazioni della tavola.

    Nome Valore
    VelPassoRapido 120000
    AccPassoRapido 500000
    VelJogRapido 30000
    AccJogRapido 400000
    VelPassoLento 15000
    AccPassoLento 400000
    VelJogLento 100
    AccJogLento 400000