function block diagram - politecnico di milanodocenti.etec.polimi.it/ind32/didattica... ·...

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

Upload: others

Post on 30-Mar-2020

34 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 1

Function Block Diagram

Marco MauriPolitecnico di Milano

P.zza Leonardo da Vinci, 32

Page 2: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 2

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

Page 3: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 3

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

Page 4: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 4

Elementi grafici

Link orizzontale ----------

Connessione |

------+------

|

Incrocio tra segnali

orizzontali e verticali

| |

| |

---------+

| |

Angoli---------+

|

Connettori --------> LOAD_JOB >

> LOAD_JOB>--------

>LOAD_JOB>

>LOAD_JOB>

Page 5: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 5

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

Page 6: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 6

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

Page 7: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 7

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)

Page 8: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 8

Convenzioni grafiche

And

Esempio di function

Label identificativa

della funzione

Esempio di function block

in1

in2

out1

out2

PlantControl

PlantControl1

Label uscita

Label ingresso

Label tipo FB

Label istanza

Page 9: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 9

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

Page 10: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 10

Gli archi

+

and

var1

var2

or

nor

in1

in2

out1

out2

PlantControl

PlantControl1

var3

var4

var5

var1

var6

NOT

Page 11: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 11

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

Page 12: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 12

Feedback loop

Fb1 Fb2

Fb3

Fb1 Fb2

Fb3

>label> >label>

Loop esplicito

Loop implicito

Page 13: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 13

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

Page 14: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 14

Controllo dell’esecuzione

Fb1

Fb2

Fb3 EN ENO

EN

Page 15: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 15

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 ( --->>)

Page 16: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 16

Salti e label

Fb1Fb2

Fb3

Fb4

>>

Section_name:

Section_name

Fb5

Page 17: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 17

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

Page 18: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 18

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

Page 19: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 19

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

Page 20: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 20

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.

Page 21: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 21

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

Page 22: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 22

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

Page 23: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 23

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

Page 24: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 24

Consigli grafici

Ingressi nascosti

Page 25: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 25

Consigli grafici

Percorso confusoIntersezione di

archi

Page 26: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 26

Continuous function chart

ResourceTask

Interval

Priority

T#50ms

1

PROGRAM

END_PROGRAM

Fb3

Fb3_1

Page 27: Function Block Diagram - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica... · 2011-07-18 · nella norma IEC 167 • La norma IEC 1131-3 ha formalizzato la sua definizione

Function Block Diagram

22-23 Maggio 2001 27

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