Reti e Sistemi per l’Automazione Sistemi di Controllo Industriali Distribuiti Distribuzione dei servizi OLE 1 e OLE 2 COM e DCOM Ole for Process Control Stefano Panzieri Architetture di controllo distribuite - 1 Stefano Panzieri Architettura del processo di controllo Reti e Sistemi per l’Automazione HMI Excel 97 Internet Business Management Process Management Fieldbus Field Management Valves Measurement Positioners -Pressure -Temp -Flow -Level PID Control Stefano Panzieri DCS System PLC System Architetture di controllo distribuite - 2 Stefano Panzieri Problemi riscontrati Application Two Reti e Sistemi per l’Automazione Application One Server A ◊ ◊ ◊ ◊ ◊ Server B Server C Incompatibilità delle interfacce di comunicazione Ogni applicazione sviluppa interfacce private Dispositivi venduti necessitano di un server per ogni applicazione Risultato:esistono centinaia di driver per permettere ai controllori di processo di comunicare con i dispositivi periferici. Problemi: inconsistenza tra i driver venduti da ditte diverse, conflitti e necessità di modifiche in caso di sostituzione di componenti Hardware Stefano Panzieri Architetture di controllo distribuite - 3 Stefano Panzieri Applicazioni Distribuite Reti e Sistemi per l’Automazione ◊ Benefici all’utente in termini di ottimizzazione uso della rete e risorse computer ◊ Fanno eseguire componenti ◊ Dal lato client quando possibile ◊ Dal lato server se necessario (vedi Indipendenza da Locazione) ◊ Flessibilità ◊ Possibilità di aumentare il throughput senza lavorare su miglioramenti hardware Stefano Panzieri Architetture di controllo distribuite - 4 Stefano Panzieri Collocazione dei Servizi ◊ Server in-process ◊ Utili quando si privilegia la velocità ◊ Client non protetto da malfunzionamenti del server ◊ i.e. DLL, Controlli AcitveX, DDE , COM Reti e Sistemi per l’Automazione ◊ Server out-of-process locali ◊ Usato quando si vuole creare una applicazione che possa lavorare come programma autonomo e che renda disponibili all’esterno i suoi oggetti programmabili ◊ Richiedono servizi dedicati per comunicare con l’esterno ◊ Comunicazione più lenta rispetto ai precedenti ◊ i.e.:applicazioni pacchetto Microsoft Office (applicazioni indipendenti-fornitori di componenti per altri programmi ◊ i.e. DDE, COM Stefano Panzieri Architetture di controllo distribuite - 5 Stefano Panzieri Collocazione dei Servizi Reti e Sistemi per l’Automazione Server out-of-process remoti ◊ Programmi eseguiti su macchina diversa da quella su cui viene eseguita l’applicazione client ◊ Comunicazione ancora più lenta ◊ Possibilità di creare applicazioni distribuite ◊ i.e. DCOM, NETDDE, CORBA, SERVLET, WEBSERVICES Stefano Panzieri Architetture di controllo distribuite - 6 Stefano Panzieri OLE Reti e Sistemi per l’Automazione ◊ OLE (Object Linking and Embedding): metodo (Microsoft Windows 9x) che permette di ◊ Inserire in un documento, parte di un altro documento (un grafico, un'immagine, una tabella...) preparato con un altro programma. ◊ La parte inserita rimane modificabile attraverso il programma originario e le modifiche sono riportate automaticamente nel documento che la contiene. ◊ OLE ha due livelli ◊ OLE 1 (canale seriale DDE tra client e server) ◊ OLE 2 (oggetti COM forniti dal server al client) Stefano Panzieri Architetture di controllo distribuite - 7 Stefano Panzieri OLE Reti e Sistemi per l’Automazione ◊ OLE 1 ◊ Quando si fa doppio click sul documento inserito viene caricata l'applicazione ed il documento originari ◊ Utilizza DDE per comunicazioni tra applicazioni ◊ Permette di creare Documenti Composti ◊ OLE 2 ◊ Quando si fa doppio click sul documento inserito, si rimane all'interno della stessa applicazione, ma la barra dei menu e le barre degli strumenti vengono sostituite con quelle dell'applicazione originaria. ◊ Nuovo protocollo di comunicazione basato su componenti COM Stefano Panzieri Architetture di controllo distribuite - 8 Stefano Panzieri DDE (Dynamic Data Exchange) Reti e Sistemi per l’Automazione ◊ Metodo( Microsoft) che consente di : ◊ Incorporare, in un documento, parte di altri documenti, anche prodotti con software diversi ◊ Mantenere i documenti inseriti aggiornati automaticamente con le modifiche effettuate nei documenti originali. ◊ Capace di lavorare su reti LAN (Network DDE). ◊ Poco affidabile Stefano Panzieri Architetture di controllo distribuite - 9 Stefano Panzieri Reti e Sistemi per l’Automazione Programmazione ad Oggetti ◊ Modo di pensare e progettare codice sulla base di oggetti ◊ Possibilità di sviluppare componenti di software a oggetti (i.e.componente per la correzione automatica) ◊ Riguarda la creazione di oggetti Stefano Panzieri Architetture di controllo distribuite - 10 Stefano Panzieri COM/DCOM ◊ Componente: blocco di software che svolge un particolare servizio. Reti e Sistemi per l’Automazione ◊ Utilizzabile da altri software. ◊ Combinabile per formare nuove applicazioni. ◊ Termine nato per non creare confusione per quei programmi che svolgono contemporaneamente funzioni di client OLE e server OLE. ◊ COM permette di: ◊ Assemblare componenti di software ◊ Riutilizzarli nelle applicazioni Applicazione A Chiamata al componente B Stefano Panzieri Componente B Chiamata al componente C Componente C Architetture di controllo distribuite - 11 Stefano Panzieri COM locale (in-process local) Reti e Sistemi per l’Automazione Client Componente (out-of-process local) Client Com Run-time Security DCE RPC Provider LPC Stefano Panzieri Com Run-time Componente Security DCE RPC Provider LPC Architetture di controllo distribuite - 12 Stefano Panzieri DCOM (out-of-process remote) Reti e Sistemi per l’Automazione Client Com Run-time Security DCE RPC Provider LPC Com Run-time Componente Security DCE RPC Provider LPC DCOM network protocol Stefano Panzieri Architetture di controllo distribuite - 13 Stefano Panzieri DCOM: indipendenza dalla locazione Reti e Sistemi per l’Automazione ◊ Generalmente implementazione di applicazioni distribuite su rete vincoli di progettazione ◊ Soluzione DCOM: ◊ Non mostra la locazione di un componente ovunque esso sai (stesso processo, processi differenti macchine diverse) ◊ Il modo in cui il client effettua la chiamata al componente non cambia (come se il client non se rendesse conto) ◊ Non effettua modifiche al codice né ricompilazione, ma riconfigura solo il modo in cui i componenti sono connessi l’uno con l’altro ◊ I componenti possono risiedere nel posto più adatto alle funzioni che devono compiere Stefano Panzieri Architetture di controllo distribuite - 14 Stefano Panzieri DCOM: indipendenza dalla locazione ◊ Esempio: In un’applicazione commerciale abbiamo che: ◊ L’interfaccia utente e la validazione dei dati risiederanno sul client ◊ L’elaborazione dei dati sul server che accede al database Reti e Sistemi per l’Automazione Client Middle-tier Back-end Client COM User-Interface Component DCOM Validation Component Database COM COM Validation Component Stefano Panzieri DCOM Business Rule Component DCOM Architetture di controllo distribuite - 15 Database Component Stefano Panzieri Client Client Client Componente Server Client Client Client Client Server Duplicati Server Dedicato Componente Operazioni Borsa Client Reti e Sistemi per l’Automazione Client Componente Operazioni Borsa Componente Critico Server Dedicato Client Componente Server Client Client Riposizionamento in Parallelo Client Client Client Client Client Componente Server (Esempio Operazioni Borsa) Componente DB Componente Operazioni Borsa Client Validazione Isolamento dei Componenti Critici Ottenimento Numero Di Sequenza Componente Client Aggiornamento DB Suddivisione Sequenziale Componenete Critico Stefano Panzieri Architetture di controllo distribuite - 16 Ritorno Risultato Stefano Panzieri Sicurezza Client A Usente:Alfa DCOM DCOM Reti e Sistemi per l’Automazione Client B User: Beta Client B User: Gamma Componente 4. Fallimento o permessodi chiamata Access Control List DCOM Security Provider DCOM 3. E’ l’utente nella lista? for Component: Alfa MyAppUserGroup 2. Autenticazione utente 1. DCOM ottiene Il nome dell’utente (Extended) Directory: Alfa /Password, Beta /Password MyAppUserGroup = Gamma, Administrators Stefano Panzieri Architetture di controllo distribuite - 17 Stefano Panzieri Neutralità del Protocollo COM Client Proxy Server TCP, UDP SPX,IPX Net BEUI HTTP “Falcon” COM Runtime Client COM Runtime Reti e Sistemi per l’Automazione ◊ DCOM può usare qualsiais protocollo di trasporto(TCP/IP, UDP, IPX/SPX e NetBios), fornendo una struttura sicura su tutti questi protocolli, includendo protocolli orientati alla connessione e non. ◊ Si possono quindi utilizzare le caratteristiche fornite da DCOM ed essere certi che le applicazioni così create sono neutrali per quanto riguarda il protocollo di trasporto Component Other Component Stefano Panzieri Architetture di controllo distribuite - 18 Stefano Panzieri OPC (Ole for Process Control) Application Two OPC Interface Reti e Sistemi per l’Automazione Application One OPC Interface OPC Server A ◊ ◊ OPC Server B OPC Server C OPC definisce un’interfaccia aperta tramite la quale componenti software per PC sono in grado di scambiare dati SCOPO: consentire l’interoperabilità tra le applicazioni Stefano Panzieri Architetture di controllo distribuite - 19 Stefano Panzieri Architettura OPC HMI Excel 97 Internet OPC Client OPC Client OPC Client Reti e Sistemi per l’Automazione OPC Server OPC Server Business Management OPC Server Process Management Fieldbus Measurement -Pressure Valves -Temp Positioners -Flow -Level Field Management PID Control Stefano Panzieri DCS System PLC System Architetture di controllo distribuite - 20 Stefano Panzieri OPC per Simulazione e Controllo Avanzato Operator Interface Advanced Control Applications Reti e Sistemi per l’Automazione OPC Client OPC Server OPC Server Modeling & Simulation Application •Control System Logic •Process •Equipment •Measurements Stefano Panzieri Control System Process, Equipment & Measurements Architetture di controllo distribuite - 21 Stefano Panzieri OPC: Connessione di Applicazioni Condivisione di informazioni tra nuovi e vecchi sistemi User Application Reti e Sistemi per l’Automazione OPC Client OPC Server New Device or Control System Process, Equipment & Measurements Stefano Panzieri OPC Server Legacy Device or Control System Process, Equipment & Measurements Architetture di controllo distribuite - 22 Stefano Panzieri OPC: ActiveX e Internet ◊ Si può accedere ai dati OPC da applicazioni VB e da Internet Reti e Sistemi per l’Automazione Internet Explorer ActiveX Control Excel & VBA OPC Server Automation Interface Process, Equipment & Measurements Stefano Panzieri Architetture di controllo distribuite - 23 Stefano Panzieri OPC: Interoperabilità Manufacturing Enterprise OPC - OLEDB - XML - ActiveX - Internet SCADA OPC OPC Adv. Control MES OPC Reti e Sistemi per l’Automazione HMI Batch PC-Based Control OPC PLC DCS Industrial Networks Stefano Panzieri Data Acquisition Architetture di controllo distribuite - 24 LIMS Stefano Panzieri Reti e Sistemi per l’Automazione Dati controllati da OPC ◊ ◊ ◊ Sensori Real time: dati - temp, pressione, flusso Controllo parametri - open, close, run, stop Status information (or Update) ◊ ◊ Allarmi su sensori dati - temp, pressione, flusso Allarmi su parametri di controllo - open, close, run, stop OPC può esporre ogni dato disponibile ◊ ◊ ◊ Status della connessione hardware Status del software locale e dei sottosistemi Sensor Data OPC Interfaces Comm System Status Performance Stefano Panzieri OS Statistics Architetture di controllo distribuite - 25 Stefano Panzieri Architettura OPC Server Visual Basic Clients Automation Interface Handler Reti e Sistemi per l’Automazione Optional for OPC Servers) C/C++ Clients ◊ ◊ OPC Server Object (Server specific) Custom Interface (Standard for all OPC Servers) OPC Group Object (Server specific) OPC Item Objects (Server specific) Physical Interface Interfacce ◊ ◊ Custom Automation ◊ ◊ ◊ Server Gruppo Item Device(s) Oggetti OPC Stefano Panzieri Architetture di controllo distribuite - 26 Stefano Panzieri Il modello Logico a Oggetti OPC/COM Interfaces OPCServer OPCGroup OPCGroup OPCGroup(s) OPCItem(s) OPCItem(s) OPCItem(s) OPCItem(s) OPCItem(s) OPCItem(s) Copyright 1998 Intellution, Inc. All Rights Reserved OPCItem(s) OPCItem(s) OPCItem(s) Le interfacce del Server • The server is a COM object which provides: – – – – – IOPCServer IOPCBrowseServerAddressSpace (optional) IOPCCommon • SetLocaleID, GetLocaleID, QueryAvailableLocaleIDs, GetErrorString, SetClientName IOPCItemProperties(2.0) IConnectionPointContainer • EnumConnectionPoints FindConnectionPoint (fornisce l-accesso al punto di connessione per IOPCShutdown) OPCServer Copyright 1998 Intellution, Inc. All Rights Reserved 28 Le interfacce del Grouppo • Il Group è un oggetto COM che fornisce: • • • • • IOPCGroupStateMgt IOPCAsyncIO2 (2.0 - replaces IOPCAsyncIO) IOPCItemMgt IOPCSyncIO IConnectionPointContainer (2.0 replaces IDataObject) OPCGroup Copyright 1998 Intellution, Inc. All Rights Reserved 29 • L’intefaccia lato Client Il Client fornisce 2 interfacce COM che il server può chiamare – IOPCShutdown • Chiamata quando il server deve fare uno shutdown – IOPCDataCallback • Per aggiornare I dati Server Object Client Group Object(s) IOPCShutdown IOPCDataChange Copyright 1998 Intellution, Inc. All Rights Reserved 30