Wie Variablen richtig anlegen?

Hallo allerseits.

Ich habe jetzt mal sämtliche 16 Bits eines Merkerworts (%MW0) vom Wago-Controller ausgelesen.
Parallel dazu habe ich auch das WORD ausgelesen.

(Siehe Screenshot)

Die Aktualisierung bei sämtlichen ELementen erfolgt alle 1000ms.

Nun meine Fragen:

Warum werden 2 Bit als TRUE angezeigt, obwohl das WORD aussagt, dass nur ein Bit (nämlich das 14.) aktiv ist? (Es IST nur das 14. Bit aktiv.)

Ich habe die Adressen mehrfach überprüft und ich konnte keinen Fehler feststellen.

Ist die Art, wie ich die Variablen angelegt habe, so elegant/korrekt/gängig???

Irgendwie finde ich es etwas lästig unter der Kategorie „Wago-Linie“ für jedes Bit eine neue Instanz mit nur einer neuen Bit-Variable anzulegen. Das macht den Baum schnell sehr gross und umfangreich, vor allem, wenn man über 50 Variablen anlegt.
Zudem sind die Sprungmarken im System nicht sehr schön, so dass man nicht nur per Tastaur arbeiten kann, sondern immer wieder zur Maus greifen muss.

Natürlich hat man dadurch den Vorteil, dass man (so wie ich im gezeigten Beispiel) jede Abfrage im Instanznamen um weitere sinngebende Ergänzungen in der Bezeichnung erweitern kann.

Aber man „verschiesst“ damit natürlich auch zhlreiche der lizenzierten Variablen, oder?

Ausserdem muss man für jedes einzelne Bit immer und immer wieder den kompletten Konfigurationsdialog für eine Variable durchackern.

Da ist es doch edler/eleganter, das Word komplett zu lesen und dann erst per Script (wie auch immer das in meinem Fall aussehen würde) auf interne Bit-Variablen aufzuteilen, oder?

Wie löst Ihr solche vielfachen Bitaufrufe?
Liesse sich die Erstellung der Instanz-/Variablen-Erstellung irgendwie automatisieren?

(Also zum Beispiel:
Von Bit 12288 bis Bit 12350 lege jeweils eine Variable an, die

  • Bit ist,
  • nur Lesen ist,
  • alle 1000ms abgefragt wird.)

Ich würde mich sehr über Anregungen Tipps und Hilfen freuen.

Vielen Dank schon mal

Zaphod

IPS_001.pdf (136 KB)

Hallo. Ich noch mal.

Ähhh…

Zu Punkt 1. Da habe ich meinen Fehler gefunden (schäm). Hatte ein falsches Kommunikationsobjekt genommen.
Sorry dafür…

Hat schon jemand Ideen zur 2. Frage?

Gruss

Zaphod

Hallo Zaphod,

ich habe den nachfolgenden Link genutzt um bei meiner Steuerung auf die Modbusadressen lesend zugreifen zu können.
War ein wenig Gefummel läuft aber ganz nett um entsprechende Variablen zu lesen (natürlich auch um zu schreiben).

Falls weitere Fragen einfach posten

Hallo Joachim,

magst du das mal mit Screenshots näher erläutern und die aktuell benötigten Dateien anhängen?

Gruß
Jens