PLC e SCADA, Sect.3. Programmable Logic Controller Programming

Documenti analoghi
Standard IEC 1131 Lo standard dei PLC

Standard IEC 1131 Lo standard dei PLC

Il Linguaggio di Programmazione IEC

Corso di Automazione industriale

STANDARD IEC PRIMA PARTE Introduzione SECONDA PARTE Elementi comuni TERZA PARTE Linguaggi di programmazione

Corso di Automazione industriale

Programmable Logic Controller Seconda Parte

Corso di Automazione industriale

UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II

Introduzione alla norma IEC

PLC CodeSys. Example 2. Automation Robotics and System CONTROL. Università degli Studi di Ferrara. Università degli Studi di Modena e Reggio Emilia

Dispositivi per il controllo

PLC CodeSys. Esercitazione 6. Automation Robotics and System CONTROL. Università degli Studi di Ferrara

VARIABLES. Project : ArduinoLCD VARIABLES : Release : LCDMessage. Ver :1.00. Author : Sergio Bertana. Date:18/02/2014. Note : Page:1 of 1

POLITECNICO DI MILANO. V Facoltà di Ingegneria P L C IEC Programmable Logic Controller. Sistemi ad eventi Discreti

Constant Propagation. A More Complex Semilattice A Nondistributive Framework

Linguaggi di Programmazione

Strutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register

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

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

Question 1: introduction to computer programming

Orchestra Control. Caso di Studio Scambiatore Pezzi SPI

Structured Text. Structured Text. Marco Mauri. Politecnico di Milano P.zza Leonardo da Vinci, Maggio

unità di organizzazione della programmazione

Function Block Diagram

A.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio

LA PROGRAMMAZIONE DEL PLC /1

id the business magazine for humans

Programmable Logic Controller

TIA PORTAL-SCL. Structured Control Language per Step7 V11. Orazio Vinci Siemens AG All Rights Reserved.

College Algebra. Logarithms: Denitions and Domains. Dr. Nguyen November 9, Department of Mathematics UK

Algoritmi Priority-Driven RT. Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo

Finite Model Theory / Descriptive Complexity: bin

Code: GW-IMP-WEB-1. Datalogger web pulses counter. Version 6 inputs with Ethernet. MarCom

Controllo di sequenze nell automazione industriale

IM-IU v0.1. alternata e continua. pag. 1 / 5

Database support Prerequisites Architecture Driver features Setup Stored procedures Where to use. Contents

MODULO 2 ELEMENTI DI PROGRAMMAZIONE DEL PLC S SIEMENS PARTE PRIMA IL LINGUAGGIO A CONTATTI

Introduzione al VHDL Lezione 3

SOFTWARE PER PLC: CICLO DI VITA

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

Linguaggio Assemblativo della famiglia 80x86

Linguaggio di Programmazione Ladder

WEB OF SCIENCE. COVERAGE: multidisciplinary TIME RANGE: DOCUMENT TYPES: articles, proceedings papers, books

Qui u ck c k PE P R E L

Sequential Functional Chart

Automazione e territorio

MD2208. Multi I/O Control Module D32305 Rev. B. Microdata Due Martec Group

Functional programming in F#: Data Structures

TIA Portal V12. Novità di programmazione nell S Siemens AG All Rights Reserved.

Info@HenonResearch.com. Http: Pagina 1

Sistemi e Tecnologie per l'automazione LS

ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2.

Il Linguaggio di Programmazione IEC Ladder

Scheduling. Scheduler. Class 1 Class 2 Class 3 Class 4. Scheduler. Class 1 Class 2 Class 3 Class 4. Scheduler. Class 1 Class 2 Class 3 Class 4

EMS_ _State_GenericInput_ModbusTable_LG_EN_v1.00.xlsx

Excel & VBA. Excel e Visual Basic for Application

Programmable Logic Controllers - PLC. Lezione 3

Tipi di segnali (logici) predefiniti. Rappresentazione dei segnali in VHDL. Tipo bit (definito nel package standard)

Controllori industriali: PLC

Analisi dei Requisiti, Progettazione Preliminare ed Esecutiva di Grandi Sistemi Ingegneristici: Casi di Studio

Downloading and Installing Software Socio TIS

MOSAIC MOR4/MOR4S8 RELAY OUTPUT EXPANSION UNIT

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.

