Function Block Diagram

Похожие документы
Programmable Logic Controller Seconda Parte

Sequential Function Chart

Introduzione alla programmazione

Lezione 6 Introduzione al C++ Mauro Piccolo

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Reti e Sistemi per l Automazione LADDER LOGIC. Stefano Panzieri Ladder Logic - 1

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Caratteristiche di un linguaggio ad alto livello

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Università degli Studi di Cassino

Introduzione a Matlab

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Strutture dati e loro organizzazione. Gabriella Trucco

Corso di Automazione industriale

Dispositivi per il controllo

Corso di Ingegneria del Software. Activity Diagram

Algebra di Boole X Y Z V. Algebra di Boole

Sistemi Web per il turismo - lezione 3 -

PREMESSA In questa lezione analizziamo le diverse modalità di programmazione del PLC, soffermandoci in particolare sulle programmazioni KOP e AWL.

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Tecnologie dei Sistemi di Automazione

PROBLEMI ALGORITMI E PROGRAMMAZIONE

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

Automazione e territorio

LINGUAGGI DI PROGRAMMAZIONE!

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

LA METAFORA DELL UFFICIO

Algebra di Boole Algebra di Boole

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Esercitazioni di Reti Logiche. Lezione 5

Algoritmi e soluzione di problemi

Fondamenti di Informatica

Informatica Generale Andrea Corradini I linguaggi di programmazione

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Tecnica basata su Relazioni I/O Circuito di Clock

Rappresentazione base 2

Formalismi per la descrizione di algoritmi

LA METAFORA DELL UFFICIO

Richiami di Algebra di Commutazione

Rappresentazione con i diagrammi di flusso (Flow - chart)

Minimizzazione a più livelli di reti combinatorie Cristina Silvano

Introduzione alla programmazione Esercizi risolti

Il linguaggio C. Notate che...

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

PLC. PROGRAMMABLE LOGIC CONTROLLER 2a parte CON RIFERIMENTO ALLE CPU SIEMENS ST 200 ED AL SW STEP 7 MICRO/WIN 32

Il Modello di von Neumann (2) Prevede 3 entità logiche:

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

LA CODIFICA DELL INFORMAZIONE

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Reti Logiche 1. Prof. B. Buttarazzi A.A. 2009/2010. Reti Sequenziali

Le basi del linguaggio Java

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

NORMA CEI EN PLC: programmazione. PLC: programmazione. PLC: programmazione. Automazione Industriale 3. Automazione Industriale

Capitolo 5 - Funzioni

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

AUTOMA A STATI FINITI

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

28/02/2014 Copyright V. Moriggia

Istruzioni di trasferimento dati

ELABORAZIONE DEI SEGNALI ANALOGICI NEL PLC S7-1200

Sequential Functional Chart

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

senza stato una ed una sola

Programmazione con Java

PROGRAMMAZIONE STRUTTURATA

Laboratorio di programmazione

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Note sull utilizzo di ISAGRAF V. 3.31

Programmazione in Java (I modulo)

STRUTTURE DI CONTROLLO DEL C++

Транскрипт:

Function Block Diagram Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32 22-23 Maggio 2001 1

Sommario Struttura del linguaggio e notazioni grafiche Come esprimere espressioni semplici e complesse Come mostrare il flusso di segnale tra funzioni e function block Come assegnare valori alle variabili Come gestire il feedback di un segnale Regole per la valutazione di un diagramma FBD Restrizioni sulla portabilità di codice tra ST e FBD 22-23 Maggio 2001 2

Introduzione Il linguaggio FBD è un linguaggio grafico bidimensionale che si configura con una struttura simila a quella di un circuito hardware E prevista anche una notazione basata solo su caratteri ASCII FBD era stato introdotto come sistema di specifica nella norma IEC 167 La norma IEC 1131-3 ha formalizzato la sua definizione come linguaggio di programmazione 22-23 Maggio 2001 3

Elementi grafici Link orizzontale ---------- Connessione ------+------ Incrocio tra segnali orizzontali e verticali Angoli ---------+ ---------+ Connettori --------> LOAD_JOB > > LOAD_JOB>-------- >LOAD_JOB> >LOAD_JOB> 22-23 Maggio 2001 4

