Differenti linguaggi di programmazione Stessi linguaggi ma differenti implementazioni Difficoltà nell'utilizzo di sub-routine Difficoltà nel produrre software.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Introduzione al linguaggio C++
LINGUAGGIO DI PROGRAMMAZIONE C
P. L. C. (Programmable Logic Controller)
Introduzione al linguaggio C
I DATI I PRINCIPALI TIPI DI DATO UTILIZZATI IN PROGRAMMAZIONE
Algoritmi e Programmazione
Massa Laura Mela Enrica
1 Semantica Operazionale di un frammento di Java: lo stato.
Il Linguaggio di Programmazione IEC
Tipologie di Controlli in Ambito Industriale
Caratteristiche Principali PLC Siemens CPU 314C-2 DP
Sequential Function Chart (SFC)
PLC PCD1 della SAIA-Burgess
Sincronizzazione fra processi
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
File.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
Eliana minicozzi linguaggi L1 Lezione3.
eliana minicozzi linguaggi1a.a lezione2
1. 2 ALCUNE INFORMAZIONI PRELIMINARI Docente: E. Burattini Libri di testo: Deitel H.M., Deitel P.J. – C++ Fondamenti di programmazione,
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Introduzione ai PLC.
Introduzione alla programmazione lll
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.
Unità Didattica 2 I Linguaggi di Programmazione
nome: sequenza di caratteri usata per denotare un oggetto
memoria gestita staticamente:
Sistemi Operativi GESTIONE DEI PROCESSI.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Strutture di controllo in C -- Flow Chart --
Dichiarazioni e tipi predefiniti nel linguaggio C
CAPITOLO 7.
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
Equivalenza di espressioni
Il Linguaggio C.
Le funzioni.
Espressioni condizionali
SQL SQL (pronunciato anche come l’inglese sequel) è l’acronimo di Structured Query Language (linguaggio di interrogazione strutturato) E’ un linguaggio.
Java base I: Sintassi e tipi di dati
Programmazione in Java
4 Tipi di dati & variabili
JAVA Franco Bombi 8 ottobre FB Introduzione Java è un linguaggio di impiego generale, basato su classi e orientato agli oggetti Java.
CODIFICA Da flow-chart a C++.
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Architettura del calcolatore
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Ufficio Tecnico Panasonic Electric Works Italia srl
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Introduzione a Javascript
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 7 Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi.
Programmazione in Java
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
STRUTTURA DI UN PROGRAMMA C In prima battuta, la struttura di un programma C è definita dalla seguente produzione: ::= { }
UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA Dispositivi per il.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Differenti linguaggi di programmazione Stessi linguaggi ma differenti implementazioni Difficoltà nell'utilizzo di sub-routine Difficoltà nel produrre software riutilizzabile Limiti nella definizione di strutture dati più complesse Difficoltà nel differenziare l'esecuzione di pezzi di uno stesso programma o di più programmi in base alle esigenze temporali Limiti della Programmazione Tradizionale dei PLC

Limiti dei linguaggi di programmazione tipo Ladder: per applicazioni di sequencing per eseguire funzioni più o meno complesse (anche le semplici operazioni matematiche) Limiti della Programmazione Tradizionale dei PLC

International Electro-technical Committee (IEC) Commissione Tecnica: TC65 "Industrial Process Measurement and Control Sottocommissione: SC65B "Devices Working Group: WG7 "Programmable Control Systems". Soluzione ai limiti prima evidenziati: Standard IEC

lo standard definisce 5 linguaggi: Ladder, Sequential Function Chart (SFC), Instruction List, Function Block Diagram, Structured Text lo standard permette approcci: top-down e bottom- up. un programma può essere decomposto in Program Organisation Unit (POU) lo standard permette il pieno controllo dell'esecuzione di ciascun "sotto-programma" tramite l'assegnazione a task Caratteristiche principali dello standard IEC

lo standard permette la definizione di strutture dati: record, vettori. lo standard garantisce in teoria la portabilità del software. lo standard permette lo sviluppo di programmi orientati al sequencing (ad esempio tramite il Sequential Function Chart - SFC) lo standard è basato sulla programmazione grafica Caratteristiche principali dello standard IEC

Modello Software dello standard IEC Access Path Configuration Resource Task Program FB Program Var Globale F

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

Corrispondenza tra il Modello Software e i Sistemi Reali Configuration Resource program Processore Multi-processor PLC Processore program Resource program Resource program

Corrispondenza tra il Modello Software e i Sistemi Reali PLC FieldBus Configuration Resource program Resource program Resource program

POUs: program, function blocks, function La definizione di un POU permette il suo utilizzo un numero di volte illimitato: chiamate di funzioni e istanze di Programma e Function Block Ciascuna istanza di un Programma o di un Function Block 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 Function Block Non è ammessa alcuna ricorsione nelle POUs Riusabilità del software: Program Organisation Units (POUs)

Avviene tramite variabili globali definite a livello di: Configuration, Resource o di Program E possibile luso dei parametri formali Comunicazioni tra POUs VAR_GLOBAL x:REAL VAR_EXTERNAL x:REAL Configuration Resource Program X Program Y VAR_EXTERNAL x:REAL

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 Elementi in Comune tra i 5 linguaggi IEC

Tipi Interi IEC Data TypeDescriptionBitsRange SINTshort integer8-128,+127 INTinteger , DINTdouble integer , LINTlong integer , USINTunsigned short int80, 255 UINTunsigned int160, UDINTunsigned double int320, ULINTunsigned long int640, Valori e/o Costanti: espresse dal numero decimale in base differente da quella decimale, preceduta dal prefisso base# Esempi: 12 2# o 2#1111_1111 (255) 8#377 (255) 16#FF (255) Variabili:

Tipi Reali Valori e/o Costanti: espresse dal numero reale espresse tramite notazione scientifica (E o e) Esempi: _ E e+14 Variabili: IEC data typedescriptionbitsrange REALreal LREALlong real

Tipo Duration (Time) Valori e/o Costanti: tramite gli operatori d, h, m, s, ms preceduti dall'operatore T# o TIME# Esempi: T#12d3h2s T#3s56ms TIME#6d_10m TIME#16d5h3m4s Variabili: IEC data typeDescriptionbits TIMEtime durationimplementation dependent

Tipi DATES and TIMES of DAY Valori e/o Costanti: DATE: formato anno-mese-giorno preceduti dall'operatore D# o DATE# TOD:formato ora:minuti:secondi.decimi preceduti dall'operatore TOD# o TIME_OF_DAY# DT: formato anno-mese-giorno-ora:minuti:secondi.decimi preceduti dall' operatore DT# o DATE_AND_TIME# Esempi: D# o DATE# TOD#23:59:34.56 o TIME_OF_DAY#23:59:34.56 DT# :36:55.40 o DATE_AND_TIME# :36:55.40 Variabili: IEC data typedescriptionbits DATEcalendar dateimplementation dependent TIME_OF_DAY o TODtime of dayimplementation dependent DATE_AND_TIME o DTdate and time of dayimplementation dependent

Tipo String Valori e/o Costanti: i caratteri vengono inseriti tra è possibile inserire caratteri di controllo: $N (new line), $P (new page), $R (carriage return), $T (tabulation), $ (carattere ), $$ (carattere $) Esempi: questa e$ una prova $N Variabili: IEC data typeDescriptionBits STRINGcharacter stringImplementation dependent

Tipi String of Bit Valori e/o Costanti: FALSE, TRUE Variabili: IEC data typedescriptionbits BYTEbit string 8 bits8 WORDbit string 16 bits16 DWORDbit string 32 bits32 LWORDbit string 64 bits64 IEC data typeDescription BOOLBoolean Tipo Boolean Variabili:

Valori Iniziali di Default per ciascun tipo di dato Interi: 0 Reali: 0.0 Time:0d0h0m0s Date: Stringhe: Boolean: FALSE Nota Bene: quando viene definita una variabile di un certo tipo, il suo valore iniziale può essere ridefinito

ANY ANY_NUM ANY_REAL LREAL, REAL ANY_INT SINT, INT, DINT, LINT, USINT, UINT, ULINT, UDINT ANY_BIT BOOL, BYTE, WORD, DWORD, LWORD STRING ANY_DATE DATE_AND_TIME, DATE, TIME_OF_DAY TIME Tipi di dato generici (Overloading)

Record TYPE nome: STRUCT nome_campo_1: tipo; nome_campo_2: tipo; ………….. nome_campo_n: tipo; END_STRUCT; END_TYPE; Enumerativi TYPE nome:(VALORE_1, VALORE_2,..., VALORE_n); END_TYPE; Tipi di dato derivato

Range TYPE nome: tipo(range);volts:int( )END_TYPE; Vettore TYPE nome: ARRAY[inf..sup, inf..sup] OF tipo; END_TYPE; Tipi di dato derivato

Variabili Locali: dichiarate in un POU (programma, function block, funzione) Variabili Globali : dichiarate in un Program, Resource e in una Configuration Variabili Esterne: devono corrispondere a variabili globali Variabili di Ingresso, Uscita, Ingresso/Uscita di un POU: programma, function block, funzione Variabili con Riferimento Diretto Definizione di Variabili

