leider hat mich das Stundenlange Foren durchforsten auch nicht weiter gebracht, bin IP Smycon Neuling und möchte einen Slider mit einer ShortInt Variablen aus einer Simatic S7 SPS verheiraten - die wollen aber nicht so wie ich…
Situation:
Ich möchte einen Analogwert angezeigt bekommen und gleichzeitig jederzeit ändern können.
Ich lese hierzu eine Integer Variable (bei IPS ShortINT) aus einer Simatic Steuerung, diese soll einen Wert 0-100% darstellen. Gleichzeitig soll diese im WebFront über den Slider bedienbar sein
Mein Problem:
der Wert 32767 im Integer des Datenbaustein müssten 100% entsprechen, IPS zeigt mir aber 127% - siehe Bilder
das größere Problem: ich möchte im Slider den aktuellen Istwert darstellen, diesen aber auch bedienen können - und den Wert wieder in den Integer zurück zur SPS schreiben.
Habe hierzu aber keinerleo Ahnung ob und wie das funktioniert…
Bin für jede Hilfe dankbar.
Der Frust ist schon groß genug…
Zum 2. Bild, da fehlt bei der Variable unter „Eigene Aktion“ das Actionscript mit diesem magischen Inhalt:
<?
if ($_IPS['SENDER'] == "WebFront") {
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}
?>
Beim Variablenprofil musst du ein eigenes anlegen, dazu steht hier etwas ganz unten: Beispiel 2 — IP-Symcon :: Automatisierungssoftware
…nur darfst du nicht 0 - 100 eingeben, sondern das, was deine SPS da ausgibt, also z.B. 0 - 127 !? Und als Suffix muss das % hin, dann bekommst du den Slider.
Um den Int-Wert dann zurück zu IPS zu schreiben (habe keine Ahnung von SPS), das könntest du mir in das am Anfang genannte Skript packen, was, das kann dir sicher jemand anderes sagen.
Dank euch beiden hatte ich mein erstes AHA und Erfolgserlebnis bei IPS… Dankeschön!
inzwischen ist einiges klarer, hätte ich die Doku genauer studiert hätte mir das mit den 16Bit Integer auffallen müssen - Asche über mein Haupt.
Folgendes Problem stellt sich mir aber noch, hoffe Ihr könnt mir das noch erklären.
Mit dem von Chris geposteten Code ging es nicht, da er nicht auf die Variable schreiben konnte… Scheint auch Logisch. Habe dies dann wie von Paresi empfohlen geändert, nur eben als „S7_WriteSmallInt“ Befehl.
Mit diesem Script bekomme ich dann diese Fehlermeldung.
Mein Code-Schnipsel ist auch nur dazu da, im Werte aus dem WebFront in eine „normale“ Variable zu übertragen, nicht in eine „Instanz-Variable“, welche nur zum Lesen da ist Zum Beschreiben einer solchen „Instanz-Variable“ brauchst du deinen Code aus Zeile 7.
> Findest man auch heraus, in dem man mit der rechten Maustaste auf eine Instanz klickt und dann auf „Befehl testen“. Dort gibt es deine Auswahl möglicher Befehle.
Deine auskommentierte Zeile 7 schreibt den Wert aus dem WebFront auf dein SPS Und damit wird es auch wieder in die IPS-Instanz-Variable übertragen (mit kleiner Verzögerung) - wäre also die passende Variante.
Ich hoffe, dass war so verständlich formuliert
Grüße,
Chris
PS: Du solltest dich noch ein wenig mit IPS beschäftigen, Grundkenntnisse können nicht schaden
Du darfst auch nicht auf die Variable schreiben. Du musst diese Befehle auf die InstanzID ausführen. Variablen IP-Symcon :: Automatisierungssoftware
Erstes Kapitel ‚Status Variablen‘.
Nur auch mal blöd von einem nicht S7 Nutzer gefragt:
Warum braucht er überhaupt ein Aktions-Skript ?
Sollte die Standardaktion nicht genau diesen Zweck erfüllen ?