Einsteiger Philosophie

Hallo Forum,

ich bin Neueinsteiger im Symcon. Ich habe seit zwei Wochen ein IPS4.0 Prof auf dem Raspi laufen und spiele ein bisschen mit den Möglichkeiten herum.
Ich habe seit 3 Jahren eine Hausautomatisierung basierend auf zwei 750-880 WAGO’s. Damit steuere ich alles rund um Licht, HEizung, Lüftung, Rolläden, uvm. Bisher bilde ich viele Comfortfunktionen in der Steuerung ab, welche ich jetzt aber nach und nach ins IPS bringen will. Kommunikationskanal ist Modbus.

Ich kann mittlerweile Variablen anlegen und die zyklisch auslesen. Wie läuft das aber mit dem Schreiben? muss ich dazu in jeder Instanz eine weitere Variable anlegen? und wie verknüpfe ich die mit der Schreibadresse in der Modbusinstanz.

Leider habe ich keine Einführung gefunden, die das Schritt für Schritt vom Anfang bis zum Ende einmal durchkaut. Entweder es finden sich nur Skripte (aber wie muss ich die konkret einbinden, oder es wird beschrieben, wie man in eine Modbusinstanz Lese- und Schreibadresse einträgt, aber wie es dann weiter geht finde ich nirgends.

Ich stelle mich sicherlich einfach nur zu blöd an, aber ich komme da nicht so richtig weiter. Übrigens geht es mir mit dem Webfront ähnlich, das ist aber ein anderes Thema.

PS: php, modbus, codesys in ST und CFC ist alles kein Problem mir fehlt nur irgend wie der Anfang im IPS.

Danke schon mal für Eure Tipps.

Viele Grüße
tommes

Zwischenzeitlich habe ich den Schreibzugriff folgendermaßen realisiert:

Die Modbusinstanz hat neben der „normalen“ Value-Variable und einem Ereignis mit ReadRequest zusätzlich eine Variable „write“ bekommen. Diese hat ein Ereignis bekommen: bei Änderung wird

ModBus_WriteRegisterReal($_IPS['TARGET'], GetValue(24758 /*die Modbusinstanz*/));

ausgeführt.

Ist das so im Sinne des Erfinders? Oder gibt es einen einfacheren Weg, die Statusvariablen sind ja leider readonly

VG
tommes

Naja… einfach eintragen in der Instanz :wink:

Ich glaube speziell für Modbus gibt es da keine Einführung.
Die IPS-Grundlagen aus der Doku würden dir aber vermutlich schon mal helfen das Konzept von IPS besser zu verstehen.

Zuerstmal… wozu das Ereignis ? Den Intervall kannst du doch in der Modbus-Instanz einstellen :confused:
Der PHP-Befehl zum schreiben ist schon korrekt, aber warum machst du das ?
Was hast du eigentlich vor ? Aus der Konsole einen Wert in deiner Hardware verändern ? Wozu ? Dies ist nicht die Visualisierung, also auch nicht die Bedienung.

Kennst du das hier ?
Variablen — IP-Symcon :: Automatisierungssoftware

Ja mit Absicht !
Lies die mal die oben von mit verlinkte Seite durch.

Anschließend noch die hier über die Profile:
Variablenprofile — IP-Symcon :: Automatisierungssoftware

Dann verpasst du deiner Statusvariable ein passendes Profil und schon solltest du sie aus dem WebFront bedienen können.

Kurz gesagt:

  • Variablen bilden den Zustand der Hardware ab.
  • Änderungen an der Hardware werden durch Aktionen ausgelöst. Diese Aktion kann über die Standardaktion der Instanz aus dem WebFront, den Apps oder IPSView erfolgen. Oder auch durch ein Script mit dem passenden PHP-Befehl.

Michael

Hallo Michael,

Kurz gesagt:

  • Variablen bilden den Zustand der Hardware ab.
  • Änderungen an der Hardware werden durch Aktionen ausgelöst. Diese Aktion kann über die Standardaktion der Instanz aus dem WebFront, den Apps oder IPSView erfolgen. Oder auch durch ein Script mit dem passenden PHP-Befehl.

Jetzt wird mir einiges klar. D.h. die Checkbox „Status emulieren“ hat nichts mit dem Intervall zu tun, sondern das Intervall bezieht sich auf das lesen. AnDieStirnFass Mit dem Schreiben hat das vmtl. nichts zu tun, denn das wird ja nur mit Aktionen gemacht.

Ich sag ja, ich stand auf’m Schlauch.
Vielen Dank.

tommes

Status emulieren hat indirekt damit schon etwas zu tun.
Beispiel du setzt den Intervall auf 20 Sekunden.
Jetzt schaltest du im Webfront z.B. ein boolean (Bit). Dann springt der Wert (mit Pech) erst nach 20Sekunden im Webfront um, weil dann der neue Wert gelesen wurde.
Setzt du jetzt den Haken bei Status emulieren, wird der erfolgreiche Sendebefehl sofort die Variable in IPS nach führen, egal wann der nächste LeseIntervall ist.
Michael

Zwischenzeitlich weiß ich jetzt, warum ich nicht dahinter gekommen bin. Etwa 10 min lang nachdem ich die (Lese-)Ereignisse gelöscht habe, lief das Polling perfekt.
Jetzt läuft es ohne erkennbaren Grund nicht mehr, und so war es anfangs auch.:confused:

Ich habe keine Fehlermeldung im Meldefenster, alles i.O., keine Fehler in Splitter Instanzen oder Sockets. Und trotzdem kommen keine Werte mehr an.

Die Scripte habe ich zum Glück wieder aus dem delete-Ordner ziehen können (es sind mittlerweile ca 15 Bit und 30 Real-Variablen). Per Scriptereignis läuft es aber wieder. D.h. die Variablen sind wieder aktuell.
Ich habe V4.00 vom 15.01.16 auf Raspian.

tommes

Hört sich eher nach einen Bug in der 4er an.
Man sollte nicht unbedingt als Einsteiger mit einer Beta-Version anfangen :wink:
Ich schiebe das mal in den passenden Bereich vom Forum.
Michael

Hallo tommes,

ich bin auch blutiger Anfänger im IPS und spiele seit Wochen damit rum.
Habe hier ModBus und 1Wire Gateways am laufen und auch schon öfters mal keine Aktualisierungen der Werte, obwohl alles angeblich i.O. ist.
Dann connecte ich einfach via Browser auf das SymOS und mache unter Support einen Neustart des Ip-Symcon, das hilft dann meist, dass Werte wieder angefragt werden. Also nur das Symcon, nicht die komplette Box. Vergleichbar bei dir mir dem Pi denk ich…

Oder deine ModBus Gateways neustarten.

Gruß

Hi,

beschäftige mich zwar auch erst seit 2 Wochen mit der IPS, muss aber sagen das die Modbus SST wirklich super läuft, auch unter der 4er BETA Version auf meinem Raspberry.

Das was mir auf viel, war das die IPS langsam wurde als ich alles mit einzelnen Bit`s von der SPS zu IPS geholt hatte.
Aber irgendwo hier im Forum fand ich jemanden der kleines Script geschrieben hatte was immer ganze WORDs ausließt, und diese dann in einzelne Bits in der Symcon aufteilt.

Das ist jetzt noch alles was bei mir in der SPS angelegt ist.


	word_59									AT %MW59			: WORD;			(* Symcon 12347 - 16x Meldungen von Wago zu Symcon *)
	word_60									AT %MW60			: WORD;			(* Symcon 12348 - 16x Meldungen von Wago zu Symcon *)
	word_61									AT %MW61			: WORD;			(* Symcon 12349 - 16x Taster von Symcon für Wago *)
	word_62									AT %MW62			: WORD;			(* Symcon 12350 - 16x Taster von Symcon für Wago *)
	word_63									AT %MW63			: WORD;			(* Symcon 12351 - 16x Taster von Symcon für Wago *)
	word_64									AT %MW64			: WORD;			(* Symcon 12352 - 16x Taster von Symcon für Wago *)
	word_65									AT %MW65			: WORD;			(* Symcon 12353 - 16x Taster von Symcon für Wago *)
	word_66									AT %MW66			: WORD;			(* Symcon 12354 - 16x Taster von Symcon für Wago *)
	word_67									AT %MW67			: WORD;			(* Symcon 12355 - 16x Taster von Symcon für Wago *)

Und es rennt wie eine eins seid her. ;):cool: