Hallo Walter und Mitleser
Folgendes Problem:
Ich greife von extern auf das Prozessabbild zu und möchte eine Output Variable sowohl von realen als auch virtuellen DIOs verändern , die als globale Variablen in LogiCad deklariert sind, (mit z. B. piTEST -w Output_10,1 oder in Node-Red mit EXEC oder Kunbus Nodes). Solange das LogiCad Programm nicht auf der SPS läuft ist das kein Problem. Läuft das Programm erzwingt es die Werte immer auf NULL zu setzen (Variablen werden sonst nirgends im Programm verwendet und auch bei der Initialisierung der Variablem, habe ich mal mit und ohne Initialisierungswert gearbeitet). Also z. B: piTEST -w Output_10,1 funktioniert (der Wert wird gesetzt), aber wenn das SPS Programm läuft, funktioniert es nicht und der Wert von Output_10 bleibt auf 0 (wie gesagt, die Variable wird sonst nirgends im Programm verwendet, wo eine Zwangsüberschreibung erfolgen könnte). Nimmt man eine Variable die nicht in den globals definiert ist ( z. B. wie Output_11), funktioniert die Beschreibung der Output_11 auch wenn das SPS Programm läuft. Also müsste das Problem irgendwie mit der Initialisierung der Globals zusammenhängen, als würde das SPS-Programm bei jedem Prozessloop die Outputwerte in jedem Fall immer auf 0 setzen. NUR DAS IST HIER NICHT GEWOLLT: Zum Hintergrund ... Bei der Erstellung eines Userinterface z. B. über Node-Red-Dashboard ist die Standardnomenklatur, das Output-Pins als INPUT verwendet werden, so auch bei den Node-Red-Dashboard Knoten die von Kunbus bereitgestellt werden oder selbst gebastelte Executable. Also ein einfacher Schalter On/Off geht über z. B. Output_10,1 oder Output_10, 0 ... die Zwangsüberschreibung wenn das SPS Programm läuft verhindert das. Ich habe in der LogiCAD Anleitung gesucht und bin dort über den Befehl Forcen gestolpert, bin aber hier nicht damit weitergekommen.
Woran könnte das liegen? Muss ich die Variablen anders initialisieren oder gibt es einen grundlegenden Befehl um die Zwangsüberschreibung zu verhindern?
Danke und viele Grüße
Marco