Einstieg in Symcon / Wago einrichten und erste Werte/Befehle übertragen

Hallo zusammen,

ich habe mir heute Symcon (Pro) zugelegt und benötige einen „Schubs“ in die richtige Richtung…

kurz vorab:
Ich hatte zuvor bereits eine andere Visu (XSolution) laufen, mit der ich jedoch an vielen Stellen unzufrieden bin.
Da ich aber damit bereits einige Temperaturen und Befehle übertragen hatte, läuft die Modbus-Kommunikation auf der Wago (750-889) fehlerfrei.

Erstes Ziel:
Ich habe zwar bereits einiges in der Symcon-Dokumentation gelesen, jedoch bekomme ich den Einstieg nicht hin.
Als erstes möchte ich „einfach“ die Wago (Modbus) als Instanz einbinden und die ersten Temperaturen und Befehle übertragen.

Problem:
Die Schnittstelle wird geöffnet und meldet zyklisch Fehler.

Danke für eure Antworten !

Hi,

wenn ich Richtig sehe (Bilder zu klein :slight_smile: ) hast du eine M-Bus Instanz genommen.
ModBus währe Richtig.

Gruß

Ups…

das ist richtig :banghead:
Jedoch habe ich dies nun korrigiert und er meldet noch immer einen M-Bus fehler :confused:

Weiterhin verstehe ich noch nicht, wo ich z.B. der Kamintemperatur die Modbus-Adresse zuweise.

Okay, es war noch das alte M-Bus Gateway in den I/O und Splitter-Instanzen eingetragen.
Nun scheint es keine Fehler zu geben.

Kann mir dann noch jemand sagen, wo ich den Variablen die Modbus Adresse zuweise?

Danke !!

Aha…

ich muss ein Modbus-Device und keine Variable anlegen.
Bekomme nun den richtige Wert angezeigt.

Danke für die Hilfe!

Nabend zusammen

Sorry, das ich euch mit meinen Anfängerfragen etwas strapaziere :smiley:
Aber da der Thementitel gut passt, lasse ich diesen nochmal „aufleben“.

Temperaturen bekomme ich schön übermittelt, aber an Bits scheitere ich noch…
Ich schalte bereits (über die bisherige Xsolution Software) auf Modbusadresse 12290 (schreiben) und 12291 (Status) einen Ausgang der Wago.
Dies klappt über die bisherige Visu auch super, nur bekomme ich nicht raus, was ich in Symcon einstellen muss.

Vielen Dank für eure super Hilfe!
Das Forum mag ich jetzt nach 1 tag schon gern…

Gruß,
Philipp

Hi,

laut Screenshots hast du MW Merker. Demnach ist die Einheit bei IPS Falsch.

Mal eine Frage: wenn du nur False und True hast, wieso hast du WORD als Merker in CodeSys genommen?

MX Merker (BOOL) währe meine Meinung nach die Richtige Wahl.

Gruß

Edit:

Noch eine Frage :smiley:

Hast du ein Licht Schalter oder Taster? und für was 2 Merker für’s Licht?
Ich kenne zwar dein Früheres Programm nicht, aber IPS Kann mit einem Merker Schalten und Abfragen.

jetzt wo du es sagst, klingt MW-Merker wirklich nicht mehr richtig…
Ich hatte eine Tabelle, in der die MW-Merker mit zugehörigen Modbusadressen standen.
Das habe ich genommen, es hat funktioniert und mir danach einfach keine Gedanken darüber gemacht…

Ich habe einen Lichttaster.

Ich kenne zwar dein Früheres Programm nicht, aber IPS Kann mit einem Merker Schalten und Abfragen.

Ich brauche doch in codesys einen (oder mehrere) Eingänge und einen Ausgang = 2 Modbusadressen = 2 Merker ?

Mit der Änderung auf Word bekomme ich den Status (als integer) korrekt übermittelt.
wenn ich den wert aber ändern möchte, sagt IPS: der wert wurde als „nur lesen“ markiert.
Wo der so definiert wurde habe ich aber noch nicht gefunden, es gibt doch eine lese und schreib Adresse :confused:

Da der Taster ja noch von Außerhalb IPS direkt auf der Wago mittels DI geschaltet wird, benötigt doch IPS auch 2 Werte, oder nicht?
Einmal die Schreibadresse und Statusadresse…

Modbus Adresse:
%MW0 12288
%MW1 12289
%MW2 12290
usw…

In dem Dokument standen nur diese MW-Merker mit Modbusadresse.
Daher dachte ich, für Modbus brauche ich ein MW.
Den Typ (BOOL, INT, WORD) kann ich ja trotzdem deklarieren.

Habe ich da etwas falsch verstanden ?

Hi,

wenn du Lust hast, kannst du folgendes Probieren.

Du hast in Codesys 2 Eingänge am Trigger bzw am (ODER Baustein) das Brauchst du nicht :wink:

Am Trigger kommt nur der Taster.

Für Merker nimmst du zb. AT %MX0.0:BOOL; (das ist die Modbusadresse 12288). als Ausgang und den selben Merker am XOR Baustein.