Corso di laurea triennale in Informatica Turno A

Ingegneria e Tecnologie dei Sistemi di Controllo. Sistemi di controllo industriale general-purpose. purpose: : PLC.

Scheda Allarmi Alarm Board MiniHi

Puntatori, array, incrementi Array come parametri Array di puntatori. Programmazione 1. Lezione 12. Vincenzo Marra.

Rappresentazione dell informazione

Introduction. The Structure of a Compiler

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

EML-16 EML-16. Pulses concentrator. Concentratore impulsi MODBUS COMMUNICATION PROTOCOL PROTOCOLLO DI COMUNICAZIONE MODBUS

Ingegneria e Tecnologie dei Sistemi di Controllo. Sistemi di controllo industriale general-purpose: PLC. Sistemi di controllo industriale: PLC

SISTEMI PER L INDUSTRIA E PLC 10/01/18 Teoria, 30minuti, Minimo 4 punti su 12 di Programmazione

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

Programmazione Orientata agli Oggetti in Linguaggio Java

PROTOCOLLO DI COMUNICAZIONE MODBUS MODBUS COMMUNICATION PROTOCOL. MANUALE ISTRUZIONI / INSTRUCTION MANUAL IM163-IU v0.61

INTRODUZIONE AD OMNET++

Corso di Automazione industriale

Introduzione alla programmazione. Alice Pavarani

S7-1500=S Display?

FUNCTION_BLOCK ModbusConversion

Il linguaggio C. Notate che...

Combinazioni serie HL-MHL + MHL. Sono disponibili varie combinazioni tra e riduttori coassiali serie MHL (2 stadio).

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

Corso di Laurea in FISICA Dispositivi di calcolo II

Graphs: Cycles. Tecniche di Programmazione A.A. 2012/2013

CONTROL FAN SYSTEM VENTILATORI BLOWERS. Sistemi di controllo Control Systems SISTEMA DI VENTILAZIONE SALA MACCHINE ENGINE ROOM VENTILATION SYSTEM

Sequential Function Chart (SFC)

Settimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo.

Analog Matrix Switchers

USO DEI TEMPORIZZATORI NEI PLC S7 1500

Accesso Mul*plo - modelli

Transcript:

PLC e SCADA, Sect.3 Alessandra Flammini alessandra.flammini@unibs.it Ufficio 24 Dip. Ingegneria dell Informazione 030-3715627 Lunedì 16:30-18:30 Programmable Logic Controller Programming PLC e SCADA, A. Flammini, AA2017-2018

PLC needs "Real-Time" languages Extend procedural languages to express time ( introduce programming constructs to influence scheduling and control flow ) languages developed for cyclic execution and real-time ("application-oriented languages") ADA Real-Time Java MARS (TU Wien) Forth C with real-time features etc ladder logic function block language instruction lists GRAFCET SDL etc... could not impose themselves wide-spread in the control industry. Now standardized as IEC 61131

The long march to IEC 61131 NEMA Programmable Controllers Committee formed (USA) GRAFCET (France) DIN 40719, Function Charts (Germany) NEMA ICS-3-304, Programmable Controllers (USA) IEC SC65A/WG6 formed DIN 19 239, Programmable Controller (Germany) IEC 65A(Sec)38, Programmable Controllers MIL-STD-1815 Ada (USA) IEC SC65A(Sec)49, PC Languages IEC SC65A(Sec)67 IEC 848, Function Charts IEC 64A(Sec)90 IEC 1131-3 Type 3 report recommendation 70 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 IEC 61131-3 name change Source: Dr. J. Christensen it took 20 years to make that standard

The five IEC 61131-3 Programming languages Function Block Diagram (FBD) graphical languages Sequential Flow Chart (SFC) AUTO DI CALC1 CALC PUMP START STEP ACT V IN1 IN2 OUT >=1 MAN_ON DO V T1 STEP A T2 N D ACTION D1 ACTION D2 D1_READY D2_READY Ladder Diagram (LD) CALC1 STEP B T3 N D ACTION D3 ACTION D4 D3_READY D4_READY AUTO CALC PUMP ACT MAN_ON IN1 IN2 OUT textual languages Structured Text (ST) VAR CONSTANT X : REAL := 53.8 ; Z : REAL; END_VAR VAR afb, bfb : FB_type; END_VAR Instruction List (IL) A: LD %IX1 (* PUSH BUTTON *) ANDN %MX5 (* NOT INHIBITED *) ST %QX2 (* FAN ON *) bfb(a:=1, B:= OK ); Z := X - INT_TO_REAL (bfb.out1); IF Z>57.0 THEN afb(a:=0, B:= ERR ); ELSE afb(a:=1, B:= Z is OK ); END_IF http://www.isagraf.com

