1、Caratteristiche Principali PLC Siemens CPU 314C-2 DP,Prodotti Siemens,Simatic 300 CPU 3xxx Simatic 400 CPU 4xxx Unico Ambiente di Programmazione Step7 V5.3,Simatic CPU 314C-2 DP,Argomenti Trattati Area Memoria Gestione dei Programmi Unit di I/O Function Block,Area di Memoria,Memoria di Caricamento M
2、icro Memory Card (64Kbyte) Flash Memory Mantenimento dati per 10 anni Memorizza Blocchi di Codice e Dati Utente Configurazione Hardware e area S.O. Memoria di Sistema Memoria di Lavoro,Area di Memoria,Memoria di Caricamento Memoria di Sistema Aree Operandi Merker, Temporizzatori e Contatori Immagini
3、 di Processo I/O Dati Locali (temporanei) Memoria di Lavoro,Area di Memoria,Memoria di Caricamento Memoria di Sistema Memoria di Lavoro Blocchi Codice e Blocchi Dati della porzione di programma da eseguire Interagisce con la MMC (carico del codice e dei dati) Memoria Lavoro=48 Kbyte,Area Memoria a R
4、itenzione,Il Programma utente e i dati nella MMC sono sempre a ritenzione Per i Merker, Temporizzatori e Contatori (Memoria di Sistema) lutente stabilisce quali parti debbano essere a ritenzione Es. M0.0-M15.0 sono a ritenzione Buffer di diagnostica, indirizzo MPI/DP sono a ritenzione,Caricamento Pr
5、ogrammi in MMC,Caricamento di un Programma Completo (tutti i blocchi) Cancellazione del programma presente Caricamento Parziale Aggiornamento di uno o pi blocchi Aggiunta di uno o pi blocchi I Programmi memorizzati in una MMC possono essere caricati nel PC,Gestione dei Programmi,Sistema Operativo Ge
6、stione avviamento (warm, cold) Aggiornamento immagine I/O Richiamo programma utente Gestione allarmi/errori/aree di memoria Comunicazione con altri dispositivi Programma Utente,Gestione dei Programmi,Sistema Operativo Programma Utente suddiviso in Blocchi: Blocchi Organizzativi (OB) Function Block (
7、FB) Funzioni (FC) Function Block di Sistema (SFB) Funzioni di Sistema (SFC) Blocchi Dati di Istanza (DB), per gli FB o SFB,Gestione dei Programmi Blocchi Organizzativi (OB),Comandano lesecuzione dei blocchi di programma utente Realizzano il task secondo IEC 1131-3 Sono contraddistinti da numeri e pr
8、iorit OB da 1(Low) a 28(High) Dentro ogni OB viene scritto un programma (eventualmente con chiamate a SFB, SFC, FB, FC),Gestione dei Programmi,Il S.O. viene eseguito in un loop Richiama lOB1 una volta per ciascun loop,OB1,Gestione dei Programmi,In ciascun ciclo il S.O.: Aggiorna le uscite (IPU) Legg
9、e gli ingressi (IPI) Esegue lOB1 Elabora dati di sistema,Gestione dei Programmi,E possibile scrivere lintero programma utente nellOB1 (Programmazione Lineare) Oppure possibile scrivere il programma utente nellOB1 in termini di chiamate a blocchi (Programmazione Procedurale),Gestione dei Programmi,Le
10、secuzione ciclica pu essere interrotta Es. allarmi, errori o interrupt,OB x,OB y,Gestione dei Programmi,Tempo di Ciclo: variabile E possibile impostare un Watchdog (Stop CPU) E possibile limitare il Carico di Comunicazione,Gestione dei Programmi OB 10 Allarme Orologio,Priorit 2 (OB1 ha priorit 1) Vi
11、ene Parametrizzato: Esecuzione: una volta, ogni minuto, ogni giorno, ogni settimana, ogni mese, etc. Data di Avvio Ora di Avvio,Gestione dei Programmi OB 20 Allarme di Ritardo,Priorit 3 (OB1 ha priorit 1) Permette di eseguire con ritardo alcune parti del programma utente Esiste una particolare funzi
12、one di sistema (SFC 32) attraverso cui possibile settare il tempo di ritardo di esecuzione dellOB 20 (che deve contenere il codice),Gestione dei Programmi OB 35 Schedulazione Orologio,Priorit 12 (OB1 ha priorit 1) Permette lesecuzione periodica di una porzione di codice Viene Parametrizzato: Per def
13、ault 100 ms Nel caso di pi processi ciclici (non nella CPU314C-2DP) possibile impostare un offset (per evitare avviamento simultaneo),Gestione dei Programmi OB 40 Interrupt di Processo,Priorit 16 (OB1 ha priorit 1) Il codice viene eseguito in reazione ad un segnale di Ingresso E necessario disporre
14、di una unit di I/O che supporti linterrupt di processo Nellunit di I/O vengono settati gli ingressi che determinano lattivazione dellOB40,Gestione dei Programmi OB 40 Interrupt di Processo,Nella configurazione hardware degli ingressi DIGITALI, selezionare: gli ingressi che determinano linterrupt di
15、processo Il fronte di salita o di discesa (anche entrambi) Il ritardo di ingresso (stabilizzazione del segnale) Creare lOB40 Scrivere il codice entro lOB40 Se si vogliono utilizzare gli ingressi, utilizzare le variabili locali L8.xx-L11.x Ad esempio L11.x corrisponde a I124.x,Gestione dei Programmi
16、OB 40 Interrupt di Processo,Questo codice permette di memorizzare gli ingressi I124.0, I124.1 e I 124.2 quando vi un fronte di discesa o salita o entrambi (dipende dalla configurazione),Gestione dei Programmi,Esistono degli OB che, se definiti, permettono di eseguire azioni in caso di eventi: OB 82,
17、 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,Avviamento,Nella CPU 314C-2DP consentito il solo
18、Avviamento Warm (Nuovo Avviamento) Lavviamento Warm diviene Cold, se non vi sono aree di memoria ritentive definite o utilizzate La CPU esegue un avviamento a caldo: Dopo RETE ON Da Stop a RUN OB 100 viene eseguito allavviamento Warm (nessun limite sulla durata),Avviamento: OB100,Pu essere utilizzat
19、o per linizializzazione di variabili Per i Merker si utilizza il comando SET La sintassi SET = variabile (nome o indirizzo). Ad esempio:SET= “home_robot“= “home1“= “home2“,Unit di I/O,24 Ix.x digitali (124, 125 e 126) E possibile settare interrupt di processo e ritardo di ingresso (filtro) 16 Qx.x d
20、igitali (124 e 125) 5 ingressi analogici IW x (752-761) 4 configurabili (tensione, corrente) 1 configurabile come (termo-)resistenza,Unit di I/O,2 uscite analogiche QW x (752-755) configurabili (tensione, corrente)4 canali di conteggio Conteggio eventi Conteggio in avanti o indietro Frequenza massim
21、a di conteggio: 60 KHz,Unit di I/O,Misura di frequenza La CPU conta gli impulsi che arrivano entro un tempo di integrazione prestabilito Tempo di integrazione impostabile tra 10 e 10.000 msec in passi di 1 msec Il valore di frequenza misurato viene fornito dopo il tempo di integrazione Frequenze mis
22、urabili: da 0 a 60 KHz,Unit di I/O,Modulazione ampiezza di impulsi (PWM) Viene emessa una sequenza di impulsi su una uscita digitale prescelta Lutente sceglie: Tempo Ritardo di Inserzione, Durata impulso e Durata periodo,Ritardo di Inserzione,Durata Periodo,Durata Impulso,Durata Periodo,Uscite Analo
23、giche Esempi di Programmazione,Ogni uscita analogica viene codificata con un INT (16 bit) -32768, , +32767 QW n (ogni uscita identificata da un numero) Codifica in Tensione: -10 V, , +10V 0,+10V Codifica in Corrente: -20mA, , +20mA 0,+20mA 4,+20mA,Uscite Analogiche Esempi di Programmazione,Ingressi
24、Analogici Esempi di Programmazione,Ogni ingresso analogico viene codificata con un INT (16 bit) -32768, , +32767 IW n (ogni uscita identificata da un numero) Codifica in Tensione: -10 V, , +10V 0,+10V Codifica in Corrente: -20mA, , +20mA 0,+20mA 4,+20mA Ingresso per lettura di temperatura,Ingressi A
25、nalogici Esempi di Programmazione,Function Block,Sono importantissimi per semplificare il codice e per renderlo riutilizzabile Essenzialmente la creazione consiste nella definizione di un Blocco Funzionale e di un Blocco Dati per ogni istanza Per ciascun Blocco Funzionale si possono definire i parametri formali e le variabili: IN, OUT, IN_OUT, STAT, TEMP Vengono richiamati premettendo il simbolo #,Function Block,Function Block,Function Block,Function Block,Function Block,Function Block,Function Block,Function Block,Uso memoria statica:,