Esercitazione in aula informatica - Automazione@ingre
Transcript
Esercitazione in aula informatica - Automazione@ingre
Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Università degli Studi di Ferrara PLC CodeSys Example 2 Francesca Fanfoni [email protected] Indice Esercitazione 1 Esempio in Ladder Diagram (LD) Esercitazione 2 Esempio in Structured Text (ST) Allocazione dei task [email protected] Un progetto ּסProgetto si intendono tutti gli oggetti necessari per la stesura del programma per PLC ּסGli oggetti sono: – POU (Program Organization Unit), – tipi di dato definiti dall’utente, – la parte di visualizzazione, – risorse – librerie. POU (Program Organization Unit) può essere Function, Function Block o Program. ּסUn progetto in CodeSys è identificato dal nodo che raccoglie tutti gli oggetti che sono necessari alla Application definizione di una particolare istanza del programma PLC su un determinato dispositivo hardware (PLC, controller). The First Project Task 1: Handle a dummy traffic signal unit. The red/green phases of both traffic signals alternate and we have to handle the request of pedestrian crossing to stop the traffic. Task 2: We will insert a yellow transitional phase. Step by step procedure 1. Create a schema solution, a new project and a new program 2. Compile a project 3. Run the simulator and transfer the project to the target 4. Configure the visualization 5. Testing the program sequence [email protected] The First Project Create a schema solution The red/green phases of both traffic signals alternate and we have to handle the request of pedestrian crossing to stop the traffic. START Car access GREEN LIGHT We have to think and design a solution draw a simple diagram that is directly connected to the PLC program. Wait pedestrian request to stop the traffic. traffic Pedestrian request Stop cars In the schema have to define: - States - Variables [email protected] RED LIGHT After the pedestrian cross the road reset the state. NOT Pedestrian request The First Project Ladder diagram (LD) • LOGIC AND serial connection of two or more contacts OR parallel connection of two or more contacts Negations Jumps to skip over networks in the program, using a symbolic name of a jump label [email protected] The First Project Compiling a project and trasferring the project • La soluzione viene implementata con 3 network •Uno stato corrisponde ad una network. •La prima network dell’Application gestisce l’inizializzazione dell’intero sistema. AVVIAMENTO DEL SISTEMA START Car access GREEN LIGHT Wait pedestrian request to stop the traffic. Pedestrian request NOT Pedestrian request Stop cars RED LIGHT After the pedestrian cross the road reset the state. [email protected] The First Project Compiling a project and trasferring the project • Ladder diagram program is dived in Network • Each network can be linked to a part of the solution schema [email protected] The First Project Compiling a project and trasferring the project • Ladder diagram program is dived in Network • Each network can be linked to a part of the solution schema [email protected] Global variables ּסDichiarazione di un insieme di variabili globali per il progetto. Global Variables List (GVL) ּסDichiarazione di un insieme di variabili globali per il progetto. ּסElenco delle variabili: Dichiarazione di una POU in ST ּסAggiungere un programma in testo strutturato all’applicazione. Structured Text (ST) ּסST is a textual language similar to “C”, or (for who might remember it) PASCAL. ּסST can be successfully used to develop complex algorithm, data structure handling, etc. ּסST has the syntactical structure of the procedural programming languages: – Assignment – Choices – Iteration C. Fantuzzi 3. I Linguaggi di Programmazione 13 Assignment ּסThe variable on the left side should be of the same type of the result of the expression of the right side. ּסon contrary, the ST compiler will introduce a variable casting to set all the variables to the same type. <variabl := <expression>; C. Fantuzzi 3. I Linguaggi di Programmazione 14 Choices IF <Boolean_Expr_1> THEN <code>; ELSIF <Boolean_Expr_2> THEN <code>; ELSE <code>; END_IF CASE <integer_expression> OF <integer_value_1> : <code>; <integer_value_2> : <code>; ... ELSE <code>; END_CASE C. Fantuzzi 3. I Linguaggi di Programmazione 15 Iteration REPEAT <code>; UNTIL <Boolean_Expr> END_REPEAT; WHILE <Boolean_Expr> DO <code> END_WHILE; FOR <integer_Variable>:= <initial_value> TO <final_value> BY <step> DO <code> END_FOR; C. Fantuzzi 3. I Linguaggi di Programmazione 16 Warning ּסThe iteration structure may violate the real time concerns of the program. ּסAn iteration can’t be done to wait for a external variable changes. C. Fantuzzi 3. I Linguaggi di Programmazione 17 ST Operators (a) C. Fantuzzi 3. I Linguaggi di Programmazione 18 ST Operators (b) C. Fantuzzi 3. I Linguaggi di Programmazione 19 POU in testo strutturato •Variabili del programma per gestire un diagramma a stati. •Inizializzazione del primo stato START Car access GREEN LIGHT Wait pedestrian request to stop the traffic. Pedestrian request Stop cars RED LIGHT After the pedestrian cross the road reset the state. NOT Pedestrian request POU in testo strutturato •Gli stati del sistema vengono gestiti con una struttura CASE … OF START 1 Car access GREEN LIGHT Wait pedestrian request to stop the traffic. Pedestrian request 2 NOT Pedestrian request Stop cars RED LIGHT After the pedestrian cross the road reset the state. •Aggiornamento dello stato Allocazione dei TASK ּסIl progetto principale è PLC_PRG e viene sempre eseguito. ּסPOU sono eseguite se sono allocate a un task periodico ּסAllocazione della nostra POU al task ּסPer definire un Task è necessario aver inserito, sotto il nodo application, l’oggetto Task configuration (con il comando “Add object”> “Configurazione attività”). Selezionando quest’ultimo ed eseguendo nuovamente il comando “Add object” sarà possibile inserire il Task. Allocazione dei TASK Priority: se più task soddisfano i criteri per ּסAllocazione della nostra POUeseguiti al taskquello a priorità maggiore viene essere eseguito Type: definisce la condizione che farà scattare (trigger) l’esecuzione del task (es: ciclico con intervallo fissato). POUs: in questo pannello vengono elencati, in ordine di esecuzione, i programmi controllati dal task. In modalità online il Task editor fornisce informazioni sui tempi di ciclo e sullo stato dei task. Esercizio 2 Esercizio 2: Controllo semaforo Descrizione dell‘ applicazione: Funzione: premendo il pulsante start inizia il ciclo semaforico. Azione: All’attivazione del pulsante il sistema esce dallo stato “standby” ed esegue il ciclo semaforico. Il ciclo prevede 4 stati, a ciascuno dei quali corrispondono opportune uscite per i due semafori: “verde”, “verde-giallo”, “giallo-rosso”, “rosso”. Il passaggio da uno stato all’altro è determinato da un timer Dopo sette cicli il sistema torna nello stato di standby, nel quale tutte le luci sono spente [email protected] Esercizio 2 Esercizio 2: Controllo semaforo Descrizione dell‘ applicazione: Funzione: premendo il pulsante start inizia il ciclo semaforico. Azione: All’attivazione del pulsante il sistema esce dallo stato “standby” ed esegue il ciclo semaforico. Il ciclo prevede 4 stati, a ciascuno dei quali corrispondono opportune uscite per i due semafori: “verde”, “verde-giallo”, “giallo-rosso”, “rosso”. Il passaggio da uno stato all’altro è determinato da un timer Dopo sette cicli il sistema torna nello stato di standby, nel quale tutte le luci sono spente [email protected] PLC CodeSys Example 2 Francesca Fanfoni [email protected]
Documenti analoghi
Esercitazione in aula informatica - Automazione@ingre
The First Project
Task 1: Handle a dummy traffic signal unit.
The red/green phases of both traffic signals alternate and we have to
handle the request of pedestrian crossing to stop the traffic.
T...