Variable schreiben...?

Hallo,
ich bin am verzweifeln…

Ich habe IPS mit einer Siemens SPS verbunden um über die IPS-Weboberfläche zu bedienen - funktioniert.
Nun möchte ich mit IPS einen „Blinktakt“ an die SPS senden.

also rufe ich alle 4 Sekunden dieses Skript auf:


SetValue(41443, true);
	SetValue(26064 /*[Siemens Gateway (ClientSocket) #59042\Daten IPS Allgemein DB10\Daten IPS allg. Blinktakt\Lebensbit an SPS]*/, true);
	IPS_Sleep(2000);
	SetValue(41443, false);
	SetValue(26064 /*[Siemens Gateway (ClientSocket) #59042\Daten IPS Allgemein DB10\Daten IPS allg. Blinktakt\Lebensbit an SPS]*/, false);

Die Testvariable(41443) blinkt, aber die SPS Variable(26064) weigert sich, da sie Read-Only ist.
Ich habe diese aber nicht auf Read-Only eingestellt.


Was muss ich ändern, damit die Variable blinkt?

Da es sich bei der Variablen um eine Geräte-Variable handelt, möchtest du diese nicht via SetValue verändern. Dies würde nämlich nur die Darstellung in IP-Symcon ändern, aber nicht die SPS schalten. Damit das nicht passiert ist die Variable (nicht der Wert der SPS, sondern die lokale IP-Symcon Variable) schreibgeschützt. Die aktualisiert sich nämlich selbstständig, wenn sich an der SPS etwas ändert.

Stattdessen solltest du die SPS-Befehle benutzen, in deinem Fall also wohl S7_WriteBit: S7_WriteBit — IP-Symcon :: Automatisierungssoftware

Vielen Vielen Dank,
da wäre ich nicht drauf gekommen, das eine „S7“ Variable anders als eine „andere“ Variable behandelt werden muss…

nun funktioniert es :slight_smile:

S7_WriteBit(31965 /*[Siemens Gateway (ClientSocket) #59042\Daten IPS Allgemein DB10\Daten IPS allg. Blinktakt]*/, true);
IPS_Sleep(2000);
S7_WriteBit(31965 /*[Siemens Gateway (ClientSocket) #59042\Daten IPS Allgemein DB10\Daten IPS allg. Blinktakt]*/, false);

Das gilt eigentlich für alle Gerätevariablen. Du möchtest ja schließlich das Gerät schalten und dafür verwendest du die gerätespezifischen Funktionen. SetValue ändert halt nur die Darstellung in IP-Symcon, interagiert aber nicht mit dem Gerät.

SetValue meint er natürlich

Dokumentation - Variablen
Das Beispiel mit der Tachonadel gefällt mir ganz gut… :wink: