Home Up Control-IT English Reactie Inhoud
Control-IT Industrie Automatisering,  MES, SCADA en OPC consultancy.

Up

 


SCADA .net

Hoe sterk gaat de .Net techniek van Microsoft en XML de komende jaren een rol spelen in de Industrie Automatisering ?

Als we beginnen met de stelling dat 'ieder SCADA pakket de techniek meekrijgt van de ontwikkeltools waarmee het oorspronkelijk geschreven is'  ofwel 'de hond gaat op de baas lijken' dan kunnen we de komende tijd een sterke invloed verwachten van de '.Net'  technologie' (spreek uit dot.net) van Microsoft in OPC-, SCADA pakketten en MES-achtigen. De source code van SCADA en MES pakketten die onder de Windows platformen draaien zijn voornamelijk geschreven met Visual Studio van Microsoft. Aangezien de laatste versie van het pakket gebaseerd op het .Net framework, zullen de pakketten van .Net techniek gebruik gaan maken. Maar het is niet alleen noodzaak wat SCADA leveranciers drijft, de .Net techniek biedt ook een groot aantal voordelen.

Eigenlijk richt Microsoft zich met het .Net framework op het makkelijk toegang krijgen tot gegevens uit databases voor toepassingen als bijvoorbeeld E-commerce. Het doel dat Microsoft daarmee voor ogen staat is : "To provide products and technologies that enable users to access information at any time, anywhere and on any type of device". Het maakt kortom niet uit waarmee, waar en wanneer je gegevens ophaalt, ze zijn altijd beschikbaar. Een mobiele telefoon, PDA of TV werken net zo goed om die gegevens op te halen dan de omslachtige PC met Internet Explorer.  Wie de TV reclame van Microsoft heeft gezien om ".Net connected te geraken" denkt aan verkopers die op hun PDA kunnen zien of een artikel leverbaar is en logistiek medewerkers die op een display kunnen zien waar producten in een magazijn liggen opgeslagen. Een voorbeeld van een succesvolle .Net dienst is bjivoorbeeld MSN Messenger, waarmee groepen personen via internet met elkaar kunnen spreken, chatten of op andere manieren informatie met elkaar kunnen uitwisselen. Tsja... de 'real time' wereld van SCADA lijkt nog ver weg.

Wij geven in dit artikel een overzicht van de .Net techniek voor toepassingen in de Industriële Automatisering.

Betekenis van .Net in gewoon Nederlands

De kortste definitie die Microsoft hanteert voor .Net is : "Microsoft .Net is een platform voor XML webservices".

  • Een webservice is een stuk software wat draait op een server en gegevens beschikbaar stelt als een webclient, bijvoorbeeld Internet Explorer, daarom vraagt. Dit gaat dan, zoals de naam als doet vermoeden, via webtechnologie, via het internet.
  • XML mag je vertalen als een uniform en intelligent presentatiemiddel in webpagina's. XML code lift mee met bijvoorbeeld standaard HTML webpagina's via een webserver. Een XML pagina maakt contact met een webservice (kan .Net zijn) en presenteert de gegevens.

Hiermee is een webservice nog geen .Net webservice , want XML is een algemene standaard. Door de service te beschrijven via WSDL (Webservice DefinitionLanguage), een bepaald schema voor XML, wordt een webservice pas een .Net webservice en worden de gehele .Net bibliotheken toegankelijk. Dus de bovenstaande definitie kan moeiteloos worden vervolgd met "mits deze webservices maar met Microsoft kookgerei zijn gemaakt en Microsoft ingrediënten bevatten".

XML maakt gebruik van een software bus -SOAP (Simple Object Access Protokoll) - om te bi-directioneel communiceren  tussen client en service via het internet. SOAP biedt een lichtgewicht "messaging format", een manier om het ene component taken laten uitvoeren voor het andere component, dat werkt met ieder besturingssysteem en platform. SOAP bevat een vergelijkbare functionaliteit als de DCOM software bus, maar is in tegenstelling tot DCOM niet beperkt tot de Microsoft Windows besturingssystemen en -domeinen. De open SOAP en XML standaarden zijn dus de kurk waarop het .Net framework van Microsoft drijft.

