DCX
Real-time zenuwstelsel
Evenzeer zoals onze gedachten verbonden zijn met onze acties door middel van het menselijk zenuwstelsel, moeten verschillende componenten verbonden worden met elkaar om informatie of opdrachten uit te wisselen. In Microsofttechnologie wordt dit vandaag gerealiseerd door COM en DCOM. VenturCom brengt een nieuwe dimensie aan deze Microsofttechnologie. Het digitale zenuwstelsel van Microsoft moet uitgebreid worden voor het gebruik van real-time toepassingen. Het antwoord: DCX.
version française
Microsoft heeft een enorme verandering gebracht in de manier waarop fabrikanten hun producten ontwikkelen. In tegenstelling tot het verleden waar de klant vrede moest nemen met fabrikantafhankelijke oplossingen, eist hij nu open systemen met uitwisselingsmogelijkheden, gebaseerd op communicatiestandaarden en met een voldoende performantie. Microsoft Windows maakt het mogelijk voor de gebruikers en de ontwikkelaars om kosten te besparen door software componenten, platformen en kennis te voorzien die bij wijze van spreken maar van het schap te nemen zijn en die voorzien zijn van de modernste GUI’s (Grafical User Interfaces) en verbindingsmogelijkheden met allerhande fabrieksinformatiesystemen.
Op gelijkaardige manier maakt de RTX-technologie van VenturCom het mogelijk om real-time en closed-loop controle en processing te doen op hetzelfde standaard Windowsplatform, zodat ook hier een enorme kostenbesparing gedaan wordt en de nood aan een additionele hardware voor het real-time gedeelte van de applicatie geëlimineerd wordt. Echter de complexiteit van besturings- en real-time toepassingen blijft alsmaar stijgen en nieuwe uitdagingen dienen aangegaan te worden. Daarom heeft VenturCom nauw samengewerkt met zijn real-time partners en de industrie om deze kritische problemen te identificeren en op te lossen. Met DCX wordt een antwoord gegeven op de vraag naar deterministische connectiviteit tussen verschillende softwarecomponenten.
De geschiedenis
Zoals het bij goede ontwerpprincipes hoort, wordt een toepassing opgebouwd uit verschillende kleine, beter te beheren modules, zoals modules voor HMI (human machine interface), connectiviteit met ERP-systemen, data logging, drivers, etc. Om deze modules met elkaar in verbinding te stellen werd in het verleden bij elke softwareontwikkeling eerst het geraamte of framework opgezet, om daarna de fabrikantafhankelijke interfaces tussen de verschillende modules te definiëren. Dit had dan meestal nog het gevolg dat de drivers specifiek aan de toepassing waren en onmogelijk konden gebruikt worden met andere toepassingen. Dit resulteerde in een beperkt aantal mogelijkheden voor de klant en een stijgende ontwikkelingskost telkens een ander toestel of een nieuwe softwareversie moest geïntegreerd worden.
Met de komst van COM en CORBA werden meer open frameworks aangeboden, voorzien van een high-level programmeertaalonafhankelijke IDL (interface definition language), die het mogelijk maakte om op een efficiëntere manier de module-interface en de verbinding ervan te specifiëren en op te zetten. De meest populaire van de twee, COM, werd door Microsoft ingezet in Windows en zijn framework wordt nog immer gebruikt door de meeste Windowstoepassingen.
Allemaal perfect bruikbaar voor algemene toepassingen, maar voor industriële toepassingen waar men real-time wil werken, liggen de eisen toch hoger dan het bereik van COM en het real-time gedrag van Windows.
Vooral de deterministische data-flow, de planning en organisatie van de softwarecomponenten en uitwisselbare devicedrivers dienen bijzondere aandacht. Daarom biedt DCX een standaard en gemakkelijk te gebruiken interface aan die het gedrag, de data-flow, en de connectiviteit tussen device-driver en componenten – een virtueel I/O niveau – regelt zodat drivers en toepassingen onafhankelijk en uitwisselbaar worden.
Gebaseerd op OPC
Een aantal jaren geleden definieerde de “OPC Foundation” een op COM gebaseerde interface, bekend als OPC (OLE for Proces Control), die zich vooral toelegde op procestoepassingen. Vele fabrikanten en organisaties hebben toen de handen in elkaar geslagen om de OPC specificaties op te zetten en om tot een algemeen aanvaarde standaard te komen voor zowel gebruiker als fabrikant. De OPC gegevensverwerking heeft zijn flexibiliteit eveneens bewezen, door zelfs besturingssystemen buiten de pure “proces” te ondersteunen. Om deze redenen werd OPC als basis genomen voor de ontwikkeling van de DCX-interface. Met toevoeging van deterministische eigenschappen en communicatiestandaard met een minimum aan overhead werd een hoog performant dataprotocol bekomen dat gebaseerd is op een
“Producer/Consumer” model.
Overkoepelend over dit gegevensmodel is een set standaard API’s (Application Programming Interfaces) voor adressering, toegang en aanpassing van de gegevens op deterministische basis.
DCX architectuur
Alle DCX softwarecomponenten zijn verbonden met de DCX-bibliotheek en lopen als RTX toepassingen – ofwel in een Win32- ofwel in een RTSS- (Real-time Subsysteem) omgeving.
RTX verzekert beiden een volledige ondersteuning tussen Windows NT en Windows CE, en het best mogelijke real-time gedrag op een welbepaald systeemplatform.
DCX device-drivers gebruiken eveneens RTX om directe toegang te verkrijgen tot het hardwaregeheugen, de registers en de interrupts.
Een sleuteleigenschap van DCX is dat alle DCX-componenten direct en met hoge snelheid toegang hebben tot alle data van het gemeenschappelijke geheugendeel, of de component nu loopt in Win32, RTSS of op een andere processor van een SMP- (Symmetric Multiprocessor) systeem.
Een DCX-server proces initialiseert de DCX-omgeving en verwerkt alle niet-real-time administratieve taken zoals het opzetten van gemeenschappelijk geheugen en synchronisatieobjecten, queries voor configuratie-informatie van de configuratiedatabase, en DCX componenten laden en ontladen.
Een configuratie-editor, de configuratietool van de database, is voorzien om de device-drivers op te zetten en om de beschikbaarheidskarakteristieken van de gegevens te specifiëren.
Door in de DCX-configuratie database prioriteiten toe te kennen kan de systeemintegrator bij inbedrijfname de mate van belangrijkheid van de relatieve timing van de verschillende componenten toewijzen.
Niet alleen DCX-componenten kunnen gegevens uitwisselen. Niet conforme DCX-componenten kunnen eveneens toegrijpen op de centrale database, met uitzondering dat hun gedragsplanning niet door de DCX beheerd kan worden. Meestal is dit dan toch van minder belang daar het alom gaat om niet tijdkritische gegevensuitwisselingen die dan elke Win32 functie of service kunnen oproepen.
Datawarehouse
Om te communiceren in een “plug’n’play” wereld is het belangrijk dat standaarden ontworpen worden voor naamconventies, toegangsmethoden en integratie. DCX geeft een antwoord op al deze eisen. In hoofdzaak levert DCX een datawarehouse, dat een opslagplaats vormt en dat de verbinding maakt tussen namen voor informatiebronnen en items, en beschrijvingen van hun attributen (“Eigenschappen”/”Properties”).
Het datawarehouse kan beschouwd worden als een database aan informatie die kan opgevraagd worden door externe DCX-compatibele toepassingen en die alle informatie die nodig is om toegang tot of controle over de gegevens te verkrijgen controleert. Het bevat velden om gegevensdefinitie, update methodes, alarmen, beschrijvingen, foutmodes, etc. Het datawarehouse komt compleet met een toegangs-API die het mogelijk maakt voor de ontwikkelaar om de gegevensbank op te zetten of te wijzigen van fabrikantgebonden toepassingen.
RTX en DCX vormen een modern en interessant pakket van tools en een op Win32 gebaseerde omgeving voor real-time softwarecomponenten draaiend naast niet-deterministische componenten op een zelfde standaard platform. RTX voorziet het determinisme (alle organisatie en planning daar rond) en low-level hardware interface, terwijl DCX de real-time componenten object verbinding mogelijk maakt door een efficiënt device-driver model samen met een basispakket van device-drivers.
Real-time- en besturingskaartverkopers halen voordeel uit een enkele DCX-driver implementatie voor hun borden die ondersteuning geeft aan zowel real-time als niet-real-time toepassingen, zowel Windows NT als CE, zowel gedistribueerd als lokaal, met een enkele standaard OPC-server. Nieuwe functies zullen zeker nog volgen in nieuwe versie. n
www.venturcom.com
DCX
Le système nerveux en temps réel
A l’instar de nos pensées qui sont reliées à nos actions via le système nerveux humain, les différents composants doivent être reliés ensemble pour échanger des informations ou des tâches. La technologie Microsoft réalise aujourd’hui cet exploit au travers de COM et de DCOM. VenturCom apporte une nouvelle dimension à cette technologie Microsoft. Le système nerveux numérique de Microsoft doit être étendu pour l’utilisation d’applications temps réel. La réponse: DCX.
Microsoft a fortement bouleversé la façon dont les constructeurs développent leurs produits. Contrairement au passé où le client devait se satisfaire de solutions propriétaires, il existe aujourd’hui des systèmes ouverts dotés de possibilités d’échange et basés sur des standards de communication, offrant une performance suffisante. Microsoft Windows permet aux utilisateurs et développeurs de faire des économies en fournissant des composants logiciels, des plates-formes et des connaissances qu’ils n’ont pour ainsi dire plus qu’à prendre de l’étagère et qui intègrent les toutes dernières GUI (Graphical User Interfaces) et les possibilités de liaison avec toutes sortes de systèmes d’information de l’entreprise.
De la même, la technologie RTX de VenturCom permet un contrôle et traitement en temps réel et en boucle fermée sur cette même plate-forme standard, Windows. Ceci se traduit également par une considérable économie et supprime tout besoin d’un matériel additionnel pour assurer la partie temps réel de l’application. La complexité des systèmes d’exploitation et temps réel ne cesse toutefois d’augmenter et il faut par conséquent relever de nouveaux défis. C’est pourquoi VenturCom a travaillé en étroite collaboration avec ses partenaires temps réel et avec l’industrie afin d’identifier et de résoudre tous ces problèmes critiques. DCX répond à la problématique de connectivité déterministe entre différents composants logiciels.
Historique
Comme c’est le cas pour tout bon principe de conception, une application se compose de différents petits modules, plus faciles à gérer, comme les modules pour la HMI (human machine interface), la connectivité avec les systèmes ERP, l’enregistrement des données, les pilotes, etc. Pour établir une liaison entre ces données, on établissait autrefois pour chaque développement logiciel un cadriciel, pour ensuite définir les interfaces propriétaires entre les différents modules. Ceci avait généralement pour conséquence que les pilotes étaient spécifiques à l’application et qu’ils ne pouvaient en aucun cas être utilisés avec d’autres applications. Résultat : des possibilités réduites pour le client et un coût de développement en hausse à chaque fois qu’un autre appareil ou une nouvelle version logicielle devait être intégrée.
Avec l’arrivée de COM et de CORBA, le nombre de cadriciels ouverts a augmenté. Ceux-ci sont dotés d’un IDL (interface definition language) de haut niveau, indépendant du langage de programmation, qui permet la spécification et l’élaboration efficaces du module d’interface et de sa liaison. COM, le plus populaire des deux, a été utilisé par Microsoft dans Windows et son cadriciel est toujours utilisé par la majorité des applications Windows.
Tout ceci se prête parfaitement aux applications générales. En matière d’applications industrielles où le temps réel revêt une grande importance, les exigences dépassent les possibilités de COM et le comportement temps réel de Windows. Le flux de données déterministe, la planification et l’organisation des composants logiciels ainsi que les pilotes d’appareils interchangeables méritent une attention particulière. Voilà pourquoi DCX offre une interface standard d’une utilisation aisée qui règle le comportement, le flux de données et la connectivité entre le pilote de l’appareil et les composants – un niveau d’E/S virtuel – afin que les pilotes et les applications deviennent indépendants et interchangeables.
Basé sur OPC
Voici quelques années, l’OPC Foundation définissait une interface basée sur COM, connue sous le nom d’OPC (OLE for Process Control), qui s’appliquait surtout aux applications de processus. De nombreux fabricants et organisations ont alors collaboré ensemble pour mettre sur pied des spécifications OPC et arriver à un standard généralement accepté tant pour l’utilisateur que pour le fabricant. Le traitement des données OPC a également prouvé sa flexibilité, en soutenant même les systèmes d’exploitation en dehors du ‘processus’ pur. C’est pour ces raisons qu’OPC a été pris comme base pour le développement de l’interface DCX. Avec l’ajout de caractéristiques déterministes et un standard de communication avec un minimum de frais généraux, ils ont obtenu un protocole de données très performant basé sur un modèle ‘producteur/consommateur’.
Un set d’API (Application Programming Interfaces) standard pour l’adressage, l’accès et l’adaptation des données sur une base déterministe vient chapeauter ce modèle de données.
Architecture DCX
Tous les composants logiciels DCX sont reliés à la bibliothèque DCX et fonctionnent, en tant qu’applications RTX, soit dans un environnement Win32, soit dans un environnement RTSS (Real Time Subsystem).
RTX assure à tous deux un support total entre Windows NT et Windows CE ainsi que le meilleur comportement temps réel sur une plate-forme système bien définie.
Les pilotes d’appareils DCX utilisent également RTX pour accéder directement à la mémoire matérielle, aux registres et aux interruptions.
DCX se distingue par le fait que tous les composants DCX accèdent directement, à grande vitesse, à l’ensemble des données de la mémoire commune, que le composant fonctionne en Win32, en RTTS ou sur une autre processeur d’un système SMP (Symmetric Multiprocessor).
Un processus du serveur DCX initialise l’environnement DCX et traite toutes les tâches administratives qui ne sont pas en temps réel telles que la mise sur pied d’une mémoire commune et d’objets de synchronisation, les recherches d’informations de configuration de la base de données de configuration et le chargement et déchargement des composants DCX. Un éditeur de configuration, l’outil de configuration de la base de données, doit réaliser les pilotes d’appareils et spécifier les caractéristiques de disponibilité des données.
En attribuant des priorités dans la base de données de la configuration DCX, l’intégrateur du système peut indiquer lors de la mise en service le degré d’importance du timing relatif des différents composants.
Il n’y a pas que les composants DCX qui peuvent échanger des données. Les composants non conformes DCX peuvent également se servir de la base de données centrale, à la différence que la planification de leur comportement ne peut être gérée par le DCX. Ceci a généralement moins d’importance car il s’agit à chaque fois d’échanges de données non critiques en temps pouvant alors appeler chaque fonction ou service Win32.
Datawarehouse
Pour pouvoir communiquer dans un monde ‘plug ‘n play’, il est important de développer des standards pour les conventions de noms, les méthodes d’accès et l’intégration. DCX répond à toutes ces exigences. DCX fournit en gros un datawarehouse, c’est-à-dire, un entrepôt qui relie les noms des sources d’informations et items aux descriptions de leurs attributs (‘Caractéristiques’/’Propriétés). Le datawarehouse peut être considéré comme une base de données d’informations pouvant être consultées par des applications externes, compatibles DCX et qui contrôle toutes les informations nécessaires à l’accès ou au contrôle des données. Il comprend des champs de définition des données, de méthodes de mise à jour, d’alarmes, de descriptions, de modes d’erreur… Le datawarehouse est fourni de série avec une API d’accès grâce à laquelle le concepteur peut réaliser ou modifier la base de données d’applications propriétaires.
RTX et DCX constituent un paquet d’outils moderne et intéressant ainsi qu’un environnement basé sur Win32 pour les composants logiciels en temps réel qui tournent sur une même plate-forme standard avec les composants non déterministes. RTX prévoit le déterminisme (l’organisation et la planification requises) et l’interface matérielle de bas niveaux tandis que DCX permet la liaison des objets composants temps réel grâce à un modèle de pilote d’appareil efficace et un paquet de base de pilotes d’appareils. Les vendeurs de cartes temps réel et de cartes de contrôle bénéficient d’une seule implémentation de pilote DCX pour les tableaux, soutenant les applications temps réel ou non, tant Windows NT que CE, tant distribué que local, avec un seul serveur OPC standard. De nouvelles fonctions suivront certainement dans la nouvelle version.