Importance of IEC 61131 (not only IEC61131-3) IEC 61131-3 is the most important automation language in industry. 80% of all PLCs support it, all new developments base on it. Depending on the country, some languages are more popular. Configuration Resource Resource Task Task Task Task FB Function Block Program Program Program Program FB FB FB FB Execution control path Access path

Importance of IEC 61131 Configuration. A configuration is specific to a particular type of control system, including the arrangement of the hardware, i.c. processing resources, memory addresses for I/O channels and system capabilities. Within a configuration one can define one or more Resources. One can look at a resource as a processing facility that is able to execute IEC programs. Within a resource, one or more Tasks can be defined. Tasks control the execution of a set of programs and/or function blocks. These can either be executed periodically or upon the occurrence of a specified trigger, such as the change of a variable. Programs are built from a number of different software elements written in any of the IEC defined languages. Typically, a program consists of a network of Functions and Function Blocks, which are able to exchange data. Function and Function Blocks are the basic building blocks, containing a data structure (FB) and an algorithm. Let s compare this to a conventional PLC: this contains one resource, running one task, controlling one program, running in a closed loop. IEC 61131-3 adds much to this, making it open to the future. A future that includes multi-processing and event driven programs. And this future is not so far: just look at distributed systems or real-time control systems. IEC 61131-3 is suitable for a broad range of applications, without having to learn additional programming languages. http://www.plcopen.org/pages/pc2_training/downloads/index.htm

Standard IEC 1131 Lo standard dei PLC Lo standard IEC 1131 è diviso in diverse parti: Parte 1: Informazioni Generali Parte 2: Requisiti e test dei dispositivi Parte 3: Linguaggi di Programmazione Parte 4: Linea guida per l utente Parte 5: Definizione dei servizi di messaggio Parte 6: Comunicazione attraverso bus di campo Parte 7: Programmazione controllo Fuzzy Parte 8: Linee guida per le applicazioni e l implementazione dei linguaggi di programmazione Definizione di PLC Sistema elettronico a funzionamento digitale, destinato all uso in ambito industriale, che utilizza una memoria programmabile per l archiviazione interna delle istruzioni orientate all utilizzatore per l implementazione di funzioni specifiche, come quelle logiche, di sequenziamento, di temporizzazione, di conteggio e di calcolo aritmetico, e per controllare, mediante ingressi ed uscite sia digitali che analogiche, vari tipi di macchine e processi. 7

Caratteristiche principali dello standard IEC 1131-3 Sviluppo strutturato del software Approccio bottom-up o top-down Suddivisione del programma in elementi funzionali (POU) clonabili e riusabili Strong data typing Verifica della coerenza tra tipo di dato e assegnazione e/o operazione Pieno controllo dell esecuzione Suddivisione del programma in task con differenti tempi di scansione Coesistenza di più linguaggi (5) per la descrizione di un applicazione Ladder, Sequential Function Chart (SFC), Instruction List (IL), Function Block Diagram (FBD), Structured Text(ST) Supporto alla descrizione delle sequenze Linguaggio SFC (Sequential Flow Chart) Supporto alla gestione di strutture dati (es. record e vettori) -> integrazione (database) Portabilità del software tra PLC di costruttori differenti 8

Modello Software dello standard IEC 1131-3 Configuration Resource Resource Task Task Task Task Program Program Program Program FB FB Var Globale FB Access Path 9

Modello Software dello standard IEC 1131-3 Il modello software IEC è a strati: ogni strato nasconde molte delle caratteristiche dei gli strati inferiori (astrazione). Configuration. Al livello più alto, il software per un particolare problema di controllo è contenuto in una Configuration. Una Configuration definisce il comportamento di un PLC per una specifica applicazione. Generalmente una Configuration equivale al software richiesto per un PLC. In applicazioni più complesse, in cui sono necessari parecchi PLC che interagiscono fra di loro, il software per ogni PLC sarà considerato come una Configuration separata. Una Configuration è in grado di comunicare con altre Configuration attraverso interfacce definite. 10

