In diesem Artikel möchte ich meine Erfahrungen teilen und über den Weg sprechen, den wir bei der Entwicklung des industriellen Software- und Hardwarekomplexes
WebHMI zur Ăśberwachung von Engineering-Systemen gegangen sind. Unter dem Schnitt viele Fotos.

Die Geschichte von WebHMI begann im Frühjahr 2013. Dann war ich begeistert von der Idee eines intelligenten Hauses und stellte in aller Ruhe alle Arten von Spielzeug her, um das Licht in der Toilette automatisch einzuschalten, Messwerte von Wasserzählern zu sammeln usw. Einmal schaute mein Freund auf das resultierende System und dachte, dass es verkauft werden könnte, und wir begannen darüber nachzudenken, wie und an wen. Aber es stellte sich irgendwie als nicht elegant heraus. Wenig später kam ihm eine andere Idee - er fand eine freie Nische auf dem Markt für industrielle Automatisierungssysteme. Und wir haben es umgesetzt.
Prolog
Die Situation war so, dass die vorhandenen Lösungen auf dem Automatisierungsmarkt für große Fabriken mit einem Budget von mehreren Millionen Dollar gut geeignet waren, aber angesichts der Sperrigkeit und der hohen Kosten für mittlere und kleine Unternehmen völlig inakzeptabel waren. Klassische Lösungen zur Überwachung technologischer Prozesse, SCADA-Systeme, kosten viel Geld, erfordern einen leistungsstarken Industrie-PC, Betriebssystem- und DB-Lizenzen und erfordern viele, viele Stunden Arbeit eines qualifizierten Ingenieurs, um Software zu konfigurieren und ein Projekt zu erstellen. Wenn Sie beispielsweise ein kleines Gewächshaus haben, können Sie wahrscheinlich nicht Zehntausende von Dollar in ein Überwachungssystem mit mehreren zehn Parametern investieren. Und wenn solche Gewächshäuser sagen, 10-20? Und wenn sie geografisch beabstandet sind? Die Kosten solcher Systeme steigen sofort in den Himmel, aber gleichzeitig lösen sie "kleine" Probleme immer noch schlecht. Und für verteilte Systeme völlig ungeeignet.
Auf der anderen Seite der Skala befanden sich HMI-Panels. Sie sind relativ kostengünstig (ab einigen hundert Euro) und ermöglichen die Erstellung einer lokalen Bedienerschnittstelle für jedes kleine System. In der Regel eine Installation. Solche Panels haben jedoch eine sehr eingeschränkte Funktionalität und erfüllen nicht die Bedürfnisse moderner Kunden.
Wir haben die Nische zwischen großen SCADA-Systemen und HMI-Panels im Visier. Wir suchten nach Optionen für die Verwendung als Software- und Hardwareplattform. Es wurde schnell klar, dass alles von uns selbst erledigt werden musste, sonst würde es nicht funktionieren, um mit der Lösung Geld zu verdienen. Ein fertiger Industrie-PC macht die Lösung entweder zu teuer und für den Kunden uninteressant, oder er verdient kein Geld. Es gab auch keine fertige Software.

