ESEMPIO TRE: TRAPANO SEMPLICE Tecnica basata sulla macchina a stati Il sistema da analizzare è costituito da un trapano che deve effettuare un foro su un pezzo posizionato alla base del sistema. Il trapano è montato su un supporto che gli permette di muoversi dall'alto verso il basso e viceversa. Il dispositivo è azionato da un pulsante START che viene attivato dall'utente, quando il pulsante viene premuto la punta del trapano inizia a roteare (ROTATE & DOWN). Quando la punta del trapano giunge nella posizione più bassa indicata dal sensore (B) il pezzo è stato completamente forato e il trapano può risalire (UP) fino a fine corsa (rilevato dal sensore A).
DEFINIZIONE DEGLI I/O: Gli ingressi della parte di controllo (PLC) sono: Il segnale START del pulsante utente, il segnale A che indica la posizione alta del trapano, il segnale B che indica la posizione più bassa del trapano ovvero quando è stato effettuato il foro Le uscite del PLC sono: il segnale UP che determina l azione di discesa del trapano, Il segnale ROTATE & DOWN per far girare verso il basso la punta Il segnale HOME mette il trapano in uno stato di riposo.
DEFINIZIONE DEGLI STATI: Gli stati del sistema sono 3: Il passaggio P1 da a avviene solo quando la variabile d ingresso START è a 1 (true) ovvero quando si preme il pulsante di avvio, START=1 P1 HOME (azione a riposo o HOME): E lo stato iniziale del trapano. Verrà rappresentato con una variabile locale che è sempre inizializzata ad 1 (true). In tale stato il trapano è a riposo. A=1 P3 Il passaggio P3 che riporta allo stato avviene se la variabile di ingresso A è posta pari ad 1 cioè quando il trapano si trova nella posizione più alta. ROTATE & DOWN (azione associata: ROTATE & DOWN) : In questo stato il trapano scende verso il pezzo facendo roteare la punta. P2 B=1 UP Il passaggio P2 dallo stato allo stato avviene quando la variabile d ingresso B è posta ad 1, ovvero quando il trapano si trova nella posizione più bassa e quindi ha effettuato il foro. (azione: UP) : In questo stato il trapano risale perché ha completato il foro sul pezzo.
INDIVIDUAZIONE DELLE VARIABILI NECESSARIE: Avremo quindi le variabili di ingresso: Start: variabile booleana di ingresso che aziona il sistema A: Fine corsa A. Se il valore è 1 indica che il trapano si trova nella posizione più alta del supporto. B: Fine corsa B. Se il valore è 1 indica che il trapano si trova nella posizione più bassa del supporto. Avremo quindi le variabili di uscita (relative alle azioni): Il segnale UP che agisce sull azione di risalita del trapano, Il segnale ROTATE & DOWN per roteare la punta e farla scendere Il segnale HOME che mette a riposo il trapano, Avremo anche delle variabili interne che identificano gli stati: (azione: riposo o HOME), (azione: ROTATE & DOWN), (azione: UP)
HOME IMPLEMENTAZIONE: Il programma in Ladder in questo caso si compone di tre porzioni: Rappresentazione dell attivazione di un nuovo stato a partire dallo stato corrente a seguito di un determinato evento P1 ROTATE & DOWN P3 UP P1 P2 P3 S S S P2
IMPLEMENTAZIONE: Rappresentazione della disattivazione dello stato precedente a causa dell attivazione di un nuovo stato HOME P1 ROTATE & DOWN P3 UP R R R P2
IMPLEMENTAZIONE: Rappresentazione delle azioni eseguite in ciascuno degli stati HOME P1 P3 Home Rotate & down ROTATE & DOWN Move up UP P2
IMPLEMENTAZIONE: Riassumendo: P1 ROTATE & DOWN HOME P3 UP P1 P2 P3 R R R Home S S S P2 Iniziamo ad implementare il ns sistema utilizzando i SW della Siemens. Aprire il Simatic Manager e avviare la procedura File > Assistente "Nuovo progetto". Rotate & down Move up
OB VARIE TIPOLOGIE Esistono alcuni OB che, se definiti, permettono di eseguire azioni in caso di eventi: OB 82, Priorità 26: allarme diagnostica (es.cortocircuito unità di ingresso) OB 85, Priorità 26: errore di esecuzione programma (es.ob non caricato) OB 86, Priorità 26: guasto al telaio di montaggio OB 87, Priorità 26: errore di comunicazione OB 100, Warm Start Nella CPU 314C-2DP è consentito il solo Avviamento Warm. L'avviamento Warm diviene anche Cold, se non vi sono aree di memoria ritentive definite o utilizzate (oppure se scarico completamente un programma e lo ricaricarico). Quindi OB 100 viene eseguito all'avviamento Warm (nessun limite sulla durata). Può essere utilizzato per l'inizializzazione di variabili. Per i Merker si utilizza il comando SET. La sintassi è SET = variabile (nome o indirizzo). Quindi per il nostro esempio dobbiamo mettere : SET = "" Tecnica basata sulla macchina a stati IMPLEMENTAZIONE: INIZIALIZZAZIONE Occorre inizializzare lo stato a true per cui useremo a tale scopo l oggetto funzionale OB 100 che viene eseguito durante l accensione. Vediamo una breve carrellata di alcuni OB particolari:
CREAZIONE PROGETTO: Selezionare OB1 e OB100, scegliere come linguaggio di programmazione KOP e indicare il nome del progetto TrapanoSemplice. Per effettuare la programmazione con nomi simbolici bisogna creare una tabella dei simboli. Aprire la cartella Simboli che si trova dentro Programma S7(1) e inserire le varie righe
DEFINIZIONE SIMBOLI: Si osservi che agli stati sono associati bit di Merker a partire da M 20.0. Si potevano scegliere anche a partire dal MB 17.0. Questa scelta è legata al fatto che la CPU utilizzata, ha i byte di Merker da MB 0 a MB 16 con ritenzione preimpostata. Si ricordi che i dati vengono definiti a ritenzione quando, dopo una caduta di tensione, essi hanno lo stesso valore che avevano prima della caduta di tensione. Affinché il programma funzioni correttamente è necessario che la variabile Home sia settata inizialmente a true. Avendo assegnato agli stati tali indirizzi (M 20.0 ) si è garantito che tali variabili non siano ritentive. In tal modo se dovesse verificarsi una caduta di tensione il programma ripartirebbe correttamente, perché la variabile Home in particolare non assumerebbe il vecchio valore essendo non ritentiva. (In realtà bastava impostare solo la variabile Home come non ritentiva!). Attenzione: l'impostazione del mnemonico (tedesco o inglese) va eseguita nel SIMATIC Manager, sotto Strumenti > Impostazioni, nella scheda "Lingua e mnemonico". Se fosse impostato il tedesco al posto di I dovevo scrivere E
IMPLEMENTAZIONE IN STEP 7: Dopo aver creato la tabella dei simboli cliccare su OB1 per scrivere il programma in KOP(Ladder). Il programma in KOP sarà composto da tre fasi. A partire dal diagramma di stato bisogna scrivere questa parti di codice: 1. stato attuale + condizioni nuovo stato 2. nuovo stato resettaggio vecchio stato 3. stato attuale azioni che devono essere compiute STATO ATTUALE + CONDIZIONI NUOVO STATO START=1 P1 HOME A=1 P3 ROTATE & DOWN UP B=1 P2
IMPLEMENTAZIONE IN STEP 7: RESET STATI PRECEDENTI START=1 P1 HOME A=1 P3 ROTATE & DOWN P2 B=1 UP
IMPLEMENTAZIONE IN STEP 7: ATTIVAZIONE AZIONI START=1 P1 HOME A=1 P3 ROTATE & DOWN P2 B=1 UP
PREPARAZIONE SIMULAZIONE PROGETTO: - Aprire il SIMATIC Manager. - selezionare il comando di menu Strumenti > Simula unità. Questa operazione avvia l'applicazione S7-PLCSIM ed apre una sottofinestra CPU - Nel SIMATIC Manager, aprire il nostro progetto (Menu File > Apri...) - All'interno del progetto portarsi sull'oggetto "Blocchi" - Fare click con il tasto destro del mouse sull'oggetto "Blocchi" e selezionare il comando "Sistema di destinazione > Carica" per caricare l'oggetto "Blocchi" nel PLC simulato Nell'applicazione S7-PLCSIM, creare ulteriori "sottofinestre" (se non sono già inserite!) per controllare le informazioni dal PLC simulato: Fare clic su oppure selezionare il comando di menu Inserisci > Ingresso. Digitare IB124 (byte di ingresso 124). Fare clic su oppure selezionare il comando di menu Inserisci > Uscita. Digitare QB124 (Output Byte 124). Selezionare il comando di menu Inserisci> Merker. Digitare MB 20 Selezionare il menu PLC in S7-PLCSIM e verificare che accanto ad Alimentazione compaia un pallino ( ).
PREPARAZIONE SIMULAZIONE PROGETTO: In PCLSIM selezionare Esegui > modo di scansione e verificare che compaia un pallino ( ) accanto a Ciclo continuo. È possibile associare ad ogni elemento (IB,MB,QB, T0) il corrispondente simbolo della tabella dei simboli. Bisogna cliccare in PCLSIM1 su Strumenti > opzioni > aggiungi simboli. Si aprirà la maschera Apri che permette di selezionare la tabella dei simboli relativa al progetto in esame.
PREPARAZIONE SIMULAZIONE PROGETTO: Selezionare il progetto in esame. Cliccando sulla cartella del programma a destra vedremo l icona dei simboli che selezioniamo. Confermiamo cliccando su OK A questo punto occorre attivare «visualizza simboli» (1). Andando su una delle porte attive dove apparire il tooltip con il nome del simbolo associato.
SIMULAZIONE PROGETTO: Per effettuare la simulazione occorre commutare la CPU in RUN facendo clic sulla casella RUN oppure RUN-P check. Dall immagine si osserva che quando la CPU va in RUN la variabile «" è true (MB 20.0). È possibile associare ad ogni elemento (IB,MB,QB, T0) il corrispondente simbolo della tabella dei simboli. Bisogna cliccare in PCLSIM1 su Strumenti > opzioni > aggiungi simboli. Si aprirà la maschera Apri che permette di selezionare la tabella dei simboli relativa al progetto in esame.
SIMULAZIONE: Tecnica basata sulla macchina a stati Visualizzare nel SIMATIC Manager l «online» Carichiamo OB1 e OB100 utilizzando uno dei 3 modi: A drag & drop dall offline all online B Menu «Sistema di destinazione» voce «Carica» C Click sull apposito bottone sulla barra degli strumenti
Trapano Semplice SIMULAZIONE: Facciamo doppio click sull icona OB1 nella finestra dell online. Dovrebbe apparire: Premiamo la combinazione Ctrl+F7 oppure selezioniamo il menu «Test» voce «Controlla» per controllare lo stato degli ingressi e delle uscite durante la simulazione
Trapano Semplice SIMULAZIONE: Sovrapponiamo il simulatore con l online e mandiamo in RUN (A) il plc. (B) Si noti che le linee orizzontali in tensione risultano evidenziate in verde
Trapano Semplice TEST: 1) Stato iniziale dopo aver cliccato su RUN
Trapano Semplice TEST: 2) Attiviamo il trapano premendo il pulsante «START»
Trapano Semplice TEST: 3) Simuliamo il fondo corsa settando a true il sensore B
Trapano Semplice TEST: 4) Simuliamo l arrivo del trapano nella posizione più alta settando a true il sensore A (dobbiamo prima mettere a false Start e B per evitare effetti collaterali).
Trapano Semplice OSSERVAZIONE: Nello step 4) quando dovevamo attivare il sensore A abbiamo dovuto manualmente mettere a false Start e B. Questo perché i sensori non sono effettivamente collegati con dei dispositivi reali ma sono stati simulati mediante dei normali interruttori. La soluzione proposta fino a questo punto è corretta nel caso i sensori generino dei semplici impulsi. Per correggere gli effetti collaterali dovuti alla permanenza del segnale sugli interruttori basta inserire all inizio questo segmento: Oppure in fondo al programma inseriamo dei segmenti che determino il reset di ogni singolo sensore (simulando così l impulso)