PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE



Documenti analoghi
REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Approccio stratificato

Corso di Informatica

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

Linguaggi di programmazione

Software di base. Corso di Fondamenti di Informatica

Sistema operativo: Gestione della memoria

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Generazione Automatica di Asserzioni da Modelli di Specifica

Corso di Informatica

Corso Eclipse. Prerequisiti. 1 Introduzione

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Il web server Apache Lezione n. 3. Introduzione

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Il Sistema Operativo (1)

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

PROPOSTA DI UN ARCHITETTURA IMS INTEGRATA IN UN AMBIENTE VIRTUALIZZATO: ANALISI DI PRESTAZIONI Daniele Costarella

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Linguaggi e Paradigmi di Programmazione

Introduzione. Informatica B. Daniele Loiacono

Architetture Informatiche. Dal Mainframe al Personal Computer

Dispensa di Informatica I.1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

La Macchina Virtuale

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

con ANTLR tesi di laurea Anno Accademico Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr

Prof. Capuzzimati Mario - ITIS Magistri Cumacini - Como LOGICA DI CONTROLLO

Architetture Informatiche. Dal Mainframe al Personal Computer

Introduzione alla Virtualizzazione

Ambienti di Sviluppo

Setup e installazione

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Architettura di un calcolatore

Programmare in Java. Olga Scotti

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Scheda di Notifica Manuale d'uso

Guida alla compilazione on-line delle domande di Dote Scuola A.S per le Famiglie INDICE

Installazione del JDK 6

Ciclo di vita del software: Tipologie di software

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

NOZIONI BASE PER ESERCITAZIONI

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Strumenti per la gestione della configurazione del software

UML Component and Deployment diagram

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Il sistema operativo TinyOS

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

Modello per la compilazione della scheda progetto SK_3.1.xls (da utilizzarsi per la presentazione di progetti di attività formative)

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Simulazione di macchina: analisi virtuale del comportamento cinematico. Elio Bergamaschi

APPENDICE I Pratiche di tecnologie informatiche per la elaborazione della musica e del suono

Software di base e software applicativo. Titolo: dic (1 di 9)

TECNICO SUPERIORE PER L INFORMATICA INDUSTRIALE

Macchine Virtuali. Docente: Fabio Tordini

Istituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni

Introduzione al Calcolo Scientifico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Fondamenti di Informatica T1 Guida all uso di JDK e Eclipse

Panoramica: che cosa è necessario

Origini e caratteristiche dei calcolatori elettronici

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Progetto Virtualizzazione

ISIS C.Facchinetti Sede: via Azimonti, Castellanza Modulo Gestione Qualità UNI EN ISO 9001 : 2008

Il Software. Il software del PC. Il BIOS

Con SIGLA Green Pack vengono esaltate le caratteristiche di gestionale paperless

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Gestione della memoria centrale

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

COORDINAMENTO PER MATERIE SETTEMBRE 2014 MATERIA DI NUOVA INTRODUZIONE PER EFFETTO DELLA RIFORMA

Anno di corso: 2004/2005. Istruzioni. Istruzioni per lo svolgimento dei progetti didattici. versione 1.1

9. Architetture di Dominio

DISCIPLINA TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

FPf per Windows 3.1. Guida all uso

Università degli Studi di Salerno

INDUSTRY PROCESS AND AUTOMATION SOLUTIONS. Lo strumento universale per la messa in esercizio e la diagnosi

Installazione del software Fiery per Windows e Macintosh

Soluzioni per archiviazione sicura di log di accesso server Windows. PrivacyLOG

PIATTAFORMA TELEMATICA DELL'AGENZIA DEL DEMANIO PER LE ASTE DI VENDITA E CONCESSIONE DEGLI IMMOBILI PUBBLICI

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

02 L Informatica oggi. Dott.ssa Ramona Congiu

Codifica: dal diagramma a blocchi al linguaggio C++

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Il computer: primi elementi

Realizzazione di un simulatore didattico. in campo medico

Reingegnerizzazione del processo di test nel contesto Exprivia

Aggiornamenti Sistema Addendum per l utente

DENUNCE EDILCONNECT GUIDA COMPILAZIONE

Technical Document Release Version 1.0. Product Sheet. MediaList. Creazione e gestione palinsesto giornaliero

Transcript:

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Indice Sommario 3 1 Introduzione 7 2 Macchina virtuale 11 2.1 Struttura del linguaggio PLC 11 2.2 Definizione della macchina virtuale 19 2.2.1 Architettura 19 2.2.2 Istruzioni 20 2.2.3 Gestione dei costrutti 25 2.2.4 Mappatura della memoria 26 2.2.5 Strutture dati 30 2.2.6 Ingresso/Uscita 31 2.2.7 Debug 31 2.2.8 File di configurazione 31 3 Manuale utente 33 3.1 Avvio del traduttore 33 3.2 File tradotto 35 4 Manuale tecnico 37 4.1 Struttura del traduttore 37 4.1.1 Presentazione del parser 37 4.1.2 Struttura del modulo di traduzione 39-1 -