Industrie-PC, den wir nicht benutzt haben
Mit Blick auf die Zukunft möchte ich sagen, dass wir es geschafft haben, ein Produkt zu schaffen, dessen Wert mit dem HMI-Panel vergleichbar ist, das jedoch eine unvergleichlich größere Funktionalität aufweist. Tatsächlich wurde ein vollständiges SCADA-System erhalten. Darüber hinaus ist für die Entwicklung darauf basierender Projekte keine zusätzliche Software erforderlich - die Entwicklung bzw. Konfiguration erfolgt direkt im Browser. Die gesamte erforderliche Software ist enthalten und funktioniert an Bord.
Der Entwicklungsprozess eines Geräts, und noch industrieller, unterscheidet sich grundlegend von der Softwareentwicklung. Hier ist der Fehlerpreis unvergleichlich höher. Der Zyklus „Änderungen vornehmen - Ergebnis überprüfen“ dauert wochenlang, weil Die Änderung der Platine erfordert die Bestellung in Produktion, Montage und Inbetriebnahme. Und dies ist eine lange Produktionszeit, Lieferzeit (aus China), Geld für Logistik, Montage, Installation, Debugging. Aber zum Glück wussten wir das zu Beginn unserer Reise nicht. Ansonsten weiß ich nicht, ob sie sich für dieses Spiel entscheiden würden oder nicht.
Erste Schritte
Wir haben uns nicht verpflichtet, einen eigenen PC zu entwickeln. Dafür gab es keine blöde Erfahrung, kein Geld, kein geeignetes Personal. Darüber hinaus sind klassische PCs für unsere Anwendung schlecht geeignet. Wir haben uns unser Gerät als eine kleine Box vorgestellt, die auf einer DIN-Schiene in den Automatisierungsschrank gestellt und von den bereits im 24-V-Schrank verfügbaren mit Strom versorgt werden kann. Zu diesem Zweck haben wir uns entschlossen, ein geeignetes fertiges System-On-Module (SOM) zu verwenden und ein „Motherboard“ mit einer Stromquelle und allen benötigten Peripheriegeräten zusammenzubauen. Die Aufgabe schien in wenigen Wochen, maximal Monaten, recht einfach und realisierbar zu sein.
Wie sich später herausstellte, waren diese Begriffe leicht optimistisch. Einen Prototyp auf einem Tisch zusammenzubauen und ein stabil funktionierendes industrielles Gerät zu erhalten, sind, wie man so sagt, zwei große Unterschiede. Das erste Arbeitslayout kann in zwei Wochen auf dem Knie einer Woche zusammengestellt werden. Aber um dieses Layout für ein kommerzielles Serienprodukt fertigzustellen, haben wir anderthalb Jahre gebraucht.
Für die erste Version der Software haben wir uns eine Mindestaufgabe gestellt - die Arbeit mit den Protokollen Siemens PPI und Modbus ASCII / RTU. Weil Ich hatte viel Erfahrung in der Webentwicklung, die Oberfläche basierte ursprünglich auf Webtechnologien. Dies ist später ein wesentliches Merkmal des Produkts geworden.
Warum genau diese Protokolle? Wir haben einen potenziellen Kunden gefunden - einen Kunden, der uns sehr treu war und bereit war, unser Produkt zu testen, um die Installation der Verpackung zu überwachen. In seinem Gerätepark befanden sich SPS der Familien Siemens S7 200 und Delta DVP. Jetzt ist die Liste der unterstützten Protokolle natürlich viel umfangreicher. Bei Bedarf können Sie sogar Ihre eigenen Protokolle in Lua schreiben. Aber davon haben wir nicht geträumt.
Nachdem wir uns die Unterstützung eines potenziellen Kunden gesichert hatten, begannen wir mit der Entwicklung unseres Produkts. Ich glaube, wir haben den richtigen Start gefunden - wir haben ein bestimmtes Problem gelöst (Verfolgung der Anzahl der hergestellten Produkte) und keine universelle Lösung für ein abstraktes Problem erfunden. Andernfalls wären wir definitiv in endlosen Wünschen versunken, „ein weiteres“ sehr wichtiges Killer-Feature hinzuzufügen, was unklar wäre, ob es zumindest für jemanden im wirklichen Leben nützlich wäre.
In Zukunft wurden alle neuen "Funktionen" nur als der eigentliche Bedarf hinzugefügt. Wenn es schon sehr heiß ist. Wenn eine Funktion nur von einem bestimmten Client benötigt wird und für andere Clients in keiner Weise nützlich sein kann, fügen wir sie nicht hinzu. Wir tun nur das, was wir an jemand anderen „verkaufen“ können.
Zum Debuggen wurden eine Debug-Karte des SOM-Herstellers und eine Reihe von hausgemachten Karten mit verschiedenen Subsystemen verwendet. Es stellte sich also heraus, dass die Arbeit der Hauptperipheriesysteme ohne ständige Änderung der gesamten Basisplatine debuggt wurde. Es war bereits fertig, als alle Komponenten fertig waren und nach Bedarf arbeiteten.
Die Software wurde parallel zur Entwicklung der ersten Revision des Boards geschrieben. Ich werde wahrscheinlich nicht im Detail ĂĽber den Softwareentwicklungsprozess sprechen. Viele Giktayms-Leser sind mit diesem Prozess vertraut. Ich werde nur sagen, dass ich musste:
- Überarbeiten Sie so viele Softwareentwicklungsansätze
- Ăśberdenken Sie C / C ++ und schlieĂźen Sie Freundschaften damit
- Master-Debugging der mystischsten Fehler, die einmal im Monat zu zufälligen Zeiten auf Remote-Systemen auftreten und zu einem Systemabsturz führen
- Erfahren Sie, wie Sie Systemressourcen sehr sparsam einsetzen können
- Optimieren Sie alles Mögliche und noch mehr
- Lernen Sie, Software zu schreiben, die monatelang ohne Neustart funktioniert
Dies ist hauptsächlich auf die sehr begrenzten Ressourcen der ausgewählten SOM-400-MHz-CPU, 64 MB RAM und 16 MB Flash-Speicher zurückzuführen. Websites zu erstellen, die auf einem solchen „Server“ gehostet werden - oh, wie schwierig. Trotzdem haben wir PHP, eine Datenbank, Nginx und viele andere Extras an Bord. Und während das System mit erstaunlicher Reaktionsfähigkeit arbeiten kann, können Sie beispielsweise Trends zeichnen, die 20 Mal pro Sekunde aktualisiert werden.
Die erste Version der Software war beispielsweise nur ein Test der Idee. Wir haben mehr überprüft, dass es auf dieser Plattform im Allgemeinen möglich ist, zu realisieren, was wir anstreben. Zumindest nach 3-4 Monaten Entwicklungszeit, aber die Software wurde „lebendig“. Wir haben jetzt eine Weboberfläche, über die Sie selbst Bildschirme erstellen können, um Daten aus der SPS anzuzeigen und zu visualisieren. Die Daten wurden im Hintergrund gelesen und der Browser aktualisierte ständig die Informationen auf einem Computer, Tablet oder Telefon in Echtzeit. Die Ausrichtung auf das Internet ist zum Eckpfeiler unseres Produkts geworden. Sie können nahezu jedes Betriebssystem und jedes Gerät verwenden, um die Benutzeroberfläche anzuzeigen, vom Telefon bis zum Smart-TV. Außerdem können Sie sich flexibel in die Netzwerkinfrastruktur integrieren, remote über das Internet arbeiten usw.
Unser erstes Projekt bestand aus zwei Dutzend Registern (aus der SPS gelesene Variablen). Dann planten wir, dass WebHMI nur zur Überwachung kleiner isolierter Systeme verwendet wird. Wie bescheiden und unsicher waren wir damals! Jetzt haben unsere Kunden Automatisierungsprojekte für Geschäfte und Sportanlagen, in denen es jeweils zweitausend Register gibt. Zwischen dem ersten Alpha und der aktuellen Version der Software gab es jedoch mehr als drei Jahre sorgfältiger Entwicklung, Fehlerbehebung und Optimierung.
Ungefähr zu der Zeit, als die erste Alpha-Version der Software fertig war, entwarf und fertigte unser Hardware-Ingenieur die erste Version der Geräteplatine. Wir waren froh, endlich unsere Idee zum ersten Mal in unseren Händen zu halten! Das ist ein unbeschreibliches Gefühl. Wir waren stolz darauf, dass wir dieses Gerät hergestellt haben. Es war dann immer noch wie ein hässliches Entlein - beängstigend. Aber seine, Liebes.

Das erste Brett. Zu Hause gemacht. Jetzt arbeitet sie in unserem BĂĽro.
Nach der Montage - Datei
Wir haben nicht angefangen, den Fall von Grund auf neu zu machen. Es ist teuer, lang und schwierig. Wir haben uns für eines der auf dem Markt erhältlichen Standardgehäuse entschieden. Das Board wurde ursprünglich für einen bestimmten Fall entwickelt. Der Fall wurde "schöner" gewählt - italienisch. Oh, wie haben wir uns dann mit diesem Italien gequält! Aber dazu später mehr.
Die Karosserie des allerersten „Produkts“, eigentlich ein Prototyp, haben wir manuell mit einem Dremel gefräst und mit einer Feile gebracht. Es stellte sich natürlich nicht sehr genau heraus. Und der Abstand der Löcher für die LEDs „schwebte“, und die rechteckigen Löcher waren völlig ungleichmäßig. Aber um zu verstehen, wie es aussehen wird, und vor allem, um das Board in den Koffer zu legen, stellte sich heraus.

Erstes Gebäude
Wir hatten Angst, dass die Anschlüsse nicht dort ankommen, wo sie gebraucht werden, dass wir irgendwo Fehler machen würden. Im Allgemeinen gab es einige Fehler, aber überraschenderweise gab es nichts Tödliches. Hier und da war es notwendig, die Stecker 1-2 mm und alle zu bewegen. Wir haben die Anschlüsse, LEDs und Öffnungen im Gehäuse auf die nächste verschoben, wahrscheinlich die Revisionen 10-15. Die ganze Zeit gab es etwas zu verbessern. Sofort alles perfekt zu machen hat nicht geklappt. Der Wi-Fi-Anschluss musste im Allgemeinen durch einen nicht standardmäßigen, längeren ersetzt werden. Weil Einige Antennen wollten sich nicht auf kurzen Fäden wickeln.
Vertrieb
Was tun, wenn der erste Prototyp fertig ist? Verkaufen Sie es sofort! Aber wie einfach ist es, dem Kunden ein industrielles Gerät zu zeigen, das mit anderen Geräten interagiert? Wir haben einen Demo-Koffer zusammengestellt, in den wir das minimale Gentleman-Set gestellt haben - SPS, Netzteil, HMI-Panel und natürlich WebHMI.

Demo-Koffer
Dieser Koffer ermöglichte Demonstrationen „vor Ort“ - beim Kunden - und war gleichzeitig mobil, sodass er von Ort zu Ort bewegt und schnell ein- und ausgeschaltet werden konnte. Übrigens, fast unverändert wird es von uns bis heute verwendet.
Nachdem wir dem Kunden den Prototyp vorgestellt und die Genehmigung von ihm erhalten hatten, beschlossen wir, die erste Charge von 5-10 Geräten herzustellen. Wie schwierig und ungerechtfertigt teuer in unserem Land!
Gehe zur Serie
Der Prototyp wurde zu Hause hergestellt. Aber die Herstellung von 12 einfachen Zweischichtplatten für die Galvanik kostete für diese Zeit etwas schlechtes Geld (mehr als 100 Dollar, wie es scheint). Aber die Qualität der Bretter und vor allem der Seide brachte mich zum Weinen - fast handwerklich. Dann versuchten sie, in der Etal-Fabrik zu bestellen. Auch waren enttäuscht.

Auf der linken Seite befindet sich die Produktionsplatte von Etal. Rechts ist China.
Viel später, als wir die Bretter bereits in China bestellten, weinten wir erneut. Die Qualität wurde mit häuslichen wie Himmel und Erde verglichen! Klare Seide, Löcher genau in der Mitte der Pads, dichte und gleichmäßige Lötmaske. Die Qualität ist zwei Größenordnungen höher als die lokale Produktion zu einem dreimal niedrigeren Preis ... Wer wird den einheimischen Produzenten danach unterstützen?