Modello Software dello standard IEC 1131-3 Dentro ogni Configuration ci sono una o più Resource. Una Resource fornisce il supporto per tutte le caratteristiche necessarie per l'esecuzione del programma. Un programma IEC non potrà funzionare fin quando non è stato caricato in una Resource. Normalmente una Resource esiste dentro un PLC, ma può anche essere simulata dentro ad un personal computer. Lo standard permette ad una Configuration di contenere un certo numero di Resource e per ogni Resource più di un programma. Questo permette ad un PLC di mandare in esecuzione un numero di programmi totalmente indipendenti. L'esecuzione di differenti parti di un programma può essere controllata usando i task. 11

Riassumendo: Configuration Può essere inteso come il software relativo ad un PLC (In IEC 1131-5 sono definite le modalità di comunicazione tra piu configuration access paths-) Resource Puo essere inteso come il software relativo ad una CPU Task Motore di attivazione di più parti di più POU di una resource esecuzione su evento o periodica (TIME) con priorità Program (POU= Program Organisation Unit) E un modulo e cioè un insieme organizzato di: Function (sistemi a più ingressi e una uscita privi di stati interni) Function block (procedure con parametri di ingresso e uscita e variabili locali Es. PID, -) 12

Il Modello Software e i Sistemi Reali Configuration Resource PLC program program Se il processore non supporta il multi-tasking, il numero di programmi è unitario! 13

Il Modello Software e i Sistemi Reali Processore Configuration Resource program program Multi-processor PLC Processore Resource program program Processore Resource program program 14

Il Modello Software e i Sistemi Reali FieldBus PLC PLC PLC PLC Configuration Resource Configuration Resource Configuration Resource program program program program program program 15

Riusabilità del software: Program Organization Units Program Organization Units (POUs): Programma Blocchi Funzioni (FB) Funzioni (FC) La definizione di un POU permette il suo utilizzo un numero di volte illimitato: Chiamate di funzioni Istanze di Programma Blocchi Funzioni (FB) Ciascuna istanza di un Programma o di un FB condivide lo stesso codice, ma ha la sua area privata di memoria Nell'ambito della stessa Configurazione è possibile utilizzare più istanze dello stesso programma in differenti Risorse Nell'ambito dello stesso Programma è possibile utilizzare più istanze dello stesso FB Non è ammessa alcuna ricorsione nelle POUs 16

Comunicazioni tra POUs Avviene tramite variabili globali definite a livello di: Configuration Resource Program Configuration Program X VAR_EXTERNAL x:real Resource VAR_GLOBAL x:real Program Y VAR_EXTERNAL x:real 17

Variable declarations Keyword VAR VAR_INPUT VAR_OUTPUT VAR_IN_OUT VAR_EXTERNAL VAR_GLOBAL VAR_ACCESS RETAIN CONSTANT AT Variable usage Internal to organization unit Externally supplied, not modifiable within organization unit Supplied by organization unit to external entities Supplied by external entities. Can be modified within org. unit Supplied by configuration via VAR_GLOBAL.Can be modified within organization unit Global variable declaration Access path declaration Retentive variables Constant Location assignment Example VAR CONDITION_RED : BOOL; IBOUNCE : WORD; MYDUB : DWORD; AWORD, BWORD, CWORD: INT; OKAY : STRING[10] := OK ; END_VAR 18

Data types Data Types such as: BOOL, BYTE, WORD, DOUBLE WORD, QUAD WORD INTEGER : SINT, INT, DINT, LINT, USINT, UINT, UDINT, ULINT REAL, LREAL DATE, TIME_OF_DAY, DATE_AND_TIME STRING e.g. DATE#2012-03-06 or D#2012-03-06 TOD#16:32:45.02 Derived Datatypes Direct derivation from elementary types, e.g.: TYPE R : REAL ; END_TYPE Enumerated data types, e.g.: TYPE ANALOG_SIGNAL_TYPE : (SINGLE, DIFFERENTIAL) ; END_TYPE Subrange data types, e.g.:type ANALOG_DATA : INT (-4095..4095) ; END_TYPE Array data types, e.g.:type ANALOG_16_INPUT_DATA : ARRAY [1..16] OF ANALOG_DATA ; END_TYPE www.plcopen.org 19

