Was in der Steuerung wirklich steht
Wie aus einem Diagnosewerkzeug für ein Kundenprojekt ein eigenes Produkt wurde: PLC-Inspector


Eine Anlage tut nicht das, was sie soll. Das Tor bleibt zu, der Wert stimmt nicht, irgendetwas hängt.
Jetzt beginnt das Rätselraten. Liegt es an der Steuerung? An der Verkabelung? An der App, die die Steuerung bedient? Oder an einem Parameter, den vor drei Monaten jemand anders gesetzt hat?
Solange niemand sieht, was tatsächlich im Speicher der Steuerung steht, ist jede Antwort eine Vermutung.
Genau dafür haben wir PLC-Inspector gebaut.
Entstanden ist er nebenbei
PLC-Inspector war nie als Produkt geplant. Er entstand während der Arbeit an Lift Gate Control, der App, die wir für RMP-Tec zur Steuerung von Hubtoren in Melkanlagen entwickelt haben.
Dort saßen wir vor derselben Frage wie jeder Techniker vor Ort. Die App sendet einen Befehl, die Anlage reagiert nicht wie erwartet, und im Speicher der Siemens LOGO! liegt die Antwort. Nur kommt man an sie ohne Werkzeug nicht heran.
Also haben wir uns eins gebaut. Erst für uns. Dann ist daraus eine eigene App geworden, weil das Problem nicht unseres allein ist. Jeder, der eine LOGO! 8 in Betrieb nimmt, kennt es.
Was die App macht
PLC-Inspector liest den Speicher einer Siemens LOGO! 8 live aus, über Modbus/TCP, direkt im Netz. Kein Gateway, keine Hersteller-Cloud, kein Zwischenserver.
Sichtbar wird:
- VM Memory, der Variablenspeicher mit seinen 426 Registern
- Analoge Eingänge AI1 bis AI8 und analoge Ausgänge AQ1 bis AQ2
- jeder 16-Bit-Wert gleichzeitig dezimal, hexadezimal und binär
- die einzelnen Bits eines Registers, hervorgehoben und lesbar
- Wertänderungen, die beim Aktualisieren farblich markiert werden
- mehrere Stationen nebeneinander, gespeichert mit Name, Adresse, Port und Offset
Dazu ein einstellbares Aktualisierungsintervall, damit man einen Wert beim Umschalten der Anlage einfach beobachten kann.
Die App läuft auf macOS und iOS. Am Schreibtisch auf dem Mac, im Schaltschrank auf dem iPhone.
Eine Einschränkung nennen wir offen, weil sie wichtig ist: Unterstützt wird die LOGO! 8, Modell 0BA8. Ältere LOGO!-Generationen bis Version 7 haben schlicht kein Modbus/TCP-Interface. Da hilft keine App.
Version 1.1: Schreiben, mit Absicht unbequem
Bisher konnte der Inspector nur lesen. Mit Version 1.1 kann er auch schreiben. Einzelne Halteregister lassen sich direkt setzen, über Modbus Function Code 0x06, mit Prüfung der Echo-Antwort.
Eine Entscheidung dabei ist erklärungsbedürftig. Denn sie sieht auf den ersten Blick aus wie ein fehlendes Feature.
Beim Schreiben gibt es keinen automatischen Wiederholversuch.
Beim Lesen ist ein zweiter Versuch harmlos. Man fragt denselben Wert noch einmal ab, mehr passiert nicht. Beim Schreiben ist das anders. Ein wiederholter Schreibbefehl an eine SPS kann einen realen Vorgang ein zweites Mal auslösen. Ein Tor, das zweimal fährt. Eine Pumpe, die zweimal anläuft.
Deshalb bleibt der Wiederholversuch aus. Stattdessen gibt es einen eigenen Schreibmodus und eine Rückfrage vor dem Schreiben, die sich für die laufende Sitzung abschalten lässt, wenn jemand konzentriert arbeitet.
Wer Software für Anlagen baut, die sich bewegen, muss an dieser Stelle konservativ sein. Bequemlichkeit ist hier das falsche Ziel.
Ein Fehler, den kein Test gefunden hat
Zur Ehrlichkeit gehört auch das hier.
Die Registertabelle hat lange Zeit keine aktualisierten Werte angezeigt. Manueller Refresh, automatisches Aktualisieren, die Hervorhebung von Änderungen. Alles betroffen. Also genau die Kernfunktion eines Werkzeugs, dessen einzige Aufgabe es ist, Werte anzuzeigen.
Die Ursache lag in zwei widersprüchlichen Identitäten innerhalb einer SwiftUI-Liste. Die Liste bekam bei jeder Aktualisierung neue Kennungen, die Zeilen darin wurden über ihre Position identifiziert. Das Framework hat daraufhin die alten Inhalte behalten.
Sämtliche Unit-Tests waren dabei grün.
Aufgefallen ist der Fehler beim Durchklicken der laufenden App auf einem echten Gerät. Nicht im Simulator, nicht in der Testsuite, nicht beim Draufschauen.
Daraus ist bei uns eine feste Regel geworden. Vor jeder Store-Einreichung wird die App auf echtem iPhone und echtem iPad von Hand bedient, einmal komplett durch die Kernfunktion, zusätzlich mit großer Systemschrift. Grüne Tests sagen etwas über die Logik. Über die Anzeigeschicht sagen sie nichts.
Was der Inspector den anderen Apps beibringt
Der Inspector liest bis zu 125 Register am Stück. Eine Antwort darauf kann knapp 260 Byte groß sein. Über TCP kommen solche Antworten regelmäßig in mehreren Teilen an.
Lift Gate Control ist dieses Problem nie begegnet. Dessen Frames sind rund 20 Byte groß und passen praktisch immer in ein Paket.
Für den Inspector mussten wir die Kommunikation deshalb härten:
- Die Antwort wird erst ausgewertet, wenn sie anhand des Längenfelds im Protokollkopf vollständig ist.
- Die Kennung der Antwort wird gegen die gesendete Anfrage geprüft. Es zählt nur, was zur eigenen Frage gehört.
- Abgeschnittene Fehlerantworten werden sauber behandelt statt fehlinterpretiert.
Diese Härtung wandert jetzt zurück nach Lift Gate Control. Nicht weil dort etwas kaputt wäre. Sondern weil dieselbe Kommunikationsschicht in mehreren Produkten steckt und jede Verbesserung an einer Stelle allen anderen zugutekommt.
Die Schicht darunter ist das Älteste an der Sache
Unter allen unseren Apps für Steuerungen liegt dieselbe Kommunikationsschicht: Verbindungsaufbau, Frame-Erzeugung, Timeouts, Wiederholversuch bei besetzter Leitung, Auswertung der Antwort, verständliche Fehlermeldung nach oben.
Entstanden ist sie ab 2011 für unsere Home-Automation-Apps PLC Smart Home und deren Nachfolger Neon Home. Zunächst für Mitsubishi-Steuerungen, mit eigenem Frame-Format und eigener Adressarithmetik. Später kamen die Millenium-Steuerungen von Crouzet dazu. Vor rund zehn Jahren haben wir die Schicht auf Modbus ausgebaut und dafür optimiert. Damit war sie nicht mehr an eine Steuerungsfamilie gebunden.
Seitdem hat sie eine Reihe weiterer Apps getragen. Darunter eine Demo-App, mit der auf einer Messe die Steuerung von Brandschutztoren vorgeführt wurde, ebenfalls über SPS-Stationen und dasselbe Kommunikationsmodul.
Über die Jahre ist sie dabei nie stehen geblieben. Jede neue Anlagenfamilie, jede Eigenheit im Antwortverhalten und jede Änderung an den Frameworks von Apple und Google ist eingearbeitet worden. Das Ergebnis ist keine Bibliothek von der Stange. Sondern erprobte, sehr schnelle Routinen, die im industriellen Umfeld über Jahre gelaufen sind und dort zuverlässig arbeiten.
Drei Apps, die heute darauf stehen
- Neon Home, früher PLC Smart Home, seit 2011 in Entwicklung. Bedient Rollladen, Licht, Dimmer und Heizung über die Steuerung im Keller. Diesen Sommer von Grund auf modernisiert.
- Lift Gate Control, im Auftrag von RMP-Tec entwickelt. Bedient Hubtore in Melkanlagen über eine Siemens LOGO! 8.
- PLC-Inspector, der jüngste der drei, entstanden als Werkzeug im Lift-Gate-Control-Projekt. Bedient nichts. Sondern zeigt, was drinsteht.
Die ersten beiden bedienen eine Anlage. Der dritte erklärt sie.
Das ist der eigentliche Wert aus fünfzehn Jahren. Die Domäne wechselt. Rollladen, Hubtor, Registerspeicher. Die Kommunikation bleibt.
Kleinigkeiten, die trotzdem zählen
Zwei Dinge aus Version 1.1, die keine Schlagzeile hergeben und den Unterschied trotzdem machen.
Wir haben die Mindestanforderung deutlich gesenkt, auf iOS 17 und macOS 14. Vorher stand dort ein Wert, der den erreichbaren Gerätebestand ohne Not klein gehalten hat. In der Industrie steht selten das neueste Gerät im Schrank.
Und wir haben aus der Store-Beschreibung entfernt, was nicht stimmte. Dort stand, Wago-Steuerungen würden unterstützt. Dafür gibt es im Inspector keinen Code. Jetzt steht dort, was tatsächlich zutrifft: Siemens LOGO! 8 (0BA8).
Die App gibt es in zehn Sprachen. Version 1.1 ist seit dem 16. August 2026 im Mac App Store und seit dem 17. August 2026 im App Store für iPhone und iPad verfügbar.
Sie bauen Steuerungen und brauchen die App dazu?
Wir entwickeln Apps, die mit echter Hardware sprechen. Steuerungen, Maschinen, Sensoren. Nativ für iOS, macOS und Android, direkt über Modbus/TCP, ohne Umweg über eine fremde Cloud.
Typische Ausgangslagen, die wir kennen:
- Ein Steuerungsbauer will seinen Kunden eine eigene App mitgeben statt ein Fremdprodukt zu empfehlen.
- Eine bestehende Anlage soll mobil bedienbar werden.
- Ein Servicetechniker braucht ein Diagnosewerkzeug, das genau zu den eigenen Anlagen passt.
Sprechen Sie uns an. Ein erstes Gespräch kostet nichts und klärt meist schon, ob der Weg über eine eigene App der richtige ist.
PLC-Inspector für Mac und iPhone:
Alles zur App, alle Funktionen und die Systemvoraussetzungen stehen auf plc-inspector.com.
Von der Idee bis in den App Store begleiten wir den ganzen Weg: Individuelle Softwareentwicklung
Weiterlesen
Alle Beiträge zu Mobile Apps
Fünfzehn Jahre eine App am Leben halten
Seit 2011 wird PLC Smart Home entwickelt, heute heißt die App Neon Home und spricht direkt mit SPS-Stationen. Im Sommer 2026 haben wir sie bei spiritdev komplett modernisiert. Was fünfzehn Jahre Produktpflege über Software für industrielle Steuerungen verraten.

LIFT GATE CONTROL
spiritdev entwickelte für RMP-Tec native Apps (iOS & Android) zur Steuerung von Hubtoren in Melkanlagen - Modbus/TCP, 4 Sprachen, live im App Store und Google Play.

Wie eigene mobile Apps KMU bei der Digitalisierung von Geschäftsprozessen helfen können
Für viele KMU findet Arbeit nicht mehr nur am Schreibtisch statt. Eigene mobile Apps können Prozesse dorthin bringen, wo sie gebraucht werden – gezielt, einfach und nah am Arbeitsalltag.
Themen wie diese in der Praxis?
Lassen Sie uns 30 Minuten darüber sprechen - kostenlos und unverbindlich.