Boards aus China. Aurix ist der Codename des Projekts.
Zubehör wurde gekauft. Boards werden zusammengebaut, verifiziert. Aber die Gebäude waren in Schwierigkeiten.
Wir hatten ungefähr 5 Fallproben zur Hand, die wir auf CNC fräsen und darauf schreiben wollten. Aber seitdem Wir haben eine kleine Auflage, und das Produkt ist viel komplizierter als der Souverän, der den Werbetreibenden vertraut ist. Es war schwierig, diejenigen zu finden, die unsere Bestellung erfüllen wollten. Fast unrealistisch. Der Fall, den wir haben, hat eine komplexe Form. Zum Drucken benötigen Sie einen Tampondruck. Und es ist gut, wenn es eine große Auflage gibt, weil Die Anpassung und Anpassung des Prozesses ist ein komplexes und unangenehmes Geschäft. Wir haben viele Drucke auf nur 5 Gebäuden. Niemand wollte einen so undankbaren Job annehmen, weil Sie damit kein Geld verdienen. Bei CNC ist die Geschichte ähnlich.
Mit halbem Kummer stellte sich heraus, dass es mit ein paar Leuten übereinstimmte, und in ein paar Wochen bekamen wir 4 Sätze von Fällen, in denen es Öffnungen gab, wo es nötig war, und Inschriften, wo es nötig war. Lassen Sie die Inschriften von schrecklicher Farbe und weit davon entfernt, perfekt eingeprägt zu sein, aber sie waren es.

Die ersten kommerziellen Produkte im Fall.
Aber während das Epos mit den Gebäuden dauerte, konnten wir bereits das erste Gerät verkaufen! Es ist dringend erforderlich, dem Client etwas auf das Objekt zu setzen. Es gab keine vorgefertigten Gebäude. So wurde das erste kommerzielle Gerät auch manuell auf dem Balkon gefräst und war ohne Beschriftung. Der Körper war nur extravagant grün erhältlich. Aber das alles war nicht wichtig. Es ist wichtig, dass sie uns bezahlt haben - das bedeutet, dass wir das tun, was die Leute brauchen.

