Eine Publikation der Swissprofessionalmedia AG
PDF download
Die besten Eigenschaften von PC, SPS und µC-Board in einen Chip gepresst: Ausgabe 11-12/2018, 04.07.2018

Ein System für alle Fälle

Dank der hohen Leistungsfähigkeit heutiger Mikrocontroller lassen sich die Flexibilität und kommunikativen Fähigkeiten von PCs, die Einfachheit und Stabilität von Speicher-Programmierten-Steuerungen sowie die Optimierungsmöglichkeiten von µC-Boards in einen Chip integrieren. Dies zeigt das PCS, Process-Control-System, auf eindrückliche Art und Weise.

Autor: Roman Gassmann; Text und Bilder

Durch die Verschmelzung und Konzentration der genannten Eigenschaften kann mittels minimaler, günstiger Hardware ein breites Einsatzgebiet abgedeckt werden. Sowohl kleine, abgeschlossene Einheiten, die über Ethernet oder serielle Schnittstellen kommunizieren, als auch Steuerungen von Anlagen in der Industrie mit hunderten von I/Os und komplexen, kundenspezifischen Schnittstellen, lassen sich damit in kurzer Zeit realisieren. Ebenso können 24/7-fähige (24 Stunden während 7 Tage die Woche) Lösungen oder Geräte mit verteilten I/Os auf einfache Art und Weise umgesetzt werden.

Auch für Laien einfach und leicht erlernbar
Zur einfachen, übersichtlichen Programmierung dieser Systeme wurde die PCL-Sprache (Process-Control-Language) vom Ing. Büro Gassmann, kurz IBG, entwickelt. Im Unterschied zu anderen Programmiersprachen wurde PCL aus Dokumentationen von Abläufen abgeleitet. Die Dokumentationen wurden dabei solange strukturiert und verfeinert, bis diese schliesslich auch vom Betriebssystem der Steuerung verstanden werden konnten. Die mit PCL geschriebenen Programme sind damit selbst für Laien verständlich.
Eine zusätzliche Dokumentation entfällt und veraltete Dokumentationen sind kein Thema mehr. Durch das Absetzen von hardwarenahen oder zeitkritischen Aufgaben in vordefinierte Programmteile, wird der Hauptteil der Anwenderprogramme sehr einfach und muss deshalb nicht mehr externen Spezialisten übergeben werden. Das firmenspezifische Know-how bleibt damit in der Firma erhalten und die Abhängigkeit von externen Fachleuten lässt sich massiv senken. Auch auf die wichtigsten Eigenschaften von objektorientierten Sprachen muss dabei nicht verzichtet werden. Denn ohne die Komplexität der Programmierung zu erhöhen, steht das Erstellen neuer Klassen (eigenständige Programmabläufe) sowie das Bilden und Verwenden von Objekten jederzeit zur Verfügung. Programmteile können damit hierarchisch aufgebaut und gegenüber anderen sauber getrennt werden. Dem Erstellen von überschaubaren, prüfbaren und zugleich sicheren Abläufen steht somit nichts mehr im Weg.

Multitasking und State-Event-Programmierung
Das System lässt eine beliebige Anzahl von eigenständigen Programmteilen (Tasks) zu, die nur durch die System-Ressourcen begrenzt sind. Komplexe Programme werden dabei zuerst in kleinere Module unterteilt und mit klaren Interface-Regeln versehen. Diese Methode führt zu überschaubaren, stabilen und sehr gut verständlichen Programmen (siehe Programmbeispiel). Da die State-Event-Programmierung der menschlichen Denkweise sehr nahe kommt, wurde sie als Grundlage für alle Module verwendet. Ein Modul wird dabei in mehrere Zustände unterteilt, wobei zu einem bestimmten Zeitpunkt immer nur ein Zustand aktiv ist. In jedem Zustand werden dann Ereignisse (Events) formuliert, die zu einem allfälligen Zustandswechsel führen können. Bereits das Verfolgen der Zustände erlaubt eine einfache Modulüberprüfung.
Weitere Eigenschaften, die in anderen Systemen oft fehlen
Alle Programmteile und Daten sind, mit entsprechenden Zugriffsrechten, jederzeit, selbst bei laufendem Prozess, ohne Datenverlust änderbar. Durchgeführte Änderungen kann man zudem in beliebigen Stufen rückgängig machen. Eine automatische Datierung aller Programmteile ermöglicht zudem eine lückenlose Rückverfolgbarkeit sämtlicher Abläufe. Da der gesamte Quellcode in konzentrierter Form auf der Hardware gespeichert wird, sind die Namen der Definitionen jederzeit abrufbar. Ein vorhandenes System kann damit auch bei Verlust des Quellcodes weiterhin gewartet und erweitert werden. Des Weiteren entfällt ein Zugriff auf Variablen über Nummern und Tabellen, was wiederum zu einer besseren Übersicht beiträgt.

