Projektblog von
Tom Ruby
Hallo und herzlich Willkommen liebe Besucher*innen meines Projektblogs bzw. Tagebuchs zur Projektphase im LM15!
Gerne möchte ich euch ein paar genauere Einblicke in meinen Prozess der Projektarbeit geben und euch auf dem Weg bis zum finalen Tag, der Kundenübergabe am 4. Februar beim alljährlichen Infotag an der BBS1 Mainz, mitnehmen.
Viel Spaß beim Lesen und alles Liebe,
Tom Ruby
13.06.2022 - 26.06.2022
Ausarbeitung des Skriptes und Erstellen des Bewerbungsvideos für den Xplore Wettbewerb 2023
27.06.2022
Abgabe des Bewerbungsvideos für den Xplore Wettbewerb 2023
12.09.2022
Nach der Kickoff Veranstaltung in der Aula wurde das Projekt zum 1. Mal in der Realität in W01 angeschaut. Schnell kamen uns verschiedene Ideen in den Sinn. Aber auf den 1. Blick fühlte es sich doch auch ziemlich überwältigend und groß an. Ich hatte das Gefühl, erstmal komplett in der Luft zu hängen und wusste nicht wo vorne und hinten ist und wo es anzufangen gilt. Also verschafften wir und alle als Team erstmal einen Überblick, über das, was bereits da ist und wo es einfach ist anzusetzen.
Das Gerät war nicht betriebsbereit.
Im Team besprachen wir dann mit Vorbehalt erste Verantwortlichkeiten für gewisse Themengebiete im Team.
Mein Themengebiet, worum ich mich kümmern werde, ist die Programmierung der Steuerung, Visualisierung des HMI's und Einbindung der RFID-Anmeldung.
Eine erste Recherche zur verbauten Steuerung wurde gestartet und der Download des entsprechend benötigten Engineering Tool wurde gestartet.
Die Steurung AXCF2152 wurde im Schaltschrank abgeklemmt und ausgebaut damit ich mich mit dieser in Ruhe zu Hause in den nächsten Wochen vertraut machen kann.
19.09.2022
Die ganze letzte Woche habe ich mich mich intensiv mit dem Engineering Tool PLCNext Engineer auseinandergesetzt. Dazu habe ich mir über die Woche verteilt eine Youtube Video Reihe angeschaut, die 15 Videos á ca. 10 Minuten lang war. Nachdem ich damit durch war, hatte ich langsam das Gefühl bekommen, mich besser in der Software auszukennen. Heute habe ich dann zum 1. Mal versucht, den Programmier-PC an die Steuerung anzuschließen und habe geschaut, ob es möglich ist das vorhandene, wohlmöglich geladene Projekt auf der Steuerung in meine Programmdatei zu übernehmen.
Dies schlug leider fehl und es war keine Logik auf der Steuerung programmiert.
Dies war zunächst ein großer Dämpfer, weil es erstmal bedeutete, dass wir ohne funktionierendes Steuerungsprogramm dastehen.
Heute wurden weitere Details zu den verschiedenen Aufgaben besprochen und wo möglich konkretisiert.
26.09.2022
- Mit Hr. Decker über die Pflichtenheftabgabe am Freitag den 30.09. gesprochen
- Bei ihm habe ich auch angesprochen, dass wir bis heute als Gruppe von Herrn Wohlfarth noch keine Rückmeldung bekommen haben.
- Die Idee, dass noch 2 Meldeleuchten in den Schaltschrank eingebaut werden könnten kam mir in den Sinn.
- Eine weitere optionale Möglichkeit eines Not-Aus Fußtasters kam im Gespräch mit dem Projektleiter auf. Das könnte noch zusätzlich mit eingebunden werden, da es die Sicherheit erhöht
- Angefangen mir den aktuellen Schaltschrank anzuschauen und diesen mit dem vorhandenen Schaltplan abzugleichen.
- Die zusätzliche Projekt-Aufgabe einer neuen Schaltplan Dokumentation macht Sinn
- Mit Manuel weiter die Aufgabenverteilung in der Gruppe besprochen.
- Grob festgelegt, dass ich mich auch um die Anbindung des NFC-Readers für die Anmeldung via Raspberry Pi an die Steuerung kümmern werde. Dafür wurde der im Projekt verfügbare Pi und das NFC Lese-Schreibmodul abgebaut und mit nach Hause genommen, sodass ich mich dort in die Thematik einarbeiten kann.
30.09.2022 (KW39)
- Heute wurde dem Pflichtenheft über viele Stunden der letzte Schliff verpasst
- Das Ergebnis steht und wir alle sind sehr zufrieden mit dem knapp 20-Seitigen Dokument
- Am Wochenende sollen noch einmal letzte Syntax- und Rechtschreibfehler ausgebessert werden und eventuelle Ergänzungen gemacht werden, sodass am Montag wie vereinbart mit Projektleiter Decker die finale Version zur beidseitiger Unterschrift steht
- Mit der Fertigstellung des Pflichtenheftes steht ein wichtiger Teil der Projektarbeit und es können die kommenden Aufgaben fokussiert und entschieden angegangen werden.
03.10.2022 (KW40)
- Tag der Deutschen Einheit - Schule geschlossen
- Zuhause weiter mit der SPS beschäftigt und mich darin eingearbeitet
07.10.2022 (KW42)
- Den vorhanden Raspberry Pi im Projekt, der uns von den Vorjahren schon zur Verfügung stand, zu Hause in Betrieb genommen.
- Einarbeitung in den Raspberry Pi Model 3B
- Erste Erfahrungen im Umgang mit einem Pi gemacht, dazu einschlägige Videos angeschaut und auf Seiten im Netz recherchiert
- Sicherung des aktuellen Image-Standes
- Ein eigenes Image auf eine SD-Karte aufgesetzt und den Pi hochgefahren. Hilfe durch Anleitungen und Videos im Netz.
10.10.2022 (KW42)
- Recherchearbeiten über den NFC-Reader ACR122U und der Teilaufgabe:
-Einbindung des NFC-Readers zur Anmeldung- begonnen.
- Den Umgang mit dem Pi weiter geübt und weitere Erfahrungen gemacht
14.10.2022 (KW42)
- Umgang mit dem Raspberry Pi weiter erlernt
- Nach Recherchen über eine mögliche technische Umsetzung auf die Software Node-Red gestoßen.
Node-Red ist ein grafisches Entwicklungswerkzeug, das man vor allem bei Anwendungsfällen im Bereich des Internet der Dinge einsetzt. Die Ein-/Ausgabe sowie Verarbeitung der Daten verläuft in "Flows" und diese werden im Baukastenprinzip zusammengesetzt.
Eine große Auswahl an Bausteinen deckt die gängigsten Dienste und Technologien ab. - Mit dem Programm Node-Red auseinandergesetzt.
- Im Programm Node-Red sollen die Daten vom RFID Leser ankommen und dort weiterverarbeitet werden und an die SPS gesendet werden
17.10.2022 (KW42)
- Node-Red auf dem Pi heruntergeladen und installiert, 1. Erfahrungen im Umgang mit Node-Red gemacht und Videos/Websites dazu angeschaut
- Informationsbeschaffung über die Schnittstelle von Node-Red zur SPS eingeholt.
18.10.2022 (KW42)
- Die Lösung für die Schnittstelle von Node-Red zur SPS ist dabei OPC UA.
In Videos und auf Websites mit dieser Thematik auseinandergesetzt. - Mit OPC UA wird ein allgemeiner Standard für den plattformunabhängigen Zugriff auf Automatisierungskomponenten ermöglich. OPC steht für Open Platform Communication.
- Testweise Variablen für OPC im Engineering Tool PLCNext freigegeben und die benötigte Software "UA Expert" auf Programmiergeräte heruntergeladen und installiert.
- In UA Expert den OPC UA Server, der auf der Steuerung läuft, eingebunden und geschaut, ob die Variablen, die ich zuvor freigegeben habe, sichtbar sind. Dies hat erst nicht funktioniert, da noch in PLC Next ein paar Einstellungen im Reiter OPC Server vorgenommen werden mussten. Danach waren die Variablen sichtbar.
20.10.2022 (KW42)
- Nach Recherche Download und Installation von der Website Github der aktuellen Version der Software LIB NFC und die benötigte weitere Software um die Serielle Schnittstelle des USB-Gerätes vom Reader zu lesen
- Dabei weitere Erfahrungen im Umgang mit dem Pi gemacht, z.B. wie man über die Kommandozeile Programme herunterlädt, entpackt und installiert.
- 1. kleiner Erfolg, da die jeweilige UID der Tags über einen Befehl auf der Kommandozeile via Reader ausgelesen werden konnten.
- Nächste Schritte sind dann wie man die Tags beschreiben kann (evt. ist auch nur die UID nötig, die ich dann mit der auf der SPS hinterlegten UID's vergleichen will) und wie die Tag-UID jetzt zur Pi-Software Node-Red kommt.
24.10.2022 (KW43)
- Treffen mit Gregor Wohlfahrt von der Firma SEW in der Schule
- Absprache mit ihm welche Lösungen für unsere geplante Umsetzung der Rekuperation in Frage kommen.
- Ein Rekuperationsmodul, das von SEW verfügbar wäre, kommt nicht in Frage, Aufgrund zu langer Lieferzeiten.
- Eine Lösung ist denkbar, dass die Zwischenkreise im Eingang der beiden Frequenzumrichter gekoppelt werden und dieser dann, in dem Moment wenn der Lastmotor "generatorisch" wird im Trainingsbetrieb, den Zwischenkreis "auflädt". Im Zwischenkreis steigt die Spannung dann auf die maximal Spannung und bei Energiebedarf bei motorischer Last muss dann weniger Strom vom Netz fließen.
- Dies stellt für unsere Anforderung nicht die optimale Lösung, da wir die gewonnene Energie weder speichern noch ins Netz speisen können.
- Die Lösung der Zwischenkreiskopplung ist somit leider nur eine schwache Lösung, leider sind uns in diesem Fall aber die Hände gebunden und wir müssen das so annehmen und das beste daraus machen.
- Eine Idee ist es, die Spannung im Zwischenkreis zu "monitoren" und diese zu visualisieren am HMI, sodass Trainierende sehen, wenn der Motor "generatorisch" wird und elektrische Energie erzeugt werden würde.
25.10.2022 (KW43)
Nach vielen Versuchen und verzweifelten letzten 4 Tagen, vorallem der Unsicherheit, da ich partout nicht weiterkam mit dem Problem, die UID's via dem Reader ACR122U über eine Schnittstelle zum Programm Node-Red zu bringen, habe ich mich dazu entschlossen, den Pi/MC kompatiblen RFID Reader MFRC522 zu versuchen. Der Griff zu dieser Hardware war fast schon ein Glückgriff, denn ich hatte mir vor einigen Jahren bereits ein Arduino Test-Kit gekauft, bei welchem dieser Reader dabei war. Am Boden liegend und der Verzweiflung nahe habe ich recherchiert, wie der MFRC522 an die GPIO des PI's angeschlossen werden. Fix wurden mit Hilfe der Anleitung aus dem Netz die notwendige Software installiert und keine Stunde später hatte ich die UID's in der Kommando Zeile auf dem Pi eingelesen.
Soweit war ich bereits vorher schon, doch jetzt hatte ich große Hoffnung. Ich erinnerte mich daran das ich gesehen hatte, dass in Node-Red bereits ein entsprechend passendes Node für das Lesen von Tags über den MRFC522 zur Verfügung steht. Dieser musste über die Palette nur noch heruntergeladen werden. Dieser Node wurde nach dem Download direkt an ein Debug-Node geknüpft und dann kam der große Moment: DER JEWEILIGE TAG VOM CHIP/ DER KARTE WAR ENDLICH IN NODE-RED ANGEKOMMEN !!
Ein wahrlich feierlicher Moment, denn die Tage zuvor war ich wirklich mit meinem Latein am Ende und biss mir teils unter Tränen die Zähne aus.
- Nun geht es an die letzte Schnittstelle, nämlich der zwischen der SPS und Node-Red, via OPC UA
- Die Tage zuvor hatte ich mich parallel schon mit OPC UA auseinandergesetzt, meine Variable in der Steuerung freigegeben und den Server konfiguriert.
- Die nächsten Tage wird dies die Aufgabe sein.
26.10.2022 (KW43)
Auf den großartigen Erfolg von gestern erfolgte sofort wieder die Ernüchterung. Ich fühle mich gerade wie in einer Achterbahn der Gefühle. Nachdem ich dachte, dass die Verbindung der anderen Schnittstelle von SPS <--> Node-Red nun ein leichtes sein würde, da ich mich auch schon die Woche vorher damit beschäftigt hatte, kam ich auf dem Boden der Tatsachen wieder an. Die OPC UA Client Schnittstelle in Node-Red, konnte einfach keine Verbindung zum OPC UA Server herstellen. Eine Verbindung kam nicht zustande.
Das Debug-Node gab mir immer wieder die gleiche Fehlermeldung aus und lange Recherchen, was dahinter stecken könnte, führten nicht zum Erfolg. Nach unzähligen Anleitungen und Videos in YouTube und immer wieder Probieren und Hoffen, einen entscheidenden Tipp zu bekommen, gab ich für heute auf.
Wenn mich die Geschichte, ja gar Krise mit dem NFC-Reader aber eines lehrte, dann ist es das, dass Aufgeben nicht in Frage kommt und keine Option.
Parallel nahm ich schon Kontakt zu einem Mitschüler auf, der für sein Projekt auch mit dem OPC Server arbeiten muss, um vlle. im Austausch mit ihm meinen Fehler zu finden.
Die Sicherheit, dass ich der Fehler sein musste, war mir nach diesem Tag absolut klar.
Der Tag musste mit diesem Dämpfer ein Ende nehmen. Auf ein Hoch am Vortrag kam das Tief. Aber auf das Tief kommt bekanntlich auch immer wieder ein Hoch.
- Einer unserer Vorgänger und gleichzeitg die Erbauer der Anlage, hat mir heute das Steuerungsprogramm mit dem alten Stand von vor 2 Jahren zukommen lassen. Nun kann ich mich damit einmal auseinandersetzten in den nächsten Wochen und das als Grundlage verwenden.
Das ist im Gegensatz zum anderen Teil des heutigen Tages eine tolle Nachricht für mich und uns als Team, denn von vorne zu beginnen bei 0, das wäre ein Riesen Aufwand gewesen.
27.10.2022 (KW43)
Und heute ist das Hoch auch schon direkt da!
Es hat funktioniert und ich fand meinen Fehler!
Es ist schon fast etwas unangenehm, diesen Fehler gemacht zu haben, aber zugleich war es mir eine absolute Lehre.
Aber von vorne:
Ich begann direkt am Morgen weiter zu machen an der Fehlersuche. Dabei stieg ich immer weiter in Foren ein und versuchte mit der ausgegebenen Fehlermeldung im Debug-Fenster dem Fehler auf die Schliche zu kommen.
Nach einigen Stunden, verstärkte sich ein Gefühl bzw. Verdacht in mir, dass das Problem ein Netzwerk Problem sein könnte. Bei wenigen Threads zu diesem Fehler fiel mir auf, dass diese nicht größer thematisiert wurden, sondern das Problem für den Ersteller sich offensichtlich immer sehr schnell erledigte.
Nachdem ich dann einen ersten Kommentar las, bei welchem der Schreiber davon berichtete, dass er bei seiner Angelegenheit mit der Verbindung vom OPC-Server zum Client auf Node-Red von seinem Netzwerk-Admin seines Arbeitgebers Änderungen vornehmen lassen musste, passte ein 2. Thread genau in die gleiche Kerbe. Bei diesem erfragte der Ersteller um Hilfe mit fast der gleichen Problematik, die ich hatte. Nach wenigen Kommentaren kommentierte der Ersteller voller Scham, dass es sich bei ihm um einen Netzwerk-Konfigurations-Fehler handelte. Ergänzt war der Kommentar mit einem "Scham-Smiley". Das brachte mich dazu, mich mit der IP-Adressierung der Ethernet-Schnittstelle meines PI's auseinanderzusetzten. Ich schaute mir verschiedene Websites und Videos an und gelangte dann auf den richtigen Weg. Dem PI musste eine feste, statische IP-Adresse zugewiesen werden, mit der dieser immer adressierbar ist. Diese IP-Adresse des PI's muss natürlich im gleichen Netz liegen, wie die meiner anderen Teilnehmer im Netz, von Steuerung, über Programmiergerät, bis Hin zu HMI und FU's.
Das setzte ich mit Hilfe der Videos über die Kommandozeile um, und es war geschafft.
Sofort baute der OPC UA Client auf dem Pi die Verbindung zum Server auf der Steurung auf.
Das bedeutete, dass die Aufgabe, die Anmeldung über NFC's umzusetzen, in diesem Moment zu 90 % umgesetzt war! Was ein Erfolg!
Dies feierte ich, denn ich habe alleine dafür mindestens 20 Stunden gebraucht. Über die Anbindung des Readers zu Node-Red will ich garnicht so recht nachdenken, dafür reichten die 20 Stunden sicher nicht.
Aber auf dem Weg dahin bis jetzt konnte ich viel Lernen und Erfahrungen machen, die mir nun keiner mehr nimmt. Darauf bin ich auch sehr stolz.
02.11.2022 (KW43)
- Seit einigen Tagen versuche ich bereits, auf meinem privaten Standart Laptop und PG für das Projekt die Software Movisuite von SEW zu installieren. Jedesmal habe ich wieder die gleiche Fehlermeldung und die Software will sich einfach nicht installieren lasse. Dies bringt mit mal wieder in ein kleines Tief, denn jetzt einen neuen Laptop extra nur dafür kaufen zu müssen, das wäre schon Wahnsinn.
Erstmal fällt mir auf die schnelle keine Lösung ein und ich versuche es einfach immer weiter. Fakt ist es muss bald eine Lösung her. - Mit dem Programmstand von vor 2 Jahren begonnen mich zu beschäftigen und zu verstehen, wie die Logik gemacht wurde. Dabei ist es mir besonders wichtig, die Grundkonzepte der Logik in der Tiefe zu verstehen, um das als Grundlage zu verwenden, auf derer ich meinen eigenen Code schreibe/baue.
- Ebenfalls mit der Visualiserung begonnen mich in der Tiefe zu beschäftigen.
Der Youtube Kurs zur Steuerung hat mir zwar bereits schon 1. Einblicke gegeben, aber am Projekt ganz konkret ist das nochmal eine ganz andere Nummer. - Überlegung besteht, die Programmdatei wirklich von ganz von vorne aufzusetzen, wobei mir der alte Stand nur als Hilfe und Stütze dienen soll. Erstmal werde ich aber einen alten Stand beginnen auf unsere Bedürfnisse und Anforderungen hin umzuprogrammieren und die Visualisierung zu designen, auch um einfach praktische 1. Erfahrungen zu sammeln, gerade weil vieles neu ist. Bei der Visualisierung beginnend, mit der ich kaum bis keine Erfahrungen habe, bis hin zum Umgang mit dem strukturierten Text über diverse Vergleiche und Counterfunktionen in Kombination mit Flanken.
Es ist keine kleine Herausforderung.
05.11.2022 (KW44)
- Heute kam mir die Idee, das es wohlmöglich klug wäre, wenn über die NFC-Tags nur die einzigartigen UID's eingelesen werden und dann auf der Steuerung verglichen werden. Aktuell sind die Tags mit Namen bereits beschrieben und diese Namen schicke ich dann über die String Variable direkt zur SPS.
- Wie es nur über die UID's umsetzbar ist, das wird Aufgabe der nächsten Tage.
- Zu meinem Problem mit der MOVISUITE Software kam mir am Wochenende auch eine sehr gute Idee. Ich habe noch bei meiner Familie in der Heimat meinen alten Laptop, den ich vor 10 Jahren kaufte. Auf diesen will ich versuchen, die MOVIESUITE herunterzuladen und zu installieren. Ich hoffe das es klappt. Dann könnte dieser Laptop nämlich das feste PG für das Projekt werden.
07.11.2022 (KW45)
- Vortrag von Gregor Wohlfahrt (SEW) über Aktuelles aus der Antriebstechnik in der Industrie
- Im Anschluss kam Hr. Wohlfahrt bei uns vorbei und brachte uns eine Leitung mit, mit der wir die Wicklungen des Motors kurzschließen konnten.
Die war eine Probe um zu sehen, ob der Trainingshebel damit zum Stillstand kommt. - Dieser Versuch funktionierte erfreulicher Weise und das Problem der Sicherheitseinrichtung können wir über den Kurzschluss der Wicklungen umsetzten.
- Heute hatte ich auch das erste Mal den Raspberry Pi mit in der Schule dabei, und wollte die ersten Test vor Ort unternehmen. Dadurch, dass eigentlich ein Monitor via HDMI gebraucht wird, um auf die GUI des Raspberry PI's zugreifen zu können, lernte ich die Möglichkeit von VNC kennen.
Ich aktivierte VNC auf dem Pi und lud mir den VNC-Viewer auf mein PG herunter. Via VNC ist es kinderleicht, über die IP-Adresse des Pi's auf diesen grafisch zuzugreifen. Node-Red ist zwar über den Browser mit der IP des PI's auch erreichbar, falls jedoch etwas auf dem PI direkt gemacht werden muss, ist diese Möglichkeit Gold Wert und erspart einen separaten Monitor nur für den Zugriff auf den Pi. - Als Team entschieden wir, dass wir das Loch für den NFC-Reader größer Bohren müssen, da der Edelstahl die Kommunikation zum Reader stört und die Anmeldung verzögert. Dies fiel bei dem Praxis Test auf.
Die Aufbohrung stellt dabei eine wunderbare Aufgabe für unseren Produktionsautomatisierer im Team da. - Wir besprachen erste Ideen, wie wir das optisch gut aussehend umgesetzt bekommen.
Es wurde klar, dass wir den Reader, der ja nur aus einer kleinen Platine besteht, in eine Box setzen wollen, was diesem auch zum Schutz dient. Ein 3D-Druck ist für unser Bedürfnis dafür das allerbeste, was wir dann auch direkt beschlossen.
08.11.2022 (KW45)
- Änderungen im Profinet-Knoten im Programm vorgenommen und bei den FU's die Standartgatewayadresse 192.168.1.1 eingetragen. Diese Idee kam mir über Nacht, und bei der nächsten Gelegenheit vor Ort möchte ich testen, ob die Kommunikationsprobleme zu den FU's damit erledigt sind
- In diesem Zuge habe ich einmal für alle Teilnehmer in meinem Anlagen-Netzwerk, inklusive meiner 3 verschiedenen Programmiergeräten, deren IP-Adressen notiert um bei Änderungen zu wissen, welche IP für die einzelnen Geräte vorgesehen sind.
10.11.2022 (KW45)
- Begonnen die Bestellliste auf der Website von Phoenix Contact anzulegen und zu schauen, was wir für unser Projekt noch benötigen.
- Die wichtigsten Dinge waren dabei diverse USB-Leitungen, zum einen die, um den Pi im Schaltschrank anzuschließen, zum anderen die Leitung die wir zum USB-Ladeport neben dem HMI legen
- Ein weiteres wichtiges Bauteil ist das 5V Netzteil, um sowohl den Pi, als auch den Ladeport mit Spannung zu versorgen. Dabei fiel die Auswahl auf ein 40 Watt 5 V Netzteil, da dieses mit 8A mehr als genügend Strom liefert und auch noch ein Puffer mit dabei ist.
- Ein Gehäuse für den Pi wurde mit auf die Bestellliste genommen, um diesen auf dem DIN-Rail , der Hutschiene, im Schaltschrank optisch sauber integrieren zu können.
- Weiteres Material sind neben neuen Klemmensätzen auch Beschriftungsmaterial, sodass die Anlage auch optisch etwas her macht.
11.11.2022 (KW45)
- Ein Gehäuse für den NFC-Reader wurde mittels 3D-Drucker angefertigt.
12.11.2022 (KW45)
Heute habe ich mich damit auseinandergesetzt, wie ich den Anmeldevorgang so umsetzten kann, dass ich nur die UID's der RFID-Tags einlese, und dann über ein Vergleicher eine andere String Variable beschreibe und in der Visualisierung verknüpfe.
Bis heute war es so, dass ich die Tags individuell mit den Namen beschrieben hatte, was in der Praxis jedoch mehrere Nachteile hat. Zum einen ist es nicht so leicht, die Tags mal eben auf einen anderen Namen zu schreiben, da ich hierfür ein Python Programm starten müsste, das die Tags mit Namen beschreibt. Dieses Python Programm kann jedoch nicht auf den Reader zugreifen wenn dieser in Node-Red eingebunden ist. Der andere Nachteil ist, dass es sehr aufwändig wäre, jedes Mal bei einer Namensänderung eine andere Hardware und Software verwenden zu müssen. Die Zuweisung des Namens über eine separate Variable in der Steuerung ist also die Lösung und optimal.
Dazu wurde der Code geschrieben und "gedebuggt", was ganz schön Zeitaufwändig war.
Bei der Programmierarbeit habe ich weitere wichtige und wertvolle Erfahrungen im Engineering Tool gemacht und kenne mich nun immer besser und souveräner aus.
1. praktische Erfahrungen im Programmieren mit dem strukturierten Text, einer höheren Programmiersprache, habe ich ebenfalls heute das erste Mal gemacht.
Dabei kamen mir das gelernte und die Erfahrung aus LM10 sehr zu gute.
Das Ergebnis ist sehr gut geworden, worauf ich auch stolz bin, gerade weil ich vorher mit dem ST noch nicht gearbeitet habe.
Die Zykluszeit des Task mit der Abfrage der Datensätze wurde auch noch deutlich runtergenommen, sodass die Zyklusrate sich deutlich erhöht und ein schnelleres einlesen der UID's der Tags und Zuweisen der Namen möglich ist.
13.11.2022 (KW45)
- Mit der Projektier-Software MOVIESUITE auseinander gesetzt und 1. Schritte im Tool gemacht.
- Nach meinen Erfahrungen, die ich nun mit PLCNext und anderen neuen komplexen Software gemacht habe, habe ich gemerkt, dass es einfach eine gewisse Zeit braucht, um sich zurecht zu finden. Diese Zeit muss und habe ich mir heute in Ruhe genommen.
- Dazu habe ich mir erste Gedanken gemacht, wie die Inbetriebnahme denn aussehen wird.
- Was mir zu aller erst in den Sinn kam ist, dass bei der Inbetriebnahme der Antriebsstränge das aller wichtigste ist, mit voller Konzentration dabei zu sein, denn die Welle darf sich dabei auf KEINEN FALL in einer rotativen Bewegung drehen. Dies würde das Gerät wohlmöglich erheblich beschädigen bzw. könnte es eine große Gefahr für den Mensch darstellen. Ich habe mir geschworen, bei der Anfang des neuen Jahres anstehenden Inbetriebnahme absolut hellwach zu sein und Sicherheitsvorkehrungen zu treffen.
14.11.2022 (KW46)
- Ausführlicher Test vorgenommen wie sich der NFC-Reader und die Anmeldung nun mit größer gebohrtem Loch und somit deutlich kleineren Störgröße verhält
- Der Test verlief sehr positiv, was uns alle 3 sehr zufrieden stimmte
- Im Team besprochen, wie wir nun den Reader am Panel gestalten wollen
- Die Veränderungen, die ich im Programm und der Visualiserung am Wochenende erarbeitet habe am Projekt vor Ort getestet.
- Über die Umsetzung des Kurzschlusses der 3 Motorwicklungen mittels Schützen im Ausgang des FU's gesprochen. Ein Plan soll an G. Wohlfahrt gesendet werden und mit ihm besprochen werden.
17.11.2022 (KW46)
- Versucht mit der Software Movisuite von SEW die Frequenzumrichter zu erreichen und eine Verbindung mit diesen aufzubauen.
- Der Verbindungsversuch hat nach mehrfachen Versuchen dann auch funktioniert, jedoch steht die Verbindung der FU's mit PLCNext und der Steuerung nach wie vor noch nicht. Die Module für die I/O Datenwörter werden im Programm nicht eingelesen und es gibt nach wie vor Unterschiede zwischen den Online gescannten Geräten und den im Programm via GSDML Datei geladenen Geräten, sowie unterschiedlichen Revisionsnummern.
- Dafür werde ich mich mit Kollegen, die ebenfalls mit SEW FU's arbeiten, die nächsten Wochen austauschen und im Worst-Case muss ich mich an den Service von Phoenix Contact bzw. SEW wenden.
- Einen Not-Aus Grobhandtaster Fußtaster besorgt, der in den Notauskreis integriert werden soll --> Aufgabe Manuel und Tobias
- Bei der Firma AZ-Delivery 10 RFID 13,56 Mhz Karten bestellt, mit denen sich verschiedene Benutzer sich am Trainingsgerät anmelden können.
- Die Firma AZ-Delivery um eine Spende/Sponsoring gebeten. Warten auf Rückmeldung.
20.11.2022 (KW46)
Arbeit und Vorbereitung der Zwischenpräsentation, die morgen stattfinden wird und bei der wir die Möglichkeit haben, unseren aktuellen Projekstand zu präsentieren. Im Anschluss treten wir in den Dialog mit unseren Projektleitern um gemeinsam weiter die Richtung zu bestimmen und zu bewerten. Die Zwischenpräsentation bietet hier auch die Möglichkeit von einer anderen (Meta-)Ebene aus den Verlauf des Projekt zu betrachten und zu bewerten und in die nächsten und letzten finalen 11 Wochen zu blicken.
19.11.2022 (KW46)
- Weiter an der Visulisierung des HMI gearbeitet
- Eine neue Seite, auf der man über die Visualisierung die Tags mit den entsprechend gewünschten Namen beschreiben kann, wurde implementiert
- Dazu musste Code geschrieben und im entsprechenden Task eingebunden werden.
- Designanpassungen auf bestehenden Seiten wurden vorgenommen.
21.11.2022 (KW47)
Heute hatten wir unsere Zwischenpräsentation gehalten und wir waren durchaus zufrieden mit unserer Leistung.
Zur Präsentation bekamen wir noch einige Tipps von unseren Projektleitern und ein Feedback. Auch konnten wir für weitere Fragen, die unsere Projektleiter hatten, parat stehen.
22.11.2022 (KW47)
- Heute hatte ich Kontakt zu Herrn Brandt, der uns freundlicher Weise die Projektdoku unserer Vorgänger zur Verfügung stellte.
- Diese war ganz aufschlussreich, denn nun können wir verstehen, was diese sich bei ihren Änderungen dachten.
- Ein kurzes Telefonat mit Herrn Wohlfart geführt, in dem ich ihn nach der richtigen GSDML Datei für unsere SPS gefragt habe, da es ja Probleme mit der korrekten Einbindung in die Steuerung gibt. Er schickte mir die richtige Datei zu und gab mir den Kontakt von Herrn Keller, dem Applikationsingenieur von SEW.
- Zuhause habe ich dann noch versucht in MOVIESUITE an den Versionsnummern der FU'S was zu machen und fand auch eine Möglichkeit im Planungsmodus. Das will ich am Donnerstag vor Ort versuchen, ob es etwas bringt.
- Die IP -Adressen der beiden FU's habe ich auf unsere Wunsch IP's angepasst. Sitz: 192.168.1.3; Gewicht: 192.168.1.4. Die IP-Adresse des HMI's muss nun noch verändert werden auf 192.168.1.6, da dieses moment noch die IP-Adresse 192.168.1.3 hat.
- Bei der Arbeit mit MOVIESUITE habe ich das Tool weiter kennen gelernt und habe die Bedienung weiter gelernt, sodass ich mich immer besser uns sicherer in der Software auskenne und mit diesem umgehen kann.
24.11.2022 (KW47)
- Heute war ich früher in der Schule und vor Beginn des Unterrichts habe ich versucht, ob die Änderungen der Versionsnummern der FU's einen Einfluss haben und ob es einen Unterschied macht wenn dieses nun in die Programmdatei der SPS eingebunden werden.
- Der Versuch hatte leider keinen Erfolg und nach wie vor wird ein Warndreieck mit einem Unterschied der Revisionsnummer zwischen Online Gerät und Gerät auf der Programmdatei gezeigt.
- Nachdem ich nochmal die GSD Datei in der SPS komplett entfernt hatte habe ich sie nochmal neu eingebunden. Dafür verwende ich die Version 4.0.
- Die Module für die Datenwörter habe ich jeweils wieder in die beiden Knoten per drag und drop eingefügt.
- Diesmal hatte ich versucht, trotz dessen, dass die Revisionsnummern unterschiedlich sind, die Datenwörter der ersten 3 PA_Datenwörtern des Gewichts FU's mit meinem Programm zu beschreiben. Dieser Versuch funktionierte zu meiner Überraschung und die geschriebenen Werte kamen auf den Frequenzumrichtern an.
- Angeschaut habe ich das in der MOVIESUITE Software im Inbetriebnahme Modus.
- Was mir heute beim Verbindungsversuch mit den FU's per MOVIESUITE auffiel ist, dass ich erst die Frequenzumrichter Online im Browser per IP-Adresse via PLCNext öffnen muss, nachdem ich sie dort eingebunden hatte. Ansonsten findet MOVIESUITE keine Teilnehmer. Sehr verwunderlich.
- Ansonsten habe ich Manuel bei der Implementierung und Verdrahtung des NFC-Reader unterstützt. Dieser ist nun erfolgreich eingebunden und die nächsten Schritte um diesen optisch sauber einzubinden können folgen.
- Die Teile via Phoenix wurden von Hr. Musielack bestellt und werden demnächst eintreffen.
- Weitere Schritte in der Projektarbeit werden sein, dass ich mich zu Hause weiter mit dem Steurungsprogramm und der Visualisierung beschäftige und einarbeite. Ein Online-Termin mit Herrn Keller von der Firma SEW soll vereinbart werden, sodass ich ihm meine Fragen stellen kann zur Arbeit mit MOVIESUITE.
25.11.2022 (KW47)
- Recherchearbeiten über die Funktion und Arbeitsweise des verbauten PILZ PNOZ S3 Sicherheitsmodul.
- Mitwirkung an der Ausarbeitung des VPS Steuerkreis im Falle der Sicherheitsabschaltung via NOT-Aus und Austausch über Umsetzung mit Manual Lukas.
28.11.2022 (KW48)
- Die Betriebsart des PNOZ Sicherheitsmodules umgestellt von In2+ A auf In2- A. Dies war nötig, da wir unsere beiden Not-Aus Einrichtungen nun 2-Kanälig ausführen und nun auch eine Querschlusserkennung möglich ist. Die Einbringung des Fußtaster und die nun mögliche Querschlusserkennung bringt unsere Anlage aus Sicherheitstechnischer Sicht auf ein deutlich höheres Level.
Zuvor konnte nur ein Eingangskreis einkanalig überwacht werden, der neben der Öffnung des Eingangskreises durch die Sicherheitseinrichtung auch den Eingangs- und Startkreis auf Erd- und Kurzschlüsse überwachte und im Fehlerfall zur Abschaltung führte. - Einarbeitung in MOVIESUITE und Recherche nach der benötigten Doku und Einlesen in diese.
- Gedanken darüber gemacht, wie die Zwischenkreise ordnungsgemäß zu koppeln sind, dazu ein Dokument gedruckt und mit Manuel darüber geredet.
- Termin mit SEW wird uns weiterbringen.
- Konzept weiter ausgearbeitet, wie die Visualisierung final aussehen soll.
Die Parameteränderungen am Sitz und Gewicht sollen vom Benutzer jeweils geändert werden können. Beim Gewicht soll das individuelle Startgewicht auf dem HMI visualisiert werden, das auch verändert werden kann, sodass bei der nächsten Anmeldung das ausgesuchte Gewicht simuliert wird. An der Umsetzung muss gearbeitet werden und steht noch komplett aus. - Vom Admin oder Benutzern mit Adminrechten dürfen nur die NFC-Karten gewünschten Benutzernamen zugeordnet werden. Sonst ist keine weitere Funktion für den Admin vorgesehen.
- Ziel ist es, das Programm bis Weihnachten zu 80% fertig zu bekommen. Aktueller Stand: ca. 40%.
02.12.2022 (KW48)
- Firma Sonepar telefoninsch kontaktiert und nach Sponsoring von den benötigten Hilfsschützen und Blau-Weißer Steuerleitung gebeten. Mail soll verfasst werden.
- Mail wird am Montag geschrieben.
03.12.2022 (KW48)
- Einarbeitung in FB's und Programmtypen in PLCNext
- Ziel Umstrukturierung und Umprogrammierung der Logik in Richtung Modularer Programmierung
- Beginn Umsetzung des Programmteils der Datenzuweisung
04.12.2022 (KW48)
- Fertigstellung und Testung der Umprogrammierung des Programmteils der Datenzuweisung. Programm nun sehr übersichtlich und Modular aufgebaut.
- 2. Teil der Benutzerdatenverwaltung umstrukturiert und umprogrammiert.
- ESM Manager nun entschlankt und dieser Programmteil komplett modular aufgebaut. Das bedeutet, dass es sehr einfach ist weitere NFC Tags und Benutzer hinzuzufügen bei Bedarf.
- Ziel dieser Maßnahmen war es, die Programmteile genaustens zu kennen und zu wissen, was wo passiert. Dabei konnte ich meine Programmierfähigkeiten mit Praxisbezug ausbauen und verbessern und dabei wichtige Erfahrungen sammeln. Unten auf der Seite sind 2 Bilder von der Maßnahme eingefügt.
- Weiter an der Gestaltung der Visualisierung gearbeitet
05.12.2022 (KW49)
- Firma Sonepar per Mail kontaktiert und telefonisch Sponsoring besprochen.
- Bekommen 6x NC Hilfskontakte für Schütz und Blau-Weiße HV05-K Steuerleitung für Umverdrahtungsarbeiten gesponsert
- An der Visualisierung gearbeitet und Ideen überlegt, wie die Visualisierung noch benutzerfreudnlicher und die Bedienund "smarter" wird. Folgedene Punkte sollen umgesetzt werden:
- Der aktuell angemeldete Nutzer soll immer oben in einer Ecke angezeigt werden.
- Die Zeit zwischen Anmeldung und Trainingsstart soll 10 Sekunden betragen, biss der Logout geschieht. Zeit soll angezeigt werden.
- Der Benutzer soll jederzeit die Möglichkeit haben, Einstellungen was die Gewichtslast bei den beiden Übungen und die Sitzhöhe anbelangt, zu verändern.
- Das aktuelle "auferlegte" simulierte Gewicht soll jederzeit in den Übungsmasken in einem Rahmen angezeigt werden. Ein Zähler soll dabei auch hochlaufen und die gemachten Wiederholungen visualisieren und dabei auch die Sportreibenden motivieren.
- Die Spannung, die beim Training erzeugt wird, soll ebenfalls visualisiert werden und motivieren, härter zu trainieren.
- Eine Maske, in der die Satzlänge eingestellt werden kann, wird in Betracht gezogen. Weitere Überlegungen werden angestellt.
- An der Umsetzung gearbeitet, die Zeit nach Anmeldung herunterlaufen zu lassen. An Umsetzung mit Counterbausteinen gearbeitet.
06.12.2022 (KW49)
- Mit Applikationsingenieur von Firma SEW telefoniert und Termin für die Inbetriebnahme am 11.01.23 ausgemacht.
- Hr. Wohlfart von SEW kommt an dem Termin mit und unterstützt ebenfalls.
- Sehr wichtiger Termin für uns als Team
- Mit Manuel Lukas über die Neuigkeiten und den aktuellen Stand gesprochen.
- Termin am 13.12. am Nachmittag ausgemacht, an dem wir uns über die Doku austauschen wollen.
07.12.2022 (KW49)
- Pflege und Aktualisierung des Projektblogs
- Arbeiten an der Projekdokumentation
08.12.2022 (KW49)
- Heute konnte ich die Sponsoring-Waren von der Fa. Sonepar abholen. Ein herzliches Dank an dieser Stelle an Herrn Müller!
- In der Schule angekommen, begann ich schonmal ein paar 0V Leitungen vom Steuerkreis gegen die weiße HV05-K 1mm² Steuerleitung zu tauschen.
- Die Hilfsschützkontakte wurden auf die Schütze aufgesteckt und der momentan verdrahtete Netz-Schütz wurde ausgetauscht.
- Gedanken darüber gemacht, wie ich den Code schreiben kann, dass die eingegebenen gewünschten Trainigslast-Werte in die Integer Stufen konvertiert werden, die dann via dem Datenwort an den FU gesendet wird. Dafür habe ich eine Excel Tabelle erstellt und diese mit der Wertetabelle von den ermittelten Lastwerten zu den einzelnen Stufen eingepflegt. Den Graph habe ich mir angeschaut und mit Hilfe des Excel Tools eine annähernd identische Funkionsgleichung 3. Grades ausgewählt, die der Kurve aus dem Praxistest ziemlich genau entspricht. Die Funktionsgleichung lautet:
f(x) = 0.0004x^(3)-0.0134x^(2)+0.9249x+3.9
- Die Berechnung der Stufenwerte nach Eingabe der gewünschten Trainingslast gestaltet sich hierdurch sehr einfach, denn ich kann für die Umrechnung einfach die Funktionsgleichung verwenden und bekomme dann den benötigten jeweiligen Stufenwert in einer Gleitkommazahl berechnet und als Ergebnis geliefert. Die Gleitkommazahl kann ich in eine Zahl vom Typ Integer Wandeln und dann zur Ansteuerung an den FU senden. Um es noch ein Tick genauer zu machen, könnte ich jetzt den entsprechenden Gewichtswert über die erhaltene Stufen Ganzzahl auf dem HMI simulieren, um den genaueren Wert zu erhalten, was mir sehr gut gefällt.
Über weitere mathematischen Operationen (Nullstellen finden, Polynomdivisiondurchführen, pq-Formel anwenden) könnte ich den Gewichtswert mit dem dann bekannten, gerundeten Stufenwert annähernd berechnen und als Gleitkommazahl mit einer Nachkommastelle an die Visualisierung zurückgeben.
Dies gestaltet sich jedoch als schwierigeres Unterfangen, da die Operationen komplexer sind und mir das nötige Know-How und die Erfahrung fehlt.
Ein kleines "Workaround" um diese Problematik zu lösen besteht darin, die entsprechenden Gewichtswerte zu den Ganzzahligen Stufenwerten mit Hilfe einer Algebra Software Online zu berechnen und die Werte dann den über die Funktion zuerst errechneten Stufen zuzuweisen.
Das werde ich nun auch so machen, auch wenn mich der komplexere Weg über die höhere Mathematik auch reizen würde, ist jedoch an dieser Stelle einfach keine Zeit dafür da.
12.12.2022 (KW49)
- Begonnen mit der Umsetzung der Idee, dass nach der Anmeldung mit der Karte 10 Sekunden Zeit sein sollen, um mit dem Training zu beginnen.
- Dazu musste der Funktionsbaustein Benutzerzuweisung erweitert werden.
- Ein Ansatz für die Lösung des Problems war es, einen Taktgebervon 1HZ über einen "TP_LTIME" mittels einer Rekursion zu Programmieren. Der gebaute Taktgeber soll dann einen CDUT Baustein von der gewünschte Anmeldezeit an herunterzählen und am HMI visualisiert werden.
15.12.2022 (KW50)
- Weiterarbeit an der Anmeldetimer Lösung.
- Nach erfolgreichem Aufbau mit dem Taktgeber und dem Counter wurde dem INT Ausgang des Counters eine Ausgangsvariable zugewiesen. Diese sollte dann im übergeordneten Programm, in dem all die Funktionsbausteine aufgerufen werden mit den unterschiedlichen TAG-Daten die Zählung, die für die ablaufende Zeit steht, an eine externe INT Variable übergeben werden.
Diese blieb jedoch immer bei ihrem init Wert "0". Das Problem erkannte ich dann, denn die Variable wurde von den anderen FB-Aufrufen, die eine 0 am Zählausgang zurückgaben, im Zyklus immer wieder überschrieben. Das Programm muss umgedacht und umgebaut werden, wozu mir noch nicht die Antwort einfällt.
17.12.2022 (KW50)
- Nach einem Pausentag fiel mir ein, wie ich das Programm umbauen und umschreiben könnte, sodass es funktioniert.
- Dazu wurde der Teil , der den Takt gibt und den Zähler runterzählt und übergibt in einen neuen separaten Funktionsbaustein überführt.
Die erhöht zudem die Ordnung im Programm und verbessert die Struktur. - Der FB "Anmedezeit" wird nun in einem separaten Programm "Anmeldezeit" aufgerufen. Der FB "Anmeldezeit" ist so aufgebaut, dass er einen Eingang und 2 Ausgänge hat.
Am Eingang wird die Variable des ausgewählten Benutzers übergeben. Nun ist der entscheidende Unterschied, dass der ausgewählte Benutzer nun über den Ausgang einer Oder Verknüpfung an den Eingang des FB's übergeben wird.
An den Eingängen dieses Oder-Bausteins sind alle 13 auswählbare Benutzer angelegt. Dies ist nun die Lösung.
18.12.2022 (KW50)
- Implementierung der Real Time Clock in die Visualisierung
- Dazu musste die RTC Value an eine String Variable übergeben werden. Das rückgegebene Format der RTC in die String Variable hatte jedoch nicht das gewünschte Format, da es als "internationales Datumsformat" in der Schreibweise "YYYY-MM-DD" ankam. Die Uhrzeit wurde angehängt an das Datum ebenfalls nicht unseren Bedürfnissen wiedergegeben, nämlich im Format "hh:mm:ss:ff" mit Millisekundenanteil, der überflüssig für uns ist.
- Deshalb musste mit den Funktionsbausteinen "MID", "RIGHT", "LEFT", "CONNECT" die String Variable umgebaut werden, sodass das Datum nun im uns aus dem alltäglichen Bekannten Format "DD-MM-YYYY" und "hh:mm:ss" angezeigt.
- Weiter an der Gestaltung der Visualisierung gearbeitet
19.12.2022 (KW50)
- Heute soll die Umgestaltung der Visualisierung vor Ort einmal auf das HMI ausgegeben werden, um zu schauen, wie es wirkt.
- Weiterarbeit an den Programmierfunktionen.
- Vor Ort konnte die Visualisierung angeschaut werden und begutachtet werden, das Fazit ist, dass die Visualisierung einen sehr guten Eindruck macht.
- Der NFC-Reader wurde in Betrieb genommen und die Programm-Logik, die ich am Wochenende ausprogrammiert habe, wurde getestet und gedebuggt. Dabei fielen 2 größere Probleme auf.
Zum einen bemerkte ich, dass wenn ein Benutzer und Name angemeldet und über den Start Butto eingeloggt ist und sich nun im Bild "Übungsauswahl" befindet, es Möglich ist, einen anderen Benutzer durch anhalten der RFID Karte anzumelden.
Das musste unbedingt verhindert werden.
Der 2. Bug war, dass wenn ich mich anmelde mit einem Benutzer und die Anmeldezeit beginnt abzulaufen, die Anmeldezeit weiter runterläuft, sobald ich eine andere Benutzer-RFID Karte am Reader anhalte. Dies soll ebenfalls so nicht sein. - Das Programm wurde verändert, sodass am Ende des Tages die beiden Bugs rausprogrammiert waren.
- Umprogrammierung Datenbank Benutzerzuweisung
- Umprogrammierung Datenbank
- Ausschnitt des ESM Managers
- Ausschnitt von der Programmstruktur
- Aussschnitt modulare Programmierung Teil Datenzuweisung
- Ausschnitt modulare Programmierung Benutzerzuweisung