OVEN PLK110[M02]-MS4, HMI, OPC und SCADA oder wie viel Kamille Tee man benötigt. Teil 1

Guten Tag, liebe Leser dieser Artikel. Ich schreibe dies im Format einer Übersicht.

Eine kurze WarnungIch möchte darauf hinweisen, dass, wenn Sie sofort verstanden haben, worum es im Titel geht, ich empfehle, den ersten Punkt (nämlich das PLC-Kern) durch etwas aus der höheren Preisklasse zu ersetzen.
Kein Geldersparnis ist solch einen Nervenzusammenbruch wert, subjektiv betrachtet.

Für diejenigen, die sich von ein wenig Grau im Haar und einem nervösen Zucken nicht abschrecken lassen, werde ich später ausführlich beschreiben, wie dieses technologische Wunder geschaffen wurde. In diesem Artikel jedoch eine kurze Analyse des Projekts mit einem gewissen Maß an Kritik.

Entstehung. Aufgabenstellung

Ich arbeite in einem Ingenieurbüro und wir testen Automatisierungstechnik für die schlüsselfertige Integration in unsere Werke. Vor kurzem wurde das OVEN-Ausrüstungsgerät geliefert und es wurde beschlossen, einen Teststand zu bauen:

  • PLC110[M02]-MS4 (Ausführungsumgebung MasterSCADA 4D)
  • Bedienfeld SP307
  • Modul für universellen analogen Signalinput MV110-224.2A
  • Modul für den Input von Kraftsensor-Signalen MV110-4TD
  • Messmodul MV110-220.3M

Systemstruktur wurde mit der Trennung der Netzwerke nach Zweckmäßigkeit ausgewählt:

  1. Modbus RTU basierend auf RS-485 — Kommunikation von PLC mit untergeordneten Geräten (Module, Frequenzumrichter, intelligente Sensoren, HMI-Bedienfeld SP307), PLC-Master Netzwerk.
  2. Modbus TCP basierend auf Ethernet — Kommunikation zwischen verschiedenen PLCs und mit dem OPC-Server.
  3. PC-Server OPC- und SCADA-Systeme sind gleichzeitig ein Gateway zwischen zwei verschiedenen Netzwerken (unternehmensinterne LAN und Modbus TCP Netzwerk der Controller (zwei Netzwerkadapter mit Datenrouting durch standardmäßige Windows-Methoden)).
  4. Das Unternehmens-LAN hat einen Zugang zum Internet über einen Proxy-Server.

Die Systemstruktur ist im Allgemeinen in der folgenden Abbildung dargestellt:

OVEN PLK110[M02]-MS4, HMI, OPC und SCADA oder wie viel Kamille Tee man benötigt. Teil 1

Implementierte Funktionalität

  • Sammeln und Weiterleiten von Daten von PLC an den OPC-Server.
  • Lokale Steuerung und Überwachung über das HMI-Panel.
  • Steuerung und Überwachung über SCADA durch den OPC-Server.
  • Steuerung von jedem PC im Unternehmens-LAN und über das Internet mithilfe des SCADA-Clients.
  • Verbindung mobiler OPC-Überwachungsgeräte über LAN und Internet.
  • Selbstverständlich auch Archivierung und Berichterstellung.

Es scheint, dass wir nichts übersehen haben. Eine allgemeine Beschreibung des Systems gibt es bereits, und jetzt, ganz konkret, zu den Themen (ich werde Methoden zur Behebung in Artikeln mit der Implementierung jedes Moduls beschreiben):

Entstandene Schwierigkeiten

1. Dokumentation für das PLC

Die Beta-Tests des angegebenen PLC auf der MasterSCADA 4D-Plattform wurden vom Hersteller im Jahr 2012 angekündigt. Trotz der langen Existenz des Konzepts hat der Entwickler im Jahr 2019 lediglich ein 28 (!) Seiten umfassendes Handbuch zur Programmierung, welches kaum nützliche Informationen enthält, und die Screenshots im Handbuch stammen aus MasterSCADA 3D, was angesichts des geänderten Interfaces recht lustig ist.

Außerdem wird der Diskussionsstrang im Forum von 20 Themen aktiv von drei Anhängern und einem Vertriebsmanager unterstützt.

2. PLC-Architektur

Dies ist ein separates Thema zur Diskussion. Kurz gesagt: Die PLC kommuniziert mit den Modulen als Modbus RTU-Slave-Geräte, die zuvor mit einem Tool einzeln an den PC über einen RS-485-Konverter konfiguriert werden müssen.

Schlaue Leute können das sicher ohne Konverter über die PLC machen, indem sie die Module seriell in das Netzwerk anschließen und die erforderlichen Register schreiben, aber das kommt mit Erfahrung und einer Menge an Schmerzen.

Für einen Entwickler, der zum ersten Mal mit einer solchen Architektur konfrontiert wird, ist es überhaupt nicht benutzerfreundlich.
Außerdem neigen alle analogen Module aus unbekannten Gründen dazu, auszufallen und reißen dabei das gesamte RS-485-Netzwerk ins Unbekannte mit. Darüber möchte ich auch separat berichten, es ist eine ganze Odyssee. Das Problem besteht übrigens schon seit etwa 10 Jahren, und der Hersteller macht Witze darüber. „Man muss eingestehen, unsere Vorlagen sind nicht gelungen“, dennoch ist das die einzige Schnittstelle zur Kommunikation mit den Modulen, und die Leute haben ernsthaft angefangen, ihre Implementierungen von Modbus RTU zu schreiben.