4.2 Scelte implementative 43 4.2.1 Scrittura del file di output e tecnica di backpatch 43 4.2.2 Codifica delle istruzioni 49 4.2.3 Gestione Label 54 4.2.4 Calcolo skip logico 58 4.2.5 Gestione Function 64 4.2.6 Gestione Job 68 4.3 Interventi di modifica o espansione 73 5 Conclusioni 75 Ringraziamenti 77 Bibliografia 79-2 -

Sommario La tesi è dedicata alla sviluppo di un traduttore per un software PLC (Programmable Logic Controller). Questo traduttore è un modulo di un compilatore che permette di ottenere assembly per una macchina virtuale avendo come origine sorgente PLC. Lo scopo di questo software è quello di interpretare gli output di un parser LALR per generare codice conforme alle specifiche della macchina virtuale. Il traduttore dovrà, nella produzione del codice, focalizzare l attenzione sulla massimizzazione dell efficienza in fase di esecuzione cercando di ridurre il carico di lavoro della macchina virtuale. Il linguaggio di programmazione scelto è Java e il tool di sviluppo utilizzato è BlueJ. Questa scelta ha permesso di ottenere un software che potrà essere eseguito su qualsiasi piattaforma avente installata la macchina virtuale Java. Attualmente è stato testato in ambiente OS Linux e OS Microsoft Windows. - 3 -

- 4 -

- 5 -

- 6 -

Capitolo 1 Introduzione Lo scopo di questa tesi è la realizzazione di un software di traduzione da sorgente PLC a codice assembly per una macchina virtuale. Questo strumento è un modulo di un progetto più ampio che comprende la realizzazione di un parser LALR che effettui l analisi lessicale, sintattica e semantica di un sorgente PLC e una macchina virtuale in grado di interpretare il codice tradotto ed offra la funzionalità di eseguire il debuging in tempo reale. La progettazione di questo software è iniziata dall analisi delle specifiche di funzionamento del linguaggio PLC dal manuale tecnico PLC Compile v4.0 che ha portato allo sviluppo della definizione e delle specifiche della macchina virtuale. Nella fase di definizione della macchina virtuale è stato preso spunto dal libro Calcolatori elettronici [1]. Successivamente l analisi si è focalizzata sulla struttura del parser precedentemente sviluppato in quanto la struttura del traduttore doveva essere conforme ad esso per la sua integrazione. Il traduttore ha come requisito la capacità di generare codice che sia efficiente in fase di esecuzione nella macchina virtuale spostando il carico di lavoro, per quanto possibile, in fase di traduzione. A questo scopo sono stati risolti gli alias dei nomi, gestiti i salti ai label come offset relativi ed introdotti gli skip nelle espressioni logiche. Il linguaggio di programmazione utilizzato è Java, il quale, oltre ad essere lo stesso linguaggio utilizzato per realizzare il parser, offre la possibilità di una programmazione modulare con tutti i benefici da essa derivati e permette - 7 -

di ottenere un programma multipiattaforma che può essere eseguito su diversi sistemi senza dover mettere mano al codice. Il software di sviluppo utilizzato è The Interactive Java Environment BlueJ (http://www.bluej.org). Questo tool offre la possibilità di effettuare una veloce analisi del codice evidenziando gli errori sintattico - lessicali e genera uno schema UML delle classi che aiuta nella progettazione object oriented dell architettura del software. Un altro tool molto utilizzato per la visione dei file di uscita binari e il debug del software è l editor di testi che viene distribuito gratuitamente Notepad++ (http://notepad-plus.sourceforge.net/it/site.htm) il quale dispone di un HexEditor con molte funzionalità che sono state utili per agevolare il lavoro di verifica. La tesi è suddivisa in tre parti principali: definizione della macchina virtuale che include le specifiche di funzionamento e la descrizione del linguaggio; manuale utente che guida all utilizzo del software; manuale tecnico che illustra le scelte implementative e come intervenire per un successivo sviluppo. Si richiede la conoscenza del linguaggio di programmazione Java per poter interpretare e comprendere l implementazione del programma. Un altro requisito è la conoscenza della struttura di un semplice calcolatore e del linguaggio assembly con cui si programma, quali sono le componenti e quale funzione adempiono, che sta alla base della progettazione della macchina virtuale. Il PLC, o Programmable Logic Controller, è un computer industriale specializzato nella gestione di processi industriali. Esso esegue un programma ed elabora i segnali digitali ed analogici provenienti da sensori e diretti agli attuatori presenti in un impianto industriale. La programmazione viene effettuata - 8 -

normalmente con un PC sul quale un software specializzato permette di creare programmi da scaricare nella memoria della CPU del PLC. Il programma viene scritto su PC, quindi scaricato sul PLC, e salvato sul PC stesso, per ulteriori modifiche. Il risultato che si vuole ottenere è quello di poter abbandonare l hardware dedicato e poter eseguire tutti i software, senza la necessità di modifiche, in ambiente embedded con sistema operativo Windows CE. Questo strumento offre inoltre la possibilità di effettuare il debug più velocemente e con minore difficoltà. - 9 -

- 10 -