Normaal communiceren .Net componenten dus met elkaar door gebruik te maken van SOAP, wat op zijn beurt weer van gebruik maakt van HTTP en XML en mogelijkheden heeft om door met Firewall beschermde netten om te gaan. De .Net componenten hoeven niet per se met elkaar via SOAP te communiceren, in een intranet omgeving kan direct over TCP worden gecommuniceerd. Dot Net software is dus geschreven dat het ook kan functioneren zonder webserver binnen een computer of op een lokaal netwerk. Echter de tijd van een executable van een megabyte en een paar runtime libraries is voorbij. Op de achtergrond moet eerst een runtime versie van het .Net framework geïnstalleerd worden van 30 megabyte. Daarna kan men de userapplicatie laden en zonder problemen draaien.

In .Net zitten allerlei grappen en grollen, die het systeem in de eerste plaats geschikt maken voor E-commerce. Op .Net gebaseerde webservices hebben de eigenschap dat ze in een soort "Gouden Gids" opgenomen zijn en de clients vanaf nul zelf kunnen vertellen wat ze te bieden hebben. Dit is de zogenaamde UDDI (Universal Description, Discovery and Intergration).

De speciale eigenschappen van SCADA (suite) producten en .Net

Microsoft richt zich in de eerste plaats op transactie systemen zoals E-commerce. Een cliënt vraagt informatie en een webservice geeft informatie door raadpleging van een database, dit is transaktiegeorienteerd. In de MES omgeving zijn de meeste systemen puur transaktiegeorienteerd zoals Operations/Detail Scheduling, Document Control en Maintenance Management. Hier kan .Net zonder moeite worden toegepast. De moeilijkheid zit in de systemen die met de productievloer zijn verbonden, zoals Data Collection/Acquisition (SCADA en de suite producten zoals batchpakketten en tracking en tracing modules dus)

Bij SCADA (en de suite-) producten zijn volgende specifieke eigenschappen belangrijk  :

  1. Het systeem moet voorzien worden van 'real time' data van de productievloer
  2. Er wordt visualisatie en bediening functionaliteit verlangd in de vorm van procesgraphics
  3. Er wordt trend functionaliteit gevraagd
  4. Er wordt alarm management gevraagd
  5. Gebruikersbeheer speelt een belangrijke rol.
  6. Betrouwbaarheid en  beschikbaarheid van systemen
  7. Redundantie
  8. Achtergrondtaken
  9. Het systeem moet autonoom ook actie kunnen ondernemen, bijvoorbeeld een alarm via SMS

Met name punt 1 en de laatste 4 genoemde punten doen een SCADA systeem verschillen van een transactie georiënteerd systeem als een database. Immers als aan een E-commerce systeem geen clients gekoppeld zijn gebeurt er niets. Een SCADA systeem wordt continu vanuit het veld geactualiseerd, wordt voorzien van real time data, moet een logisch geheel vormen, wat betreft achtergrond taken en de gebruikers van het systeem willen ook door het systeem gewaarschuwd worden bij een bepaald alarm of event. Er zal dus veel effort gestoken moeten worden door SCADA ontwikkelaars en de OPC foundation om .Net geschikt te maken voor typische SCADA taken.

Vergelijk van .Net en DCOM in de industrieautomatisering als transport protocol en communicatiemechanisme.

Microsoft positioneert .NET graag als een internet gerichte opvolger van DCOM (Distributed COM) en zal de toekomstige ontwikkelingsomgeving van Microsoft zijn. DCOM wordt niet verder doorontwikkeld. Om meteen ongerustheid weg te halen : bestaande DCOM toepassingen waaronder OPC servers kunnen met een interface wel geschikt gemaakt worden voor .Net.

