Sistemi di Controllo Industriali Distribuiti

Transcript

Sistemi di Controllo Industriali Distribuiti
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