Directly Represented Variables Prefix Meaning Default data type I Input location Q Output location M Memory location X Single bit size BOOL None Single bit size BOOL B Byte (8 bits) size BYTE W Word (16 bits) size WORD D Double word (32 bits) size DWORD L Long (quad) word (64 bits) size LWORD 20

FUNCTIONS (FC) and FUNCTION BLOCKS (FB) Functions does not have internal states (no internal memory) Standard functions (ADD, MUL, SQRT, ) User-defined functions (defined by the user) Function Blocks have algorithm plus memory Standard Function Blocks like standard IC- (counters, timers, FF, ) User-defined Function blocks -like ASIC- 21

Function (FC) * Standard numerical functions (one input) ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN, ASIN, ACOS, ATAN * Standard arithmetic functions (two inputs) ADD, MUL, SUB, DIV, MOD, EXPT, MOVE * Standard bit string functions (one input): SHL, SHR, ROR, ROL * Standard logic functions: AND, OR, XOR, NOT * Standard selection functions: SEL (between 2), MUX (among N), MAX, MIN, LIMIT * Standard comparison functions : GT, GE, EQ, LE, LT * Character string functions: LEN(length), CONCAT, INSERT,... * Other types of functions (e.g. Data conversion) www.plcopen.org 22

Function (FC) * There are libraries of additional functions * Your own defined functions: FUNCTION SIMPLE_FUN : REAL VAR_INPUT A, B : REAL; C : REAL := 1.0; END_VAR SIMPLE_FUN := A*B/C; END FUNCTION www.plcopen.org 23

FUNCTION (FC) AND FUNCTION BLOCK (FB) FUNCTION INC: BOOLEAN VAR_INPUT XIN1, XIN2 : REAL; END_VAR IF XIN1 <= XIN2 THEN INC := 0 (* XIN1 decreasing *) ELSEIF XIN1 > XIN2 THEN INC := 1; (* XIN1 increasing *) END_IF; END_FUNCTION XIN2 is the delayed input XIN1 FUNCTION_BLOCK HYSTERISIS VAR_INPUT XIN1, XIN2 : REAL; EPS : REAL; (* Hysterisis band *) END_VAR VAR_OUTPUT Q : BOOL := 0 END_VAR IF Q THEN IF XIN1 < (XIN2-EPS) THEN Q := 0 (* XIN1 decreasing *) END_IF; ELSIF XIN1 > (XIN2 + EPS ) THEN Q := 1; (* XIN1 increasing *) END_IF; END_FUNCTION_BLOCK 24

TASK (1) Concetti fondamentali della schedulazione di processi: Un processo può trovarsi nello stato di pronto, di attesa o di esecuzione Un processo nello stato di pronto viene posto in esecuzione in base alla politica di scheduling del S.O. E possibile assegnare una priorità ai processi in modo da aiutare il S.O. nella scelta del processo da porre in esecuzione tra i processi pronti Task nello standard IEC 61131-3: Ha il compito di risvegliare un processo ponendolo nello stato di pronto Permette di assegnare differenti controlli sulla esecuzione di Programmi o di Function Blocks appartenenti alla stessa Resource 25

TASK (2) Ad ogni Programma e FB viene associato un task. Esistono tre tipi di tasks: Cyclic tasks: sono attivati ad intervalli temporali e il programma è eseguito periodicamente (o ciclicamente) System (or Error) tasks: sono attivati se un evento di sistema (errore di sistema) avviene durante l esecuzione di un programma, ad esempio stack overflow Event (or Interrupt) tasks: sono attivati all occorrenza di certi eventi, ad esempio se una variabile ha raggiunto un certo valore o al sopraggiungere di un interrupt Un programma senza task associato ha la più bassa priorità e viene posto in stato di pronto appena termina 26