Om de betekenis .Net in te schatten, moeten we een stap terug maken in de tijd door naar DCOM te kijken. DCOM is al met al een transport protocol in de hogere lagen van het OSI model. Sinds het aanbreken van het Windows tijdperk zijn er wat betreft informatieoverdracht in SCADA(suites) en tussen SCADA en PLC's in die lagen 3 generaties technieken gebruikt :

  • De SCADA componenten communiceren via een eigen protocol met behulp van de Netbios- of Winsock-stack met elkaar. Communicatie van PLC naar SCADA server werd gedaan door drivers die direct toegrijpen op het SCADA pakket.
  • De verschillende onderdelen van een SCADA systeem en z'n suite producten werden als DCOM componenten geschreven en hadden een eigen interface met een eigen specificatie (iFix is hier een mooi voorbeeld van)
  • De verschillende onderdelen van een SCADA systeem en z'n suite producten zijn als DCOM componenten geschreven met interfaces volgens OPC specificaties (Genesis is hier een voorbeeld van). In deze categorie horen ook OPC servers thuis om communicatie met PLC's mogelijk te maken.

De verschillende producten hier en daar in de industrieautomatisering zijn dus doorspekt met DCOM technieken. Er is vandaag geen SCADA pakket te noemen zonder dat het OPC cliënt mogelijkheden heeft. Tegelijkertijd begint men tegen de nadelen van DCOM aan te lopen (lees DCOM ... niet OPC). DCOM is niet internetfahig, is lastig te configureren vooral in complexe netwerkomgevingen, heeft aanmeld-, afmeld- en time-out mechanismes die eigenlijk niet geschikt zijn voor industriële omgevingen. Vooral dat laatste is een probleem, want in de standaard DCOM mechanismes kan een server of een client pas na minuten merken dat z'n tegenpool niet meer on-line is. Niet voor niets zijn er buiten het .Net verhaal reeds initiatieven opgestart voor verdere uitkleding van DCOM mechanismen of zelfs DCOM-loze OPC communicatie. De XML specificatie van de OPC foundation en het product "Genbroker" van Iconics zijn daar voorbeelden van. Om kort te gaan SCADA leveranciers en de OPC foundation willen eigenlijk het liefst af van de nadelen van DCOM.

Wat maakt  .NET beter dan DCOM ?

  • De ontwikkeling en de configuratie van componenten wordt aanzienlijk makkelijker, omdat de zaken die DCOM vaak complex maken (Implementatie van Interfaces, configuratie van componenten in de registry ) vervallen
  • Een kenmerk van het framework is dat de taal waarin het geprogrammeerd is niet meer uitmaakt. Een onderdeel van het framework compileert de broncode geschreven willekeurige talen naar een uniforme uitvoeringstaal en runtime omgeving (CLR, Common Language Runtime). Deze taal kent een gemeenschappelijke runtime bibliotheek en datatypen. Zodoende kan software geschreven in Visual Basic moeiteloos gegevens uitwisselen met bijvoorbeeld software geschreven in C#. Voorheen zag de implementatie van een DCOM component in C++ er anders uit dan in Visual Basic. Het gaat nog verder : componenten van web-pagina's (Active X, Web Forms, Java Beans noem maar op) en  elementen van de  graphical user interface van Windows (Vensters, Dialoogvensters, taakbalken enzovoorts) komen programmeertechnisch op dezelfde hoogte, terwijl dit altijd gescheiden werelden waren.
  • Door de bovengenoemde uniforme runtime omgeving CLR laten .Net componenten zich makkelijk van het ene systeem naar het andere systeem porteren. Ontwikkelingen voor Windows desktop systemen kunnen ook worden gebruikt voor Windows CE en z'n opvolgers daarvan.
  • Door het gebruik van SOAP wordt ook communicatie met niet op .Net gebaseerde componenten die SOAP gebruiken (bijvoorbeeld J2EE componenten) ook makkelijker.  
  • DCOM werd beschouwd als een gesloten Microsoft technologie. Bij .Net heeft Microsoft de specificaties in meer of mindere mate vrijgegeven zodat ook er ook een .Net framework in de maak is voor Linux platformen.
  • In het .NET framework zijn zogenaamde application assemblies toegepast. Het XML document specificeert meteen alle referenties naar bestanden, versies DLLs, executables, graphics of iedere ander component dat geïnstalleerd is op de machine. Dit voorkomt de beruchte  “DLL Hell,” waar verschillende programma's van verschillende versies van dll gebruik maken.

