BC9000 per modbus auslesen

higghgetter17

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend!

Ich bin grade dabei einen BC9000 Busklemmenkontroller zu bearbeiten.
Der BC dient zur Regelung und Protokollierung einer Kaltwalzanlage.
Ein Lenze HMI dient hierzu als Visualisierung diverser Komponenten, es läuft momentan mit windows ce.
Seine derzeit sehr überschaubare Menge an Daten bekommt es (das HMI) momentan direkt von diversen Sensoren.
Die Kommunikation zwischen HMI und BC9000 soll über ethernet laufen.
Die Anlage ist bereits in Betrieb und rennt ohne nennenswerte Fehler.

Mein Job ist es, mithilfe der BC9000 weitere Messwerte zu sammeln und entweder auf der BC9000 oder am lenze HMI weiter zu verarbeiten.

Nach studium diverser Manuals bin ich auf die Idee Gekommen die BC als Modbus Slave zu benutzen, welche ihre Daten lediglich in einen Speicherbereich legt und nach studium einer größeren menge an beiträgen hier, habe ich, so hoff ich doch, ein gewisses verständnis für die funktionsweise entwickelt. Somit ist geplant, dass die SPS werte in ihren Speicher legt, und diese dann per modbus master ausgelesen werden.
(Hierbei hat mit besonders dieser Beitrag geholfen: http://www.sps-forum.de/showthread.php?t=27621 )


ich habe zu probierzwecken die BC9000 mit lediglich einer KL2012 und einer Endklemme per ethernet ans laptop angeschlossen

Lt. dem oberen Beitrag habe ich einen Variablenwert in einen speicherbereich geschrieben, der angesprochen werden soll (kann).

Ich versuche mit dem programm "Modbus Poll" eben jene Werte auszulesen, bekomme eine Verbindung zum BC , aber keinen, der von mir eingeschriebenen Werte. ich fürchte, dass ichd ie Falschen Speicherbereiche ansprechen will, aber keine fehlermeldung bekomme.


hier ist mal das Twincat prog, rennt ohne erkennbare Fehler.
Zusätzlich is da noch ein kleines Testprog drinnen, das die Ausgänge der BC an und abschaltet, und eben werte im speicherbereich ablegt.

Variablendef in Twincat
PROGRAM MAIN
VAR
i: INT:=1;
FB_Blinken : TON ;
Blink_Intervall : TIME := t#1000ms ;
Blinken : BOOL ;
Not_Blinken : BOOL;
M0 AT %MB0:INT;
M2 AT %MB2:BOOL;
M4 AT %MB4:INT;

END_VAR
Programm
FB_Blinken(in := NOT FB_Blinken.Q, pt := Blink_Intervall);
IF FB_Blinken.Q THEN
Blinken := NOT Blinken ;
END_IF
Not_Blinken:= NOT Blinken;

Klemme_2_KL2012_2_Ausgang:=Blinken;
Klemme_2_KL2012_1_Ausgang:=Not_Blinken;
M0:=37;
M4:=37;
M2:=Blinken;
;
Das Ergebnis von Modbus Poll ist im Anhang.

Mein problem, so frage ich mich: habe ich Modbus Poll falsch eingestellt, frage ich die falschen Speicherbereiche ab ohne eien Fehlermeldung zu bekommen, oder übersehe ich eine (oder mehrere) höchstpeinliche Banalität?
In Twincat, sieht man, dass die Variablen die Richtigen Werte haben und ebenfalls richtig abgelegt werden.

ich hoff ich hab keinen beitrag übersehen, der mir weitergeholfen hätte, ohne zu fragen, aba ich kenn mich grad nimma aus, leider

ich hoff mir kann wer helfen :confused:

Ich wünsch gleich vorsochtshalber nen schönen Feierabend:ROFLMAO:
 

Anhänge

  • settings.PNG
    settings.PNG
    27,3 KB · Aufrufe: 45
  • protokoll.PNG
    protokoll.PNG
    93,8 KB · Aufrufe: 43
  • rwdef.PNG
    rwdef.PNG
    24 KB · Aufrufe: 39
Zuletzt bearbeitet:
Kann nicht funktionieren, wenn an den falschen adressbereich angibt, somit hat sich erledigt danke

adressbereich ab 16385(dez) 4001(hex) is der Richtige
 
Zurück
Oben