TASK (3) La dichiarazione dei task è caratterizzata dai seguenti parametri: Task Sistema/Interrupt Definizione dell'evento (strettamente legato al PLC) Task Cyclic Definizione dell'intervallo. Si noti che il task può essere eseguito anche dopo intervalli superiori all'intervallo specificato, in dipendenza del S.O. WatchDog Time. Specifica l intervallo temporale dopo il quale viene controllato se l intervallo Periodico è stato superato o no. Si sceglie generalmente inferiore o uguale alla durata dell'intervallo. Priorità Viene assegnata una priorità al task, generalmente in ordine decrescente (0 la più alta). Si usa nella scelta tra processi pronti. 27

TASK (4) I Task sono degli strumenti per controllare l'esecuzione dei processi, ma l'esecuzione dipende dal Sistema Operativo (preemptive, non-preemptive) Esempio: tre tasks: Task A, Cyclic, Interval 100ms, priorità 0, durata 10 Task B, Cyclic, Interval 200ms, priorità 1, durata 90 Task C, Cyclic, Interval 300ms, priorità 2, durata 120 Non-preemptive schedule A B C Preemptive schedule 100 200 300 400 500 600 100 200 300 400 500 600 28

Elementi in Comune tra i 5 linguaggi IEC 61131-3 Identificatori Un identificatore può essere costituito da una sequenza di lettere e numeri purché siano soddisfatte le seguenti condizioni: il primo carattere non sia un numero non ci siano più di due caratteri "_" consecutivi non vi siano spazi Lo standard impone che almeno i primi 6 caratteri debbano differenziare due identificatori Keywords Lo standard definisce un set di keywords (ad esempio VAR, VAR_EXTERNAL, VAR_ACCESS). Si deve evitare l'uso di identificatori uguali alle keywords. Commenti Vengono messi tra (* *) Tipi di dati predefiniti Interi, Reali, Time, Date, String, Boolean NOTA: i 5 linguaggi coesistono 29

Linguaggi di programmazione tradizionali Ladder diagram (schemi a contatti, KOP per Siemens) Orientato ai manutentori Richiama gli schemi funzionali a relais Input operators followed by output operators Input operators: True? False? GE? LE? EQ? Output operator: assign, sum, inc, convert, Instruction List (lista di istruzioni, AWL per Siemens) Orientato al personale informatico Pseudoassembler Accumulator := operator & operand Function Block diagrams (Schemi funzionali, FUP per Siemens) Orientato al personale elettronico (è come realizzare una scheda partendo dai componenti e collegandoli tra loro) Segue lo standard ANSI/IEEE Std.91 30

Linguaggi AWL, FUP, KOP Un esempio: (A1.0) = (E0.0)&(E0.1) + (E0.2)&(E0.3) nota: A=uscita E=ingresso 31

LADDER DIAGRAM: generality Ladder diagram Traditional relais-based approach Input operators followed by output operators Input operators: True? False? GE? LE? EQ? Output operator: assign, sum, inc, convert, 1 3 2 1-2, NC 2-3, NO NO (normally Open) NC (normally closed) contacts: NO Normally open contacts are used for enabling signals (if the link fails it appears as open, that is inactive no enabling-) NC Normally closed contacts are used for disabling signals (if the link fails, it appears as open, that is active disabling-) Combinatorial logics (input = contact, output = coil) Logic OR = parallel of contacts if active high- Logic AND = series of contacts if not active low- 32

LADDER DIAGRAM: generality Coils S R Combinatorial logic with assign (coil) logic (e.g. Truth table) Every cycle the output is reassigned on the basys of input function No memory effect Only one assign operation for each variable (only the last one has effect in OB1) If input then output=1 else output=0 Combinatorial logic with set/reset (coil) logic Every cycle the output can be set/reset or left without change Memory effect Several set (reset) operations can coexist in an OR logic Set and Reset can coexist, but in OB1 only the last change has effect If input then output=1 (if set) else output remains with the previous value NOTE: all other operators (Math, Log, Transfer, ) act according to S/R logic 33

LADDER DIAGRAM: contacts and coils A B C D If (A+!B)&C then D:=1 else D:=0 F E D If F&!E then D:=1 else D:=0 This instruction destroy effect of the previous B B C S C R is equal to B C if B does not change between the two tests In HW logics (relays), functions are executed in parallel, in a ladder program segments are executed in a sequence 34

LADDER DIAGRAM: RLC OB, FC or FB are composed by segments Each segment is performed according to an accumulator RLC (Result logic combinatorial) RLC is updated at every logic step of the segment according to elementary operations: RLC:= RLC.operand.operator Stack operators and Stack operands Temporary values and operators of RLC are stored in stacks 35