In IPS sieht es dann so aus:

wago_modbus.JPG

Gruß

Vielen Dank für die ausführliche Beschreibung !
Das werde ich heute Abend probieren.

Aber vorab für mein Verständnis:

AT %MX0.0:BOOL; (das ist die Modbusadresse 12288)

Ist es möglich die einzelnen Bits innerhalb einer Modbusadresse anzusprechen?

%MX0.0:BOOL; -> Modbusadresse 12288
%MW0:BOOL; -> ebenfalls Modbusadresse 12288
%MX0.1:BOOL; -> Modbusadresse ?

Die Modbusadressierung ist etwas verwirrend, wenn man das das erste mal anschaut.
%MX0.0 = Modbusadresse 12288
%MX0.1 = Modbusadresse 12289
%MW0 = Modbusadresse 12288
%MW1 = Modbusadresse 12289

Hier findest du eine Excelliste mit den Adressen
https://www.symcon.de/forum/threads/11889-Modbus-Bits-auslesen/page2

Gruß
Dieter

Hi,

Ist es möglich die einzelnen Bits innerhalb einer Modbusadresse anzusprechen?

Wie meinst du das?

Wenn du ein BOOL Merker hast, hat er nur zwei Zustände. 0 oder 1 bzw. (False & True).

%MX0.0:BOOL; -> Modbusadresse 12288
%MW0:BOOL; -> ebenfalls Modbusadresse 12288

%MX0.0:BOOL; -> Modbusadresse 12288 ist Bit
%MW0:WORD; -> ebenfalls Modbusadresse 12288, aber WORD und nicht Bit

Eigentlich ist %MW0:BOOL; Falsch da es nicht BOOL sondern WORD ist.

Also wie Dieter oben geschrieben hat.

%MX0.0:BOOL;
%MB101 :BYTE;
%MW100 :WORD;
usw.

in dem Thread (Link oben vom Dieter) ist auch eine CodeSys Datei zu Downloaden mit Variablen :wink:

Gruß

Nabend zusammen!

Also ich habe das mal nachgebaut, aber leider nur mit Teilerfolg…

Funktion: Read Holding Registers (3) + Wirte single Register (6)
Dies ist bei 1Bit nicht erlaubt (sagt er zumindest)
Deshalb habe ich (2) +(5) gewählt.
Da es ein Bit ist, muss ja nicht das Register komplett geschrieben/gelesen werden, richtig?

Status:

  • Ich bekomme in IPS korrekt angezeigt, ob der Ausgang1 (LED) 1 oder 0 ist.
  • Dieser wechselt jedoch in undefinierten Abständen automatisch zwischen 0 und 1.
  • Wenn ich diesen in IPS aktiv ändern möchte, sagt er: Die Variable ist als „nur lesen“ definiert :confused:

Könnt ihr mir zum Sieg verhelfen?

Mir kommt es so vor, als ob sich der Ausgang zusammen mit der Außentemperatur ändert.

steht evtl. folgendes im Konflikt und wenn ja warum?
MW0 - Modbus 12288 = Außentemperatur
MX0.2 - Modbus 12290 = Lichtschalter

Die einzige Gemeinsamkeit erkenne ich in der MW0 MX0

Die Adressenliste ist (wenn sie stimmt) wirklich gut, Danke nochmal.

Ich habe nun den auf „MX1.0 - Modbus 12304“ gelegt.
Das Problem mit dem zufälligen Wechsel besteht noch immer, jedoch deutlich seltener.

Die Bedienung über den Taster funktioniert aber (auch schon mit „MX0.2“) nicht mehr.
Der Modbus-Merker scheint recht „dominant“ zu sein.

Hi,

habe schnell mal eben meine Test Wago ausgepackt und ausprobiert :wink:
Funktioniert ohne Probleme bei mir.
Schalten mit Taster oder über IPS.

licht2.JPG

Gruß

EDIT:

Du kannst von IPS aus Modbus nur in der Instanz Schalten! „Testumgebung“ oder im WebFront.
Wert in der Console zu schalten ist nicht möglich! (Screenshot unten)

Tja, dann weiß ich auch nicht mehr…
habe mittlerweile so viele Kombinationen probiert.
kann man bei IPS kostenpflichtig Lehrstunden über TeamViewer buchen ?

Hi,

wenn du willst kannst du dein Codesys Programm schicken. Dann könnte man reinschauen was los ist.

Hier mein Test Programm

Wago.zip (20.5 KB)

Gruß

Okay…
mir ist da ein ganz peinlicher Fehler passiert…
habe vor dem „Projekt übersetzten“ in Codesys nicht gespeichert :banghead:

Jetzt funktioniert es, wenn ich mit z.B. „MX2.0“ benutze = Modbus 12320
Bei „MX0.2 = Modbus 12290“ bekomme ich wieder „zufällige“ Änderungen zwischen EIN/AUS, ohne selbst zu schalten.
Diese scheinen aber wirklich mit dem „MW0“ meiner Außentemperatur zu kollidieren.

Kann mir das jemand erklären?