Elementi grafici Blocco con connessioni +---------+ ---- --- ---- --- +---------+ La rappresentazione completamente grafica non è specificata completamente nella norma. Vengono definiti solo alcuni elementi fondamentali. La rappresentazione può quindi dipendere dall implementazione 22-23 Maggio 2001 5

Metodologia FBD può essere utilizzato per descrivere programmi, funzioni o Function Blocks Può anche essere utilizzato per descrivere azioni e transizioni per il linguaggio SFC La sua caratteristica principale è la rappresentazione di flussi di dati e ciò fa sì che sia applicato soprattutto per la definizione del loop di controllo e per le sezioni di logica Come molti linguaggi grafici, FBD si basa sulla connessione di blocchi che presentano gli ingressi sulla sinistra e uscite sulla destra 22-23 Maggio 2001 6

Convenzioni grafiche Alcune convenzioni grafiche devono essere usate : Un function block è rappresentato come un blocco rettangolare con gli ingressi a sinistra e le uscite a destra Il nome del function block deve essere sempre indicato con il blocco, mentre il nome dell istanza deve essere indicato sopra il blocco. Devono essere indicati anche i nomi degli input e degli output. Questi possono essere omessi nella rappresentazione grafica ma devono essere comunque possibile accedervi (ad es. si possono usare delle label con dei numeri, ma deve essere comunque possibile visualizzare il nome completo) 22-23 Maggio 2001 7

Convenzioni grafiche Label identificativa della funzione Label istanza Label ingresso PlantControl1 Label tipo FB Label uscita And in1 in2 PlantControl out1 out2 Esempio di function Esempio di function block 22-23 Maggio 2001 8

Gli archi Gli archi connettono i blocchi rappresentano i flussi di dati Attraverso gli archi possono transitare date appartenente a qualunque tipo di variabile riconosciuto dalla norma Il propagarsi dell informazione avviene da sinistra verso destra in maniera tale che l esecuzione di un blocco determina il contemporaneo aggiornamento delle sue uscite La negazione di un segnale può avvenire mettendo un piccolo cerchietto in corrispondenza di un ingresso. Se questa funzione non è supportata la negazione di un segnale avviene semplicemente utilizzando la funzione NOT 22-23 Maggio 2001 9

Gli archi var1 var2 + in1 PlantControl1 PlantControl out1 var1 in2 out2 var6 var3 var4 and nor var5 or NOT 22-23 Maggio 2001 10

Feedback loop La norma ammette che un diagramma FBD presenti loop chiusi interni Questi loop possono essere espliciti o impliciti: Espliciti se esiste un arco che connette un output con un input Impliciti se il loop è creato utilizzando un connettore Non è però specificato dallo standard la modalità di apertura dell anello, la soluzione dipende quindi dall implementazione Alcuni tool permettono la definizione dell ordine di esecuzione 22-23 Maggio 2001 11

Feedback loop Fb1 Fb2 Loop esplicito Fb3 Loop implicito >label> Fb1 Fb2 >label> Fb3 22-23 Maggio 2001 12

Controllo dell esecuzione Per controllare il flusso di esecuzione un function block o una function hanno a disposizione degli input e output addizionali : EN e ENO EN è un ingresso booleano che permette di controllare l esecuzione di una funzione. Se EN è TRUE la funzione è calcolata, altrimenti le sue uscite non vengono calcolate ENO è una variabile booleana di uscita che commuta da FALSE a TRUE quando la funzione ha completato la sua esecuzione Si possono così creare condizioni di trigger legate a precisi valori di variabili 22-23 Maggio 2001 13

Controllo dell esecuzione Fb3 EN Fb1 ENO EN Fb2 22-23 Maggio 2001 14

Salti e label E possibile modificare l ordine di esecuzione della rete FBD utilizzando l opzione grafica di Salto (Jump) La sezione della rete a cui si salta viene specificata attraverso una label I segnali che determinano la condizione di jump sono normalmente identificati con una doppia freccia ( --->>) 22-23 Maggio 2001 15