Variabili Locali Possono essere definite solo in POU (program, function block e funzioni) e hanno validità solo all'interno di tali POU VAR nome: tipo; END_VAR; Definizione di Variabili

Variabili globali Possono essere definite solo nei Program, Resource e Configuration. Esse hanno validità (dunque possono essere lette e scritte) all'interno di tutti i POU esistenti dentro il Programma, Resource e Configuration, in cui la variabile globale è dichiarata come esterna (VAR_EXTERNAL). VAR_GLOBAL nome: tipo; END_VAR; Definizione di Variabili

Variabili esterne Possono essere definite solo nei POU Permettono l'accesso a variabili globali definite nel Program, Resource e Configuration, contenente il POU. VAR_EXTERNAL nome: tipo; END_VAR; Definizione di Variabili

Variabili Input Permettono ad un POU (Program, Function block, Function) di ricevere dati dall'esterno. VAR_INPUT nome: tipo; END_VAR; Definizione di Variabili

Variabili Output Permettono ad un POU di fornire dati all'esterno. VAR_OUTPUT nome: tipo; END_VAR; Variabili Input/Output Permettono ad un POU di ricevere dati dall'esterno, e consentono al POU di modificare tali dati. VAR_IN_OUT nome: tipo; END_VAR; Definizione di Variabili

Variabili con riferimento diretto E' possibile non utilizzare simboli di variabile, ma fare riferimento diretto a locazioni di memoria, ingressi e uscite. Nota: Possono essere definite solo in un Program e NON in Function Blocks e Function (per la riusabilità del software) Definizione di Variabili

Variabili con riferimento diretto Aree in cui è divisa la memoria: Input memory location. E' relativa alla memoria in cui vengono copiati gli ingressi relativi a ciascun canale di ingresso. Ogni indirizzo della memoria corrisponde ad un particolare canale di ingresso. Output memory location. E' relativa alla memoria in cui vengono copiate le uscite relative a ciascun canale di uscita. Ogni indirizzo della memoria corrisponde ad un particolare canale di uscita. Internal memory location. E' relativa alla memoria in cui vengono memorizzati i risultati intermedi della computazione (Registri, Flags). Definizione di Variabili

Variabili con riferimento diretto Sintassi per la definizione di variabili con riferimento diretto: simbolo % uno tra i simboli: I (Input memory location), Q (Output memory location), M (Internal memory location) uno tra i simboli: X (bit), B (byte), W (word 16 bit), D (Double Word 32 bit), L (Long word 64 bit) indirizzo di memoria: Ingressi/Uscite: numero rack oppure numero rack.numero ingresso Memoria interna: numero intero o numero intero.indice (ad esempio byte.bit) Esempi:%IX0.0, %QX3.2, %IB0.0, %IB1, %QW0, %MW132 %MB20.1 Definizione di Variabili

RETAIN. Tale attributo permette alla variabile di riassumere il valore precedente ad una interruzione, quando il PLC viene nuovamente fatto ripartire (WARM Start-Partenza a Caldo) VAR RETAIN Speed: REAL; END_VAR; Attributi di Variabili

CONSTANT. L'attributo specifica che il valore attribuito alla variabile non può essere modificato. Questo attributo non può essere usato per variabili esterne. VAR CONSTANT Speed: REAL:=12.3; END_VAR; AT. Permette di attribuire ad una variabile simbolica, un indirizzo di memoria (I,Q,M) determinato. VAR Status AT %IX0.0: BOOL; END_VAR; Attributi di Variabili

COLD (Freddo) Durante una partenza COLD tutte le variabili sono inizializzate a valori di default o a quelli ridefiniti dallutente WARM (Caldo) Durante una partenza WARM solo le variabili (compresi timers e contatori) NON-RETENTIVE (attributo RETAIN non presente) sono inizializzate ai valori di default o a quelli ridefiniti dallutente. Le variabili (compresi timers e contatori) con attributo RETAIN non vengono inizializzate ma continuano ad assumere lultimo valore precedente alla WARM start HOT Durante una partenza HOT nessuna variabile viene inizializzata Partenze (Start) di un PLC

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 : 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 Task

Ad ogni Program e Function Block 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 lesecuzione di un programma, ad esempio stack overflow Event (or Interrupt) tasks: sono attivati alloccorrenza 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. Task

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 lintervallo temporale dopo il quale viene controllato se lintervallo 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. Task

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 Preemptive schedule Task A B C