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:
FunzioneNome DataType HW_AddressHW_IO Indirizzo hardware Profinet del PSD1EnableBOOL Abilitazione drive tavolaResetBOOL Reset allarmi drive/tavolaGradiPassoAREAL Gradi di avanzamento con passo AGradiPassoBREAL Gradi di shifting rispetto a passo AStartPassoBOOL Start passo selezionato (NON-latching)EseguiPassoBBOOL Selezione passo B (shifting)nStazioniINT N. stazioni shift (Gradi A / Gradi B)JogPBOOL Comando Jog positivoJogNBOOL Comando Jog negativoPassoLentoBOOL Attivazione passo lentoJogLentoBOOL Attivazione Jog lentoAzzeramentoTavolaBOOL Comando di azzeramento tavolaRangePosREAL Range posizionamento (Es: 0,1° = 1/10°)VelPassoRapidoDINT Velocità passo rapidoAccPassoRapidoDINT Acc/Dec passo rapidoVelJogRapidoDINT Velocità Jog rapidoAccJogRapidoDINT Acc/Dec Jog rapidoVelPassoLentoDINT Velocità passo lentoAccPassoLentoDINT Acc/Dec passo lentoVelJogLentoDINT Velocità Jog lentoAccJogLentoDINT Acc/Dec Jog lentola 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:
FunzioneNome DataType DriveStatusINT Stato del Drive della tavola_StatusSTRING[30] Descrizione dello statoEnabledBOOL Tavola abilitataFaultBOOL Anomalia/Allarme tavola o DriveTavolaInPosBOOL Tavola in posizioneTavolaFermaBOOL Tavola non in movimentoActPosREAL Posizione attuale TavolaActShiftPosREAL Posizione attuale Tavola dopo shift (passo B)nPalletINT Riferimento di pallet dopo shiftErrorDriveWORD Codice di errore Drive (lista allarmi PSD)ErrorCodeINT Codice di errore FB tavolaLa 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 posiizonamento 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