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.
Sorry, das ich euch mit meinen Anfängerfragen etwas strapaziere
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.
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
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
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…
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.
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
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
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 ?
Okay…
mir ist da ein ganz peinlicher Fehler passiert…
habe vor dem „Projekt übersetzten“ in Codesys nicht gespeichert
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.