NEWS
S7 Adapter aktualisiert nicht komplett
-
Hallo fu_zhou
Hallo Bluefox
ich habe soeben einen Test gefahren mit Hardware CPU S7-315-2 PN/DP (6ES7 315-2EG10-0AB0 v 2.3) .
In der Steuerung habe ich einen Datenbaustein DB200 angelegt mit einem Array [0..10000] of Byte. Dort wollte ich das Bit DB200.DBX2378.0 einschalten. Der Befehl wurde abgesetzt und in der Steuerung wechselte das Bit von "false" auf "true". Die Kommunikation zur Steuerung und der richtigen Speicherstelle funktioniert. Wie schon die Tage bei der Soft SPS wechselt hier ebenfalls der Status im Objektbaum nach 1 bis 2 Sekunden wieder auf "false". In der SPS blieb das Bit auf "true".
Danach habe ich das Bit geändert und das Bit DB200.DBX0.0 eingeschaltet. Nach absetzen des Befehls wurde das Bit in der SPS auf "true" geschaltet. Hier blieb auch nach mehreren 10 Sekunden das Bit im Objekt Baum ebenfalls auf "true". Sprich das Verhalten ist zwischen dem Bit 0.0 und dem Bit 2378.0 zumindest unterschiedlich.
Danach habe ich nochmals wieder auf das Bit 2378.0 zugegriffen und der Status im Objektbaum sprang wieder nach 1-2 Sekunden auf "false".
Dann habe ich weiter getestet ab welchem Bit der Unterschied auftaucht. Bei der Abfrage der Bits 0.0 - 0.7 bleibt der Status im Objektbaum entsprechend dem Status wie er in der SPS anliegt. Ab Bit 1.0 geht der Status nach den besagten 1-2 Sekunden wieder auf "false".
Was könnte ich noch testen bzw. wo könnte es noch ein Fehler geben?
@Bluefox Konnte man aus dem Wireshark Capture was ermitteln?
-
Kannst du diese Zeile
https://github.com/ioBroker/ioBroker.s7 … n.js#L1245
So modifizieren?
main.dbs[n].offsetByte - main.db_size[n].lsb,
Und dann testen?
-
Ich habe jetzt einen DB28 angelegt und schreibe mit einem Schalter (hqWidgets - Checkbox) in den DBX0.0 und DBX1.0. Bei mir ist das Verhalten folgendermaßen:
-
die Werte kommen im DB richtig an und das Widget zeigt auch den richtigen Zustand an
-
unter "Zustände" wird auch der richtige Wert angezeigt - wie im Widget und wie im DB28
-
ABER: unter "Objekte" bleibt der DBX0.0 auf "true" stehen, während der DBX1.0 von "true" auf "false" wechselt und den korrekten Zustand anzeigt.
-
und noch einmal ABER: nach einem Refresh der Objekte-Seite (z.B. F5) hat der DBX0.0 auch wieder korrekt angezeigt.
-
Funktioniert sowohl mit Dauersignal als auch mit Impuls und auch mit DBX2378.0 (anstatt DBX1.0)
Alles mit der Version 0.3.0, daher ist aus meiner Sicht bei der Kommunikation im Moment keine Anpassung notwendig. Die 0.3.1 habe ich (noch) nicht installiert, da die 0.3.0 bei mir läuft und ich nicht weiß, was die 0.3.1 in meinem System bewirkt.
Durch den großen DB28 (Array of 0..30000 of Bool) ist meine poll time von 100 ms auf über 400 hoch gegangen. Da haben sich bei einer eingestellten poll delay Zeit von 500 ms die Objekte seltsam verhalten - sind beim Bedienen zwischen True und False hin und her gesprungen, bis sie ihren endgültigen (richtigen) Zustand erreicht hatten. Die poll delay Zeit sollte mindestens 3x so groß gewählt werden, wie die poll time, gemessen vom Adapter. Bei 400ms habe ich 1500 ms eingestellt, damit war das hin- und herspringen zwischen true und false vorbei.
Ich habe den DB28.DBX0.0, DBX2378.0 händisch bei den Datenpunkten hinzugefügt. Wenn man diese Datenpunkte wieder löscht, wird "speichern" oder "speichern und schließen" nicht aktiv und so bleiben die gelöschten Datenpunkte vorhanden. Wenn man z.B. Poll Delay unter "Allgemein" kurz verändert, wird "speichern" klickbar und nach dem Speichern sind auch die händisch gelöschten Datenpunkte weg. Hier sollte in der Oberfläche noch mal nachgebessert werden.
-
-
Ich habe jetzt einen DB28 angelegt und schreibe mit einem Schalter (hqWidgets - Checkbox) in den DBX0.0 und DBX1.0. Bei mir ist das Verhalten folgendermaßen:
-
die Werte kommen im DB richtig an und das Widget zeigt auch den richtigen Zustand an
-
unter "Zustände" wird auch der richtige Wert angezeigt - wie im Widget und wie im DB28
-
ABER: unter "Objekte" bleibt der DBX0.0 auf "true" stehen, während der DBX1.0 von "true" auf "false" wechselt und den korrekten Zustand anzeigt.
-
und noch einmal ABER: nach einem Refresh der Objekte-Seite (z.B. F5) hat der DBX0.0 auch wieder korrekt angezeigt.
-
Funktioniert sowohl mit Dauersignal als auch mit Impuls und auch mit DBX2378.0 (anstatt DBX1.0)
Alles mit der Version 0.3.0, daher ist aus meiner Sicht bei der Kommunikation im Moment keine Anpassung notwendig. Die 0.3.1 habe ich (noch) nicht installiert, da die 0.3.0 bei mir läuft und ich nicht weiß, was die 0.3.1 in meinem System bewirkt.
Durch den großen DB28 (Array of 0..30000 of Bool) ist meine poll time von 100 ms auf über 400 hoch gegangen. Da haben sich bei einer eingestellten poll delay Zeit von 500 ms die Objekte seltsam verhalten - sind beim Bedienen zwischen True und False hin und her gesprungen, bis sie ihren endgültigen (richtigen) Zustand erreicht hatten. Die poll delay Zeit sollte mindestens 3x so groß gewählt werden, wie die poll time, gemessen vom Adapter. Bei 400ms habe ich 1500 ms eingestellt, damit war das hin- und herspringen zwischen true und false vorbei.
Ich habe den DB28.DBX0.0, DBX2378.0 händisch bei den Datenpunkten hinzugefügt. Wenn man diese Datenpunkte wieder löscht, wird "speichern" oder "speichern und schließen" nicht aktiv und so bleiben die gelöschten Datenpunkte vorhanden. Wenn man z.B. Poll Delay unter "Allgemein" kurz verändert, wird "speichern" klickbar und nach dem Speichern sind auch die händisch gelöschten Datenpunkte weg. Hier sollte in der Oberfläche noch mal nachgebessert werden. `
Ich habe doch ein Problem gefunden. Wenn man nicht von 0 in DB startet dann wird falsch berechnet.Als Workaround kann ich anbieten ein Datenpunkt mit 0.0 im DB anzulegen.
-
-
mit der 0.3.1 kommen keine Real-Werte mehr an! - Werde wohl mal Back in Time bemühen…
-
Hallo zusammen,
es hat mir auch die ganze Zeit keine Ruhe gelassen. Es liegt in der Tat an dem im letzten Beitrag von Bluefox beschriebenen Workaround. Wenn in den Datenbausteinen jeweils ein Dummy Bit (DBX0.0) angelegt wird, werden alle anderen Werte die diesem folgen auch richtig angezeigt.
Leider ist es aber auch so, dass die Version 0.3.1 durch die gestrigen Änderungen die Real Werte auch mit diesem Workaround nicht richtig anzeigt. Diese Änderungen sollten angepasst bzw. Rückgängig gemacht werden. Ich arbeite aktuell jetzt mit der Version 0.2.6 die alle Werte, so wie ich es im Moment beurteilen kann, richtig schreibt und liest.
Ich möchte mich auf jeden Fall bei Bluefox und fu_zhou für die Unterstützung und Hilfe bedanken. Super Arbeit .
-
Habe den Fehler gefunden und gecheckt. Bitte 0.3.2 testen
-
Habe eben auf die 0.3.2 hochgerüstet - scheint zu funktionieren. Nur ein kleiner Bug: wenn man unter "DB" einen Datenpunkt manuell löscht, wird "speichern" nicht als Schaltfläche aktiv. Da muss man unter "Allgemein" kurz was ändern und wieder zurück gehen, dann kann man speichern und der Datenpunkt ist auch weg.
-
Habe eben auf die 0.3.2 hochgerüstet - scheint zu funktionieren. Nur ein kleiner Bug: wenn man unter "DB" einen Datenpunkt manuell löscht, wird "speichern" nicht als Schaltfläche aktiv. Da muss man unter "Allgemein" kurz was ändern und wieder zurück gehen, dann kann man speichern und der Datenpunkt ist auch weg. `
Fixed in 1.0.0 -
1.0.0 läuft!
-
Ich habe den Adapter 1.0.0 getestet und hatte Probleme mit den Datenpunkten. Zuerst schien alles zu funktionieren. Beim Testen wurden dann auf einmal nur falsche Werte angezeigt. Auch ein das Dummy Bit 0.0 für die Datenbausteine brachte keine Änderung. Ich musste dann wieder zurück nach 0.2.6, damit nicht was falsches in die Steuerung geschrieben wird da mittlerweile eine Visu darauf läuft.
Kann es jetzt auf die Schnelle nicht nachvollziehen und testen. Hoffe, dass ich da Anfang der Woche dran komme.
Gruß Matthias
-
Hallo zusammen,
seit gestern Abend habe ich nun auch den Adapter mit der Version 1.0.0 bei mir am laufen. Scheint so alles zu funktionieren . Warum es beim letzten Mal nicht ganz passte, keine Ahnung.
Des weiteren habe ich mittlerweile auch die Mobile Ansicht zum laufen bekommen. Hier wurden mir ja schon in der Vergangeheit alle Aufzählungen angezeigt aber ich konnte nichts schalten. Um auch schalten zu können mussten in den Objekten die Eigenschaften "Read" und "Write" hinzugefügt werden.
Könnte man dies eventuell auch automatisiert beim Anlegen der Objekte mit übernehmen. Im S7-Adapter werden diese Eingeschaften ja schon festgelegt und daraus dann die Objekte erstellt.
-
Hallo Liebe Leute, Erstmals finde Ich es Klasse was Ihr alle drauf habt . Ich würde mich auch für eine Kommunikation zwischen S7 1200 und Siri interessieren. Was brauche Ich alles ? Ich hab ein Raspberry Pi 3 mit einem Image wo Iobroker installiert ist mit S7 Adapter und auch Yahka. Aber wie kann ich beides kombinieren ? Ich würde mich sehr über eure Hilfe freuen. Sg