DE102015119795B4 - OPC UA specific, hierarchical coder structure for exchanging data and associated procedures - Google Patents
OPC UA specific, hierarchical coder structure for exchanging data and associated procedures Download PDFInfo
- Publication number
- DE102015119795B4 DE102015119795B4 DE102015119795.2A DE102015119795A DE102015119795B4 DE 102015119795 B4 DE102015119795 B4 DE 102015119795B4 DE 102015119795 A DE102015119795 A DE 102015119795A DE 102015119795 B4 DE102015119795 B4 DE 102015119795B4
- Authority
- DE
- Germany
- Prior art keywords
- opc
- paths
- data
- encoders
- data streams
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
Verfahren zum Austausch von Datenströmen zwischen mindestens einem ersten Gerät (1, 2, 3) und einem zweiten Gerät (8), wobei die Datenströme mittels eines Kommunikationsprotokolls über eine Schnittstelle nach dem OPC UA Standard übertragen werden, die auszutauschenden Datenströme in unabhängig voneinander verarbeitbare Teildatenströme aufgeteilt werden, wobei eine Verarbeitungszeit der Teildatenströme deterministisch festgelegt wird und über dynamisch allokierte Pfade zwischen dedizierten und hierarchisch angeordneten Kodierern (4) an diese geleitet und mittels programmierbarer Datenstromprozessoren in Echtzeit verarbeitet werden, dadurchgekennze ichnet, dass für den Austausch von Datenströmen nicht benötigte Kodierer (8) einer Hierarchieebene (5) deaktiviert werden und damit der Energieverbrauch minimiert wird und die Minimierung des Energieverbrauchs durch eine Skalierung der Spannungs- und/oder Taktdomänen erfolgt.Method for exchanging data streams between at least a first device (1, 2, 3) and a second device (8), the data streams being transmitted using a communication protocol via an interface according to the OPC UA standard, the data streams to be exchanged being divided into partial data streams that can be processed independently of one another divided, with a processing time of the partial data streams being determined deterministically and routed to them via dynamically allocated paths between dedicated and hierarchically arranged encoders (4) and processed in real time by means of programmable data stream processors, characterized in that encoders not required for the exchange of data streams ( 8) a hierarchical level (5) are deactivated and thus the energy consumption is minimized and the energy consumption is minimized by scaling the voltage and/or clock domains.
Description
Die Erfindung betrifft ein Verfahren zum Austausch von Datenströmen zwischen mindestens einem ersten Gerät und einem zweiten Gerät, wobei die Datenströme mittels eines Kommunikationsprotokolls über eine Schnittstelle nach dem OPC UA Standard übertragen werden, die auszutauschenden Datenströme in unabhängig voneinander verarbeitbare Teildatenströme aufgeteilt werden, wobei eine Verarbeitungszeit der Teildatenströme deterministisch festgelegt wird und über dynamisch allokierte Pfade zwischen dedizierten und hierarchisch angeordneten Kodierern an diese geleitet und mittels programmierbarer Datenstromprozessoren in Echtzeit verarbeitet werden.The invention relates to a method for exchanging data streams between at least a first device and a second device, the data streams being transmitted using a communication protocol via an interface according to the OPC UA standard, the data streams to be exchanged being divided into partial data streams that can be processed independently of one another, with a processing time of the partial data streams is determined deterministically and routed to them via dynamically allocated paths between dedicated and hierarchically arranged encoders and processed in real time by means of programmable data stream processors.
Die Erfindung betrifft weiterhin einen echtzeitfähigen OPC UA Server umfassend eine OPC UA spezifische, hierarchische Kodiererstruktur, sowie ein Entwurfsverfahren zur Zusammenstellung leistungsspezifischer Systemkonfigurationen, welches die strukturellen Merkmale der OPC UA spezifischen, hierarchischen Kodiererstruktur nutzt.The invention further relates to a real-time capable OPC UA server comprising an OPC UA specific, hierarchical coder structure, and a design method for assembling performance-specific system configurations, which uses the structural features of the OPC UA specific, hierarchical coder structure.
Das OPC UA (OPC Unified Architecture, IEC62541) ist ein industrielles Maschine-to-Maschine (M2M)-Kommunikationsprotokoll, wobei die OPC UA-Spezifikation für den Austausch objektorientierter Datenmodelle und Informationsinhalte konzipiert ist, die das in der Automatisierung weit verbreitete OPC in der kommenden Generation von Industrienetzwerken ablösen soll. Das OPC UA erweitert OPC um wesentliche Eigenschaften und ermöglicht einen standardisierten und herstellerübergreifenden Datenaustausch zwischen verschiedenen Komponenten, unabhängig von Programmiersprache und Betriebssystem. Es ist vor allem durch die Fähigkeit gekennzeichnet, Maschinendaten (z.B. Regelgrößen, Messwerte, Parameter, usw.) nicht nur transportieren zu können, sondern auch maschinenlesbar semantisch zu beschreiben. Das OPC UA Protokoll gemäß der Spezifikation (in Software und Hardware) kann beispielsweise als ein OPC UA Kommunikationsstack realisiert werden. OPC UA verwendet, im Gegensatz zu seinem Vorgänger, nicht die proprietäre COM/DCOM-Schnittstellen. Das OPC UA Standardprotokoll ermöglicht somit eine Herstellerunabhängige Kommunikation zwischen OPC UA Clients (kurz: Clients) und OPC UA Servern (kurz: Server).The OPC UA (OPC Unified Architecture, IEC62541) is an industrial machine-to-machine (M2M) communication protocol, whereby the OPC UA specification is designed for the exchange of object-oriented data models and information content that uses the OPC in the automation, which is widely used in automation to replace the next generation of industrial networks. The OPC UA expands OPC with essential properties and enables standardized and manufacturer-independent data exchange between different components, independent of the programming language and operating system. It is primarily characterized by the ability not only to transport machine data (e.g. controlled variables, measured values, parameters, etc.), but also to describe it semantically in a machine-readable manner. The OPC UA protocol according to the specification (in software and hardware) can be implemented as an OPC UA communication stack, for example. Unlike its predecessor, OPC UA does not use the proprietary COM/DCOM interfaces. The OPC UA standard protocol thus enables manufacturer-independent communication between OPC UA clients (in short: clients) and OPC UA servers (in short: servers).
In der OPC UA Spezifikation werden die grundlegenden Mechanismen und die Gliederung von Modellelementen anhand objektorientierter Ansätze (Basistypen, Typisierung, Vererbung, Objektrelationen) beschrieben, die ein graphenbasiertes Datenmodell (Namensraum) zur Laufzeit bilden. Die Selbstmodellierung der OPC UA Spezifikationsinhalte wird dabei als „Namensraum 0“ bezeichnet, demgegenüber werden anwendungsspezifische Modelle, durch höhere Namensraumnummern gekennzeichnet. Der Namensraum ist ein Begriff aus der Programmierung und wird vor allem in der objektorientierten Programmierung verwendet, wobei innerhalb eines solchen Namensraumes jeder Name eindeutig ein Objekt bezeichnet. In einem anderen Namensraum kann der gleiche Name wieder frei zur Bezeichnung eines anderen Objektes benutzt werden. Gleichzeitig definiert die OPC UA Spezifikation mehrere Server-Client Schnittstellen (Dienste), um Namensräume über gängige Netzwerktechnologien (z.B. TCP/IP) zwischen Kommunikationsendpunkten untersuchen, beobachten und manipulieren zu können. Dem Client wird durch diese Schnittstellen (also mittels dem spezifizierten Kommunikationsstack) ermöglicht, mit Knoten bzw. Objekten im Namensraum des Servers bzw. deren einzelnen Attributen zu interagieren.The basic mechanisms and the structure of model elements are described in the OPC UA specification using object-oriented approaches (basic types, typing, inheritance, object relations), which form a graph-based data model (namespace) at runtime. The self-modeling of the OPC UA specification content is referred to as "namespace 0", in contrast, application-specific models are identified by higher namespace numbers. The namespace is a term from programming and is mainly used in object-oriented programming, with each name uniquely designating an object within such a namespace. In a different namespace, the same name can be freely used to designate another object. At the same time, the OPC UA specification defines several server-client interfaces (services) in order to be able to examine, monitor and manipulate namespaces via common network technologies (e.g. TCP/IP) between communication endpoints. These interfaces (i.e. using the specified communication stack) enable the client to interact with nodes or objects in the server’s namespace or their individual attributes.
Zusammenfassend definiert OPC UA ein generisches Objektmodell inklusive dem zugehörigen Typsystem. Zusätzlich zu diesem Datenmodell wurden Regeln definiert, die beschreiben wie man jedes physikalische System in ein UAkonformes Modell transformiert, um es im OPC Server zu repräsentieren. Mit diesem Metamodell kann jede Art von Geräte-, Funktions- oder Systeminformation beschrieben werden. Das Basistypsystem unterstützt Beziehungen zwischen Objekten, sogenannte Referenzen, und es wird Mehrfachvererbung unterstützt. Es ist somit vergleichbar mit einer modernen objektorientierten Programmiersprache. Das Basismodell bietet Objekt- und Variablentypen, genauso wie Referenz- und Datentypen. Mit dieser Basis kann OPC UA jede Art von Daten inklusive ihrer Metadaten und Semantik abbilden. Das OPC-UA-Datenmodell bildet also die Grundlage für die UA-Informationsmodelle, die als spezialisierte Modelle die Basis erweitern und bestimmte Funktionalitäten ergänzen, wie beispielsweise Data Access, Alarms und Conditions, Historical Access oder Programs.In summary, OPC UA defines a generic object model including the associated type system. In addition to this data model, rules have been defined that describe how to transform each physical system into a UA-compliant model in order to represent it in the OPC server. Any type of device, function or system information can be described with this meta model. The base type system supports relationships between objects, called references, and multiple inheritance is supported. It is thus comparable to a modern object-oriented programming language. The base model provides object and variable types, as well as reference and data types. With this basis, OPC UA can map any type of data including its metadata and semantics. The OPC UA data model thus forms the basis for the UA information models, which, as specialized models, extend the basis and supplement certain functionalities, such as data access, alarms and conditions, historical access or programs.
Die objektorientierte Darstellung von Knoten des Namensraums wird zur Laufzeit der individuellen Serverimplementation überlassen. Der hohe Abstraktionsgrad der Daten führt jedoch dazu, dass für deren Darstellung große Mengen von dynamischem Laufzeitspeicher auf der Rechenplattform des Servers vorhanden sein müssen, wobei allein für die Modellierung des Namensraums 0 bereits mehrere hundert KiloByte Speicher benötigt werden. Für das Hinterlegen der Ausgangsdaten des Namensraums 0 in der Form einer XML Datei werden zusätzlich 2.5 MB persistenter Speicher benötigt. Während der notwendige Speicher auf modernen Rechenplattformen mit mehreren MB/GB Speicher vernachlässigbar erscheint, ist sie jedoch von hardwarenahen, eingebetteten Mikrorechenplattformen nicht erfüllbar.The object-oriented representation of nodes in the namespace is left to the individual server implementation at runtime. However, the high degree of abstraction of the data means that large amounts of dynamic runtime memory must be available on the server's computing platform for its representation, with several hundred kilobytes of memory being required just for modeling the namespace 0. An additional 2.5 MB of persistent memory is required to store the output data of namespace 0 in the form of an XML file. While the necessary memory appears negligible on modern computing platforms with several MB/GB memory, it cannot be met by hardware-related, embedded micro-computing platforms.
Zusätzlich ist weder OPC UA noch TCP/IP in der von der Spezifikation detaillierten Form für die Kommunikation mit harten Echtzeitanforderungen, wie dies aber von feldnahen Systemen gefordert wird, ausgelegt.In addition, neither OPC UA nor TCP/IP in the form detailed by the specification is designed for communication with hard real-time requirements, as is required by systems close to the field.
Gegenwärtig werden, um ausreichend Laufzeitspeicher für den Betrieb eines OPC UA Servers bereitzustellen, in der Praxis leistungsstarke System-on-a-Chip (SoC) Rechensysteme mit externen Speicheranbindungen für SDRAM und Flash verwendet. Solche Systeme sind im Consumer-Markt weit verbreitet (z.B. bei Mobiltelefonen, Tablets, usw.) und greifen auf eingebettete Betriebssysteme wie Linux, eCos, FreeRTOS, u.ä. zurück, um Speicherallokation und Netzwerkstacks zur Verfügung zu stellen. Die gegebenen Rechensysteme sind jedoch im Allgemeinen nicht für hardwarenahe Steueraufgaben ausgelegt und damit beispielsweise für industrielle Anwendungen nicht geeignet.In order to provide sufficient runtime memory for the operation of an OPC UA server, powerful system-on-a-chip (SoC) computing systems with external memory connections for SDRAM and flash are currently used in practice. Such systems are widespread in the consumer market (e.g. mobile phones, tablets, etc.) and access embedded operating systems such as Linux, eCos, FreeRTOS, etc. back to provide memory allocation and network stacks. However, the given computing systems are generally not designed for hardware-related control tasks and are therefore not suitable for industrial applications, for example.
Um OPC UA Server dennoch auf üblichen Mikrorechenplattformen in hardwarenahen Applikationen betreiben zu können, muss der Funktionsumfang des OPC UA Servers im Sinne der verfügbaren Dienste reduziert werden - derartige gegebene Serverimplementationen werden als Nano- oder Mikroprofile von OPC UA bezeichnet. Da grundsätzlich nur die Funktionen des Servers, nicht aber die Anforderung an die Datenmodelle reduziert werden, bleiben die beschriebenen Speicherrestriktionen bestehen. Auch hier sind externe Speicherbausteine notwendig, um einen OPC UA Server zu betreiben.In order to still be able to operate the OPC UA server on conventional micro-computing platforms in hardware-related applications, the functional scope of the OPC UA server must be reduced in terms of the available services - such given server implementations are referred to as nano or micro profiles of OPC UA. Since only the functions of the server are reduced, but not the requirements for the data models, the storage restrictions described remain in place. External memory modules are also required here to operate an OPC UA server.
Akademische Versuche, On-Chip OPC UA Server auf üblichen Mikrorechenplattformen umzusetzen, zeichnen sich durch extreme Einschränkungen der Funktionalität bis hin zum Bruch der Spezifikationskonformität aus. Beide Fälle schließen deshalb eine industrielle Nutzung der OPC UA Serverimplementationen aus.Academic attempts to implement on-chip OPC UA servers on standard micro-computing platforms are characterized by extreme limitations in functionality up to and including breach of specification conformity. Both cases therefore rule out industrial use of the OPC UA server implementations.
Auf für hardwarenahe Steuer- und Datenerfassungsaufgaben ausgelegte Mikrocontroller, die nicht über externe Busschnittstellen verfügen, ist der Einsatz von OPC UA derzeit nicht möglich. Trotzdem sind es genau diese Systeme, die für industrielle Anwendungen eine Reihe von aufgabenspezifischen Vorteilen mit sich bringen. Denn die in Aktoren und Sensoren weit verbreiteten, äußerst preisgünstigen Architekturen mit hohem Integrationsgrad analoger Funktionsblöcke spielen auch in zukünftigen Industrieapplikationen eine kritische Rolle.The use of OPC UA is currently not possible on microcontrollers designed for hardware-related control and data acquisition tasks that do not have external bus interfaces. Nevertheless, it is precisely these systems that bring a number of task-specific advantages to industrial applications. Because the extremely inexpensive architectures with a high degree of integration of analog function blocks, which are widespread in actuators and sensors, will also play a critical role in future industrial applications.
Da für OPC UA Server gegenwärtig nur leistungsstarke SoCs eingesetzt werden können, wird die mangelnde Echtzeitfähigkeit der Kommunikationsstacks notdürftig durch die ohnehin hohen Taktraten dieser Systeme kompensiert. Es wird explizit von „Best-Effort“ und nicht harter Echtzeitfähigkeit gesprochen.Since only high-performance SoCs can currently be used for OPC UA servers, the lack of real-time capability of the communication stacks is poorly compensated for by the already high clock rates of these systems. It is explicitly spoken of "best effort" and not hard real-time capability.
Im Folgenden werden die Nachteile der bisher umgesetzten Lösungen für die vorstehend genannten Probleme erläutert.In the following, the disadvantages of the previously implemented solutions to the problems mentioned above are explained.
Die für OPC UA Server geeigneten SoCs entspringen überwiegend dem Consumer-Markt. Diese zeichnen sich primär durch kurze Lebenszyklen von 2-5 Jahren und niedrigen Zuverlässigkeitsanforderungen aus. Allein die hohe Produktionszahl der Chips ermöglicht geringe Preise. Für industrielle Applikationen mit Lebenszeiten von 10-20 Jahren sind die gegebenen Systeme aber ungeeignet. Ein Wechsel des Chips in einer Produktreihe würde einen Neuentwurf der betroffenen Systeme (Software und Hardware) erfordern sowie eine erneute Verifikation der elektrischen und programmatischen Eigenschaften nach jeder Änderung am Entwurf.The SoCs suitable for OPC UA servers mainly come from the consumer market. These are primarily characterized by short life cycles of 2-5 years and low reliability requirements. The high production number of the chips alone enables low prices. However, the given systems are unsuitable for industrial applications with lifetimes of 10-20 years. Changing the chip in a product line would require a redesign of the affected systems (software and hardware) and reverification of the electrical and programmatic properties after each design change.
Gegebene SoCs aber auch leistungsstarke Mikrocontroller werden mit Taktraten von mehr als 100 MHz (bis hin zu 1-2 GHz) betrieben. Die gegebenen hohen Taktraten führen zu erheblichen elektromagnetischen Abstrahlungen, die einen Einsatz solcher Chips in abstrahlungssensitiven Applikationen mit strengen EMI/EMV-Anforderungen, beispielsweise in der Automobilbranche, verbieten.Given SoCs but also high-performance microcontrollers are operated with clock rates of more than 100 MHz (up to 1-2 GHz). The given high clock rates lead to considerable electromagnetic emissions, which prohibit the use of such chips in applications sensitive to emissions with strict EMI/EMC requirements, for example in the automotive industry.
Kritisch ist auch der Energieverbrauch der derzeit bekannten Systeme zu sehen. Maßgebend für den Energieverbrauch eines Chips ist neben der Anzahl der Takte/Operation auch die Menge der Pins, deren Signalpegel verändert werden muss. SoCs mit externem Speicher und hoher Taktrate benötigen daher inherent mehr Energie für Speichertransaktionen als Mikrocontroller mit niedriger Pinzahl und internem Speicher. Externe Speicherbausteine führen zusätzlich zu erheblich komplexeren Schaltungen und höheren Produktionskosten. Zusätzlich sind Microcontroller durch den geringen Flächenbedarf wesentlich günstiger produzierbar als SoCs.The energy consumption of the currently known systems is also critical. In addition to the number of clocks/operations, the number of pins whose signal level has to be changed is decisive for the energy consumption of a chip. Therefore, SoCs with external memory and high clock speeds inherently require more energy for memory transactions than microcontrollers with low pin count and internal memory. External memory modules also lead to significantly more complex circuits and higher production costs. In addition, microcontrollers can be produced much more cheaply than SoCs due to the small space requirement.
Die Eigenschaften des OPC UA Kommunikationsprotokolls macht es zusätzlich notwendig, für den Empfang und das Versenden von Nachrichten (mehrere) große Empfangspuffer zu alloziieren. Der Zeitbedarf solcher Speicheroperationen ist in einem dynamischen System nicht deterministisch ableitbar und wirkt sich dementsprechend auf die Echtzeitfähigkeit des Gesamtsystems aus.The properties of the OPC UA communication protocol also make it necessary to allocate (several) large receive buffers for receiving and sending messages. The time required for such storage operations cannot be derived deterministically in a dynamic system and accordingly affects the real-time capability of the overall system.
Daher ist als weiterer Nachteil der bisherigen Lösungen die fehlende Echtzeitfähigkeit der softwarebasierten Serverimplementationen von OPC UA zu nennen. Aktuelle Bemühungen im Rahmen der OPC UA Real Time Working Groups gehen in die Richtung, diesen Mangel durch die Verwendung von TSN-Technologien (Time-Sensitive Networking - ein in der Industrie nutzbarer Echtzeit-Ethernet-Standard) aufzuheben, z.B. in MARVELL: IEEE TSN Standards Overview & Update. USA, Oktober 2015-Firmenschrift, und KUKA: Requirements for Time-Senitive Networks in Manufacturing. Deutschland, 22.05.2015. 44 Seiten.-Firmenschrift. Dies ist beispielsweise in der
Es ist daher eine Aufgabe der Erfindung, den notwendigen Speicherbedarf beispielsweise für hardwarenahe Steuer- und Datenerfassungsaufgaben ausgelegte Mikrocontroller zu reduzieren, um das OPC UA Kommunikationsprotokoll auch in feldnahen Systemen, d.h. industriellen Anwendungen einsetzen zu können.It is therefore an object of the invention to reduce the necessary memory requirements, for example for microcontrollers designed for hardware-related control and data acquisition tasks, in order to also be able to use the OPC UA communication protocol in systems close to the field, i.e. industrial applications.
Eine weitere Aufgabe der vorliegenden Erfindung ist es, eine speichereffiziente Abbildungsstrategie für OPC UA Datenstrukturen auf serielle Speicherbausteine zur Verfügung zu stellen.A further object of the present invention is to provide a memory-efficient mapping strategy for OPC UA data structures on serial memory chips.
Weiterhin ist es Aufgabe der Erfindung, Systemreaktionszeiten derart zu garantieren, dass eine harte Echtzeitfähigkeit des Systems gewährleistet werden kann.Furthermore, it is the object of the invention to guarantee system reaction times in such a way that hard real-time capability of the system can be guaranteed.
Eine weitere Aufgabe der Erfindung ist es, den Energiebedarf des Gesamtsystems zu reduzieren und die strengen EMI/EMV-Anforderungen für spezielle Applikationen, beispielsweise in der Automobilbranche, zu gewährleisten.A further object of the invention is to reduce the energy requirement of the overall system and to ensure the strict EMI/EMC requirements for special applications, for example in the automotive industry.
Die Aufgabe der Erfindung wird verfahrensseitig gemäß dem Hauptanspruch 1 gelöst. Für den Austausch von Datenströmen werden nicht benötigte Kodierer einer Hierarchieebene deaktiviert und damit wird der Energieverbrauch minimiert und die Minimierung des Energieverbrauchs erfolgt durch eine Skalierung der Spannungs- und/oder Taktdomänen.The object of the invention is achieved according to the
Dies kann auf einem Chip erfolgen, beispielsweise in der Form einer synthetisierbaren konfigurierbaren Intellectual Property (IP) für FPGAs oder ASIC Implementationen.This can be done on a chip, for example in the form of a synthesizable, configurable Intellectual Property (IP) for FPGAs or ASIC implementations.
Mehrere nutzerseitige erste Geräte, z.B. Clients senden ihre Daten beispielsweise über eine Ethernet-Verbindung und versuchen eine Interaktion mit einem nutzerfernen zweiten Gerät, z.B. einem OPC UA Server durchzuführen. Dabei werden die Daten der Clients in Teildatenströme, auch als Teilnachrichten bezeichnet, aufgeteilt und verschiedenen Kodierern einer ersten Hierarchieebene zugeführt. Die Kodierer enthalten Datenstromprozessoren, die die empfangenen Daten verarbeiten. In Anhängigkeit von der Größe der empfangenen Teilnachricht und der Taktrate des Datenstromprozessors ist es möglich eine deterministische Festlegung der Verarbeitungszeit einer Nachricht zu treffen und damit die Echtzeitfähigkeit des Systems zu gewährleisten.Several user-side first devices, e.g. clients, send their data, for example, via an Ethernet connection and try to interact with a user-remote second device, e.g. an OPC UA server. The data from the clients is divided into partial data streams, also referred to as partial messages, and fed to different encoders of a first hierarchical level. The encoders contain data stream processors that process the received data. Depending on the size of the partial message received and the clock rate of the data stream processor, it is possible to determine the processing time of a message in a deterministic manner and thus ensure the real-time capability of the system.
Die Weiterleitung der Daten von einem Kodierer einer Hierarchieebene zu einem Kodierer in einer nächsten Hierarchieebene erfolgt über bidirektionale Kommunikationspfade (kurz: Pfade), wobei die Kodierer benachbarter Hierarchieebenen über eine Busleitung miteinander verbunden sind. Der gleichberechtigte Zugriff auf die Kommunikationsbusse erlaubt die Ableitung von harten Grenzen für den minimalen Datendurchsatz (unter der Annahme der maximalen Busauslastung durch die bilaterale Kommunikation aller Busteilnehmer, d.h. der Kodierer).The data is forwarded from an encoder on one hierarchical level to an encoder on the next hierarchical level via bidirectional communication paths (paths for short), with the encoders on adjacent hierarchical levels being connected to one another via a bus line. Equal access to the communication buses allows the derivation of hard limits for the minimum data throughput (assuming maximum bus utilization through the bilateral communication of all bus participants, i.e. the coders).
Die Kodierer verarbeiten die Teildatenströme unabhängig voneinander, wobei die Verarbeitung in Empfangsreihenfolge sequentiell und mit determiniertem Zeitaufwand erfolgt. Der Vorteil der deterministischen Datenverarbeitung ist die Ableitung harter Echtzeitcharakteristiken in Abhängigkeit von der Anzahl und Anordnung der hierarchischen Kodierer. Wie zuvor erläutert, kann damit die Verarbeitung der Daten in Echtzeit gewährleistet werden.The coders process the partial data streams independently of one another, with the processing taking place sequentially in the order in which they were received and with a determined expenditure of time. The advantage of deterministic data processing is the derivation of hard real-time characteristics depending on the number and arrangement of hierarchical encoders. As previously explained, this ensures that the data is processed in real time.
In einer Ausgestaltung des vorgeschlagenen Verfahrens werden die Pfade zwischen den Kodierern in aneinandergrenzenden Hierarchieebenen dienstspezifisch zusammengeschaltet. Das bedeutet, dass die Anordnung der Kodierer innerhalb und zwischen den Hierarchieebenen der Struktur und dem Funktionsumfang der OPC UA Spezifikation (OPC UA Facets) entnommen wird.In one refinement of the proposed method, the paths between the coders in adjacent hierarchical levels are interconnected in a service-specific manner. This means that the arrangement of the encoders within and between the hierarchical levels of the structure and the scope of functions is taken from the OPC UA specification (OPC UA Facets).
In einer weiteren Ausgestaltung des Verfahrens werden für den Austausch von Datenströmen nicht benötigte Kodierer einer Hierarchieebene deaktiviert. Damit kann der Energieverbrauch minimiert werden. Die Kodierer können durch eine Skalierung der Spannungs- und Taktdomänen, d.h. durch eine Spannungsminderung oder eine Taktreduktion der Kodierer in eine Art Wartezustand versetzt werden, wobei sie nach Bedarf jederzeit wieder aktiviert werden können. Eine dynamische Skalierung der Spannungs- und Taktdomäne (Dynamic FrequencyäVoltage Scaling) erfolgt durch die Zieltechnologie in Abhängigkeit von den Leistungsanforderungen und Auslastungscharakteristiken der konkreten Implementation. Damit kann der Energiebedarf des Gesamtsystems reduziert werden, weil dadurch nur tatsächlich verwendete Kommunikationsstufen Energie verbrauchen.In a further refinement of the method, coders of a hierarchy level which are not required for the exchange of data streams are deactivated. In this way, the energy consumption can be minimized. The coders can be put into a kind of waiting state by scaling the voltage and clock domains, i.e. by reducing the voltage or reducing the coder clock, and they can be activated again at any time as required. Dynamic scaling of the voltage and clock domains (dynamic frequency-voltage scaling) is carried out by the target technology depending on the performance requirements and utilization characteristics of the specific implementation. In this way, the energy requirement of the overall system can be reduced because this means that only the communication stages that are actually used consume energy.
In einer Ausgestaltung des Verfahrens werden die dynamisch allokierten Pfade zwischen den Kodierern in benachbarten Hierarchieebenen anhand von Merkmalen des Kommunikationsprotokolls in der aktuellen Hierarchieebene bestimmt. Das Kommunikationsprotokoll enthält u.a. Merkmale, die die Art der zu übertragenden Nachricht, die Systemeigenschaften, sowie die Priorisierung der Datenverarbeitung kennzeichnen. Anhand dieser Merkmale können jeweils automatisch die geeignetsten Pfade für den Datenaustausch bestimmt und dynamisch angepasst werden.In one embodiment of the method, the dynamically allocated paths between the coders in adjacent hierarchical levels are determined on the basis of features of the communication protocol in the current hierarchical level. The communication protocol contains, among other things, features that characterize the type of message to be transmitted, the system properties and the prioritization of data processing. Based on these characteristics, the most suitable paths for data exchange can be automatically determined and dynamically adjusted.
In einer Ausgestaltung des Verfahrens können mittels Priorisierungsmechanismen auch Pfade für die hochpriore Datenverarbeitung dediziert werden. Mögliche Priorisierungsmechanismen sind beispielsweise die Reservierung von Kodiererpfaden für einen bestimmten Client, die Zuweisung eines Prioritätswertes zu einem Client entweder während der Verbindungsaufnahme oder durch einen bestimmten OPC UA Dienst, oder die bevorzugte Behandlung von Nachrichten eines Clients auf der Grundlage einer solchen Priorität oder die Unterbrechung aktueller Dekodierungsvorgänge eines Kodierers, um eine höher priorisierte Nachricht bevorzugt zu verarbeiten. Unter Priorisierungsmechanismen werden demnach Vorkehrungen verstanden, die dazu dienen, Nachrichten einer bestimmten Gegenstelle gegenüber anderen bevorzugt zu verarbeiten oder eine solche Verarbeitung innerhalb eines vordefinierten Zeitraums gewährleisten zu können. Damit können die Anzahl und die Fähigkeiten priorisierbarer Pfade sowie die Stufen der Priorisierung automatisch gemäß den vorgegebenen Anforderungsspezifikationen bestimmt werden.In one embodiment of the method, paths for the high-priority data processing can also be dedicated by means of prioritization mechanisms. Possible prioritization mechanisms include reserving encoder paths for a specific client, assigning a priority value to a client either during connection establishment or by a specific OPC UA service, or preferentially handling messages from a client based on such a priority, or interrupting current ones Decoding processes of a coder in order to preferentially process a higher-priority message. Prioritization mechanisms are therefore understood to mean precautions that serve to process messages from a specific remote station in preference to others or to be able to guarantee such processing within a predefined period of time. In this way, the number and the capabilities of prioritized paths and the levels of prioritization can be determined automatically according to the given requirement specifications.
Ein wesentlicher Vorteil dieser dynamischen Pfadallokation ist es, das damit eine Datenübertragung sowie -anpassung in Echtzeit erfolgen kann, weil damit die Übertragungszeiten der Daten über die Pfade garantiert werden kann. Dies wird dadurch unterstützt, dass bei der Pfadauswahl und damit der Art der Kodiererwahl zur Laufzeit Optimierungskriterien, wie der Energieverbrauch, die Verarbeitungszeit und die aktuelle Systemauslastung berücksichtigt werden.A major advantage of this dynamic path allocation is that data can be transmitted and adapted in real time because the transmission times of the data can be guaranteed via the paths. This is supported by the fact that optimization criteria such as energy consumption, processing time and the current system load are taken into account when selecting the path and thus the type of coder selected at runtime.
Die Aufgabe der Erfindung wird anordnungsseitig durch einen echtzeitfähigen OPC UA Server gemäß dem nebengeordneten Anspruch 5 gelöst. Ein echtzeitfähiger OPC UA Server umfasst eine protokollübergreifende, hierarchische Kodiererstruktur zum Austausch von Daten zwischen mindestens einem ersten Gerät und einem zweiten Gerät mittels eines Kommunikationsprotokolls über eine Schnittstelle nach dem OPC UA Standard , wobei Kodierer in mindestens zwei Hierarchieebenen angeordnet und Kodierer aus benachbarten Hierarchieebenen durch Pfade über jeweils eine Busleitung zwischen den benachbarten Hierarchieebenen verbunden ausgebildet sind, wobei die Kodierer als spezielle Hardware in einem Chip implementiert ausgebildet sind, wobei die Pfade als bidirektionale Kommunikationskanäle ausgebildet sind, wobei die Pfade durch on-Chip Netzwerkstrukturen ausgebildet sind.The object of the invention is achieved on the arrangement side by a real-time capable OPC UA server according to
Durch den hierarchischen Aufbau können unterschiedliche Protokolldatenströme in dedizierten, parallel betreibbaren, deaktivierbaren Hardwarekodierern verarbeitet werden. Damit wird es auch möglich sprachspezifische, programmierbare OPC UA Datenstromprozessoren mit integrierter Speicherverwaltung nach den jeweils vorliegenden Systemanforderungen zu implementieren. Der Speicherbedarf kann dadurch eingeschränkt werden, da umfangreiche Speicher (>512 Byte) nur in Kodierern eingebaut werden müssen, die Nachrichten aus separat empfangenen Teilströmen assemblieren müssen. Ein weiterer Vorteil besteht darin, dass Nachfolgekodierer durch einen verbindungsorientierten Bus bei Bedarf auf Daten zugreifen oder zu sendende Daten in den Speicher der vorangestellten Kodierer schreiben können. Dabei können Daten des Namensraums als statischer Bestandteil auf nicht flüchtigem Speicher hinterlegt werden, während dynamische Inhalte (z.B. veränderte Variablen, Knotenrelationen, etc.) durch einen adressorientierten Cache transparent an Kodierer weitervermittelt werden.Due to the hierarchical structure, different protocol data streams can be processed in dedicated hardware encoders that can be operated in parallel and can be deactivated. This also makes it possible to implement language-specific, programmable OPC UA data stream processors with integrated memory management according to the respective system requirements. The memory requirement can be limited as a result, since extensive memories (>512 bytes) only have to be installed in coders that have to assemble messages from separately received partial streams. Another advantage is that downstream encoders can access data on demand through a connection-oriented bus or write data to be sent into the memory of the upstream encoders. Data from the namespace can be stored as a static component on non-volatile memory, while dynamic content (e.g. changed variables, node relations, etc.) is passed on transparently to the coder via an address-oriented cache.
In einer Ausgestaltung der vorgeschlagenen Kodiererstruktur sind die Kodierer in einer Hierarchieebene aktivierbar und deaktivierbar ausgebildet. Damit kann der Energiebedarf des Gesamtsystems reduziert werden, weil nur die tatsächlich verwendete Kommunikationsstufen Energie verbrauchen.In one refinement of the proposed coder structure, the coders are configured such that they can be activated and deactivated in a hierarchy level. The energy requirement of the overall system can thus be reduced because only the communication stages that are actually used consume energy.
In einer weiteren Ausgestaltung der Kodiererstruktur werden die Kodierer als spezielle Hardware auf einem Chip implementiert, um die Verarbeitungsgeschwindigkeit und Energieeffizienz zu erhöhen. In einer anderen Ausgestaltung können die Kodierer auch als protokollspezifische, programmierbare Verarbeitungseinheiten ausgelegt werden oder als generische, general-purpose Rechenkerne ausgelegt werden.In a further refinement of the encoder structure, the encoders are implemented as special hardware on a chip in order to increase processing speed and energy efficiency. In another embodiment, the coders can also be designed as protocol-specific, programmable processing units or as generic, general-purpose computing cores.
In einer anderen Ausgestaltung der vorgeschlagenen Kodiererstruktur sind die Pfade als bidirektionale Kommunikationskanäle ausgebildet, wobei die Pfade durch on-Chip Netzwerkstrukturen ausgebildet sind. Die Pfade können aber auch derart ausgebildet sein, dass sie zwei Chips koppelnd verbinden oder aber die Pfade können mehrere diskrete on-Board Kodierer miteinander verbinden. Die bidirektionalen Kommunikationskanäle erlauben es, dass die Kodierer aus benachbarten Hierarchieebenen in beide Richtungen Daten austauschen können. So kann ein Nachfolgekodierer einer nachfolgenden Hierarchieebene auf Daten eines vorangestellten Kodierers zugreifen oder auch Daten in den Speicher von vorangestellten Kodierern schreiben, wobei dadurch der Speicherbedarf signifikant reduziert werden kann.In another embodiment of the proposed coder structure, the paths are in the form of bidirectional communication channels, with the paths being in the form of on-chip network structures. However, the paths can also be designed in such a way that they connect two chips in a coupling manner, or the paths can connect several discrete on-board encoders to one another. The bidirectional communication channels allow the encoders from neighboring hierarchical levels to exchange data in both directions. A subsequent coder of a subsequent hierarchical level can thus access data from a preceding coder or also write data to the memory of preceding coders, where this can significantly reduce the memory requirement.
Um sicherzustellen, dass die Funktionalität des Entwurfs gewährleistet werden kann, wird der Entwurf nach der Generierung durch definierte Testmethoden auf Akzeptanzkriterien geprüft.In order to ensure that the functionality of the design can be guaranteed, the design is checked for acceptance criteria after generation using defined test methods.
Die der Erfindung zugrundeliegende Aufgabe wird verfahrensseitig ebenfalls gemäß dem nebengeordneten Anspruch 11gelöst. Dabei werden die Anzahl der Kodierer und mindestens ein Kodierertyp in einer Hierarchieebene sowie die die Kodierer verbindenden Pfade, sowie die Topologie der Pfade mittels softwarebasierter, parametrisierter Werkzeugketten gemäß vorgegebenen Anforderungsspezifikationen des Systems ausgewählt und zusammengeschaltet. Die parametrisierte Werkzeugkette ermöglicht damit eine automatische Herleitung der notwendigen Kodierer- und Pfadstrukturen, um eine leistungsfähige Systemkonfiguration zusammenzustellen bzw. zu konzipieren. Unter einer Werkzeugkette wird eine Reihe von unterstützender Software verstanden, die systemrelevante, implementationsabhängige Konfigurationen und Daten gemäß Nutzervorgaben erzeugen kann, verstanden.The object on which the invention is based is also achieved in terms of the method in accordance with the independent claim 11 . The number of encoders and at least one encoder type in a hierarchical level and the paths connecting the encoders, as well as the topology of the paths are selected and interconnected using software-based, parameterized tool chains according to the system's specified requirement specifications. The parameterized tool chain thus enables an automatic derivation of the necessary coder and path structures in order to compile or design an efficient system configuration. A tool chain is understood to mean a series of supporting software that can generate system-relevant, implementation-dependent configurations and data according to user specifications.
In einer Ausgestaltung dieses Verfahrens optimieren die Werkzeugketten die zu übertragenden OPC UA Daten auf 8-Bit serielle Speicher, wobei die Daten statische Inhalte, die auf nicht flüchtigen Speichern hinterlegt werden und dynamische Inhalte, die durch einen adressorientierten Cache transparent an die Kodierer weitervermittelt werden, umfassen. Die Darstellung der Daten durch softwarebasierte Werkzeugketten auf 8-Bit serielle Speicher ermöglicht es, durch eine statische binäre Namensraumkodierung für OPC UA Informationsmodelle den dafür erforderlichen Speicherbedarf zu minimieren und zu optimieren. Der Speicherbedarf kann auch dadurch reduziert werden, dass nicht verwendete Komponenten des OPC UA Objektmodells entfernt werden.In one embodiment of this method, the tool chains optimize the OPC UA data to be transmitted on 8-bit serial memory, with the data containing static content stored on non-volatile memory and dynamic content transparently passed on to the coder by an address-oriented cache. include. The representation of the data by software-based tool chains on 8-bit serial memory makes it possible to minimize and optimize the memory requirements required for OPC UA information models through static binary namespace coding. The memory requirement can also be reduced by removing unused components of the OPC UA object model.
Des Weiteren können die statischen binären Daten des Namensraums off-Chip in nicht flüchtigem Speicher hinterlegt werden. Es ist aber auch möglich, die statischen binären Daten des Namensraums on-Chip in nicht flüchtigem Speicher zu hinterlegen. Eine weitere Ausführungsvariante des Verfahrens besteht darin, dass die statischen binären Daten zum Systemstart in flüchtigen Speicher übertragen werden, um die Verarbeitung der Daten zu beschleunigen.Furthermore, the static binary data of the namespace can be stored off-chip in non-volatile memory. However, it is also possible to store the static binary data of the on-chip namespace in non-volatile memory. A further embodiment variant of the method consists in the static binary data being transferred to volatile memory at system start in order to speed up the processing of the data.
In einer weiteren Ausgestaltung des Entwurfsverfahrens werden beliebige Inhalte eines OPC UA Informationsmodells in Echtzeit in einem on-Chip Speicher für dynamische Daten erweitert. Damit können Daten auch dynamisch dargestellt werden. Die Aufteilung der Daten in einen statischen Speicher und einen dynamischen Anteil minimiert die Menge an notwendigem Speicher für die Abbildung der OPC UA Informationsmodelle.In a further embodiment of the design method, any content of an OPC UA information model is expanded in real time in an on-chip memory for dynamic data. This means that data can also be displayed dynamically. The division of the data into a static memory and a dynamic part minimizes the amount of memory required for mapping the OPC UA information models.
In einer anderen Ausgestaltung des erfindungsgemäßen Verfahrens werden die OPC UA Daten komprimiert und zur Laufzeit dekomprimiert, um die Informationsdichte zu erhöhen.In another embodiment of the method according to the invention, the OPC UA data is compressed and decompressed at runtime in order to increase the information density.
In einer Ausgestaltung des vorgeschlagenen Verfahrens wird die Werkzeugkette zur Übersetzung von OPC UA Informationsmodellen in eine binäre Darstellung unter Berücksichtigung von Randparametern einer Hardwareausführung eines Anwendungssystems genutzt.In one embodiment of the proposed method, the tool chain is used to translate OPC UA information models into a binary representation, taking into account boundary parameters of a hardware version of an application system.
Die Werkzeugkette zur direkten Erstellung synthetisierbarer Hardwarebeschreibungen kann zum einen herstellerseitig zur Verfügung gestellt werden, zum anderen kann die Werkzeugkette aber auch kundenseitig zur Anforderungsbeschreibung und Testgenerierung erstellt werden, wobei dann Schlüsselparametern an den Hersteller zur Weiterentwicklung der Spezifikationsanforderungen übermittelt werden. Eine weitere Möglichkeit besteht darin, die kundenseitige Werkzeugkette zur Anforderungsbeschreibung und Generierung von synthetisierbarer Hardware basierend auf lizenzierbaren, verschlüsselter Teilhardwarebeschreibungen zu erstellen, um mittels dem vorgeschlagenen Verfahren echtzeitfähige OPC UA Server mit der vorgeschlagenen Kodiererstruktur für Mikrorechenplattformen in hardwarenahen Systemen der Feldebene einsetzen zu können.On the one hand, the tool chain for the direct creation of synthesizable hardware descriptions can be provided by the manufacturer, on the other hand, the tool chain can also be created by the customer for the description of requirements and test generation, with key parameters then being transmitted to the manufacturer for further development of the specification requirements. Another possibility is to create the customer-side tool chain for the description of requirements and the generation of synthesizable hardware based on licensable, encrypted partial hardware descriptions in order to be able to use real-time-capable OPC UA servers with the proposed coder structure for microcomputer platforms in hardware-related systems at the field level using the proposed method.
Der Funktionsumfang, d.h. die Zahl der verfügbaren Dienste und die Leistungsfähigkeit, d.h. die Anzahl der verfügbaren Datenstromprozessoren/Dienst) können automatisch in synthetisierbaren Hardwarebeschreibungen festgelegt werden. Die einfache Skalierung des Entwurfs durch die dynamische Pfadallokation zwischen den Kodierern an Bussegmenten erlaubt den einfachen Anschluss zusätzlicher Kodierer an den Bus, um damit spezifische Applikationsszenarien abzudecken.The range of functions, i.e. the number of services available and the performance, i.e. the number of available data stream processors/service) can be defined automatically in synthesizable hardware descriptions. The simple scaling of the design through dynamic path allocation between encoders on bus segments allows additional encoders to be easily connected to the bus to cover specific application scenarios.
Die Erfindung soll nachfolgend anhand von Ausführungsbeispielen näher erläutert werden.The invention will be explained in more detail below using exemplary embodiments.
In den zugehörigen Zeichnungen zeigen
-
1 Eine erfindungsgemäße Kodiererstruktur; -
2 das Prinzip der dynamischen Kodierersuche, d.h. der dynamischen allokierten Pfade zwischen den Kodierern.
-
1 An encoder structure according to the invention; -
2 the principle of the dynamic encoder search, ie the dynamically allocated paths between the encoders.
Die grau hinterlegten Kodierer 4 sind inaktiv und können bei Bedarf aktiviert werden.The
Client 3 hat den mit kleinen Kreisen markierten Kodiererpfad reserviert, so dass diese Kodierer 4 nur für Nachrichten des entsprechenden Clients (im Beispiel also Client 3) verwendet werden. Die Übertragung der Teilnachrichten von Client 3 hat auf allen Bussen 7 Priorität. Die Kodiererstruktur kann beispielsweise auf einem Chip 11, in der Form einer synthetisierbaren konfigurierbaren Intellectual Property (IP) für FPGAs oder ASIC Implementation realisiert sein.
Die Anzahl der Hierarchieebene ist nicht auf die in
In
In einem Ausführungsbeispiel zur Umsetzung der erfindungsgemäßen Kodiererstruktur 10 und der Nutzung des erfindungsgemäßen Verfahrens zum Austausch von Datenströmen zwischen mindestens einem Client 1 und einem Server 8, wobei die Datenströme mittels eines Kommunikationsprotokolls über eine Schnittstelle nach dem OPC UA Standard übertragen werden, ist es besonders vorteilhaft, wenn eine binäre Abbildungsstrategie für OPC UA Datenstrukturen auf 8-Bit Datenfelder definiert wird. Dabei erfolgt die Komprimierung von Zeichenketten (also Strings, Bytestrings) durch die hardwarebasierte Huffmannkodierung beim Zugriff auf entsprechende Datenfelder, wobei bei dieser Kodierungsmethode eine zweckmäßige Datengröße berücksichtigt werden kann. Um die Daten redundanzfrei darzustellen, werden bei der Huffmannkodierung die Quellsymbole mit Codewörtern unterschiedlicher Wortlängen kodiert. Die Länge der Codewörter entspricht dabei idealerweise ihrem Informationsgehalt. Besonders vorteilhaft ist es, einen Compiler für XML-basierte Namensraummodelle in die gegebene Darstellungsform zu implementieren.In an exemplary embodiment for implementing the
In einem weiterentwickelten Ausführungsbeispiel ist es besonders vorteilhaft, ein nicht blockierendes, paketbasiertes Bussystem on Chip (network on Chip) zur dynamischen Identifikation und für den Datenaustausch zwischen Protokollkodierern verschiedener Kodierungsebenen 5.1, 5.2, usw., d.h. Hierarchieebenen 5 zu implementieren. Dabei kann für den gleichberechtigten Zugriff aller Kommunikationsteilnehmer auf den Datenbus ein Round-Robin-Scheduler verwendet werden. Durch dieses Scheduling-Verfahren werden die begrenzten Ressourcen, die üblicherweise die größten Schwierigkeiten bei der Verwendung von OPC UA Servern in hardwarenahen Steueraufgaben für industrielle Anwendungen bereiten, mehreren konkurrierenden Prozessen zugeordnet. Durch die Implementation der erfindungsgemäßen dynamischen Suche nach Nachfolgekodierern durch Broadcast-Anfragen mit Schlüsselparametern der aktuellen Dateninhalte und einem bidirektionalen, verbindungsorientierten Datenaustausch zwischen Verbindungsendstellen lässt sich der Speicherbedarf solcher Systeme signifikant reduzieren und eine Verarbeitung der Daten in Echtzeit realisieren.In a further developed exemplary embodiment, it is particularly advantageous to implement a non-blocking, packet-based bus system on chip (network on chip) for dynamic identification and for data exchange between protocol coders of different coding levels 5.1, 5.2, etc., i.e.
Der erfindungsgemäße echtzeitfähige OPC UA Server 8 kann mit für Mikrorechenplattformen in hardwarenahen Systemen der Feldebene eingesetzt werden. Die Herleitung der Echtzeitfähigkeit wird z.B. nicht auf die Verwendung einer TSN/IRTE Spezifikationen wie IEEE802.1Q gestützt, sondern durch die Architektur der Protokolldekodierungshierarchie sichergestellt. Die hoch- und niederpriorären Pfade der Applikation sind immer inherent echtzeitfähig, und es werden weder Anforderungen an die Gestaltung des Kommunikationskanals oder der Netzwerktopologie gestellt. Insbesondere ist diese Fähigkeit nicht an die Auslegung einer Server/Client oder Master/Slave Kommunikation gekoppelt.The real-time capable OPC UA server 8 according to the invention can also be used for micro-computing platforms in hardware-related systems at the field level will. The derivation of the real-time capability is not based, for example, on the use of a TSN/IRTE specification such as IEEE802.1Q, but is ensured by the architecture of the protocol decoding hierarchy. The high- and low-priority paths of the application are always inherently real-time capable, and there are no requirements for the design of the communication channel or the network topology. In particular, this ability is not linked to the design of a server/client or master/slave communication.
In einem weiteren Ausführungsbeispiel der Erfindung sind der Funktionsumfang, d.h. die Zahl der verfügbaren Dienste und die Leistungsfähigkeit, d.h. die Anzahl der verfügbaren Datenstromprozessoren/Dienst automatisch in synthetisierbaren Hardwarebeschreibungen festgelegt. Die einfache Skalierung des Entwurfs durch die dynamische Pfadallokation zwischen den Kodierern an Bussegmenten erlaubt den einfachen Anschluss zusätzlicher Kodierer 4 an den Bus 6, um damit spezifische Applikationsszenarien abzudecken.In a further embodiment of the invention, the range of functions, i.e. the number of available services, and the performance, i.e. the number of available data stream processors/service are automatically defined in synthesizable hardware descriptions. The simple scaling of the design through the dynamic path allocation between the encoders on bus segments allows
In einem weiteren Ausführungsbeispiel erfolgt die Abbildung von objektorientierten Datenmodellen mit gängigen grafischen Umgebungen dritter Anbieter in XML Beschreibungen, wobei die Datenmodelle daraufhin auf 8-Bit serielle Speicherbausteine (on-Chip oder on-Board) einfach übersetzt werden können. Es sind keine weiteren Implementationsprozesse für die Inbetriebnahme des Servers notwendig, insbesondere keine Kenntnisse zu OPC UA Serverprozessen.In a further exemplary embodiment, object-oriented data models are mapped using common graphical environments from third parties in XML descriptions, with the data models then being able to be easily translated to 8-bit serial memory modules (on-chip or on-board). No further implementation processes are necessary for the commissioning of the server, in particular no knowledge of OPC UA server processes.
BezugszeichenlisteReference List
- 11
-
erstes Gerät, z.B. Client 1first device,
e.g. client 1 - 22
-
erstes Gerät, z.B. Client 2first device,
e.g. client 2 - 33
-
erstes Gerät, z.B. Client 3first device,
e.g. client 3 - 44
- Kodiererencoder
- 55
- Hierarchieebene, jeweils 5.1, 5.2 usw.Hierarchy level, each 5.1, 5.2 etc.
- 66
- Busleitungbus line
- 77
- Bidirektionale PfadeBidirectional Paths
- 88th
- zweites Gerät, z.B. Serversecond device, e.g. server
- 99
- Datenströme der jeweiligen Clients (hier bspw. 9.1, 9.2, 9.3)Data streams of the respective clients (here e.g. 9.1, 9.2, 9.3)
- 1010
- OPC UA HardwarearchitekturOPC UA hardware architecture
- 1111
- Chip mit OPC UA spezifizierter HardwareChip with OPC UA specified hardware
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102015119795.2A DE102015119795B4 (en) | 2015-11-16 | 2015-11-16 | OPC UA specific, hierarchical coder structure for exchanging data and associated procedures |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102015119795.2A DE102015119795B4 (en) | 2015-11-16 | 2015-11-16 | OPC UA specific, hierarchical coder structure for exchanging data and associated procedures |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102015119795A1 DE102015119795A1 (en) | 2017-05-18 |
DE102015119795B4 true DE102015119795B4 (en) | 2022-04-28 |
Family
ID=58640411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102015119795.2A Active DE102015119795B4 (en) | 2015-11-16 | 2015-11-16 | OPC UA specific, hierarchical coder structure for exchanging data and associated procedures |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102015119795B4 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108873847B (en) * | 2018-07-13 | 2020-11-20 | 北京工业大学 | Data acquisition method for die forging production line |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011147652A1 (en) | 2010-05-25 | 2011-12-01 | Siemens Aktiengesellschaft | Method and apparatus for interchanging data, and network |
WO2016155856A1 (en) | 2015-03-27 | 2016-10-06 | Bühler AG | Method and system for process controlling of plants in an opc-ua based machine-to-machine network |
-
2015
- 2015-11-16 DE DE102015119795.2A patent/DE102015119795B4/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011147652A1 (en) | 2010-05-25 | 2011-12-01 | Siemens Aktiengesellschaft | Method and apparatus for interchanging data, and network |
WO2016155856A1 (en) | 2015-03-27 | 2016-10-06 | Bühler AG | Method and system for process controlling of plants in an opc-ua based machine-to-machine network |
Non-Patent Citations (2)
Title |
---|
KUKA: Requirements for Time Sensitive Networks in Manufacturing. Deutschland, 22.5.2015. 44 Seiten. - Firmenschrift |
MARVELL: IEEE TSN Standards Overview & Update. USA, Oktober 2015. - Firmenschrift |
Also Published As
Publication number | Publication date |
---|---|
DE102015119795A1 (en) | 2017-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102020125219A1 (en) | END-TO-END SERVICE QUALITY IN EDGE COMPUTING ENVIRONMENTS | |
DE102006058818B4 (en) | Apparatus and method for converting text messages | |
DE60033529T2 (en) | NETWORK PROCESSOR, STORAGE ORGANIZATION AND METHOD | |
DE102019106669A1 (en) | METHOD AND ARRANGEMENTS FOR MANAGING STORAGE IN CASCADED NEURONAL NETWORKS | |
DE112017006557T5 (en) | BIMODAL PHY FOR LOW LATENCY IN HIGH-SPEED CONNECTION PATHS | |
DE102005060085B4 (en) | Method, communication network and control unit for the cyclic transmission of data | |
WO2016045863A1 (en) | Device with communication interface and method for controlling database access | |
DE102015102871A1 (en) | Distributed routing table lookup technologies | |
DE102004010180A1 (en) | Methods and devices for accessing distributed data for process control systems | |
Großmann et al. | OPC UA server aggregation—The foundation for an internet of portals | |
DE102015117019A1 (en) | Serial peripheral interface chain communication with frame bound response | |
CN109245980A (en) | Modbus communication protocol analytic method, system and equipment and storage medium | |
DE112004002043B4 (en) | Method, system and program for building a package | |
CN108829884A (en) | data mapping method and device | |
CN111556074A (en) | Communication protocol configuration method and device based on OPC UA | |
DE112018005507T5 (en) | MULTI-CRITERIA ENERGY MANAGEMENT SCHEME FOR POOLED ACCELERATOR ARCHITECTURES | |
DE102015119795B4 (en) | OPC UA specific, hierarchical coder structure for exchanging data and associated procedures | |
DE102017200456A1 (en) | Arithmetic unit and operating method for this | |
EP1653308A1 (en) | Method and apparatus for providing and storing information | |
EP3213266A1 (en) | Method for integration of semantic data processing | |
DE102006025133A1 (en) | Storage and storage communication system | |
EP1370952B1 (en) | Communication method for establishing event channels in a timed communication system | |
DE19850469A1 (en) | Automation system and method for accessing the functionality of hardware components | |
CN108173948A (en) | A kind of Distributed Experiment data real-time exchange method | |
DE102022119909A1 (en) | REDUCED NETWORK LOAD WITH COMBINED PUT OR GET AND RECEIVER MANAGED OFFSET |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: H04L0012725000 Ipc: H04L0012893000 |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: H04L0012893000 Ipc: H04L0047400000 |
|
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R082 | Change of representative |