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.0WORD Status Word 0x6064.0LREAL Posizione attuale 0x606C.0LREAL Velocità attuale 0x31C1.1WORD Input digitali Drive 0x3C2D.1WORD Codice errore Drive 0x3321.2LREAL Corrente attuale -
Output PLC --> Input PSD
Nome DataType Contenuto 0x6040.0WORD Control Word 0x607A.0LREAL Posizione tavola 0x6081.0LREAL Velocità tavola 0x6083.0LREAL Accelerazione tavola 0x6084.0LREAL Decelerazione tavola 0x346A.0LREAL Velocità Jog 0x3468.0LREAL Accelerazione Jog 0x60F2.0WORD 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
-
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 tavola ResetBOOL Reset allarmi drive/tavola GradiPassoAREAL Gradi di avanzamento con passo A GradiPassoBREAL Gradi di shifting rispetto a passo A StartPassoBOOL Start passo selezionato (NON-latching) EseguiPassoBBOOL Selezione passo B (shifting) nStazioniINT N. stazioni shift (Gradi A / Gradi B) JogPBOOL Comando Jog positivo JogNBOOL Comando Jog negativo PassoLentoBOOL Attivazione passo lento JogLentoBOOL Attivazione Jog lento AzzeramentoTavolaBOOL Comando di azzeramento tavola RangePosREAL Range posizionamento (Es: 0,1° = 1/10°) VelPassoRapidoDINT Velocità passo rapido AccPassoRapidoDINT Acc/Dec passo rapido VelJogRapidoDINT Velocità Jog rapido AccJogRapidoDINT Acc/Dec Jog rapido VelPassoLentoDINT Velocità passo lento AccPassoLentoDINT Acc/Dec passo lento VelJogLentoDINT Velocità Jog lento AccJogLentoDINT Acc/Dec Jog lento la variabile
HW_Addressidentifica il driver specifico controllato dalla FB e può essere configurato dinamicamente scrivendo al suo interno l'oggetto Profinet corrispondente al Drive desiderato
-
Output:
Nome DataType Funzione DriveStatusINT Stato del Drive della tavola _StatusSTRING[30] Descrizione dello stato EnabledBOOL Tavola abilitata FaultBOOL Anomalia/Allarme tavola o Drive TavolaInPosBOOL Tavola in posizione TavolaFermaBOOL Tavola non in movimento ActPosREAL Posizione attuale Tavola ActShiftPosREAL Posizione attuale Tavola dopo shift (passo B) nPalletINT Riferimento di pallet dopo shift ErrorDriveWORD Codice di errore Drive (lista allarmi PSD) ErrorCodeINT Codice di errore FB tavola La variabile
DriveStatuspuò assumere valori 1-4 corrispondenti alle relative descrizioni nella variabile_Status:Valore Descrizione 1Switching On Inhibited 2Ready To Switch On 3Switched On 4Operation Enabled La variabile
ErrorCodepuò assumere valori 1-7:Valore Descrizione 1Start senza abilitazione Tavola 2Jog senza abilitazione Tavola 3Homing senza abilitazione Tavola 4Gradi Passi errato (Passo A o Passo B non divide interamente 360°) 5Numero stazioni errato (Se Passo A / Passo B non è uguale a numero stazioni) 6Gradi tolleranza errato (Se la tolleranza di posizione è uguale a 0) 7parametri 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
GradiPassoADEVE 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
GradiPassoBin maniera tale da dividere interamenteGradiPassoA.Es:
GradiPassoA = 90.0 / GradiPassoB = 18.0 => nStazioni = 5Se correttamente impostato,
nStazioniindica quanti shift è possibile eseguire inGradoPassoAgradi. Il numero di stazione in cui ci si trova dopo uno shift è indicato dalla variabile in uscitanPallet. -
Impostazione tolleranza di posizionamento: Il parametro
RangePosindica il range di tolleranza per il posizionamento della tavola.Es.
RangePos = 0.1=> la tolleranza è 1/10 di grado
⚠️ SeRangePos = 0.0la 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 VelPassoRapido120000AccPassoRapido500000VelJogRapido30000AccJogRapido400000VelPassoLento15000AccPassoLento400000VelJogLento100AccJogLento400000