Inzwischen neigte sich der Kamillentee dem Ende zu... Die Sonne ging unter.

3. IDE MasterSCADA

Über die grafischen Werkzeuge wollen wir nicht sprechen, ich habe sie nicht ausgiebig getestet, aber ich sage gleich, dass sie mir nicht gefallen haben.

Wir sprechen über die Implementierung des Datenaustauschs und die Sprachen des IEC-Standards:

Die physischen Eingänge und Ausgänge des Controllers sind keine globalen Variablen und können von jeder Stelle des Programms nicht über einen Alias angesprochen werden, zum Beispiel „DI1“. In jedes Programm müssen diese manuell eingefügt werden, dort wird eine lokale Variable erstellt, die den Wert erbt oder überträgt. Das heißt, die Essenz der PLC ist in meiner Sichtweise etwas verloren: Das Gerät sollte die Programmierung der Logik der physischen Kanäle auf das Niveau vereinfachen, „Wenn der Eingang DI1 aktiviert wird – schalten wir den Ausgang DO1 ein“, und so sieht das aus «Eingang DI1 — Variable LI1 — Variable LO1-Ausgang DO1», auch aus Unkenntnis dieses Prinzips kann IDE eine überraschende Warnmeldung ausgeben: «Boolean-Boolean-Konvertierung ist unmöglich» (wahrscheinlich ist eine der Variablen ein Zeiger, aber ich stelle mir vor, dass dies in der Version der Entwickler harmonischer aussieht).

Die Bibliotheken der Sprachen ST, FBD, SFC sind recht umfangreich und bieten eine große Auswahl für eine komfortable Programmierung, jedoch sind diese Komponenten keine Funktionen, sondern Klassen, in denen Methoden eingebettet sind. Viele von ihnen haben keine Hilfe mit Beschreibungen der Funktionalität und Datentypen. Sturheit führte mich zu den Bibliotheken des CodeSys-Kerns, von wo all diese Funktionen stammen; deren Dokumentation half mir.

4. Austausch mit dem SP307 Panel

Eine ziemlich interessante Veranstaltung für diejenigen, die ein paar Tage nichts zu tun haben.

Standard-GUI-Tests (HMI oder SCADA) für mich bestehen darin, 6 Tests durchzuführen:

  1. Lesen des digitalen Signals
  2. Schreiben des digitalen Signals
  3. Lesen des Ganzzahlwerts
  4. Schreiben des Ganzzahlwerts
  5. Lesen des Fließkommawerts
  6. Schreiben des Fließkommawerts

Dementsprechend zeichne ich 6 primitive Komponenten auf dem Bildschirm und überprüfe jede nacheinander.
Der Austausch erfolgt genau wie mit den Modulen, jedoch von einem separaten RS-232/485 Port des PLC, und scheint stabiler zu sein. Da es sich um einen HMI-Slave handelt, habe ich Änderungen geschrieben und alle 500 ms abgefragt, um keine Aktionen des Bedieners zu verpassen.

Die ersten 4 Punkte wurden ausgezeichnet erfüllt, jedoch gab es Probleme mit Punkt 5 und 6.

Wir senden Daten vom Typ Single Float, zeigen sie auf dem Bildschirm an und sehen, dass die Daten nicht stimmen, obwohl alle Ausgabeeinstellungen (Float, Dimension 1 Register und anderes) korrekt sind. Es wäre nicht wahr zu sagen, dass dieser Präzedenzfall nicht in der Dokumentation beschrieben ist, jedoch versuchen Sie mal, herauszufinden, wo und in welcher Form.

Nach hysterischem Durchprobieren aller Einstellungen, die die Daten und deren Übertragung betreffen, schreiben wir an den Support, die Antwort dauert im Durchschnitt 5-6 Kalendertage; wir folgen dem Standard-Support-Script: «Überprüfen Sie, ob die Stromversorgung eingeschaltet ist – überprüfen Sie die Softwareversion – bitte warten Sie noch eine Woche – versuchen wir es selbst zu klären».

Übrigens wurde das Problem durch das Setzen eines Häkchens an einem völlig unangemessenen Ort mit einer ebenso unangemessenen Beschriftung gelöst.

Im Funktionsumfang des Bildschirms ist die Eingabe eines analogen Signals im «Schieberegler»-Format nicht vorgesehen., kann nur in das Textfeld mit Zahlen eingegeben werden. Es ist einfach wunderbar, entweder drücken wir die Tasten „±“ und das Skript erledigt es selbst, oder wir geben die Zahlen von der Tastatur ein, wobei wir das sanfte Management irgendeines Antriebs vergessen.

Ich werde den Artikel nicht überladen, deshalb werde ich die Probleme auf der obersten Ebene in Teil 2 beschreiben.

Zusammenfassend möchte ich betonen, dass ich genügend Freiheit und viel Zeit hatte, um diese Probleme zu lösen, die auf den ersten Blick lächerlich erscheinen, aber viel Schmerz für den Betroffenen verursachen. Unter Zeitdruck mit solchen Problemen konfrontiert zu werden, ist kritisch.

P.S.: Alle hier dargelegten Thesen sind subjektiv und lediglich ein Versuch, Unvorbereitete zu warnen und nicht die Hersteller zu diskriminieren. Bitte betrachten Sie diesen Artikel genau aus dieser Perspektive.

Der zweite Teil ist bereits hier: klicken wir

Quelle: habr.com

60GB SSD 8Gb DDR4