Voordelen aan DCOM ten opzichte van SOAP/XML zijn er overigens ook : DCOM voert een remote commando directer uit en is daardoor sneller, bij .Net (SOAP/XML) moet een commando nog geinterpreteerd worden. Updates binnen enkele 10 tallen milliseconden zijn mogelijk in DCOM. Binnen een PC dus met COM communiceren processen op de meest directe manier, updates van milliseconde zijn mogelijk. Er zijn genoeg voorbeelden te vinden van de eis van milliseconden communcatie. Het is maar de vraag of dit ook in .Net mogelijk is.

Rol van .Net  en XML in de industrieautomatisering voor visualisering en bediening

Als we het hebben over de mogelijkheden van .Net voor gegevensuitwisseling doen we tekort aan de mogelijkheden voor visualisatie en bediening. Met andere woorden wat zijn de consequenties van het ouderwetse maken van procesmimics in de grafische omgeving van een SCADA pakket.

De XML clients en XML en SOAP zijn dus platformonafhankelijk. Dit zijn dus niet alleen Windows desktops PC's  zijn, maar bijvoorbeeld ook PDA's (ook met andere besturingssystemen dan Windows CE), Mobiele telefoons en in de toekomst bijvoorbeeld TV's. XML laat niet zoals een eenvoudige HTML pagina tekst zien, maar is een grafische pagina die interactief gebruikt kan worden worden. Verder is XML in staat om een en dezelfde grafische pagina verschillend te presenteren afhankelijk van het gebruikte apparaat. Je hoeft een XML pagina maar één keer te configureren om hem op verschillende clients te kunnen draaien. Personalisatie van de gerepresenteerde informatie is ook hiermee mogelijk.

Maar het maken van procesmimics behelst meer. Objecten moeten in een grafisch schema kunnen worden geplaatst, niet zomaar in een sequentiële file. Hier komt de Vector Mark-up language (VML), eXtensible Stylesheet Language (XSL) en XSL Transformation (XSLT) om de hoek kijken. Dit zijn potentiële mogelijkheden om een vector georiënteerd plaatje te maken.

VML is een XML schema om vectors te kunnen beschrijven en configureren. Hiermee kunnen dus objecten in een x,y positie geplaatst worden. In principe hoeft alleen het object veranderd te worden de rest van het procesplaatje blijft hetzelfde. Oplossingen als sliders, graphs en buttons die worden geconverteerd naar een bitmap en dan worden getoond, wat een extensief proces is, kunnen achterweg blijven. Met VML kan je van een object de grootte, x,y positie en kleur aangeven in XML en dan wordt het getekend. Deze web-based HMI kan op ieder platform worden bekeken als de browser maar XML/VML ondersteunt.

Extensible style sheets staan de ontwikkelaar toe de inhoud van de grafische voorstelling te scheiden. Op verschillende grafische displays van bijvoorbeeld palm-tops, lap-top, pager of desk-top kan in de stijl die bij dat apparaat hoort dezelfde informatie getoond worden.

XML heeft enkele eigenschappen die goed van pas komen voor visualisatie van industriële data. Je kan in XML objecten beschrijven en gestructureerd nesten in andere objecten. Hiermee leent de opmaaktaal zich voor domein-specifieke vocabulaires. Je kan met standaard elementen bibliotheken bouwen met intelligente grafische objecten voor verschillende soorten toepassingen bijvoorbeeld chemie, pharmacie, voeding enzovoorts.

Er zijn reeds voorbeelden XML presentatie van grapics bekend. Deze zijn veelal systemen ontwikkeld met Java (dit is geen .Net) . Bijvoorbeeld  GTI en Fabricom hebben een systeem ontwikkeld op basis van J2EE applicatie heeft ontwikkeld voor United  Biscuits in Zaandam. Een ander voorbeeld het relatief onbekende WebControl van Automated Logic voor gebouwautomatisering. Het MES pakket Infoplus.21 koppeling Business Warehouse van SAP.

Verwachte ontwikkelingen in .Net technologie