LADDER DIAGRAM: RLC-based operators Intermediate operators (not input, not output) Connectors RLC value can be stored in connectors Connector is not an output M2.3 # NOT NOT negates the RLC that is NOT negates preceding function Special operator Threshold (P = rising edge, N = falling edge) Aux_var is needed for old_value of var Aux_var is updated after execution of this instruction (one-time use) How to generate an always 0 or always 1 memory NOT var P aux_var Ais0 Ais0 Ais1 Ais1 R S 36

LADDER DIAGRAM: JUMP JUMPS (unconditioned or conditioned) are allowed in STEP7 both fourth and back Back JUMPS could lock OB1.. L261 L261 JMP Unconditioned (RLC-independent).. A B L261 L261 JMP Conditioned (RLC-independent) JMP if RLC=1 JMPN if RLC=0 37

LADDER DIAGRAM: DATA - Bit, strings of bits (bit array), byte (8 bit), word (16 bit), Dword (32 bit) Logic operations - Integer: short (S, 8 bit), normal (16 bit), Double (D, 32 bit), signed or unsigned (U) - Real: simple (-1) s 1.m 2 e (32bit, s,8e,23m) and double precision (L, 64 bit, s,11e,52m) Math operations - Time (32 bit, in ms), from T#-24d20h31m23s648ms to T#+24d20h31m23s647ms Timers operations Memory Area - I (input), Q (output), P (peripheral): bit, byte, word, Dword (no retention) -M (merker), possible retention, variables, data blocks 38

LADDER DIAGRAM: OPERATORS Operators are available and can be used as contact (input) Compare or relational (e.g. if Var1 > Var2 ) thresholds of timers or counters Operators are available and can be used as coils (output) assign, move math (add, sub, mul,..) call of subroutines (functions) set of counters or timers 39

LADDER DIAGRAM: TIMERS -Timers are special data blocks (In= Enable, ET=value, PT=Threshold, ) - several types of timers Tipo Timer TON TOF TP Il conteggio inizia Fronte salita In Fronte discesa In Fronte salita In TONR Fronte salita In Il conteggio si ferma Fronte discesa In Il conteggio si azzera Fronte discesa In Fronte salita In Fronte discesa In & ET>=PT Solo al reset Out è a 1 se Il timer si timer attivo e disattiva Se ET >= PT Fronte discesa In Se ET < PT Solo al reset Se ET < PT Fronte discesa In & ET>=PT Se ET >= PT Solo al reset 40

LADDER DIAGRAM: SEQUENCES Sequences can be implemented in ladder (one transaction only at a cycle) 1) Check transactions conditional transactions (if State= and condition then assign Next_State= ) unconditional transactions (if condition then assign Next_State= ) Note: if no transactions Next_state still remains the same 2) Execute transactions Assign Old_State <= State Assign State <= Next_state 3) Execute actions within steps (different values of State) if State= then Action1, Action2, if State= then Action3, Action4, Suitable only for very simple state machines 41

Linguaggio Sequential Function Chart (SFC) Linguaggio orientato alle sequenze Deriva dallo standard IEC 848 basato su alcune idee tipiche del Grafcet Linguaggio Grafico Grafcet: Standard Francese basato sulle Reti di Petri Vantaggi: Programmazione Top-Down I principali componenti sono: passi, transizioni e azioni Passi e transizioni sono collegati Possibili azioni connesse ai passi Step1 NO Action -> WAIT step AND start (TRUE, FALSE) Condizioni di transizione Adatto a descrivere FB e POU Step2 Non descrive FC Step1 Step2 x y Step1 Un esempio di transizione z Step2 42

Linguaggio Structured text (ST) Structured Text (ST ) E un linguaggio di programmazione ad alto livello E strutturato a blocchi Simile al Pascal Supporta istruzioni e cicli Loop iterativi (REPEAT-UNTIL; WHILE-DO) Esecuzioni condizionali (IF-THEN-ELSE; CASE) Funzioni (SQRT(), SIN()) Un esempio di macchina a stati (* macchina a stati *) TxtState := STATES[StateMachine]; CASE StateMachine OF 1: ClosingValve(); ELSE ;; BadCase(); END_CASE; 43