Wago Real-Wert setzten

Hallo,
ich versuche gerade ein Real-Wert (Temperatur) in einen Wago 750-842 Merker zu setzen. Leider klappt es nicht. In IP-SYMCON wird zwar der Wert angezeigt, aber in der SPS ist er in der Live-View nicht geändert.

Im Anhang meine Konfiguration. Das letzte Bild ist eine Debug-Ausgabe, ob der Befehl zum Setzen erfolgreich ausgeführt werden konnte.

Mein Merker in der Wago
MT00 AT %MD2 : REAL; (* 12296 *)

Für jede Hilfe wäre ich Dankbar :slight_smile:

PS: Ich habe gestern mit einem Bool/Bit Wert getestet und konnte damit auch einen entsprechenden Merker in der Wago ändern.

Bildschirmfoto 2010-12-19 um 19.44.03.png

Bildschirmfoto 2010-12-19 um 19.34.59.png

Bildschirmfoto 2010-12-19 um 19.34.01.png

Hi

Gemäß „Bild 2“ beschreibst du die Adresse 13364 ?

Schau doch mal in der Wago, ob dieser Inhalt hierher geschrieben wurde ?

Gruß Karl

Ähm … bin ja auch noch Anfänger in Bezug auf Wago, aber du schreibst einmal MD2 , dann in IPS die 12296 und in der Debug Ausgabe sieht man du schreibst auf die 13364 … meinst du das paßt so alles zusammen ???

Ein Merker MD2 wäre meiner Meinung nach Adresse 12292 … !? :confused:
Aber auch nur wenn du keine anderen Merker definiert hast, die sich evtl. mit dem MD2 überlagern … dann müßtest du den Merker anders definieren!

edit
hmm … zu lange zum Tippen benötigt :wink: … aber auf jeden Fall die gleiche Beobachtung …

Gruß
Jens

Hallo,
und vielen Dank. Also die 13364 passt, da es die IP-SYMCON Instanz ID ist und nicht die Wago Adresse. Aber der richtige Hinweis war die 12292 und nicht 6 am Ende.

Mit der 12292 funktioniert es aber ich bin etwas verwirrt, wie man denn jetzt die Adresse berechnen kann.

Ich habe zum Testen einen Bit Merker. Die Adresse habe ich über über die Formel 12288 + MerkerNr * 16 + MerkerSubNr berechnet. Dadurch ergibt sich bei mir für den Merker M1.0 die Adresse 12304. Interessanterweise funktioniert das auch. Aso ich kann diesen Merker korrekt auslesen und setzen. Wie kann es denn sein, dass der Merker MD2 dann über 12292 bedient wird?

Gruß f4n

Hi

3000H --> 12288 > MW0

12290 --> MW1
12292 --> MW2

Wenn du auf das MD2 zugreifen willst, bleibt die Adresse narütlich.

Beachte
MB --> Byte
MW --> Word
MD --> Doppelwort

Zählen mußt du bei Doppelworten * 2

MW0 --> 12288
MW1 --> 12290
MW2 --> 12292

MD0 --> 12288
MD2 --> 12292

MD1 gibt es NICHT !
(Grundsätzlich wäre es 12290, jedoch Überdeckung mit 12292)

Möglich wäre:
MW0
MD1 ( Platz ist MW1 + MW2)
MW3

Gruß Karl

Ähm Karl … so ganz stimmt das aber doch nicht …

MW0 --> 12288 ist ein Merker Word und hat nur 1 Stelle, MW1 wäre dann 12289 … erst bei MD (Doppelword) kommt der Versatz um 2 und selbst da gibt es die 1 … und es funktioniert auch mit MD1 !?

MD0 --> 12288
MD1 --> 12290
MD2 --> 12292

Oder hab ich da jetzt einen gedanklichen Knoten ?
Hier im Forum existiert so eine Art Modbus Adressliste und aus der ergibt sich das zumindestens so wie ich es geschrieben habe …

Gruß
Jens

Danke für die Erläuterung, damit komme zumindest bei Word und DWord klar, da diese 16 bzw. 32 Bit haben ist es für mich auch logisch, dass bei einem DWord eine Adresse übersprungen wird.

Was mir jetzt aber nicht klar ist, ist wie man Bytes oder Bits adressiert.
Wenn 12288 = MW0 und 12290 --> MW1 ist, wie wäre dann die Adresse für %MX0.4 : BOOL, also ein bestimmtes Bit ?
Wenn ich da nach meiner Formel gehe, käme 12288 + 0 * 16 + 4 = 12292 raus, was sich ja dann mit dem MW2 überlappt.

Gruß f4n

Hallo f4n,

das Thema hatten wir vor kurzem schon.
Schau doch bitte mal dort nach, da gibt es auch nette Tabellen und Anleitungen.

Viel Erfolg.

Im vorletzten Post des Threads ist die Liste mit den Adressen die ich gemeint habe :wink: .
Im Tabellenblat ADR_PW fängt es allerdings mit 12289 an, was falsch ist … da müßte 12288 stehen!
In Tabellenblatt1 ist es richtig.

Gruß
Jens

Hi & Danke,
ich hab mir die Excel-Tabelle des vorletzten Beitrags geladen. Da ist zwar noch ein kleiner Fehler auf dem ersten Arbeitsblatt MX0.0 wäre angeblich 12289 aber auf dem zweiten Blatt ist es korrekt.

Und für alle die auf diesen Beitrag stoßen sollten… des Rätsels Lösung ist das tatsächlich Adressen mehrfach benutzt werden. Es wird für jedem Datentyp ausser beim Double Word eine Adresse genutzt.
MW0 = MX0.0
MW1 = MX0.1
MW2 = MX0.2 … usw. also wird für jeden Bit/Bool-Merker sozusagen eine ganze 16-Bit Adresse reserviert.

Nur bei einem Double Word wird eine Adresse übersprungen.

MD0 (32Bit) = MW0 (16Bit) = MX0.0 (1Bit) = 12288
MD1 (32Bit) = MW2 (16Bit) = MX0.2 (1Bit) = 12290

Dadurch ergeben sich folgende Rechenregeln. (n und m sind die jeweiligen Zahlen)

Adresse MXn.m = 12288 + ( n * 16 ) + m
Adresse MWn = 12288 + n
Adresse MDn = 12288 + ( n * 2 );

Somit setzt man seine Word und DoubleWord Merker am besten an den Anfang und die Bit/Bool-Merker weiter nach hinten, da dort die Adressen schnell steigen können und somit nicht mit nachfolgenden Merkern kollidieren können, falls man weitere hinzufügt.

Gruß f4n