-
Die Erfindung betrifft ein Verfahren zur sicheren Kommunikation zwischen einem Master und einem Slave eines Bussystems. Hierbei wird ein Telegramm zwischen dem Master und dem Slave ausgetauscht. Die Erfindung betrifft ferner eine Kommunikationsanlage sowie eine Anlage.
-
Industrieanlagen weisen normalerweise eine Anzahl an Aktoren auf, die mittels einer Prozesssteuerung betätigt werden. Hierbei ist meist jedem Aktor eine separate Steuerung zugeordnet, die mittels einer Kommunikationsanlage mit der Prozesssteuerung verbunden ist, wobei für die Kommunikation üblicherweise ein Feldbus-Protokoll herangezogen wird. Mittels der Prozesssteuerung werden Vorgaben für den Aktor erstellt, die zu diesem übertragen werden, sodass dieser anhand der Vorgaben betätigt wird. Der Zustand des Aktors wird zu der Prozesssteuerung zurück übertragen, sodass mittels dieser eine weitere Anpassung oder Abstimmung auf weitere Aktoren erfolgen kann.
-
Zusätzlich zu der Prozesssteuerung der Aktoren ist üblicherweise auch eine Sicherheitssteuerung vorhanden. Mittels dieser wird sichergestellt, dass bei einer Fehlfunktion oder einer Situation, in der eine Verletzung einer Person oder eine Beschädigung eines Gegenstands möglich ist, der Aktor stillgesetzt wird oder lediglich in einer bestimmten Art und Weise betätigt werden kann. So wird beispielsweise bei einer Annäherung einer Person an den Aktor dies anhand des Öffnens einer Schranke oder dergleichen festgestellt, und in diesem Fall der Aktor stillgesetzt. Insbesondere wird hierbei die sichere Funktion „STO“ ausgeführt. Es ist jedoch auch möglich, dass der Aktor weiterhin bewegt wird, üblicherweise mit einer verminderten Geschwindigkeit. Hierbei ist sicherzustellen, dass die Geschwindigkeit des Aktors einen bestimmten Grenzwert nicht überschreitet.
-
Damit stets sichergestellt ist, dass die sicheren Funktionen auch tatsächlich aktiviert werden, ist üblicherweise ein separates Bussystem gebildet, wobei die Prozesssteuerung den Master des Bussystems bildet. Der Aktor hingegen entspricht einem Slave des Bussystems. Da die Kommunikation zwischen dem Master und dem Slave sicherheitskritische Aspekte betrifft, ist es erforderlich, dass die Kommunikation zwischen dem Master und dem Slave und das auf diese Weise gebildete Bussystem einen bestimmten Sicherheitsstandard erfüllt. So muss sichergestellt sein, dass sämtliche Telegramme, die zwischen Master und dem Slave ausgetauscht werden, auch tatsächlich von dem jeweils anderen korrekt empfangen und verarbeitet werden. Hierfür wird zum Beispiel FSoE („Fail Safe over Ethercat“) verwendet. Bei diesem Feldbus-Protokoll weist jedes Telegramm eine bestimmte Prüfsumme oder einen sonstigen Inhalt auf, der auf dem jeweils zeitlich vorhergehenden Telegramm basiert. Somit ist sowohl durch den Master als auch dem Slave verifizierbar, dass das korrekte Telegramm aktuell bearbeitet wird.
-
Aufgrund dieses Verfahrens ist jedoch eine Datenaustauschgeschwindigkeit verringert. So ist es beispielsweise nicht möglich, dass der Master mehrere Telegramme nacheinander zu dem Slave verschickt. Vielmehr muss stets zunächst die Antwort des Slaves abgewartet werden, bis ein neues Telegramm zu diesem verschickt werden kann. Damit dennoch in einem sicherheitskritischen Fall eine Betätigung des Aktors vergleichsweise schnell erfolgen kann, ist ein Datenbereich jedes Telegramms codiert aufgebaut und weist entsprechende Codeblöcke, insbesondere einzelne Bits, auf. Jedem der Codeblöcke ist eine bestimmte Funktion zugeordnet. Falls somit in einem der Codeblöcke Daten vorhanden sind, also beispielsweise das jeweilige Bit gesetzt ist und somit den Wert 1 (eins") aufweist, wird eine diesem Grundblock zugeordnete Funktion bei dem Master bzw. dem Slave durchgeführt. Somit wird lediglich eine vergleichsweise geringe Anzahl von Daten pro Telegramm übertragen. Hierbei ist es jedoch erforderlich, dass vor Inbetriebnahme der Industrieanlage sowohl in dem Master als auch in dem Slave die korrekte Kodierung des Datenbereichs hinterlegt ist. Auch ist eine nachträgliche Änderung hiervon nicht mehr möglich. Damit eine entsprechende Änderung durchgeführt werden kann, ist es erforderlich, das vollständige Bussystem und somit auch die vollständige Industrieanlage abzuschalten und sowohl den Master als Slave in einem bestimmten Programmiermodus zu versetzen und dort die Kodierung zu verändern.
-
Aus
US 2016/0050122 A1 ist ein Verfahren zum Weiterleiten von Nachrichten in einem Netzwerk bekannt.
-
In
US 2011/0022205 A1 ist ein Verfahren zum Verteilen eines Audiosignals zwischen mehreren Geräten offenbart.
-
Aus
US 2015/0318867 A1 ist ein Verfahren zum ressourcensparenden Erstellen einer Prüfsumme bekannt.
-
Der Erfindung liegt die Aufgabe zugrunde, ein besonders geeignetes Verfahren zur sicheren Kommunikation zwischen einem Master und einen Slave eines Bussystems sowie eine besonders geeignete Kommunikationsanlage als auch eine besonders geeignete Anlage anzugeben, wobei insbesondere eine Flexibilität erhöht ist, und wobei zweckmäßigerweise ein Betrieb und/oder eine Konfiguration vereinfacht ist.
-
Hinsichtlich des Verfahrens wird diese Aufgabe durch die Merkmale des Anspruches 1, hinsichtlich der Kommunikationsanlage durch die Merkmale des Anspruchs 9 und hinsichtlich der Anlage durch die Merkmale des Anspruchs 10 erfindungsgemäß gelöst. Vorteilhafte Weiterbildungen und Ausgestaltungen sind Gegenstand der jeweiligen Unteransprüche.
-
Das Verfahren dient der sicheren Kommunikation zwischen einem Master und einem Slave eines Bussystems. Das Bussystem erfüllt vorzugsweise einen Feldbus-Standard und wird somit gemäß einem Feldbus-Protokoll betrieben. Das Bussystem unterstützt geeigneterweise eine sichere Kommunikation und weist somit vorzugsweise entsprechende Erweiterungen auf. Als Bussystem wird „Fail Safe over Ethercat" (FSoE) herangezogen oder alternativ Profinet. Der Master und der Slave sind signaltechnisch miteinander gekoppelt, beispielsweise mittels Funk oder besonders bevorzugt mittels einer Leitung des Bussystems.
-
Das Verfahren sieht vor, dass ein Telegramm zwischen dem Master und dem Slave ausgetauscht wird. Hierbei wird beispielsweise von dem Master das Telegramm zu dem Slave geschickt. Alternativ hierzu wird beispielsweise das Telegramm von dem Slave zu dem Master geschickt. Vorzugsweise erfolgt kein eigenständiges Erstellen des Telegramms durch den Slave. Vielmehr wird das seitens des Masters zu dem Slave geschickte Telegramm mittels geeigneter Daten durch den Slave befüllt.
-
Das Telegramm weist einen speziellen Aufbau auf und umfasst zweckmäßigerweise eine Kopfzeile und/oder eine Fußzeile, mittels derer ein Beginn bzw. das Ende des Telegramms beschrieben ist. Dazwischen befindet sich vorzugsweise ein Datenbereich. Das Telegramm, insbesondere der Datenbereich, weist einen ersten Bereich und einen zweiten Bereich auf. Somit ist der etwaige Datenbereich in zumindest die beiden Bereiche unterteilt oder weist zusätzlich Bereiche auf. Der erste Bereich ist separat von dem zweiten Bereich und grenzt beispielsweise an diesen an. Der erste Bereich enthält eine vordefinierte Anweisung. Somit ist der erste Bereich codiert. Insbesondere ist der erste Bereich lediglich ein einziger Codeblock und beispielsweise lediglich ein einziges Bit. Zusammenfassend ist, sofern der Codeblock/die vordefinierte Anweisung beispielsweise lediglich binär ist, beispielsweise bei einem gesetzten Bit die vordefinierte Anweisung erfüllt, und bei einem nicht gesetzten Bit ist die vordefinierte Anweisung nicht erfüllt. Somit ist eine vergleichsweise geringe Datenmenge erforderlich. Wenn beispielsweise der erste Bereich mit Daten gefüllt ist, ist die vordefinierte Anweisung erfüllt. Falls der erste Bereich keine Daten enthält, ist insbesondere die vordefinierte Anweisung nicht erfüllt. Mit anderen Worten ist bevorzugt eine binäre Ausgestaltung des ersten Bereichs gegeben, wobei bei der einen Einstellung die vordefinierte Anweisung erfüllt und bei der verbleibenden Einstellung des ersten Bereichs die vordefinierte Anweisung nicht erfüllt ist. Zusammenfassend ist sowohl in dem Master als auch in dem Slave hinterlegt, welche jeweiligen Aktion durchgeführt werden soll, sofern die vordefinierte Anweisung erfüllt ist, insbesondere sofern entsprechend Daten hinterlegt sind.
-
Der zweite Bereich ist zumindest teilweise mit einer freien Anweisung befüllt oder zumindest befüllbar. Somit ist es möglich, den zweiten Bereich zur Formulierung der freien Anweisung zu verwenden. Hierbei wird durch den Slave bzw. Master die jeweilige freie Anweisung zunächst erstellt und von dem verbleibenden ausgelesen. Die freie Anweisung kann unterschiedliche Ausprägungen annehmen, wobei zweckmäßigerweise keine Beschränkungen vorhanden sind. Seitens des Slaves und des Masters ist es dabei erforderlich, zunächst die vollständige freie Anweisung zu erfassen und zu verarbeiten, bevor eine entsprechende Funktion durchgeführt werden kann, also die freie Anweisung befolgt werden kann. Die freie Anweisung ist insbesondere in einer bestimmten Programmiersprache oder sonstigen Sprache formuliert. Für die freie Anweisung bestehen zweckmäßigerweise keine Beschränkungen, außer dass diese in der bestimmten Sprache formuliert sein muss. Geeigneterweise wird somit gemäß dem Verfahren das Telegramm derart erstellt, dass dieses den ersten und den zweiten Bereich aufweist. Insbesondere wird die vordefinierte Anweisung und die freie Anweisung mittels des Masters bzw. Slaves nachfolgend abgearbeitet und zum Beispiel eine entsprechende Funktion und/oder Anpassung durchgeführt.
-
Aufgrund des Verfahrens ist ein sicherer Betrieb des Slaves möglich. Da die vordefinierte Anweisung codiert vorliegt, ist lediglich ein Austausch einer vergleichsweise geringen Datenmenge erforderlich, weswegen das Telegramm vergleichsweise schnell zwischen dem Master und dem Slave ausgetauscht werden kann. Folglich ist auch weiterhin eine hohe Sicherheit gegeben. Da ferner der zweite Bereich mit der freien Anweisung vorhanden ist, ist es möglich, auch während des Betriebs auf aktuelle Anforderungen des Bussystems, des Masters und/oder des Slaves einzugehen, die beispielsweise im vornherein nicht bekannt waren. Auch ist es auf diese Weise möglich, Sonderfälle mittels der freien Anweisung abzubilden, die lediglich vergleichsweise selten auftreten. Falls diese in den ersten Bereich integriert wären, also kodiert vorliegen würde, wäre der erste Bereich vergrößert, ohne dass der erste Bereich tatsächlich in den meisten Fällen tatsächlich genutzt würde. Da jedoch der zweite Bereich zur Verfügung steht, ist es möglich, diesen dennoch abzubilden, wobei lediglich ein vergleichsweise kleiner erster Bereich realisiert ist. Somit ist eine Flexibilität erhöht, und auch ein Betrieb vereinfacht. Ferner ist es nicht erforderlich, die freie Anweisung bereits von vornherein in dem Master und dem Slave codiert zu hinterlegen, weswegen eine Konfiguration vereinfacht und auch eine Fehleranfälligkeit reduziert ist.
-
Zum Beispiel weist das Telegramm noch weitere Bereiche auf. In den weiteren Bereichen sind beispielsweise die etwaige Fuß- und/oder Kopfzeile hinterlegt sowie insbesondere bestimmte Anweisungen, die der Kommunikation .dienen, jedoch nicht dem Ausführen von bestimmten Funktionen durch den Master/Slave. Mit anderen Worten befinden sich in den weiteren Bereich lediglich Daten/Anweisungen, die für die Kommunikation jedoch nicht für den Betrieb des Master/Slave erforderlich und/oder vorgesehen sind, also zum Beispiel sogenannte Meta-Daten.
-
Das Bussystem ist insbesondere Bestandteil einer Kommunikationsanlage, die zweckmäßigerweise weitere Komponenten aufweist. Die Kommunikationsanlage selbst ist vorzugsweise ein Bestandteil einer Anlage, zum Beispiel einer Industrieanlage. Hierbei ist dem Slave zweckmäßigerweise einem Aktor zugeordnet oder zumindest Bestandteil eines Aktors. Mittels des Slaves werden geeigneterweise bestimmte Anweisungen empfangen, entsprechend derer der Aktor gesteuert wird oder zumindest bestimmte Funktionen durchführt. Die Anweisungen sind hierbei insbesondere die vordefinierte Anweisung oder die freie Anweisung.
-
Die vordefinierte Anweisung wird insbesondere vor Inbetriebnahme des Bussystems sowohl in dem Master als auch in dem Slave hinterlegt, sodass in jedem der beiden bekannt ist, wie auf das Vorliegen der vordefinierten Anweisung reagiert werden soll, also wie eine entsprechende Abarbeitung funktionieren soll, oder welche Funktion in diesem Fall ausgeführt werden soll. Die freie Anweisung wird beispielsweise erst bei Betrieb des Bussystems erstellt, also dann, wenn eine Erstkonfiguration des Bussystems bereits abgeschlossen ist. Somit ist ein Betrieb vereinfacht.
-
Insbesondere werden mehrere derartige Telegramme zwischen dem Master und dem Slave ausgetauscht, vorzugsweise zyklisch, also insbesondere in bestimmten festen Takten, wobei der Takt bei Inbetriebnahme des Bussystems festgelegt wird. Die Telegramme weisen dabei jeweils den gleichen Aufbau und vorzugsweise die gleiche Länge auf. So weist jedes der Telegramme stets den erste Bereich und den zweite Bereich auf. Der erste Bereich jedes der Telegramme umfasst hierbei stets die vordefinierte Anweisung. Die freie Anweisung kann sich jedoch zwischen unterschiedlichen Telegrammen unterscheiden. Aufgrund des zweiten Bereichs ist es somit möglich, azyklisch die freie Anweisung über das Bussystem zwischen dem Master und dem Slave auszutauschen, wofür die zyklisch ausgetauschten Telegramme herangezogen werden. Wegen des vergleichsweise kleinen ersten Bereichs ist es hierbei möglich, eine vergleichsweise kurze Taktzeit zu verwenden. Insbesondere erfolgt die Generierung der Telegramme jeweils durch den Master, wobei mittels des Slaves das jeweilige Telegramm beispielsweise bearbeitet wird und insbesondere mit entsprechenden Daten befüllt wird.
-
Vorzugsweise umfasst das Bussystem mehrere Slaves, wobei beispielsweise das Telegramm von dem Master zu jedem der Slaves geleitet wird. Hierbei ist jedem Slave bevorzugt jeweils ein erster Bereich zugeordnet, sodass das Telegramm genauso viele erste Bereiche wie Slaves vorhanden sind aufweist. Zweckmäßigerweise ist ebenfalls jedem Slave jeweils ein zweiter Bereich zugeordnet, sodass das Telegramm genauso viele erste wie zweite Bereiche aufweist, und wobei die Anzahl gleich der Anzahl der Slaves des Bussystems ist. Somit ist eine Verarbeitung der Anweisungen durch die Slaves vereinfacht, und eine Fehleranfälligkeit ist vermindert, weswegen eine Sicherheit erhöht ist.
-
Zum Beispiel ist die freie Anweisung auf mehrere Telegramme aufgeteilt, die zwischen dem Master und dem Slave ausgetauscht werden. Mit anderen Worten ist jeweils ein Teil der freien Anweisung in dem zweiten Bereich jedes der Telegramme hinterlegt. Hierbei unterscheiden sich die Teile der freien Anweisung, und die freie Anweisung erstreckt sich somit über die Telegramme, nämlich den jeweiligen zweiten Bereich. Somit ist es möglich, auch vergleichsweise umfangreiche oder komplexe freie Anweisungen zwischen dem Master und dem Slave auszutausehen, ohne dass eine vergleichsweise große Länge des Telegramms bereits gestellt werden muss. Somit ist eine Komplexität verringert und eine Datenaustauschgeschwindigkeit zwischen dem Master und dem Slave erhöht. Der erste Bereich der Telegramme ist insbesondere stets gleich, sofern die vordefinierte Anweisung entsprechend ausgeführt werden soll. Somit unterscheiden sich die Telegramme beispielsweise lediglich in dem zweiten Bereich. Zusammenfassend wird somit mittels der mehreren Telegramme mehrmals die vordefinierte Anweisung und lediglich ein einziges Mal die freie Anweisung zwischen dem Master und dem Slave ausgetauscht.
-
Geeigneterweise weist der zweite Bereich oder ein sonstiger Bestandteil des Telegramms einen Zähler auf, der in Abhängigkeit der Anzahl der Telegramme eingestellt wird, also der Anzahl der Telegramme, auf die die freie Anweisung aufgeteilt wird bzw. ist. Beispielsweise ist der Zähler gleich der Anzahl der Telegramme oder wird mit jedem neu ausgetauschten Telegramm implementiert. Besonders bevorzugt jedoch wird der Zähler zunächst auf die Anzahl der benötigten Telegramme zum Austausch der freien Anweisung gesetzt und mit jedem ausgetauschten Telegramm verringert. Somit ist für den Master bzw. den Slave ersichtlich, wie viele weitere Telegramme noch ausgetauscht werden, bis die freie Anweisung komplett ausgetauscht wurde. Sofern hierbei ein Telegramm mit einem abweichenden Zählerstand empfangen wird, ist ein Fehler identifiziert, und somit kein sicherer Austausch der freien Anweisung mehr möglich. Somit ist es möglich, Fehlerfälle vergleichsweise frühzeitig zu erkennen, sodass keine fehlerhaften freien Anweisungen abgearbeitet werden. Daher ist eine Sicherheit weiter erhöht.
-
Beispielsweise weist der erste Bereich lediglich eine einzige vordefinierte Anweisung auf. Besonders bevorzugt jedoch umfasst der erste Bereich mehrere vordefinierte Anweisungen. Mit anderen Worten werden mehrere vordefinierte Anweisungen herangezogen. Beispielsweise sind hierbei zwischen 2 vordefinierten Anweisungen und 20 vordefinierten Anweisungen, zwischen 5 vordefinierten Anweisungen und 15 vordefinierten Anweisungen oder zwischen 8 vordefinierten Anweisungen und 10 vordefinierten Anweisungen vorhanden. Jeder der vordefinierten Anweisungen ist hierbei geeigneterweise jeweils ein Codeblock des ersten Bereichs, also ein Datenblock, zugeordnet, vorzugsweise jeweils 1 Bit. Sofern das jeweilige Bit gesetzt ist, ist hierbei die vordefinierte Anweisung erfüllt, sodass diese ausgeführt werden soll. Falls das Bit nicht gesetzt ist, soll die vordefinierte Anweisung nicht ausgeführt werden und/oder ist nicht erfüllt. Aufgrund der mehreren vordefinierten Anweisungen ist eine Flexibilität erhöht, wobei die Anzahl der vordefinierten Anweisungen zweckmäßigerweise kleiner als 20 ist. Aufgrund der vergleichsweise geringen Anzahl ist ein Programmieraufwand zum Hinterlegen/Decodieren der vordefinierten Anweisungen sowohl in dem Master als auch in dem Slave verringert. Auch ist eine zwischen dem Master und dem Slave ausgetauschte Datenmenge nicht übermäßig erhöht.
-
Besonders bevorzugt wird in den Telegramm eine Prüfsumme hinterlegt, die zumindest teilweise auf einem zeitlich vorhergehenden Telegramm basiert, insbesondere dem zeitlich direkt vorhergehenden Telegramm. Somit ist es möglich, sowohl bei dem Master als auch bei dem Slave separat die Prüfsumme zu ermitteln, da beiden das zeitlich vorhergehende Telegramm bekannt ist. Somit ist es möglich, zu verifizieren, ob das Telegramm fehlerfrei übertragen wurde. Die Prüfsumme basiert zweckmäßigerweise ebenfalls zumindest teilweise auf dem (aktuellen) Telegramm. Insbesondere entspricht die Prüfsummen der Quersumme eines bestimmten Bereichs, wobei beispielsweise zusätzlich ein Zählerstand herangezogen wird, wobei der Zählerstand bei jedem ausgetauschten Telegramm erhöht wird. Zum Beispiel ist die Prüfsumme dem vollständigen Telegramm zugeordnet. Besonders bevorzugt jedoch weist der erste Bereich die Prüfsumme auf, und die Prüfsumme basiert zumindest teilweise auf dem zuletzt ausgetauschten ersten Bereich, der mittels des zeitlich vorhergehenden Telegramms ausgetauscht wurde. Alternativ hierzu ist die zweite Prüfsumme dem zweiten Bereich zugeordnet, und basiert zumindest teilweise auf dem ersten oder zweiten Bereich des zeitlich vorhergehenden Telegramms.
-
Besonders bevorzugt ist sowohl dem ersten Bereich als auch dem zweiten Bereich eine derartige Prüfsumme zugeordnet, und beispielsweise jeweils ein Bestandteil hiervon, was eine Sicherheit erhöht. In einer Weiterbildung ist zusätzlich dem vollständigen Telegramm ebenfalls eine derartige Prüfsumme zugeordnet, die somit mittels des Telegramms übertragen wird, was eine Sicherheit weiter erhöht. Falls nämlich eine der Prüfsummen von der entsprechenden mittels des Masters bzw. Slave separat ermittelten Prüfsumme abweicht, ist ein Fehler festgestellt und somit festgestellt, dass die sichere Kommunikation nicht weitergegeben ist.
-
Beispielsweise wird dann, wenn das Telegramm von dem Slave zu dem Master und umgekehrt geschickt wird, die vordefinierte Anweisung bzw. die freie Anweisung mit bestimmten Daten befüllt, die beispielsweise von dem etwaigen Aktor generiert sind. Diese sind beispielsweise Zustandsdaten. Hierbei entspricht die vordefinierte Anweisung insbesondere vordefinierten Zustandsdaten/ einem Betriebsparameter des Aktors, beispielsweise der Temperatur.
-
Besonders bevorzugt wird als vordefinierte Anweisung eine Aufforderung zum Durchführen einer sicheren Funktion herangezogen. Mit anderen Worten ist die vordefinierte Anweisung der Aufforderung zum Durchführen der sicheren Funktion (Sicherheitsfunktion), insbesondere sofern das Telegramm von dem Master zu dem Slave verschickt wird. Als sichere Funktion wird beispielsweise „Safe torque off” (STO), „Safe stop 1/2“ (SS1/2), „Safe operation stop“ (SOS), „Safely limited speed“ (SLS), „Safe speed monitor“ (SSM), „Safe speed range“ (SSR), „Safe limited position“ (SLP), „Safe position“ (SP), „Safe direction“ (SDI) und/oder „Safe brake control/Safe brake test“ (SBC/SBT) herangezogen. Mit anderen Worten handelt es sich bei der vordefinierten Anweisung um die Aufforderung zum Durchführen der Sicherheitsfunktionen, wie diese insbesondere in der Norm IEC 61800-5-2:2007 beschrieben sind.
-
Alternativ oder in Kombination hierzu wird als vordefinierte Anweisung ein Status hinsichtlich der Durchführung einer sicheren Funktion herangezogen, insbesondere eine Statusabfrage, sofern das Telegramm von dem Master zu dem Slave verschickt wird. Falls das Telegramm von dem Slave zu dem Master geschickt wird, wird insbesondere der Status der Sicherheitsfunktionen übermittelt, also beispielsweise ob dieser aktiv ist oder nicht. Sowohl in dem Master als auch in dem Slave ist somit hinterlegt, welche Sicherheitsfunktion mittels der vordefinierten Anweisung beschrieben ist. Zweckmäßigerweise sind hierbei mehrere vordefinierte Anweisungen vorhanden, von denen jede jeweils eine Sicherheitsfunktion ist. Somit ist es beispielsweise möglich, den Slave durch den Master zur Durchführung von bestimmten Sicherheitsfunktionen zu veranlassen. Folglich ist eine Sicherheit erhöht und ein Betrieb vereinfacht.
-
Alternativ oder besonders bevorzugt in Kombination hierzu erfolgt eine Konfiguration des Slaves mittels der freien Anweisung. Hierbei wird die Anweisung insbesondere von dem Master zu dem Slave mittels des Telegramms übermittelt. Mit anderen Worten wird der Parameter von dem Master mittels des zweiten Bereichs des Telegramms gesandt, und mittels des Slaves wird nachfolgend insbesondere eine entsprechende Anpassung durchgeführt.
-
Zum Beispiel wird mittels der freien Anweisung festgelegt, welche der etwaigen Sicherheitsfunktionen durchgeführt werden soll, falls die vordefinierte Anweisung die Aufforderung zum Durchführen der Sicherheitsfunktion aufweist. Vorzugsweise wird als freie Anweisung eine Anforderung zur Anpassung eines Parameters der etwaigen sicheren Funktion herangezogen. Sofern beispielsweise als vordefinierte Anweisung die Sicherheitsfunktion „Safely limited speed“ verwendet wird, ist es möglich, mittels der freien Anweisung die Geschwindigkeit anzupassen, auf die der Aktor gemäß der Sicherheitsfunktionen „Safely limited speed“ geregelt wird, sofern diese aktiv ist. Das Aktivieren erfolgt dabei zweckmäßigerweise mittels der vorbestimmten Anweisung, also mittels des ersten Bereichs. Mit anderen Worten wird mittels der freien Anweisung insbesondere die Funktion angepasst, die mittels der vordefinierten Anweisung ausgelöst wird. Da eine Anpassung der sicheren Funktion erfolgt, die insbesondere mittels der vordefinierten Anweisung gesteuert wird, ist es zudem möglich, mittels der freien Anweisung auch die Erstkonfiguration des Bussystems oder des etwaigen Aktors vorzunehmen. Hierbei wird bei Erstinbetriebnahme zweckmäßigerweise eine Standardeinstellung verwendet, und nachfolgend wird mittels der freien Anweisung eine entsprechende Konfiguration des Slaves durchgeführt. Zusammenfassend ist somit eine Konfiguration des Bussystems, insbesondere der etwaigen Anlage nach Erstinbetriebnahme und während des Betriebs möglich.
-
Alternativ oder besonders bevorzugt in Kombination hierzu wird als freie Anweisung eine Abfrage eines Betriebsparameters herangezogen, insbesondere sofern das Telegramm von dem Master zu dem Slave gesandt wird. Falls das Telegramm von dem Slave zu dem Master gesandt wird, ist insbesondere die freie Anweisung mit dem Betriebsparameter befüllt. Geeigneterweise wird zudem ein bestimmter Zeitpunkt des Betriebsparameters vorgegeben, sodass mittels mehrerer derartiger freien Anweisungen eine Zeitreihe des Betriebsparameters ausgelesen werden kann. Zum Beispiel ist die Menge der Betriebsparameter vordefiniert, sodass eine mittels der freien Anweisung der jeweilige Betriebsparameter spezifiziert wird. Beispielsweise wird hierbei eine bestimmte Adresse oder dergleichen mittels der freien Anweisung übermittelt, oder die Adresse ist ein Bestandteil der freien Anweisung. An der Adresse ist hierbei der jeweiligen Betriebsparameter hinterlegt. Somit ist es möglich, den Slave und den vorzugsweise damit betriebenen Aktor vergleichsweise genau zu überwachen.
-
Besonders bevorzugt wird die freie Anweisung durch den Slave verifiziert, insbesondere sofern diese von dem Master zu dem Slave geschickt wurde. Erst im Anschluss hieran erfolgt insbesondere eine entsprechende Durchführung, also ein Befolgen der freien Anweisung. So wird beispielsweise eine etwaige mittels der freien Anweisung übermittelte Einstellung überprüft und mit bestimmten Vorgaben verglichen. Lediglich wenn diese erfüllt sind, erfolgt insbesondere eine Anpassung der entsprechenden Einstellung. Somit ist eine fehlerhafte Konfiguration des Slaves durch den Master mittels der freien Anweisung ausgeschlossen. Bei der vorbestimmten Anweisung erfolgt zweckmäßigerweise keine Verifizierung, also eine Überprüfung, ob zum jetzigen Zeitpunkt die vorbestimmte Anweisung durchgeführt werden soll, also insbesondere, ob es sicher ist, die vordefinierte Anweisung auszuführen. Da die vorbestimmte Anweisung vorbestimmt ist, und somit kodiert in dem Telegramm hinterlegt ist, ist eine fehlerhafte Interpretation nicht möglich. Mit anderen Worten ist ein fehlerhaftes Befolgen der vordefinierten Anweisung nicht möglich. Da keine Verifizierung erfolgt, ist jedoch eine Bearbeitung, also eine Abarbeitung, der vordefinierten Anweisung beschleunigt.
-
Die Kommunikationsanlage weist ein Bussystem mit einem Master und mit einem Slave auf. Insbesondere sind der Master und der Slave signaltechnisch miteinander gekoppelt/verbunden, beispielsweise mittels einer physischen Leitung oder drahtlos, beispielsweise mittels Funk. Insbesondere unterliegt die signaltechnische Kopplung, also das Bussystem, einem bestimmten Standard, beispielsweise einem Feldbus-Standard, wie Ethercat. Zweckmäßigerweise weist der Master und/oder der Slave eine Steuereinheit auf. Geeigneterweise ist der Master und/oder der Slave zueinander baugleich oder unterscheiden sich vorzugsweise lediglich aufgrund deren Konfiguration. Vorzugsweise ist jedoch die Hardware des Masters und des Slaves gleich, weswegen Gleichteile herangezogen werden können.
-
Die Kommunikationsanlage ist gemäß einem Verfahren zur sicheren Kommunikation zwischen dem Master und dem Slave betrieben. Bei dem Verfahren wird ein Telegramm zwischen dem Master und dem Slave ausgetauscht. Das Telegramm weist einen ersten Bereich und einen zweiten Bereich auf. Der erste Bereich enthält eine vordefinierte Anweisung, und der zweite Bereich ist zumindest teilweise mit einer freien Anweisung befüllt. Zusammenfassend ist die Kommunikationsanlage insbesondere für die sichere Kommunikation gemäß diesem Verfahren konfiguriert. Geeigneterweise wird das Telegramm entsprechend durch den Master bzw. Slave erstellt. Vorzugsweise umfasst die Kommunikationsanlage eine Steuereinheit, mittels derer das Verfahren durchgeführt ist. Insbesondere ist die Steuereinheit zumindest teilweise mittels der Steuereinheit des Masters und/oder Slaves realisiert, sodass diese zusammen insbesondere die Steuereinheit der Kommunikationsanlage bilden. Der oder die Steuereinheiten umfassen beispielsweise einen Mikroprozessor, der geeigneterweise programmierbar ist, und oder einen anwendungsspezifischen Schaltkreis (ASIC). Vorzugsweise weist die Produktionsanlage mehrere derartige Slaves auf, wobei jedem der Slaves zweckmäßigerweise jeweils ein erster Bereich und ein zweiter Bereich des Telegramms zugewiesen ist.
-
Die Kommunikationsanlage ist besonders bevorzugt ein Bestandteil einer Anlage, mittels derer das Durchführen einer bestimmten Funktion erfolgt. Die Anlage ist zweckmäßigerweise eine Industrieanlage. Mittels der Industrieanlage erfolgt vorzugsweise ein Herstellen und/oder Bearbeiten eines Werkstücks, wofür ein Aktor verwendet wird. Zum Beispiel wird der Aktor mit einer vergleichsweise hohen Leistung betrieben, die insbesondere größer als 100 W, 500 W, 1 kW, 5 kW, 10 kW oder 20 kW ist. Die Kommunikationsanlage dient vorzugsweise der Kommunikation des Aktors mit einer Sicherheitssteuerung. Insbesondere umfasst die Sicherheitssteuerung den Master. Der Aktor bildet zumindest teilweise bevorzugt den Slave. Geeigneterweise weist die Anlage mehrere derartige Aktoren auf, wobei jeder Aktor jeweils einen Slave bildet oder jedem Aktor zumindest ein derartiger Slave zugewiesen ist.
-
Die Anlage stellt zweckmäßigerweise eine bestimmte Funktion bereit und weist vorzugsweise eine Steuerung und einen Aktor auf, die insbesondere signaltechnisch miteinander mittels einer Kommunikationsanlage verbunden sind. Die Kommunikationsanlage weist ein Bussystem auf, das sowohl einen Master als auch einen Slave umfasst. Der Master ist beispielsweise ein Bestandteil der Steuerung oder zumindest signaltechnisch mit dieser verbunden und geeigneterweise mittels dieser betrieben. Der Aktor weist insbesondere den Slave auf und/oder wird mittels dessen gesteuert. Die Anlage ist beispielsweise eine Industrieanlage und dient somit der Bearbeitung und/oder Herstellung eines bestimmten Werkstücks. Geeigneterweise weist die Anlage mehrere Slaves auf, wobei jeder Slave jeweils einem Aktor zugeordnet ist. Mittels der Aktoren erfolgt beispielsweise eine gleichzeitige Bearbeitung des Werkstücks, oder die Aktoren sind zueinander unabhängig betrieben. Die Kommunikationsanlage ist gemäß einem Verfahren zur sicheren Kommunikation zwischen dem Master und dem Slave betrieben, bei welchem ein Telegramm zwischen dem Master und dem Slave ausgetauscht wird. Das Telegramm weist einen ersten Bereich und einen zweiten Bereich auf. Der erste Bereich enthält eine vordefinierte Anweisung, und der zweite Bereich ist zumindest teilweise mit einer freien Anweisung befüllt.
-
Die im Zusammenhang mit dem Verfahren genannten Weiterbildungen und Vorteile sind sinngemäß auch auf die Kommunikationsanlage/Anlage sowie untereinander zu übertragen und umgekehrt.
-
Nachfolgend wird ein Ausführungsbeispiel der Erfindung anhand einer Zeichnung näher erläutert. Darin zeigen:
- 1 eine Industrieanlage mit einer Kommunikationsanlage, die einen Master und einen Slave umfasst,
- 2 schematisch ein Verfahren zur sicheren Kommunikation zwischen dem Master und dem Slave,
- 3 schematisch den Aufbau eines Telegramms, das zwischen dem Master und dem Slave ausgetauscht wird, und das mehrere erste Bereich und einen zweiten Bereich aufweist,
- 4 den Aufbau eines der ersten Bereiche, und
- 5, 6 den Aufbau des zweiten Bereichs.
-
Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen.
-
In 1 ist schematisch vereinfacht eine Industrieanlage 2 dargestellt, die eine Steuerung 4 sowie einen Aktor 6 aufweist. Der Aktor 6 ist eine Maschinenachse oder ein Roboterarm, und mittels des Aktors 6 erfolgt bei Betrieb eine Bearbeitung eines nicht näher dargestellten Werkstücks. Die Industrieanlage 2 weist weitere, nicht näher dargestellte Aktoren auf, mittels derer ebenfalls eine Bearbeitung des Werkstücks erfolgt, beispielsweise gleichzeitig mit dem Aktor 6 oder zeitlich nachfolgend oder zeitlich vorhergehend.
-
Der Betrieb des Aktors 6 entsprechend der erforderlichen Prozessparameter erfolgt mittels der Steuerung 4, die einen speicherprogrammierbare Steuerung ist. Die Steuerung 4 ist in einem Steuerpult oder dergleichen angeordnet und von dem Aktor 6 beabstandet. Die Steuerung 4 und der Aktor 6 sind mittels einer Kommunikationsanlage 8 miteinander verbunden, die ein Bussystem 10 aufweist. Das Bussystem 10 genügt hierbei dem FSoE-Standard („Fail Save over Ethercat“).
-
Das Bussystem 10 weist einen Master 12 sowie einen Slave 14 auf, die mittels einer Leitung 16 des Bussystems signaltechnisch gekoppelt sind. Hierbei ist der Master 12 in der Steuerung 4 zugeordnet und der Slave 14 dem Aktor 6. Zur Kommunikation wird somit eine entsprechende Anfrage von der Steuerung 4 über den Master 12 in das Bussystem 10 eingespeist und mittels des Slaves 14 empfangen. In Abhängigkeit von den somit übertragenen Anfragen wird der Aktor 6 gesteuert. Das Bussystem 10 weist weitere Slaves auf, die entsprechend des Slaves 14 aufgebaut sind, wobei jeder Slave jeweils einem der verbleibenden Aktoren zugeordnet ist.
-
In 2 ist ein Verfahren 18 zur sicheren Kommunikation zwischen dem Master 12 und dem Slave 14 sowie den etwaigen weiteren Slaves dargestellt. Das Verfahren 18 wird mittels des Masters 12 sowie des Slaves 14 ausgeführt und dient somit dem Betrieb der Kommunikationsanlage 8. In einem ersten Arbeitsschritt 20 wird das Verfahren 18 gestartet. Nachfolgend wird in einem zweiten Arbeitsschritt 21 von dem Master 12 ein Telegramm 22 zu dem Slave 14 über die Leitung 16 geschickt.
-
In 3 ist der schematische Aufbau des Telegramms 22 dargestellt, wobei der Aufbau sämtlicher Telegramme, die zwischen dem Master 12 und dem Slave 14 ausgetauscht werden, also in das Bussystem 10 eingespeist werden, gleich ist und auch die gleiche Länge aufweisen. Das Telegramm 22 weist eine Kopfzeile 24 auf, mittels derer der Beginn des Telegramms 22 gekennzeichnet ist. Das Telegramm 22 endet mit einer Fußzeilen 26, die eine Prüfsumme 28 enthält. Prüfsumme 28 ist eine CRC-Prüfsumme und basiert zumindest teilweise auf einem zeitlich vorhergehenden Telegramm, nämlich der dortigen Prüfsummen 28. Diese wird um den Faktor 1 erhöht, und auch wird hierbei die Quersumme der weiteren Bestandteile des Telegramms 22 zum Erstellen der aktuellen Prüfsummen 28 verwendet. Falls noch kein zeitlich vorhergehendes Telegramm ausgetauscht wurde, wird als Startwert anstatt der zeitlich vorhergehenden Prüfsummen 28 der Wert „0“ (Null) oder ein vordefinierten Wert herangezogen. Die Kopfzeile 24 und die Fußzeile 26 sind für das Erfüllen des Ethernet-Standards erforderlich, auf dem Ethercat basiert.
-
Nach der Kopfzeile 24 schließt sich eine weitere Kopfzeile 30 an, die spezifiziert, dass das Telegramm 22 dem Ethercat-Standard genügt. Zwischen der weiteren Kopfzeile 30 sowie der Fußzeile 26 sind Datenbereiche 32 angeordnet, die jeweils gleich aufgebaut sind und mit einer zusätzlichen Kopfzeile 34 beginnen. Mittels der zusätzlichen Kopfzeile 34 wird spezifiziert, dass das Telegramm 22 oder zumindest der Datenbereich 32 dem FSoE-Standard genügt. Jedem der Slaves der Kommunikationsanlage 8 ist jeweils einer Datenbereiche 32 zugeordnet.
-
Jeder Datenbereich 32 weist einen Endbereich 36 auf, der ein sogenannter „Working Counter“ (WKC) ist. Zwischen der zusätzlichen Kopfzeile 34 und dem Endbereich 36 ist ein weiterer Datenbereich 38 angeordnet, der somit ein Bestandteil des Datenbereichs 32 ist. In dem Endbereich 36, dem WKC, wird hinterlegt, ob der jeweilige weitere Datenbereich 38 korrekt verarbeitet wurde, also beispielsweise gelesen oder geschrieben.
-
Jeder weitere Datenbereich 38 beginnt mit einer Kontrollangabe 40 (CMD) und endet mit einer Identifikationsnummer 42 (Conn ID). Dazwischen liegen mehrere erste Bereiche 44 sowie ein zweiter Bereich 46. An jeden ersten Bereich 44 schließt sich eine erste Prüfsumme 48 an, die jeweils aus dem jeweils zu vorliegenden ersten Bereich 44 sowie der erste Prüfsummen 48 des zeitlich direkt vorhergehenden Telegramms ermittelt wird, die sich an der gleichen Stelle in dem zeitlich direkt vorhergehenden Telegramm befindet. Dem zweiten Bereich 46 ist eine zweite Prüfsumme 50 zugeordnet, die in gleicher Weise ermittelt wird, und somit auch auf der zweiten Prüfsumme des zeitlich direkt vorhergehenden Telegramms sowie dem zweiten Bereich 46 basiert. Bei den ersten Prüfsummen 48 und der zweite Prüfsummen 50 handelt es sich wiederum um CRC-Werte.
-
In 4 ist der schematische Aufbau eines der ersten Bereiche 44 dargestellt. Der erste Bereich 44 weist insgesamt 2 Byte und somit 16 Bit auf. Jedes Bit entspricht einer vordefinierten Anweisung 52. So ist das nullte Bit, also die erste vordefinierte Anweisung 52, sofern dieses gesetzt ist, eine Aufforderung zum Durchführen einer sicheren Funktion, nämlich STO (Safe torque off). Das erste Bit ist die Aufforderung zum Durchführen des sicheren Funktion SS1, das zweite Bit ist die Aufforderung, sofern dieses gesetzt ist, zum Durchführen der sicheren Funktion SS2. Dem 8. Bit bis zu dem 15. Bit sind ebenfalls jeweils Sicherheitsfunktionen zugeordnet. Somit sind in jedem ersten Bereich 44 mehrere vordefinierte Anweisungen 52 vorhanden.
-
Sofern das Telegramm 22 von dem Master 12 zu dem Slave 14 gesandt wird, ist die vordefinierte Anweisung 52 die Aufforderung zum Durchführen der jeweiligen sicheren Funktion. Mit anderen Worten soll durch den Slave 14 der Aktor 6 veranlasst werden, die jeweilige sichere Funktion durchzuführen, falls dort das Bit gesetzt ist, also sich dort der Wert 1 („eins“) befindet. So soll durch den Slave 14 die sichere Funktion SOS (Safe operation stop) durchgeführt werden, falls das dritte Bit gesetzt ist. Falls das Telegramm 22 von dem Slave 14 zu dem Master 12 gesandt wird, wird als vordefinierte Anweisung 52 der Status hinsichtlich der Durchführung der sicheren Funktion herangezogen. Somit wird durch den Slave 14 das jeweilige Bit gesetzt, falls die jeweilige sichere Funktion durchgeführt wird. So wird dann, wenn die sichere Funktion SSR (Safe speed range) durch den Slave 14 bzw. den zugeordneten Aktor 6 durchgeführt wird, das vierte Bit durch den Slave 14 gesetzt. Zusammenfassend liegen in dem ersten Bereich 44 die vordefinierten Anweisungen 52 kodiert vor.
-
Der zweite Bereich 46 ist schematisch in 5 gezeigt. Auch dieser weist 2 Byte und somit 16 Bits auf. Die 12.-15. Bits entsprechen einem Kontrollbereich 54. Mittels des Kontrollbereichs 54 wird festgelegt, wie mit einer freien Anweisung 56, verfahren werden soll, die sich von dem nullten Bit bis zum 7. Bit erstreckt. So ist es möglich, dass bei entsprechender Ausgestaltung des Kontrollbereichs 54 also je nach gesetztem Bit, die freie Anweisung 56 die Aufforderung zum Schreiben eines Parameters ist. Dabei wird insbesondere eine der sicheren Funktionen angepasst und somit der Parameter einer sicheren Position angepasst. So ist es möglich, bei der sicheren Funktion SOS die sichere Position vorzugeben, die somit ein Parameter der sicheren Funktion ist. Die Spezifizierung der jeweiligen sicheren Position, des Parameters sowie des neuen Werts, erfolgt mittels einer entsprechenden Formulierung der freien Anweisung 56, wofür die entsprechenden Bits gesetzt werden. Dabei wird die freie Anweisung 56 mittels einer entsprechenden Programmiersprache oder beispielsweise ASCI-Code befüllt.
-
Bei einer weiteren Einstellung des Kontrollbereichs 54, bei der lediglich das 13. Bit gesetzt ist, wird ein Betriebsparameter abgefragt, wobei der Betriebsparameter mittels der freien Anweisung 56 spezifiziert ist. So ist es beispielsweise möglich, die sichere Position der sicheren Funktion SOS abzufragen. Bei einer Ausgestaltungsform ist der Betriebsparameter aus einer bestimmten Anzahl an möglichen zu dem jeweiligen Aktors 6 korrespondierenden Parametern sowie den Parametern der sicheren Funktionen ausgewählt. Somit ist es nicht erforderlich, eine vergleichsweise komplexe Anfrage in der freien Anweisung 56 zu schreiben, sondern es ist ausreichend, die entsprechende Adresse des Betriebsparameters zu spezifizieren.
-
Bei den beiden oben genannten Ausgestaltungen des Kontrollbereichs 54 wird die freie Anweisung 56 mittels des Masters 12 erstellt. Falls die Abfrage des Betriebsparameters durch den Master 12 erfolgt, und eine entsprechende Beantwortung durch den Slave 14 durchgeführt wird, wird der Kontrollbereich 54 verändert und dort das 12. und 13. Bit gesetzt, sodass ersichtlich ist, dass die freie Anweisung 56 durch den Slave 14 befüllt wurde. Der zweite Bereich 46 weist ferner einen Zähler 58 auf, der dem 8.-11. Bit entspricht.
-
In einem dritten Arbeitsschritt 60, in 2 gezeigt, wird das Telegramm 22 durch den Slave 14 empfangen. Hierbei werden die erste Bereiche 40 sowie der zweite Bereich 46 ausgelesen. Ferner werden in dem dritten Arbeitsschritt 60 die vordefinierten Anweisungen 52 bearbeitet. Wenn hierbei die vordefinierten Anweisung 52, also das jeweils zugeordneten Bits auf „0“ (Null) gesetzt sind, wird keine der sicheren Funktionen aktiviert. Es wird ferner überprüft, ob aktuell eine sichere Funktion bei dem Slave 14 bzw. dem Aktor 6 durchgeführt wird.
-
In einem sich anschließenden vierten Arbeitsschritt 62 wird das Telegramm 22 zu dem Master 12 zurückgeleitet, wobei hinterlegt ist, dass das Telegramm 22 korrekt empfangen wurde. Auch wird der in dem dritten Arbeitsschritt 60 ermittelte Status der sicheren Funktionen übermittelt. So wird dann, wenn eine der sicheren Funktionen aktiv ist, das zu dieser sicheren Funktion korrespondierende Bit in dem ersten Bereich 44 des zurückgesandten Telegramms 22 auf „1“ (eins) gesetzt.
-
Sofern die freie Anweisung 56 vergleichsweise komplex ist, ist der zweite Bereich 46 eines Telegramms 22 nicht ausreichend, diese vollständig zu beherbergen. Daher wird die freie Anweisung 56 durch den Master 12 auf mehrere Telegramme 22 aufgeteilt, die nacheinander zu dem Slave 14 gesandt werden. So wird nach dem vierten Arbeitsschritt 62, sofern die freie Anweisung 56 noch nicht vollständig ist, erneut der zweite Arbeitsschritt 21 durchgeführt, wobei der Inhalt des zweiten Bereichs 46 entsprechend abgeändert wird. Zur Spezifizierung, dass die freie Anweisung 56 über mehrere Telegramme 22 verteilt ist, wird der Zähler 58 verwendet. Hierbei werden das 8.-11. Bit des zweiten Bereichs 46 auf die Anzahl der noch folgenden Telegramme 22 eingestellt, die bis zur Komplettierung der freien Anweisung 56 noch erforderlich sind. Somit wird der Zähler 58 so lange dekrementiert und auch der zweite bis vierte Arbeitsschritt 21, 60, 62 so lange durchgeführt, bis der Zähler 58 Null („0“) erreicht. Zusammenfassend werden zwischen dem Master 12 und dem Slave 14 mehrere Telegramme 22 ausgetauscht, wobei die freie Anweisung 56 auf die mehreren Telegramme 22 aufgeteilt ist. Mittels des Zählers 58 des zweiten Bereichs 46 wird hierbei die Anzahl der Telegramme 22 zur Komplettierung der freien Anweisung 56 angegeben, und der Zähler 58 wird somit in Abhängigkeit der Anzahl der Telegramme 22 eingestellt.
-
Sofern die freie Anweisung 56 vollständig ist, also sofern die freie Anweisung 56 lediglich mittels eines einzigen Telegramms 22 übermittelt wurde, oder sämtliche Telegramme 22, die die freie Anweisung 56 enthalten, übermittelt wurden, wird ein fünfter Arbeitsschritt 64 durchgeführt. In dem fünften Arbeitsschritt 64 erfolgt eine Verifizierung der freien Anweisung 56 durch den Slave 14. Hierbei wird überprüft, ob die freie Anweisung 56 mit in dem Slave 14 hinterlegten weiteren Bedingungen vereinbar ist und insbesondere, ob hierbei auch ein sicherer Betrieb des Aktors 6 möglich ist. So wird insbesondere überprüft, ob die sichere Position in einem erlaubten Bereich liegt, sofern mittels der freien Anweisung 56 die sichere Position der sicheren Funktion SOS geändert werden soll. Falls dies der Fall ist, wird ein sechster Arbeitsschritt 66 durchgeführt, wenn mittels der Kontrollbereiche 54 spezifiziert war, dass einer der Parameter der sicheren Funktion angepasst werden soll. In dem sechsten Arbeitsschritt 66 wird dann der entsprechende Parameter der sicheren Funktion entsprechend der freien Anweisung 56 angepasst. In einem sich anschließenden siebten Arbeitsschritt 68 wird in ein nachfolgendes Telegramm 22 als freie Anweisung 56 die Bestätigung geschrieben, dass der Parameter angepasst wurde. In einem sich anschließenden achten Arbeitsschritt 70 wird dieses Telegramm 22 durch den Master 12 empfangen. Es schließt sich erneut der zweite Arbeitsschritt 21 an.
-
Falls in der freien Anweisung 56, die von dem Master 12 zu dem Slave 14 übermittelt wurde, mittels des Kontrollbereichs 54 spezifiziert war, dass ein bestimmter Betriebsparameter abgefragt wird, wird ein neunter Arbeitsschritt 72 durchgeführt. In diesem wird von dem Master 12 ein weiteres Telegramm 22 zu dem Slave 14 übermittelt, wobei mittels des Kontrollbereichs 54 spezifiziert ist, dass die freie Anweisung 56 zur Befüllung durch den Slave 14 freigehalten ist. In einem sich anschließenden zehnten Arbeitsschritt 74 wird durch den Slave 14 das Telegramm 22, nämlich der zweite Bereich 46, entsprechend befüllt. Hierbei wird der nachgefragte Betriebsparameter in nullten bis siebten Bit geschrieben und folglich als freie Anweisung 56 herangezogen. In einem sich anschließenden elften Arbeitsschritt 76 wird das Telegramm 22 durch den Master 12 empfangen.
-
Falls der Betriebsparameter oder die sonstige Antwort des Slaves 14 vergleichsweise umfangreich ist, ist es möglich, dass der zweite Bereich 46 hierfür nicht ausreicht. Auch in diesem Fall wird die freie Anweisung 56, also insbesondere die Antwort des Slaves 14, wie der Betriebsparameters, auf mehrere derartige Telegramme 22 aufgeteilt, wobei der Kontrollbereich 54 stets gleich ist und spezifiziert, dass eine Befüllung durch den Slave 14 erfolgt. Auch wird der Zähler 58 verwendet. Da in dem Master 12 das Wissen vorhanden ist, wie groß der abgefragte Betriebsparameters oder die von dem Slave 14 zu erwartende Antwort ist, wird hierbei der Zähler 58 durch den Master 12 entsprechend eingestellt und der verbleibende Bereich des zweiten Bereichs 46 durch den Slave 14 entsprechend der Anfrage befüllt. Dies, also der neunte, zehnte und elfte Arbeitsschritt 72, 74, 76, wird so lange durchgeführt, bis die freie Anweisung 56 vollständig ist. Im Anschluss hieran wird wiederum der zweite Arbeitsschritt 21 durchgeführt.
-
Bei dem Verfahren 18 werden somit Telegramme 22 zwischen Master 12 und dem Slave 14 ausgetauscht, wobei der Austausch zyklisch erfolgt. So wird das Bussystem 10 mit einem bestimmten Takt betrieben, wobei zu Beginn jedes Takts ein entsprechendes Telegramm 22 in das Bussystem 10 eingespeist wird. Sofern keine freie Anweisung 56 vorliegt, also falls keine entsprechende Anfrage von dem Master 12 an den Slave 14 oder eine entsprechende Antwort vorliegt, wird der zweite Bereich 46 vollständig mit Nullen gefüllt, wie in 6 dargestellt. Somit ist spezifiziert, dass keine freie Anweisung 56 vorliegt, oder dass zumindest keine entsprechende Tätigkeit erfolgen soll. Dies wird insbesondere dadurch gezeigt, dass das 12.-15. Bit auf null gesetzt sind, also der Kontrollbereich 54 nur Nullen enthält. Aufgrund des Verfahrens 18 ist somit eine azyklische Verwendung der freien Anweisung 56 in dem zyklisch betriebenen Bussystem 10 möglich, bei dem also die vordefinierten Anweisungen 52 zyklisch übertragen werden.
-
Die Erfindung ist nicht auf das vorstehend beschriebene Ausführungsbeispiel beschränkt. Vielmehr können auch andere Varianten der Erfindung von dem Fachmann hieraus abgeleitet werden, ohne den Gegenstand der Erfindung zu verlassen. Insbesondere sind ferner alle im Zusammenhang mit dem Ausführungsbeispiel beschriebene Einzelmerkmale auch auf andere Weise miteinander kombinierbar, ohne den Gegenstand der Erfindung zu verlassen.
-
Bezugszeichenliste
-
- 2
- Industrieanlage
- 4
- Steuerung
- 6
- Aktor
- 8
- Kommunikationsanlage
- 10
- Bussystem
- 12
- Master
- 14
- Slave
- 16
- Leitung
- 18
- Verfahren
- 20
- erster Arbeitsschritt
- 21
- zweiter Arbeitsschritt
- 22
- Telegramm
- 24
- Kopfzeile
- 26
- Fußzeile
- 28
- Prüfsumme
- 30
- weitere Kopfzeile
- 32
- Datenbereich
- 34
- zusätzliche Kopfzeile
- 36
- Endbereich
- 38
- weiterer Datenbereich
- 40
- Kontrollangabe
- 42
- Identifikationsnummer
- 44
- erster Bereich
- 46
- zweiter Bereich
- 48
- erste Prüfsumme
- 50
- zweite Prüfsumme
- 52
- vordefinierte Anweisung
- 54
- Kontrollbereich
- 56
- freie Anweisung
- 58
- Zähler
- 60
- dritter Arbeitsschritt
- 62
- vierter Arbeitsschritt
- 64
- fünfter Arbeitsschritt
- 66
- sechster Arbeitsschritt
- 68
- siebter Arbeitsschritt
- 70
- achter Arbeitsschritt
- 72
- neunter Arbeitsschritt
- 74
- zehnter Arbeitsschritt
- 76
- elfter Arbeitsschritt