# Praktische Versuche Der gewählte Messaufbau wurde bisher an zwei Kernschießanlagen getestet. Dazu wurden alle benötigten Sensoren im Steuerungsschrank temporär verbaut und die aufgenommenen Daten extern mit einer weiteren ET200 Siemens Steuerung verarbeitet. Bei den Kernschießmaschinen handelt es sich um eine Anlage mit einer Steuerung von Siemens und eine mit einer Allen-Bradley Steuerung. In beiden Versuchen wurden die elektrischen Werte der Einspeisung, die Ströme der Kleinstspannungsverbraucher und der Anlagenstatus anhand des Programms auf der Steuerung aufgezeichnet. Diese erfassten Rohdaten konnten zur Analyse und für die Erarbeitung der Middleware-Module des PLC-Connector Programms (siehe vorheriges Kapitel) wiederholt eingespielt werden. Zum Zeitpunkt der beiden Versuche fand noch keine tiefgehende Analyse statt. ## Siemens Anlage LFB65 Der erste praktische Test wurde an einer Kernschießmaschine vom Typ LFB65 in der KW 19 2022 durchgeführt. Als Sensoren sind hier zum Einen Strommessung an der $24\mathrm{V}$ Versorgung und zum Anderen eine Instrumentierung der elektrischen Einspeisung vorgesehen. ![Siemens Versuch](out/diagrams/hengli/Hengli.svg) Wie bereits im obigen Diagramm dargestellt, wird die Strommessung der $24\mathrm{V}$-Ebene durch einen digitalen Leitungsschutzschalter von IFM übernommen. Dieser besteht einem Kopfmodul (Typ DF2101) und bis zu 16 daran angereihten Sicherungskanälen. Das Kopfmodul besitzt eine IO-Link Schnittstelle, über die die Versorgungsspannung und die Ströme der einzelnen Sicherungskanäle abgefragt werden kann. ![Photo der eingesetzten 24V-Sicherungen](images/hengli-ifm-sicherungen.jpg) Das Kopfmodul DF2101 ist in diesem Versuch direkt an das zentrale $24\mathrm{V}, 40\mathrm{A}$ Netzteil der Anlage (links am Rand des Bildes) angeschlossen. Die 8 Sicherungsmodule vom Typ DF2220 mit je 2 Kanälen, welche individuell zwischen $1$ und $10\mathrm{A}$ einstellbar sind, übernehmen die Funktion der ursprünglich eingesetzten Sitop Sicherungen von Siemens (grau im Bild, zwischen dem Netzteil und den IFM Modulen). 4 von 5 Sitop-Sicherungen mit je 4 Kanälen sind komplett deaktiviert, wobei die letzte noch drei der ursprünglich 19 Ausgangskanälen und den Rest des Versuchsstandes (nächstes Bild) versorgt. Die Verteilung der Kanäle ist im Anhang als EPLAN-Auszug dokumentiert. Die zweite Sensorbaugruppe besteht zuerst aus drei Stromwandlern, die an der Einspeisung der Anlage verbaut sind. Sie messen somit den gesamten elektrischen Stromverbrauch der im Werk aufgebauten Anlage, inklusive der Standby-Verbräuche. Zu den nicht aufgenommenen Energieverbräuchen zählt wiederum die Stromaufnahme des Druckluftkompressors, denn die Anlage war zu diesem Zeitpunkt am pneumaischen Netz des Prüfstandes angeschlossen. Des weiteren werden bei den Prüfläufen der Anlagen nicht alle Anlagenteile aktiviert, da zum Beispiel während der Zyklen keine echten Sandkerne geschossen wurden. Der Wandlungsfaktor der bei der LFB65 Anlage eingesetzten Stromwandler beträgt $150\mathrm{A}:5\mathrm{A}$, was der maximalen Stromaufnahme dieser Anlage entspricht. Zur Digitalisierung der elektrischen Werte wird die Energiemeterkarte "AI Energy Meter" von Siemens eingesetzt. Diese ist über einen sechspoligen Trenner mit den eben genannten Stromwandlern verbunden, wie hier in Orange im Bild des Aufbaus zu sehen ist. ![Photo der Teststands an der LFB65 Anlage](images/hengli-interfacemodul.jpg) Am AI Energy Meter sind für die Messung der Versorgungsspannung auch die drei Phasen der Einspeisung angeschlossen. Diese werden vor den Hauptschalter der Anlage abgegriffen (siehe EPLAN Anhang 1) und mit einem dreipoligen Leitungsschutzschalter (LS) mit $6\mathrm{A}$ Nennstrom abgesichert. Der LS ist rechts vom Trenner montiert. Das Energy Meter ist auf einen sekundärseitigen Strom von $5\mathrm{A}$ und auf die Messung von drei L-N-Spannungen à $400\mathrm{V}$ eingestellt. Zur Fixierung des Sternpunktes der Spannungen ist zusätzlich zu den drei Leitern auch der Neutralleiter¹ der Einspeisung verbunden. *1) Es ist hierbei anzumerken, dass die Einspeisung in industriellen Anlagen, wie dieser Kernschießmaschine, ein kombiniertes PE-N System verwendet wird. Die Trennnung in Neutral- und Schutzleiter findet somit erst im Schaltschrank der Anlage statt. Links neben der Energiemeterkarte ist ein IO-Link-Master verbaut. Dieser ist über ein dreipoliges IO-Link Kabel mit dem Kopfmodul der IFM Sicherungen verbunden. Beide Karten stecken auf einer programmierbaren ET-200SP CPU. Diese befindet sich im obigen Bild direkt angrenzend zu den beiden Karten und ist mit der darüberliegenden Netzwerk-Switch per Ethernetkabel verbunden. Beide werden über die vorhin genannte Sitop-Sicherung mit $24\mathrm{V}$ Betriebsspannung versorgt.² *2) Auf dem Teststand befinden sich auch ein weiteres Netzteil, ein Leitungsschutzschalter und ein ET-200SP Interfacemodul, welche alle während des Versuchs nicht verwendet wurden. Die ET-200SP CPU erfasst periodisch die Messwerte der beiden per Rückwandbus verbundenen Siemens-Karten und sendet sie via S7-Protokoll an die die selbstgeschriebene Anwendung "PLC-Connector". Über IO-Link werden dabei alle $20\mathrm{ms}$ folgende Zustände der IFM-Sicherungen ermittelt: Der gemessene Strom je Kanal im Bereich von $[0.1,0.2,...,10.0]\mathrm{A}$, Schalt-, Überlast-, Kurzschluss-, Grenzwert- und Tasterzustände, sowie die Spannung am Kopfmodul. Vom AI Energy Meter werden zudem alle $60\mathrm{ms}$ die L-N-Spannungen, Leiterströme und Phasenwinkel der Drehstomversorgung aufgenommen. Das Programm der CPU besteht aus Das verwendete Ethernetnetzwerk ist eine Erweiterung des Überwachungsnetzes der Kernschießmaschine. Darin befinden sich üblicherweise die zentrale Steuerung, mobile Zugänge zur Programmierung der Anlage und das Bedienpult (HMI). In manchen Kernschießmaschienen von Laempe ist dort auch ein Box-PC mit der hauseigenen Laempe-Digital-Cockpit-Software (LDC) vorzufinden. Bei der im Versuch verwendeten LFB65-Anlage sind alle bereits vorhandenen Teilnehmer in der unteren Hälfte des Subnetzes `192.168.0.0/24` anzufinden. Zum Beispiel besitzt die zentrale Steuerung die Addresse `192.168.0.5`. Demzufolge werden für die Erweiterung des Netzwerks statische Addressen im Subnetz `192.168.0.192/26` eingesetzt. Die hinzugefügten Teilnehmer umfassen die ET-200SP CPU mit der IP-Adresse `192.168.0.206` und ein Laptop mit der Addresse `192.168.0.201`, der als Anwendungsserver fungiert. Die [PLC-Connector](https://gogs.justprojects.de/Master/smart-energy-monitor/src/jiangsu-hengli-LFB65/box-pc/application) Anwendung ist für den Versuch so konfiguriert, dass sie Daten von der zentralen Steuerung abfragt, Verbindungen von der ET-200SP CPU zulässt und alle Messwerte in zwei redundanten Datenbänken abspeichert. Die Abfrage der zentralen S7-1500 CPU erfolgt über das S7-Protokoll auf der Eternetverbindung zum Überwachungsnetzwerk der Anlage. Die Steuerung wurde von einem Laempe-Mitarbeiter so programmiert, dass sie eine große Menge an Ausgangszustandsbits in einen eigens zum Auslesen angelegten Speicherbereich (vgl. Datenbautein DB3 im Diagramm) kopiert. Beim Auslesen wird der Inhalt von DB3 als Bytearray zum PLC-Connector übertragen. Die Struktur des Statusflags im Datenbaustein ist dabei folgendermaßen definiert: | **byte[] \ LSB-0** | **7** | **6** | **5** | **4** | **3** | **2** | **1** | **0** | |------------------|---------------------------------------|---------------------------------------|-----------------------------|------------------------------|-------------------------------------|-------------------------|--------------------------------------|--------------------------------------| | **Byte 0** | Unterteil einfahren | Unterteil ausfahren | Auswerfer 1 heben | Auswerfer 1 senken | Auswerfer 2 heben | Auswerfer 2 senken | Abdrücker Seitenteil links einfahren | Abdrücker Seitenteil links ausfahren | | **Byte 1** | Abdrücker Seitenteil rechts einfahren | Abdrücker Seitenteil rechts ausfahren | Rolltor schliessen | Rolltor oeffnen | Gaswagen ausfahren | Gaswagen einfahren | Schwenkplatte abklappen | Schwenkplatte einklappen | | **Byte 2** | Losteil 1 Unterteil einfahren | Losteil 1 Unterteil ausfahren | Losteil 2 einfahren | Losteil 2 ausfahren | Losteil 3 einfahren | Losteil 3 ausfahren | Losteil 4 einfahren | Losteil 4 ausfahren | | **Byte 3** | Losteil 5 einfahren | Losteil 5 ausfahren | Seitenteil links schliessen | Seitenteil rechts schliessen | Seitenteil links und rechts oeffnen | Sandschleuse schliessen | Sandschleuse öffnen | Sandmessung 3 wege ventil schliessen | | **Byte 4** | Sandmessung 3 wege ventil oeffnen | Schuss | Hubtisch senken | Hubtisch heben | Oberteil heben | Oberteil senken | | | Für die Übertragung der Daten von der ET-200SP CPU werden zwei weitere Datenstrukturen eingesetzt. Die Erste umfasst die Messwerte der AI-Energy-Meter-Karte und besteht aus folgenden neun IEEE 754 LSB Fließkommawerten: | **byte[]** | Fließkommawert | Einheit | |------------|--------------------------|---------| | Byte 0-3 | Spannung $U_1$ | V | | Byte 4-7 | Spannung $U_2$ | V | | Byte 8-11 | Spannung $U_3$ | V | | Byte 12-15 | Primärstrom $I_1$ | A | | Byte 16-19 | Primärstrom $I_2$ | A | | Byte 20-23 | Primärstrom $I_3$ | A | | Byte 24-27 | Phasewinkel $\varphi_1$ | ° | | Byte 28-31 | Phasewinkel $\varphi_2$ | ° | | Byte 32-35 | Phasewinkel $\varphi_3$ | ° | Die zweite Datenstruktur beinhaltet die Statusinformationen der elektronischen Sicherung DF2101. Sie ist identisch zu der vom Hersteller IFM definierten Struktur der IO-Link Prozessdaten des Moduls (siehe [DF2101 Schnittstellenbeschreibung](https://www.ifm.com/download/files/ifm-DF2101-20190131-IODD11-de_V5/$file/ifm-DF2101-20190131-IODD11-de_V5.pdf) im Anhang) Beiden Strukturen ist außerdem ein Zeitstempel der CPU vorangestellt, welcher bei der genauen Bestimmung des Messzeitpunktes herangezogen wird. Der Zeitstempel besteht aus ganzzahligen Anzahl an Millisekunden, die seit dem Start der CPU vergangen sind. Er ist als vorzeichenlose, vier Byte LSB Zahl kodiert. Somit wird er circa aller 50 Tagen überlaufen, was auch bei der Implementierung der Zeitbestimmung im vorherigen Kapitel beachtet wurde. Die PLC-Connector Anwendung verwendet zur Kommunikation mit der ET-200SP CPU die `snap7` Pythonbibliothek. Diese Bibliothek stellt hier einen TCP-Server auf Port 102 bereit und emuliert damit das Verhalten einer S7-Steuerung. Die ET-200SP CPU baut anschließend eine Verbindung zu diesem Server auf. Aus der Sicht des SPS-Programms handelt es sich beim `snap7` Service um eine Partner-CPU, zu der nun aktiv eine Verbindung über das S7-Protokoll aufgebaut wird. Die ET-200SP CPU beginnt nun mit dem Senden der zwei Speicherbereiche. Der erste Bereich mit den Energiedaten wird in den emulierten Datenbaustein `DB2` und der zweite wird in den Baustein `DB1` der PLC-Connector Anwendung geschrieben. ## Allen-Bardley Anlage LL20 Der zweite Versuchsaufbau dient zur Demonstration der Anpassungsfähigkeit der Hardware an eine andere Anlagenstruktur, im Speziellen an Kernschießanlagen mit einer zentralen Compact Logix Steuerung von Allen-Bradley und der Verwendung des EtherNet-IP Protokolls. Er fand an einer Anlage vom Typ LL20 in der 20./21. KW 2022 statt. Wie auch beim ersten Versuch werden die elektrischen Werte der Einspeisung, die Stromverbräuche der Kleinstspannungsverbraucher und der Anlagenzustand erfasst. ![AB Versuch](out/diagrams/benton/Benton.svg) Zur Energieerfassung kommen hier die gleichen Baugruppen wie im letzten Versuch zum Einsatz. Für die 24V Strommessung werden wieder die elektronischen Sicherungen von IFM verwendet und zur Instrumentierung der Einspeisung wird die Energiemeterkarte in Kombination mit $50\mathrm{A}:5\mathrm{A}$ eingesetzt. Beide werden wieder von einer ET-200ST CPU gesteuert. Beim Auslesen der zentralen Steuerung ist jedoch ein großer Unterschied vorzufinden: Ihre Programmierung unterscheidet sich stark von der Programmstruktur einer Siemens CPU. Anstelle von Datenbausteinen werden hier sogenannte Tags verwendet, um interne Zustandsvariablen anzulegen. Diese Tags können über EtherNet/IP mit Hilfe der `pylogix` Bibliothek von der [PLC-Connector](https://gogs.justprojects.de/Master/smart-energy-monitor/src/benton-foundry-LL20/box-pc/application) Anwendung ausgelesen werden. Zum Lesen des Anlagenstatuses wurde in diesem Fall kein neuer Speicherbereich angelegt; der Zugriff auf die Flags kann nämlich direkt erfolgen: | **Tag[Byte offset]** | LSB Bit Index | Name | |----------------------|---------------|------| | B14[31] | 1 | ejector_move_down | | B14[32] | 1 | ejector_move_up | | B14[34] | 1 | carriage_move_out | | B14[35] | 1 | carriage_move_in | | B14[37] | 1 | side_clamps_open | | B14[38] | 1 | side_clamps_close | | B14[42] | 1 | table_move_down | | B14[43] | 1 | table_move_up | | B14[45] | 1 | gassing_platemove_out | | B14[46] | 1 | gassing_plate_move_in | | B14[48] | 1 | cope_eject_plate_move_out | | B14[49] | 1 | cope_eject_plate_move_in | | B14[51] | 1 | top_part_move_up | | B14[52] | 1 | top_part_move_down | | B14[54] | 1 | front_door_open | | B14[55] | 1 | front_door_close | | B14[57] | 1 | pneumatic_loose_part_1_move_out | | B14[58] | 1 | pneumatic_loose_part_1_move_in | | B14[60] | 1 | hydraulic_loose_part_2_move_out | | B14[61] | 1 | hydraulic_loose_part_2_move_in | | B14[63] | 1 | hydraulic_loose_part_3_move_out | | B14[64] | 1 | hydraulic_loose_part_3_move_in | | B14[69] | 1 | clamping_device_side_clamp_left_clamp | | B14[70] | 1 | clamping_device_side_clamp_left_loose | | B14[72] | 1 | clamping_device_side_clamp_right_clamp | | B14[73] | 1 | clamping_device_side_clamp_right_loose | | B14[81] | 1 | clamping_device_shoot_plate_clamp | | B14[82] | 1 | clamping_device_shoot_plate_loose | | B14[83] | 1 | sand_refill | | B14[84] | 1 | sand_gate_close | | B14[85] | 1 | sand_gate_open | | B14[93] | 1 | shoot | | B14[103] | 1 | clamping_device_gassing_plate_clamp | | B16[12] | 1 | central_amine_supply_refill | | B16[13] | 1 | gassing | | B16[15] | 1 | gas_generator_process_coldbox_betaset | | B18[31] | 1 | mixer_lid_move_up | | B18[32] | 1 | mixer_lid_move_down | | B18[35] | 7 | mixer_wing_motor_on | | B18[37] | 1 | mixer_move_up | | B18[38] | 1 | mixer_move_down | | B18[40] | 1 | sand_dosing_unit_inlet | | B18[42] | 1 | sand_dosing_unit_outlet | | B18[44] | 1 | binder_1_sucking | | B18[45] | 1 | binder_1_blowing | | B18[47] | 1 | binder_2_suction | | B18[48] | 1 | binder_2_blowing | | B18[50] | 1 | binder_3_sucking | | B18[51] | 1 | binder_3_blowing | | B18[53] | 1 | binder_4_sucking | | B18[54] | 1 | binder_4_blowing | | B18[59] | 1 | additive_1_dosing | | B18[60] | 1 | additive_2_dosing | | B18[62] | 1 | mixer_bowl_direction_eject_1_machine | | B18[63] | 1 | mixer_bowl_direction_eject_2_scrap | | B18[65] | 1 | cleaning_cylinder_move_up | | B18[66] | 1 | cleaning_cylinder_move_down | | B18[68] | 1 | mixer_sand_slide_move_to_machine | | B18[69] | 1 | mixer_sand_slide_move_to_scrap | | B18[71] | 1 | vertical_mixersand_slide_gateclose | | B18[72] | 1 | vertical_mixer_sand_slide_gate_open | | B18[73] | 1 | sand_sender | Diese Tags werden von der PLC-Connector Anwendung aller $20\mathrm{ms}$ über das EtherNet/IP Protokoll (EIP) von der Steuerung abgefragt. Dabei können mehrere Leseanfragen in einem EIP Paket kombiniert werden, was die Anzahl an benötigten Ethernet Roundtrips gering hält. Für die Anbindung an das Überwachungsnetzwerk der Allen-Bradley-Steuerung wird auch ein anderes Subnetz verwendet. Das Subnetz ist hier `192.168.1.0/24` und die IP-Adresse der Steuerung lautet `192.168.1.15`. ## Vergleich der Versuche Bei der LL20 handelt es sich im Vergleich zur LFB65 um eine kleinere und kompaktere Kernschießmaschine. In den Versuchen konnten fast identische externe Komponenten eingesetzt werden. Der einzige Unterschied in der Hardware war die Verwendung von Stromwandlern mit unterschiedlichen Umsetzungsfaktoren. Im ersten Test wurden Wandler mit einem Umsetzungsfaktor von 150A:5A eingesetzt, während im zweiten Test ein Faktor von 50A:5A ausreichend war. Die Kommunikation mit den Sensoren war in beiden Fällen identisch, da dies durch eine externe Steuerung übernommen wurde. In Zukunft wird für den Aufbau jedoch keine externe Steuerung mehr nötig sein, denn diese übermittelnde Funtion der ET200 CPU soll auch durch die Steuerung der jeweiligen Anlage übernommen werden. Die Versuche unterschieden sich auch im Kommunikationsprotkoll zwischen dem Computer und der jeweiligen Steuerung der Anlage. Es wurden zwei unterschiedliche Versionen der Verarbeitungssoftware eingesetzt; bei der einen fand die Kommunikation mit der Steuerung über des S7-Protokoll statt und bei der anderen über EtherNet-IP. Beide Protokolle bauen auf TCP/IP auf und sind so beide in der Anwendungsschicht des Internetprotokolls anzufinden.