Een volgend generatie SCADA pakket wordt als men Microsoft gebruikt automatisch in het .Net framework geprogrammeerd. Het programmeert eenvoudig weg sneller dan een eigen gemaakte webservice. Het is net zoiets als Windows applicaties maken zonder en met Microsoft Framework Classes. Een eenvoudige applicatie vergt bij de eerste techniek enkele A-viertjes code, terwijl met MFC een regel code voldoet. Nadeel is wel dat men zich ophangt zich dan wel weer op aan Microsoft, maar de geschiedenis leert dat SCADA producenten daar weinig moeite mee hebben.

Zoals gezegd wordt een .Net service vanuit het Internet aangeboden. Beschikbaar stellen van een SCADA .Net service over het Internet kan wenselijk zijn, maar voor een kerncentrale om maar wat te noemen, niet verstandig. Een meer voor de hand liggende toepassing is dat .Net componenten aan elkaar data beschikbaar gaan stellen. Bij het configureren van een S88.01 applicatie in een Batch pakket kan moeiteloos worden beschikt over de datapunten en de methoden van het SCADA systeem en omgekeerd. 

Het heeft er de schijn van dat .Net als communicatiemethode het snelst zal doorbreken, om dat de nood om over internet te gaan en met firewalls te kunnen omgaan het hoogst is. Voor de grafische presentatie zijn nog alternatieven beschikbaar in de vorm van Active X, Java enzovoorts.

Wat de ontwikkelingen voor OPC betreffen heeft OPC Foundation heeft in maart van dit jaar een eerste stap gezet met de OPC XML-specificatie vrij te geven die toegang van een OPC server via internet mogelijk maakt. In de specificatie is de definitie gegeven van een webservice die kan koppelen aan een OPC server.

Verwacht wordt dat nieuwe OPC producten in .Net worden geprogrammeerd. Bestaande DCOM-clients en -servers kunnen communiceren met .Net componenten door middel van een interface. Overigens kunnen DCOM componenten zoals ze nu worden gebruikt nog jaren mee, zoals DOS applicaties op de Windows platformen kunnen draaien. Als voordelen om OPC in de toekomst in .Net componenten te programmeren kunnen genoemd worden in de ontwikkelingssfeer  dat de ontwikkeling eenvoudiger wordt, dat men verschillende programmeer talen kan gebruiken. Een belangrijker rol speelt de Internet-Fähigkeit van de componenten.
 

Actuele voorbeelden van .Net systemen in SCADA en MES

Het eerste wat natuurlijk .Net gebaseerd zal zijn de toegang naar mobiele HMI apparaten en als standaard voor webportals om procespagina's via Internet te kunnen zien. Het product Mobile HMI van Iconics een voorbeeld van het gebruik naar mobiele HMI apparaten. In het product SuiteVoyager van Wonderware zijn enige .Net technologieën al geïmplementeerd. Het product heeft de functie van een webportal en maakt gebruik van XML, VML, XSL en HTTP/SOAP om de graphics te genereren.

Conclusies

Het gebruik van .Net methode gaat de komende jaren veel voordelen opleveren. Afwachten kan in veel gevallen. Oriëntatie in dit moment op de .Net techniek en de beschikbare pakketten wordt door Control-IT aanbevolen als een van de dingen van het volgende aan uw applicatie belangrijk is :

  • U wilt toegang tot informatie "at any time, anywhere and on any type of device"
  • Uw applicatie via Internet wilt benaderen, of dat uw veel  Internet techniek in uw netwerk gebruikt.
  • U wilt diverse MES functionaliteiten integreren.
  • Een gestructureerde opbouw van objecten  in graphics zijn belangrijk
  • U heeft een sterk veranderende omgeving, of wilt in staat zijn  graphics dynamisch (in run time) te kunnen opbouwen aan de hand van gegevens in een database. 

Uiteraard kunnen wij u deze oriëntatie voor uw organisatie uitvoeren.

 

Home ] Up ]

Send mail to info@control-it.nl with questions or comments about this web site.
Copyright © 2002 Control-IT Industrial Automation
Last modified: 03-05-2009