Quellcode während der Laufzeit einlesen

SY50

Level-1
Beiträge
271
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe mal bei einem Zulieferer eines Maschinenteils gesehen, dass dort im Steuerungsprogramm der Quellcode folgendermaßen erzeugt wurde.
Wenn die Teuerung hochgefahren ist, dann hat sie in einem Verzeichnis alle Dateien (TXT oder ähnliches) geladen.
In diesen Dateien befand sich der Quellcode, welcher so natürlich recht simple von außen beeinflusst werden konnte.

Natürlich ist dies eine Fehlerquelle, aber man hat es so dem Endkunde ermöglicht diverse Dinge im Quellcode verändern zu können.
Natürlich wurde hier nicht der Quellcode der kompletten Maschine freigelegt, sondern nur ein gewisser "unbedeutender" Teil.

Meine Frage ist es nun, gibt es in Codesys auch so eine Möglichkeit?
ich Stelle mir hier einen Prozess vor, welcher in solch einer Datei liegt.
Hat man neue Erkenntnisse, so kann man diese direkt über ein Update ganz leicht einpflegen, ohne direkt auf die Steuerung zugreifen zu müssen.
(Servicetechniker kann die TXT kopieren und einfügen.

Geht so etwas?
 
Du kannst bei Codesys über eine entsprechende Option erreichen, dass der Quellcode auf der Steuerung abgelegt wird, allerdings wird immer der gesamte Quellcode abgelegt. In der Entwicklungsumgebung gibt es beim öffnen Dialog die Option von Steuerung laden.

Von irgendwas mit Internetzugang gesendet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nachtrag:
Das was Du eigentlich vorhast wird mit Codesys und seinen Derivaten gar nicht gehen. Bei Codesys basierten Steuerungen wird beim Start der Steuerung ein auf dieser vorhandenes Programm nicht als Quellcode eingelesen und dann ausgeführt, sondern es gibt ein sogenanntes Bootprojekt, dass allerdings nur in binärer Form vorliegt.

Von irgendwas mit Internetzugang gesendet.
 
was allerdings geht ist eine "ini-Datei" zu erstellen. Das ist in Windows quasi dasselbe eine Datei in einem entsprechenden Format, welches zur Laufzeit eigelesen wird und dann interne Variablen damit zu beschreiben. Quellecode kannst du nicht zur Laufzeit ändern, wie schon erwähnt wird dieser kompiliert und somit vom Quellcode getrennt.

Hatte sowas schon mal realisiert und jeden Zyklus geprüft ob sich die Dateiänderungszeit geändert hat wenn ja ==> einlesen und in die Variablen schreiben.




... wenn du richtig viel Bock hast was zu tun dann kannst du natürlich auch eine TXT Datei mit "Quellcode" schreiben und den zur Laufzeit interpretieren. Das geht natürlich. Müsstest halt einen Parser, einen Commandprozessor,.. schreiben. Gehen tut das schon. Bist du richtig scharf drauf kannst du das auch so ausreizen, dass es alles kann was Codesys usw. kann. Ich denke mit viel Zeit geht das.
 
Wenn du dir in der Echtzeit einen entsprechenden "Interpreter" schreibst, kannst du natürlich "Rezeptdaten und -abläufe" in einer Datei (txt oder Xml) schreiben und diese zur Laufzeit einlesen und interpretieren. Hab ich auch schon bei einigen TwinCAT Kunden gesehen. Ich nehme mal an, auch in Codesys gibt es entsprechende POUs für den Filezugriff.
 
Zurück
Oben