Moin moin,
ich hab ein kleines Verständnisproblem mit dem Modbus-Kommunikation.
Zunächst mein Aufbau:
Wago 750-871 mit einigen digitalen Ein- und Ausgängen
Dieser ist mittels Ethernetkabel mit einem Wago 750-342 verbunden, an dem auch wieder digitale Ein- und Ausgangskarten stecken (Reihenfolge: 2DI 750-410, 4DI 750-402, 4DO 750-504).
Ich möchte jetzt über Modbus UTP Eingänge lesen und Ausgänge ansteuern können.
Letzteres habe ich auch hinbekommen. Dafür habe ich FunctionCode 5 benutz und steuer die Ausgänge einzeln an (es sind nur wenige, die auch selten gleichzeitig angesteuert werden sollen)
Mein Problem ist jetzt, dass ich die Eingänge gerne alle auf einmal auslesen muss. Dafür hatte ich FunctionCode 2 gewählt, jedoch liefert der Funktionsblock aus der Modus-Lib immer den Error Code 153 und es passiert nichts.
Ich hab mal ein Screenshot vom Baustein gemacht:
IP-Adresse usw ist klar, funktioniert bei den Ausgängen ja wunderbar.
FC:=2;
StartReadAddr:=0 (so wie ich das verstanden hab geht das, weil ich digital arbeite und nur digitale Karten verbaut sind)
RegsToRead:=6 (da 6 Eingänge)
ADR(InData):= Zeiger auf meine Datei, in der ich das Ergebnis speichern will (als WORD deklariert)
Naja der Rest wäre dann zum Zugriff auf Ausgänge, was ja funktioniert...
So weit ich das verstanden habe muss ich die Adresse angeben, ab der die Eingänge ausgelesen werden sollen, wie weit soll gelesen werden und das
Ergebnis der Zustände sollte dann in meiner Datei InData landen. Diese bleibt aber leider Null und ErrCode=153?
Wo liegt mein Fehler?
Ich danke schon mal für eure Hilfe.
Gruß
Andtreas