Salti e label Fb3 >> Section_name Fb4 Section_name: Fb1 Fb2 Fb5 22-23 Maggio 2001 16

Salti e label La norma non specifica cosa succede al resto della rete quando viene incontrato un salto. Una interpretazione è che tutti i blocchi della rete siano valutati dopo che il salto è stato fatto. Una interpretazione alternativa è che l esecuzione della rete sia bloccata e la rete identificata dalla label cominci ad essere eseguita E consigliabile non utilizzare i salti in una rete FBD non essendo chiare le regole di evoluzione 22-23 Maggio 2001 17

Regole di esecuzione La norma non presenta regole precise per determinare l ordine di esecuzione dei blocchi all interno di una rete FBD Questo aspetto fa sì che in questo caso si trovino soluzioni diverse passando da uno strumento commerciale ad un altro La norma fissa comunque alcuni principi generali che devono essere rispettati 22-23 Maggio 2001 18

Regole di esecuzione Nessun elemento può essere valutato se non sono stati aggiornati tutti gli ingressi L esecuzione di un elemento di una rete non può considerarsi completata fino a quando tutte le sue uscite non sono state aggiornate L esecuzione di un intera rete non è completa fino a quando tutte le sue uscite non sono state aggiornate Quando i dati sono trasferiti da un blocco ad un altro si devono riferire alla medesima esecuzione 22-23 Maggio 2001 19

Portabilità tra ST e FBD La maggior parte dei costrutti FBD può essere tradotta in ST. Ci sono problemi nel rappresentare in ST il flusso di esecuzione. Non esiste in ST una esplicita notazione per accedere a EN e ENO. Nella traduzione da ST a FBD è difficoltosa la rappresentazione dei cicli e non esistono funzioni esplicite per accedere agli elementi di un dato strutturato. 22-23 Maggio 2001 20

Regole di buona programmazione L uso di jump dovrebbe essere evitato Il programma dovrebbe essere decomposto in Function Blocks che limitano il numero di archi di connessione al fine di non rendere troppo complessa la lettura del grafico La precedente affermazione va poi bilanciata con l esigenza di limitare i livelli di annidamento dei Function Blocks Tutte le variabili interne della rete dovrebbe essere inizializzate durante la fase di start del sistema 22-23 Maggio 2001 21

Regole di buona programmazione Fanno eccezione le variabili direttamente legate ad un input dal campo Un valore di default deve anche essere assegnato alle variabili direttamente legate ad uscite sul campo Minimizzare il numero di conversioni di tipo ed eliminare le conversioni implicite Evitare l uso di operazioni in cui gli operandi appartengono a tipi diversi L affermazione precedente è particolarmente importante nel caso di confronti 22-23 Maggio 2001 22

Regole di buona programmazione Evitare in particolare l uso misto di variabili signed e unsigned Nel caso di gestione di variabili a virgola mobile preferire il tipo LREAL (64 bit) rispetto al REAL (32 bit) Evitare l uso di variabili in virgola mobile nel caso di operazioni di confronto 22-23 Maggio 2001 23

Consigli grafici Ingressi nascosti 22-23 Maggio 2001 24

Consigli grafici Percorso confuso Intersezione di archi 22-23 Maggio 2001 25

Continuous function chart Resource T#50ms 1 Task Interval Priority PROGRAM Fb3_1 Fb3 END_PROGRAM 22-23 Maggio 2001 26

Conclusioni FBD è un linguaggio che può essere usato per un ampio spettro di applicazioni compresi i problemi di logica booleana e controlli in anello chiuso Nonostante è disponibile il costrutto di salto, FBD è adatto principalmente a descrivere sistemi il cui comportamento è continuo. Per problemi diversi è preferibile strutturare il programma FBD utilizzando SFC. Non c è una corrispondenza univoca tra FBD e gli altri linguaggi E possibile specificare la struttura ad alto livello di un sistema grazie ad una estensione del programma FBD chiamata Continous function charts 22-23 Maggio 2001 27