Code-Aufruf von "Reset warm"

Rafale

Level-2
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen
In Codesys kann man die Funktion "Reset warm" aufrufen. Nun meine Frage, kann ich diese Funktion auch direkt aus dem Code (ST) heraus aufrufen? So quasi als "Ober-Masterreset"?

Besten Dank für eure Inputs.
 
Hallo,

also mit den PLCs mit denen ich gearbeitet habe gibt es diese Möglichkeit nicht. Was es jedoch gibt ist eine SysLibTasks.lib. Damit kannst du Tasks starten/killen,... Das ist zwar nicht das selbe vielleicht hilft es dir.

Alternativ gibt es auch Hersteller die eine eigene "System.lib" anbieten damit kann man z.B. wenn es auf LinuxOS läuft direkt Linuxconsolenbefehle absenden. Da gibt es mit Sicherheit dann einen Befehl mit dem man ein Codesys Resetwarm umsetzen könnte. Im Zweifelsfall einfach nur ein "Restart" o.ä. eingeben dann bootet die PLC komplett neu durch. Ob deine PLC das auch kann weiß ich nicht da du keine Angaben dazu gemacht hast was du verwendest.


U.u. kannst du das auch mit "Macros" lösen. In Codesys V2.3 gibt es einige dieser Funktionen die als Macokommando verfügbar sind wie bspw. "online Login", "online run".

macros.jpg
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Rafale,
welche CODESYS Version verwendest du?
Gehen tut das schon aber meiner Erfahrung nach machen/wollen Leute das zu 99% immer tun um einen Workaround zu realisieren z.B FeldBus neu Aufstarten oder ähnliches. (den Master sollte man auch immer über den IEC Code neustarten können)
Lieber die Ursache beseitigen ...!
Wenn du CODESYS V3 verwendest gibt es hier ein Beispiel.
http://forum.codesys.com/viewtopic.php?f=22&t=5641&p=14007#p14007
Grüße
 
Hallo Herr Schwellinger
Besten Dank für die Rückmeldung. Sie haben recht, ich benötige das Reset zum neustarten des Feldbuses. Ich versuche natürlich den Bus durch den Code neu zu starten, aber für den worst-case habe ich eben an die Variante "warm reset" via Code-Aufruf gedacht.
Leider verstehe ich nicht genau wie ich gemäss ihrem Beispiel das Reset durchführen soll. Die Abfrage ist klar, aber mit welchem Befehl kann ich das Reset durchführen?
Besten Dank
Raffi
 
Welche Codesysversion wird eingesetzt? 2.3.x.x oder 3.x.x?
AUf welchem Gerät soll die Anwendung laufen?
 
Das sollte mit der Funktion "SysResetPlcProgram" funktionieren. Diese Funktion hat den Input "rmRESETMODE" Diese Übergabe entspricht einem Enum der folgendes beinhaltet:
" 0=RESET_WARM,

1=RESET_COLD,
2=RESET_HARD "
Also sollte der Neustart mit dem Aufruf: "SysResetPlcProgram(0);" funktionieren.

Zu finden ist die Funktion in der Lib: SysLibPLcCtrl.lib
 
Zuletzt bearbeitet:
hm... also wenn du mein Beispiel meinst musst du in PLC_PRG xReset auf true setzen dann macht er den reset.
SysLibPLcCtrl.lib ist CODESYS V2.3. Rafale verwendet CODESYS 3.5x.x. wenn ich es korret verstanden habe.
Grüße
 

Anhänge

  • xreset.png
    xreset.png
    19,1 KB · Aufrufe: 136
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe ein vergleichbares Problem, das ich den BUS automatisiert neustarten müsste an einer Prüfstation. Das Problem an der Sache ist, das ich Quereinsteiger bin und noch nicht so viel Erfahrung beim programmieren habe. Habe es mit den Befehlen aus dem letzten Post versucht aber es nicht ans laufen bekommen. Muss ich dafür woanders noch etwas ergänzen?
Ich verwende Codesys 3.5 SP 5.

Grüße
 
Hallo,
welchen Feldbus verwendest du?
in neueren Versionen kann man in der Regel den Feldbus neu Aufstarten über den IEC Code.
Ich würde versuchen die SPS zu aktualisieren.
Grüße
 
Zurück
Oben