System bietet hohe Betriebssicherheit
Hervorzuheben ist zudem die hohe Betriebssicherheit des Systems. So wurde eine grosse Anzahl von Massnahmen bereits in den Grundlagen des Betriebssystems integriert, so dass ein 24/7-Betrieb auch in rauer Umgebung garantiert werden kann. Dazu werden alle Programme auf dem internen Flash-Speicher des Controllers gespeichert. Die für den Programm-
ablauf notwendigen Informationen stehen damit auf engstem Raum, innerhalb des Controllers zur Verfügung und sind von elektromagnetischen Störungen weitgehend geschützt.
Des Weiteren sind alle Daten in Objekten mit begrenzten Datenbereichen gespeichert. Ein Zugriff auf Daten fremder Objekte wird grundsätzlich verweigert. Auch wird der Wertebereich von Variablen bei jeder Operation überprüft und nötigenfalls auf deren Maximalwerte begrenzt, was die negativen Auswirkungen von Fehlern massiv senkt. Um die Auswirkungen von Fehlern noch weiter zu reduzieren, werden alle auftretenden Störungen vom System in Kategorien eingestuft, wobei eine Einstufung als «gefährlich» dazu führt, dass das entsprechende Modul, das den Fehler verursacht hat, abgeschaltet wird. Eine Blockierung des ganzen Systems ist damit auch im Störfall nahezu unmöglich.

Umfangreiche Diagnosearten
Für die Entwicklung und Kontrolle der Programme steht eine Diagnoseumgebung zur Verfügung, welche es erlaubt, verschiedene Parameter der Steuerung zu überwachen, abzufragen und gegebenenfalls auch zu verändern. So können beispielsweise sämtliche Objekte eines Moduls aufgelistet und deren momentaner Zustand abgefragt werden. Auch Inhalte von Speichern können einfach und elegant gelesen und verändert werden, was eine schnelle Entwicklung oder Kontrolle garantiert. Um auch den zeitlichen Ablauf eines Moduls zu kontrollieren steht ein «Tracer»› zur Verfügung, mit dem man nebst Debug-Ausgaben auch Zustandswechsel auflisten kann.
Simulationsmöglichkeiten
Grössere Anlagen benötigen in der Regel zur Entwicklung bzw. dessen Kontrolle eine reelle Aussenwelt. Aus diesem Grund wurden die meisten Objekte, die eine Verbindung zur Aussenwelt haben, mit Simulations- und Manuel-Modi versehen, so dass eine Entwicklung und Überprüfung bis ins Detail auch ohne reelle Aussenwelt möglich ist. Standardmässig sind zur Sicherheit alle Simulationsmöglichkeiten mit mehrfachen Schlüssel (Locks) versehen. Folglich muss eine Simulation gezielt eingeleitet werden und kann nicht von sich aus aktiv werden.

Zusammenfassung
Durch die Verwendung heutiger Mikrocon-troller lassen sich mit wenigen Komponenten kostengünstige und erweiterbare Einheiten herstellen, welche ein breites Spektrum der Steuerungstechnik abdecken. Zur Entwicklung und Wartung steht ein preiswertes PCS-System zur Verfügung. Es beinhaltet alle Teile einer modernen, umfassenden Entwicklung, wie zum Beispiel die diversen Diagnose- und Simulationsmöglichkeiten, die Modulbildung und noch vieles mehr. Es lassen sich damit in kürzester Zeit stabile und wartbare Lösungen erstellen. Dank der einfachen und leicht erlernbaren Programmiersprache, die der menschlichen Denkweise nahe kommt, können Abläufe selbst von Laien entwickelt und gewartet werden.

Infoservice
Ing. Büro Gassmann
Kreuzsteinstrasse 100, 8707 Uetikon
Tel. 044 920 52 42
info@gassmann-engineering.ch
www.gassmann-engineering.ch



Durch die Verschmelzung und Konzentration zahlreicher Eigenschaften lässt sich mit dem PCS mittels minimaler, günstiger Hardware ein breites Einsatzgebiet abdecken


Programmbeispiel eines Lichtsignals in PCL

Firmenprofil

Seit über 30 Jahren entwickelt und produziert das Ing. Büro Gassmann, kurz IBG, innovative Teil- und Komplettlösungen im Bereich der Embedded/Mikrokontroller-Elektronik. Dabei befasst sich IBG nebst der Hard- und Software eines Systems auch mit dessen EDV-Anbindung. IBG sieht seine Aufgabe im Suchen, Entwickeln und Umsetzen innovativer Hard- und Softwarelösungen in verschiedensten Anwendungsgebieten.