Schlachttaufe
Arbeiten Sie in einem industriellen Umfeld
In dieser Einrichtung stießen wir zuerst auf das, was als Industrie bezeichnet wird - Lärm, Staub, Tonabnehmer. Das Organisieren einer stabilen Verbindung über den RS-485-Bus „auf dem Tisch“ ist kein einfacheres Beispiel als bei einem realen Objekt. Unsere Verbindung war ständig fehlerhaft. Wie sehr haben wir mit diesem Reifen gequält! Aber wie sich später herausstellte, war der Fehler ... ein Tipp am Kabel. Zwischen der Masse und den Signalleitungen A und B entstand eine Potentialdifferenz von bis zu 40 V, gepulst und zufällig. Und es ist an einem 50 cm langen Kabel! Darüber hinaus war die Spitze nur am Oszilloskop sichtbar. Auf dem Voltmeter war alles innerhalb normaler Grenzen. Nachdem wir die Ursache der Störung beseitigt hatten, stabilisierten wir die Verbindung und erhielten ein funktionierendes System. Wir konnten die Arbeit übergeben und die nächste Bestellung erhalten.
Fast sofort wurde uns klar, dass der Verkauf des Geräts selbst eine unmögliche Aufgabe war. Sie müssen den Kunden kennen, eine Beziehung zu ihm haben, seine Bedürfnisse verstehen. Es ist so einfach, ein neues und einzigartiges Produkt zu verkaufen. Wir werden nicht viel verkaufen. Viele Menschen verstehen immer noch nicht sofort, was WebHMI ist, wenn wir versuchen, ihnen etwas über das System zu erzählen. Aus diesem Grund haben wir uns entschlossen, Verkäufe über Integrator-Händler zu tätigen - so wird das Produkt direkt vom Integrator angeboten. Und er kennt seine Kunden bereits, er hat eine große Datenbank mit Kontakten, er kann nicht nur Geräte verkaufen, sondern auch ein darauf basierendes Projekt abschließen. Und der Kunde wird zufrieden sein und er wird verdienen.
Deshalb haben wir begonnen, mit potenziellen Partnern zu verhandeln. Und sehr schnell konnten wir ein interessantes Projekt starten. In einer metallurgischen Anlage wurde ein System benötigt, um die Betriebsparameter von Öfen zu überwachen, in denen die gewalzten Rohre entlastet werden. Sobald die ersten Gebäude fertig waren, wurden buchstäblich zwei davon in diesem Projekt verkauft.
Bei diesem Projekt haben wir eine ganze Reihe von Problemen festgestellt. Und diejenigen, die nicht verdächtigt wurden. Die Software musste stark modifiziert werden, um das System zu optimieren. Wir haben gespürt, was ein Speicherverlust ist, was ein System in einer anderen Stadt debuggt. Die Hardwareplattform musste auch fast von Grund auf neu erstellt werden! Zunächst gingen wir davon aus, dass WebHMI von einem guten und hochwertigen 24-V-Industrienetzteil gespeist wird. Daher machten sie sich keine besonderen Sorgen um die Störfestigkeit. Aber unter industriellen Bedingungen funktioniert überhaupt nicht alles wie im Alltag.
Eine der dort verkauften WebHMIs stürzte in nur wenigen Minuten ab. Was wir einfach nicht ausprobiert haben, und verschiedene Netzteile und Filter sowie Ferritringe haben alles abgeschirmt und geerdet, was sie konnten. Nichts hat geholfen. Darüber hinaus funktionierte das zweite WebHMI an einem anderen Ofen stabil. Infolgedessen haben wir die Schaltkreise von WebHMI komplett überarbeitet und sehr leistungsstarke Filter für Eingangsstörungen bei der Stromversorgung hinzugefügt.
Zweite Generation
Auch viele andere Komponenten wurden ersetzt, viele andere wurden hinzugefügt. Der Speicher bestand nicht aus einem USB-Modul, sondern aus einer SD-Karte. Es gab einen Li-Po-Akku, mit dem die Arbeit ordnungsgemäß ausgeführt und auf Wunsch bis zu zwei Stunden autonom gearbeitet werden konnte. Auf diese Weise können Sie kurze Stromausfälle überstehen, ohne das System herunterfahren und neu starten zu müssen. Sie können auch ein Notsignal an übergeordnete Systeme senden. Sie fügten die Möglichkeit hinzu, den externen USB-Anschluss auszuschalten, um externe 3G-Modems zurückzusetzen, die regelmäßig hängen bleiben möchten. Wir haben verschiedene Hubs ausprobiert, RS-485-Bus-Shaper.
Es gab viele Schwierigkeiten mit dem RS-485-Bus. Normalerweise waren sie darauf zurückzuführen, dass Integratoren wirklich kein spezielles Kabel für RS-485 kaufen möchten. Anstelle eines teuren Spezialkabels verwenden sie ein gewöhnliches Twisted-Pair-Kabel, da dies ein gleichwertiger Ersatz ist. Verwirrung bringt auch Missverständnisse bei den Grundlagen dieses Reifens mit sich. Der Mythos ist weit verbreitet, dass für den Betrieb dieses Busses nur zwei Drähte ausreichen - A und B. Dies ist jedoch nicht der Fall. Wenn Sie in einer industriellen Umgebung, an einem langen Bus und wenn alle Geräte mit unterschiedlichen Netzteilen oder sogar Phasen betrieben werden, treten Potentialunterschiede auf, und ein dritter, gemeinsamer Draht ist für den Potentialausgleich unerlässlich. Auch ein Bildschirm ist sehr wünschenswert. Jetzt verwenden wir einen galvanisch isolierten Former RS-485. Dies verbessert die Zuverlässigkeit.
«» .
Zuverlässigkeit
WebHMI « ». . – 230 RS-485. , ! , .

230 RS-485.
- . , . USB DOM (Disk-On-Module), , , , , . . .
WebHMI , .. . , . – . - 1GB, - 32GB.
. , , . – SD-, . Ist es logisch? Nein. . , , . «» .
, , « ». , , . , , . .

Transcend . .
?
. Weil , , . . . .
, ( 2,54 ). , VPN-, . , , , , . . , . , .


V05.34L4. – 5- , 34- . , , 34 , ! . , .

WebHMI . , . . 50 , . . . , . , , . — .. . , — , . . — .

, . , , . - . .
. . . . , .
«» . – WebHMI . – - , , . , , – , , , , . – 0 +50°. Li-Po .
. Weil , — . . . . . . — . , , . , . — . . , , . .

, . , . , , , WebHMI. — , , . , . , .

WebHMI
. . . , - «» . . , – , - . , . .
- WebHMI . , – «» ?

, , . — . — . — . Die Straße wird von der gehenden überwältigt. — , .
– . -, WebHMI . . , , .