Вы находитесь на странице: 1из 36

MASTER ASE SMART & GSI

COMMUNICATIONS EN SUPERVISION

1
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication

Pierre BONNET
2012-2013

2
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication Organisation fonctionnelle dun systme SCADA

3
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication Un systme SCADA doit pouvoir communiquer avec des ressources externes :
- liaison matrielle locale (liaison srie, carte spcialise ASI, CAN...) vers une ressource spcialise (E/S distantes, automate...) - liaison matrielle de type standard (Ethernet) vers un matriel distant (E/S , automate...) [ventuellement modifie (Profinet)] - liaison radio (Bluetooth, ZigBee, WiFi) vers des E/S spcialises - liaison avec un autre module logiciel local (IHM, tableur, base de donne, serveur Web... ) - liaison avec un autre module logiciel distant (serveur de donnes, serveur SQL autre superviseur, logiciel MES...)

4
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication Elments de la communication matrielle:

Liaison interne (bus ISA, PCI express, USB, Ethernet...)

Module de communication intgr

SCADA SCADA

Interface matrielle

Interface lectrique

Bus de terrain (cble, radio..)

Carte/module d'interface/communication

Le module de communication peut tre: - intgr matriellement la structure SCADA (carte de couplage spcialise selon le bus de terrain choisi ) - spar (liaison intermdiaire vers une passerelle de bus )
5
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication Elments de la communication logicielle:


Communication point point
Communication logicielle ddie

SCADA SCADA

Interface logicielle

partage mmoire, connecteur ODBC DCOM OPC .....

Interface logicielle

Serveur Serveur

Bus logiciel
Interface logicielle

IHM IHM

SCADA SCADA

Interface logicielle

Bus logiciel D-Bus, CORBA Interface logicielle

Serveur Serveur
6

Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication accs une ressource logicielle:


Le principe gnral d'accs une ressource logicielle est l'change de donnes par: - criture d'une zone mmoire d'change (presse-papier) criture physique - partage mmoire commune (passage de pointeur) problme de protection d'accs - envoi de la donne par un "pipe" (tuyau de communication) possibilit de passer par Ethernet

Microsoft a introduit le concept OLE avec la possibilit d'excution des fonctions par le client. C'est ce principe qui est employ dans les serveurs OPC.

7
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication Principe gnral d'accs une ressource matrielle:


Accs direct intgr au programme principal Programme principal Procdure d'accs la ressource

Ressource
appel Tche principale suspendue retour criture lecture

8
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication Principe gnral d'accs une ressource matrielle:


Accs direct intgr avec vnement (multitche) Tche principale Tche vnementielle Tche d'accs la ressource Ressource
criture

appel serveur Reprise de la tche principale retour appel

appel vnementiel Suspension de la tche principale Reprise de la tche principale Traitement vnementiel

lecture

9
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication Principe gnral d'accs une ressource logicielle:


Accs client-serveur en liaison synchrone Programme Client Programme Serveur Ressource

Requte Tche suspendue Rponse criture lecture

Une requte se compose gnralement d'une fonction et de donnes 10


Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication Principe gnral d'accs une ressource :


Accs client-serveur en liaison asynchrone Tche Tche Cliente vnementielle Programme Serveur Ressource

appel serveur retour appel Reprise de la tche appel vnementiel Traitement vnementiel criture

lecture

Autre client

Le serveur gre les conflits d'accs la ressource critique


Supervision Industrielle Master Smart & GSI - Pierre Bonnet

11

Besoins en communication Principe gnral d'accs une ressource (synthse) :


Les deux accs fondamentaux sont donc: - l'accs synchrone, avec blocage de la tche appelante en attente de la rponse - l'accs asynchrone , avec attente d'un vnement signalant l'arrive de la rponse

12
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Besoins en communication accs une ressource matrielle locale : bibliographie


Visual Basic for Electronics Engineering Applications : (VB 5.0 , 6.0 , VBA , .NET , 2005...) Vincent Himpe Elektor Elektronics Publishing - 2006 Document de base pour dcouvrir VB et l'accs aux ressources matrielles d'un PC dans l'environnement actuel de programmation ; fait le lien entre les aspects matriels et la couche applicative sous une forme moderne.

