Beschreibung
Programmierwerkzeug und Programmierverfahren
Die Erfindung betrifft ein Programmierwerkzeug und -verfahren zur Erstellung von Programmen, insbesondere der Automatisierungstechnik.
In der Automatisierungstechnik werden technische Prozesse und Funktionen in Form von Programmmodulen, so genannten Funktionsblöcken, bereitgestellt. Um diese Funktionsblöcke möglichst universell einsetzen zu können, sind sie mit Schnittstellen versehen, die eine möglichst einfache Einbindung und einen unproblematischen Aufruf in der jeweils gewählten Pro- grammumgebung ermöglichen. Die für den Betrieb eines derartigen Funktionsbausteins erforderlichen Ein- und Ausgabeparameter werden auf einen I/O-BUS abgelegt, um die entsprechenden Parameter gegebenenfalls liefern, beobachten oder ändern zu können.
Die in der Programmumgebung ausgetauschten Parameter entsprechen dabei üblicherweise nicht den Prozessparametern des zu steuernden und/oder zu regelnden Prozesses oder der technischen Funktion. Die Bedienung dieser Parameter und deren Verständnis erfordert somit von dem mit der Lösung der technischen Aufgabe betrauten Ingenieur oder Techniker eine dem Funktionsbaustein angepasste Sichtweise oder anders ausgedrückt, ein tieferes Verständnis für die Programmierung des jeweiligen Steuerungsgerätes.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Programmierwerkzeug und ein Verfahren zur Programmierung und zur Erstellung von Programmen, insbesondere der Automatisierungstechnik zu schaffen, das dem Benutzer zusätzlich oder alter- nativ eine technologische Sicht auf den zu steuernden und/oder regelnden Prozess eröffnet.
Dabei soll diese Sicht sowohl zur Programmierung als auch zur Parametrierung oder zur Kontrolle des laufenden Prozesses nutzbar sein.
Die Lösung dieser Aufgabe gelingt durch ein Programmierwerkzeug gemäß Anspruch 1 bzw. durch ein Programmierverfahren nach Anspruch 7. Vorteilhafte Ausgestaltungen der Erfindung sind den abhängigen Unteransprüchen zu entnehmen.
Dabei ist gemäß Anspruch 1 zwischen dem Benutzer und einem programmierbaren Steuergerät und/oder einem dieses Steuergerät repräsentierenden Programmmodul ein Interface angeordnet, das dem jeweiligen Benutzer eine Eingabemaske zur Eingabe technologischer Parameter bereitstellt. Dies gelingt dadurch, dass zumindest einem Teil der Funktionsbausteine eine entsprechende Eingabemaske zugeordnet ist. Diese Eingabemaske stellt für den jeweiligen Benutzer eine technologische Sicht des Funktionsbausteines bzw. des jeweiligen Prozesses bereit. Für die Eingabemaske können dann die technologischen Parameter eingegeben, verändert und/oder kontrolliert werden.
Das hierbei benutzte Interface ist vorzugsweise als eine dynamische Verknüpfungsbibliothek, also in DLL-Technik, angelegt. Das Interface dient dazu, den einem Funktionsbaustein zugeordneten softwaretechnischen Parametersatz durch die Anlage entsprechender binärer Schnittstellen in eine diesem Funktionsbaustein zugeordnete Eingabemaske, also eine technologische Sicht bzw. einen technologischen Parametersatz umzusetzen. Die Umsetzung des dem Funktionsbaustein zugeordneten Parametersatzes in binäre Schnittstellen macht das Programmierwerkzeug unabhängig von der jeweiligen anwendungsspezifischen Sprachanwendung. Die erfindungsgemäße Lösung kann mit jeder in der Automatisierungstechnik üblichen An- Wendersprache genutzt werden. Das Interface ist somit aufwärtskompatibel .
Konkret wird in den betroffenen Funktionsbausteinen Verweis auf die jeweilige Eingabemaske angelegt, so dass beim Aufruf oder bei der Programmierung des entsprechenden Funktionsbausteines gleichzeitig die Eingabemaske aufgerufen bzw. angeboten wird.
In vorteilhafter Ausgestaltung kann der Eingabemaske eine Zwischenlogik zur Realisierung von Zusatzfunktionen wie etwa Kontextmenüs und/oder weiteren Kontrollwerkzeugen zugeordnet sein.
Die Eingabemaske als solche ist in vorteilhafter Ausgestaltung als OLE-Objekt realisiert. Mit Hilfe von OLE-Objekten können Mischdokumente erzeugt werden, bei denen die gemisch- ten Daten jeweils mit ihrem Ursprungsanwendungsprogramm bearbeitet werden können. Dieses Merkmal dient somit dazu, das Programmierwerkzeug unabhängig von einer konkreten anwendungsspezifischen Sprache zu realisieren.
Im Ergebnis wird dann bei der Programmierung oder bei dem Aufruf eines Funktionsbausteines, der einen entsprechenden Verweis enthält, die diesem Funktionsbaustein zugeordnete Eingabemaske von dem Interface aktiviert und dem Benutzer als zusätzliche technologische Sicht angeboten.
Im Ergebnis kann die erfindungsgemäße Lösung auch als ein Programmierverfahren, insbesondere der Automatisierungstechnik verstanden werden. Bei diesem Verfahren wird ein speicherprogrammierbares Steuergerät und/oder ein dieses Steuergerät repräsentierendes Programmmodul zur Regelung eines im Wesentlichen in Form von Funktionsbausteinen abgelegten Prozesses derart programmiert bzw. instanziert, dass zumindest einem Teil der Funktionsbausteine die erwähnten Eingabemasken zugeordnet werden, wobei im Weiteren der Aufruf dieser Funktionsbausteine dazu führt, dass ein zwischen dem jeweiligen Benutzer und dem Steuergerät angeordnetes Interface die jeweils zugeordnete Eingabemaske aktiviert und diese
dem Benutzer des Steuergerätes zur Parametrierung, Programmierung und/oder Kontrolle angeboten wird.
Gemäß Anspruch 8 erfolgt bei der Eingabe der Parameter mit- tels der Eingabemaske entweder der Aufbau eines Dialogs, um Echtzeitabläufe realisieren zu können, oder aber eine Umsetzung der eingegebenen Parameterwerte in die systemspezifischen bzw. programmtechnischen Erfordernisse.
Die Erfindung wird nachstehend anhand eines in der Zeichnung dargestellten Ausführungsbeispiels näher erläutert. Es zeigen:
Figur 1 ein Blockschaltbild zum Aufbau des Programmier- Werkzeugs und
Figur 2 ein Flussdiagramm zu einer Programmierung mit diesem Programmierwerkzeug.
In dem in Figur 1 gezeigten Blockschaltbild ist zwischen einen Benutzer 1 und ein speicherprogrammierbares Steuergerät 2 ein Interface 3 geschaltet. Das Interface 3 interagiert mit einer anwendungsspezifischen Sprachapplikation 4 zur Programmierung und Ablaufsteuerung des Steuergeräts 2. Anstelle des Steuergeräts 2 ist insbesondere in der Phase der Programmerstellung lediglich ein Programmmodul vorhanden, das die Funktionalität des Steuergeräts 2 emuliert. Für das nähere Verständnis des Ausführungsbeispiels wie auch der Erfindung ist es jedoch unerheblich, ob dieses Programmmodul oder das Steuergerät 2 als solches vorhanden sind. Der Benutzer 1 kommuniziert dabei bedarfsweise nicht direkt mit dem Interface 3, sondern über eine vom Interface 3 bereitgestellte Eingabemaske 5.
Nachstehend wird die Funktion des exemplarisch ausgewählten Programmierwerkzeugs näher erläutert:
Der Ablauf der Steuerung und/oder Regelung ist in einem Programm abgelegt, das in Form der anwendungsspezifischen Sprachapplikation 4 hinterlegt ist. Es wird sich dabei bevorzugt um grafische Sprachanwendungen der Automatisierungs- technik, etwa Kontaktplan (KOP) oder Funktionsplan (FUP) , handeln.
Generell werden unabhängig von der ausgewählten Sprachapplikation während des Programmlaufs mittels eindeutiger Kennun- gen so genannte Funktionsbausteine aufgerufen. Es handelt sich dabei um Module, die für bestimmte Abläufe oder Steuerung bestimmter technischer Bausteine eines technischen Prozesses stehen können, wie etwa die Steuerung eines Bewegungsoder Lagereglers. Dabei wird der Aufruf des Funktionsbau- steins an das eigentliche speicherprogrammierbare Steuergerät 2 übermittelt und gleichzeitig einer Kennung des Funktionsbausteines sowie die jeweiligen Parameter an das Interface 3 in Verbindung mit einer Kennung der entsprechenden Eingabemaske 5 übergeben. Anhand dieser Kennung wird nun über die Eingabemaske 5 eine technologische Sicht auf diesen Funktionsbaustein bereitgestellt. Dies bedeutet konkret die Übersetzung der in Verbindung mit dem Funktionsparameter an das speicherprogrammierbare Steuergerät 2 übermittelten Parameter in eine technologische Sicht.
Bei der Eingabemaske 5 handelt es sich hier um eine so genannte OCX-Anwendung, also um ein OLE-Kontrollelement. Derartige Elemente können mit Visual Basic oder Visual-C++ erstellt werden. Die in der Eingabemaske 5 angezeigten Para- meter müssen weder dem absoluten Wert nach noch in deren
Anzahl den an das speicherprogrammierbare Steuergerät 2 über- gebenen Werten entsprechen. Die Anzeige der Parameter kann von einer so genannten Zwischenlogik begleitet sein. Hierunter sind zusätzliche Tools zu verstehen, die einzelnen Parametern zugeordnet sind. Es handelt sich dabei um Kontextmenüs, mit denen Hilfefunktionen, Wertebereiche oder Plausi- bilitätskontrollen angeboten werden können.
Im Weiteren lädt das Interface 3 den über die Eingabemaske 5 gelieferten Parametersatz oder legt einen geeigneten Dialog zwischen Eingabemaske und den Schnittstellen des Funktionsbausteins an. Sofern kein Abbruch des Dialoges oder eine Zurückweisung der übermittelten Parameter beispielsweise im Falle der Eingabe unzulässiger Werte erfolgt, übermittelt das Interface 3 den geänderten Parametersatz an die Sprachapplikation . Anschließend erfolgt eine Rückmeldung über die Eingabemaske 5, ob die betreffenden Werte zulässig oder unzu- lässig sind. Sollte der Benutzer dann die Werte freigeben, wird über den Dialog angefragt, ob die betreffenden Werte abgespeichert werden sollen. Wenn ja, dann wird über das Interface 3 zum Speichern der Werte aufgefordert. Die Eingabemaske 5 liefert die Werte dann separat mit einem so genannten Set-Value-Befehl ab, die über das Interface 3 entweder direkt an das Steuergerät 2 oder zunächst in die Sprachapplikation 4 eingespeist werden. Im Falle von fehlerhaften Eingaben kann die Freigabefunktion gesperrt sein. Hierdurch kann eine fehlerhafte Werteübernahme verhindert werden.
Das vorstehend erläuterte Verfahren ist in einem Verfahrensdiagramm nach Figur 2 dargestellt. Dabei zeigt die linke Spalte den Ablauf, der innerhalb des programmierbaren Steuer- geräts 2 erfolgt, und die ganz rechte Spalte die dem Benutzer angebotenen Funktionen. Dazwischen sind die Anzeigen oder Aktionen des Interface 3 und rechts daneben die Anzeigen oder Aktionen der Eingabemaske 5 dargestellt.
Sobald mit dem Startblock in der linken Spalte ein Funktionsbaustein aktiviert wird, der einen Verweis auf eine Eingabemaske 5 enthält, lädt das Interface 3 die entsprechende Eingabemaske 5 und holt die entsprechenden Parameterwerte ab und zeigt sie mittels der Eingabemaske 5 an. Dabei werden mit einer Schleife nach und nach alle die den aufgerufenen Funktionsbaustein betreffenden Werte abgeholt und im Einzelnen angezeigt. Diese Werte können dann benutzerseitig editiert
werden. Es folgt dann die Übertragung der Werte in einer erneuten Schleife mit dem Befehl "Check-Value" und deren Übermittlung an das Interface 3. Sie werden dann auf ihre Plausi- bilität bzw. ihre Zulässigkeit hin überprüft. Insbesondere erfolgt eine Syntaxprüfung der eingegebenen Parameter. Es erfolgt dann eine Ausgabe vom Interface 3 an die Eingabemaske 5, ob die Werte korrekt oder fehlerhaft sind. Gibt der Benutzer 1 die Werte dann durch Betätigung eines Freigabebuttons frei, so wird vom Interface 3 angefragt, ob die be- treffenden Werte gespeichert werden sollen. Dies erfolgt mit dem Befehl "Can-Store". Ist dies der Fall, werden die entsprechenden Werte gespeichert und eine entsprechende Mitteilung an den Benutzer abgesetzt. Die Werte werden dann in einer erneuten Schleife abgeholt und an die Sprachapplikation 4 oder Steuergerät 2, wie oben erläutert, übergeben.
Vorstehend ist somit ein Verfahren und ein Programmierwerkzeug beschrieben, das unabhängig von der eingesetzten Sprachapplikation 4 zumindest für einen Teil der Funktions- bausteine eine technologische Sicht bereitstellt, die dem Benutzer die Programmierung und Überwachung von speicherprogrammierbaren Steuergeräten 2, insbesondere im Zusammenhang mit komplexen Automatisierungsvorgängen dadurch erleichtert, dass die vertrauten technischen Parameter an- gezeigt und gegebenenfalls verändert werden.