Je programme les interfaces de mon PC sous Windows : B. Kainka & H-J Berndt - Publitronic/Elektor - 1999 Cet ouvrage s'intresse surtout aux aspects matriels en vue de faire des mesures directes sur PC. Devient obsolte pour la programmation qui ne respecte pas les principes de protection de Windows XP .

13
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication srie

14
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Communication matrielle par rseau de terrainsrie:

15
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Communication matrielle par rseau de terrainsrie:


port srie port srie

Superviseur Superviseur

Coupleur UART

Liaison matrielle srie RS232, RS485 liaison radio (Bluetooth...)

Coupleur UART

Priphrique Priphrique

la base de la transmission est l'octet (8 bits + contrle de parit ) avec dlimiteurs (bit de start, bit de stop)

une trame est constitue d'un ensemble d'octet avec dlimiteurs (dbut de trame , crc, fin de trame )

le couplage peut tre synchrone [attente de la rponse par le client avec blocage] ou asynchrone [vnement signalant l'arrive de la rponse]
16
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Communication matrielle par rseau de terrainsrie:


Echanger des octets par transmission de l'information bit bit Le format de base de l'change d'un caractre est :
... start a0 a1 ... ... a6 a7 parit stop . start ...

- le start et le stop permettent au matriel de reconstruire la donne - le bit de parit permet de vrifier l'intgrit du message - la vitesse d'change est dfinie en bits/sec ou bauds

Cette liaison est encore trs largement utilise sous forme de port com virtuel avec Bluetooth ou USB , en particulier sur les automates .
17
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Communication matrielle par rseau de terrainsrie Modbus:


COMMUNICATION SERIE

ESCLAVES MAITRE

La liaison lectrique est bidirectionnelle sur paire diffrentielle (standard RS485)

18
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Communication matrielle par rseau de terrainsrie: Modbus


port srie port srie

Superviseur Superviseur

Liaison srie

Priphrique Priphrique

nEsclave

trame de requte
nEsclave

trame de rponse

le couplage peut tre synchrone [attente de la rponse par le client avec blocage] ou
asynchrone [vnement signalant l'arrive de la rponse]
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

19

Communication Srie Communication matrielle par rseau de terrainsrie: Modbus


Principales fonctions sur Modbus: 0x01 lecture de n bit(s) de sortie conscutif(s) 0x02 lecture de n bit(s) dentre conscutif(s) 0x03 lecture de n registre(s) internes 0x04 lecture de n registre (s) dentre 0x05 criture dun bit de sortie 0x06 criture dun registre interne 0x15 criture de n bits de sortie 0x16 criture de n registres internes

20
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Communication matrielle par rseau de terrainsrie: Modbus


Une trame [ascii] ModBus est la concatnation des lments suivants: - entte: : - adresse de lesclave (0x01..0xF8): 01..F8, - numro de la fonction (0x01..0x06):01..06, - donnes (contenu et taille variable suivant la fonction). - octet de vrification de la trame ou LRC8 (0x00..0xFF) calcul depuis les valeurs adresse de lesclave, numro de fonction et champs de donnes: 00..FF. - un dlimiteur de fin constitu des caractres Carrier Return (0x0D) et Line Feed (0x0A). Dans lexemple ci-dessous, le matre demande lesclave 04 de mettre sa sortie dadresse 0 ltat logique 1
Entte 1 carac : Adresse Esclave 2 caract. 04 Code Fonction 2 caract. 05 Donnes N*2 caract. 0000FF00 LRC 2 caract. F8 Dlimiteur Retour Chariot CR Line Feed LF

21
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Accs au port srie


Utilisation d'une bibliothque enregistre .dll ou .ocx sous VBA Bibliothque de Fonctions DLL ( Dynamic Link Library) [windows\system32\] Contrle ActiveX/OCX (Objet Control Extended) [enregistre]

22
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Accs au port srie par MSComm


Ajouter d'une instance de Mscomm dans un UserForm

23
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Accs au port srie par MSComm


Paramtrage du contrle CommPort : permet de dfinir le port physique utilis MsComm1.CommPort=1 on utilise le port COM1:
Attention: l'OCX MSComm est limit aux ports 1 16 !!!!

Settings : Fixe les paramtres de la connexion (vitesse, parit, nb bits, bits de stop) MSComm1.Settings = "9600,N,8,1" PortOpen: permet d'ouvrir ou de fermer la liaison MSComm1.PortOpen = True 'ouvre la liaison (prise de contrle par l'application)

MSComm1.PortOpen = False 'ferme la liaison srie (abandonne le contrle du port)


L'ouverture d'un port peut tre en chec; les cas les plus frquents sont: -le port est peut tre dj ouvert par l'application - le port est peut tre ouvert par une autre application(un port ne peut pas tre par deux applications simultanment) - le port n'existe pas La fermeture est en chec si le port n'a pas pu tre ouvert!

24
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Accs au port srie par MSComm


Entre/sortie sur le port srie OutPort : permet d'envoyer des donnes sur la liaison; la chane doit tre termine par retour chariot (Chr$(13)) ou par RC + nouvelle ligne (Chr$(13)+Chr$(10)) MSComm1.OutPut= "message"+"a"+"transmettre"+vbcrlf

Input : permet de lire les donnes contenues dans le buffer d'entre Dim Tampon as String Tampon = Tampon + MSComm1.Input Exemple : lecture jusqu' rception de fin de trame CRLF Do DoEvents 'indispensable pour redonner la "main" au gestionnaire d'vnements Tampon$ = Tampon$ & MSComm1.Input Loop Until InStr(Tampon$, vbCrLf)
25
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Accs au port srie par MSComm


Gestion des erreurs la gestion des erreurs est indispensable pour l'accs cette ressource:
l'excution peut provoquer une exception Windows (sortie anormale d'Excel qui laisse l'application ouverte) lorsqu'une erreur apparat dans l'excution de la bibliothque DLL/OCX (l'objet retourne gnralement un code d'erreur exploitable) La structure de gestion d'erreur en VB/VBA est :

Sub Mon_acces ... ... On Err GoTo ... ... Exit Sub Fin_si_Err:

'mes dclarations, mon code sans erreur Fin_si_err 'section avec gnration d'erreur 'sortie de la fonction sans erreur 'sortie si erreur

msgbox "erreur excution" End Sub

26
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication Srie Accs au port srie par MSComm


Evnement OnComm Le contrle MSComm gnre un vnement dans de nombreuses situations: - rception d'un caractre - fin d'envoi d'un caractre - changement de niveau d'un signal de contrle du port srie - apparition d'une erreur (trame, perte du port...) Private Sub MSComm1_OnComm() Select Case MSComm1.CommEvent Case Case Case Case Case comEventBreak ' comEventFrame ' comEventOverrun ' comEventRxOver ' comEventRxParity ' Coupure de ligne (Break) Erreur de trame Perte de donnes par overrun Tampon de rception satur Erreur de parit

Case comEvCTS ' Changement niveau broche CTS

Case comEvReceive ' rception de caractres Case comEvSend ' fin d'mission d'un caractre End Select End Sub
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

27

Communication Srie Accs au port srie Autres bibliothques


RealTerm Bibliothque gratuite trs complte, compatible XP, oriente service clientserveur . Des exemples en VBA, Matlab et Scilab sont fournis . Dispose d'une interface de contrle (ActiveX) facilitant le dbogage. Permet l'insertion du CRC Modbus par exemple. Bon outil de mise au point, lourd pour une application dfinitive [installation du serveur]. Windows Serial Communications (WSC) de MarshallSoft Bibliothque adapte pour une application dfinitive. Existe pour tous les langages. Gratuite avec message au dmarrage/payante pour un usage commercial. Une exprience de 20 ans ! Windows kernel32 NT (utilisable en C, VB, .NET...) Le port srie est vu comme un "fichier" avec attributs, buffer lecture/criture, timeouts...
serial_handle = CreateFile("COM1", GENERIC_READ Or GENERIC_WRITE,....) 28
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication UDP/TCP

Communication Ethernet

29
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication UDP/TCP Accs direct UDP/TCP Objectif


Raliser un change de donnes entre deux machines informatiques par le rseau
Ethernet.

api/dcs

superviseur

ethernet passerelle RS485

Deux modes principaux en milieu industriel :


- le mode UDP (User Datagram Protocol) , envoi direct de donnes dans le rseau - le mode TCP (Transfert Control Protocol) dans lequel l'envoi est acquitt

Le contenu du paquet transmis est du ressort de l'utilisateur.


Par exemple, le contenu peut tre une trame ModBus (trame ASCII ou trame RTU ).
30
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication UDP/TCP Protocole UDP


Principe UDP est un protocole orient "non connexion".
- le flux venant d'une machine A destination d'une machine B est unidirectionnel. - la transmission des donnes se fait sans prvenir le destinataire (machine B) - le destinataire reoit les donnes sans effectuer d'accus de rception vers l'metteur (la machine A). - l'encapsulation des donnes envoyes par le protocole UDP ne permet pas de transmettre les informations concernant l'metteur. Le destinataire ne connat pas l'metteur des donnes hormis son IP et son port d'coute.

Pseudo-entte IPv4

31
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication UDP/TCP Protocole UDP


Utilisation La source de donnes doit connatre l'adresse IP et le port du destinataire. La destination doit tre prte recevoir des donnes sur son port (socket ouvert) La source de donne ouvre un socket d'mission, en prcisant l'adresse IP source et le
port source qui seront inclus dans le datagramme.

La source envoie ses donnes qui sont mises dans le rseau Ethernet (diffusion possible) La destination reoit [ventuellement] le datagramme et rcupre les donnes Avantages et inconvnients UDP utilise un modle de transmission simple sans dialogues de hand-shaking pour garantir
la fiabilit, l'ordonnancement des paquets ou l'intgrit des donnes. De ce fait, UDP fournit un service peu fiable dans lequel les datagrammes peuvent arriver en dsordre, dupliqus ou absents sans avertissement. UDP suppose que la recherche des erreurs et leur correction se feront au niveau applicatif si ncessaire.

UDP est un moyen d'change rapide de donnes et faible cot logiciel. Il est bien adapt
pour des machines embarques (automates par exemple)
32
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication UDP/TCP Protocole UDP


Mise en oeuvre
(langage C)

33
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication UDP/TCP Protocole UDP


Exemple en VBA Emission A B 'Dclaration de l'objet Socket Dim MySocket as new Winsock

'Paramtrage du Socket MySocket.Protocol = sckUDPProtocol IP_machine_A = MySocket.LocalIP MySocket.LocalPort = 0 MySocket.RemoteHost = "172.19.7.248" MySocket.RemotePort = "5001" 'Emission d'un message sur le rseau MySocket.SendData "Message transmettre B sur port 5001"
'Pas d'acquittement en mode UDP!!! 34
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication UDP/TCP Protocole UDP


Exemple en VBA Rception UDP A<--B (sur socket ouvert ) ' la dclaration de l'objet Socket 'et son paramtrage doivent tre 'faits pralablement

'mise en coute du socket sur le port 5000 MySocket.Bind "5000", IP_Machine_A 'Procdure vnementielle appele par le socket ' en cas de rception d'une trame UDP sur le port 5000 Sub MySocket_DataArrival(ByVal bytesTotal As Long) MySocket.GetData paquet_recu UserForm1.TextBox_Receive.Caption = paquet_recu & vbCrLf UserForm1.TextBox_Emetteur.Caption = MySocket.RemoteHostIP End Sub
35
Supervision Industrielle Master Smart & GSI - Pierre Bonnet

Communication TCP: mme socket , mode programmation plus avanc avec vrification de la connexion

sources d'info: http://www.spi.ens.fr/beig/systeme/sockets.html Linux Magazine n141 Septembre 2011 pages 44-58

36
Supervision Industrielle Master Smart & GSI - Pierre Bonnet