# Anfänger braucht Hilfe zu BC9000 , Leistungsklemme und Modbus ???



## DeeWay (12 Mai 2009)

Juha

ich weiß nicht mehr wo ich sonst fragen soll .. hab ein Project zu realisieren und bin absoluter Neuling in "Beckhoff" Programmieren ( hab sonst solche Sachen wie Siemens SPS/Priva Steuerung/Möller gemacht ) 

hab vor Ort eine BC9000 + KL3403 + Endklemme ... 

hab der BC9000 auch schon eine IP zugeteilt ( von einer Anleitung hier im Forum ) ... 

jetzt ist der andere Herr ( andere Firma ) vor Ort und er will über "Modbus" auf die Sache drauf zugreifen .. um die Daten aus der Leistungsklemme zu lesen 

wie mach ich jetzt weiter .. hab schonmal den Support bei Beckhoff angerufen .. er meinte es gibt einen Baustein für Modbus ... ich finde den Baustein nicht und weiß auch nicht wie ich so einen Baustein bearbeite oder einfüge .. 

also jeder Rat wäre hilfreich .. normal kann kann doch nicht schwer sein ?? oder ?? 

Lg Dee


----------



## trinitaucher (12 Mai 2009)

DeeWay schrieb:


> jetzt ist der andere Herr ( andere Firma ) vor Ort und er will über "Modbus" auf die Sache drauf zugreifen .. um die Daten aus der Leistungsklemme zu lesen


Mit was für ner Steuerung will der "Herr" auf den BC zugreifen?

hier steht was über die Bibliotheken:
http://infosys.beckhoff.com/index.php?content=content/1031/bc9000/html/bt_bc9000 libs.htm
http://infosys.beckhoff.com/index.p...ustcpbc/html/tcplclibmodbustcpbc_overview.htm


----------



## Feldbus (15 Mai 2009)

Das ist recht einfach, du musst die Daten der KL3403 am besten auf den lokierten Merkerbreich legen, also %MB.... .Der Modbus Master kann jetzt diese Daten lesen. Und zwar mit dem Modbus Offset 0x4000. Diese würde der Adresse auf dem BC %MB0 entsprechen. Da Modbus Wort weise Arbeitet und der BC Byte weise wäre zum Beispiel 0x4010 (weil HEX 10 = 16 Dez) auf dem BC die Adresse %MB32. Klar? 

Gruß
Feldbus


----------



## DeeWay (12 Juni 2009)

zur letzten Antwort nochmal eine Frage

habe jetzt meine 3 Daten ausgelesen ( %IB2: INT; %IB6: INT; %IB10: INT; ) 

wie mach ich das jetzt das ich sie rausschicken kann und der andere es per Ethernet Modbus auf seinen Server einlesen kann ??


----------



## Feldbus (15 Juni 2009)

Du musst jetzt die Daten zum Merkerbereich mappen. Das machst du einfach mit einer Zuweisung...
Bespiel

VAR 
iDataIn0 AT %IB2:INT;
iMerker0 AT %MB0:INT;
END_VAR

In ST geschreiben: (Structure Text: Programmiersprache)

iMerker0 := iDataIn0;

Das ist alles. Du kannst jetzt die Daten per ModbusTCP auslesen
Adresse 0x4000hex
Offset 0
Len 2 Byte oder 1 Word
Mit Modbusfunktion 6, 16 oder 23.

Gruß
Feldbus


----------



## DeeWay (15 Juni 2009)

Hmm ok 

wie gesagt totaler Anfänger und versuche gerade das Bechkoff Zeug zu verstehen ... aber wird immer klarer im Kopf wie es funzt .. 

wie kann man es denn so machen .. hab hier mal schnell was ins PLC geschrieen .. sidn die Ansätze richtig ??

oben im Variablenteil seh ich jedenfalls Zahlen wenn ich mich einlogge und starte 

ist das unten etwa so gemeint im Programmteil ?? wennnicht evtl um Hilfe


----------



## Feldbus (15 Juni 2009)

Nein so nicht, unten ist das Programm und oben die Variablen. Also nimme die Merker Variablen und trage die oben ein.
Unten machst du dann nur noch die Verlinkung oder Zuweisung.

Also unten steht dann

iMerker0:=Klemme_2_KL3403_1_Daten_Ein;

iDataIn0 usw. kannst du löschen, die hast du ja schon ober bei dir benutzt.


----------



## DeeWay (15 Juni 2009)

Oh mann .. schande über mich .. 

habs jetzt abgeändert so .. bekomme aber 2 Fehler .. ? .. 






Danke


----------



## Feldbus (15 Juni 2009)

Jetzt musst du hinter deinen 3 Variablen noch ein ; setzen.

Klemme2... ... :INT*;*

Das VAR und END_VAR kannst du löschen, ist aber auch egal. Sieht nur besser aus und ist lesbarer.
Die Variable iDataIn0..2 kannst du löschen, brauchst du nicht.


----------



## DeeWay (15 Juni 2009)

Hmm Ok 

hab ich so gemacht .. jetzt kommt die Meldung wegen VAR und END_VAR .. auch wenn ich sie einsetze kommt ne Meldung 





und wenn ich das Programm einspiele .. kann man über Modbus auf die einzelnen Variablen zugreifen ??


----------



## Feldbus (15 Juni 2009)

Ich meinte nur das VAR END_VAR in der Mitte...
Anfangen musst du schon mit VAR und enden mit End_VAR und bitte auch das AT %IB2:INT; löschen.


----------



## DeeWay (15 Juni 2009)

ahh Ok  jetzt klappts .. werd ich dann morgen mal einspielen .. 

und nochmal zu der Frage .. 

der Kollege schließt das dann ja über TCP Modbus an die BC9000 an .. das klappt dann auch ?? .. 

die Adresse wo MB0 liegt .. weiß du / ihr die jetzt auch oder muss ich da unter Hilfe schaun ( war ja was mit "4000" usw )

oder muss ich da noch was im SystemManager machen ?? .. dort hab ich wie beschrieben die E/A Zuordnung gemacht und IP an die BC9000 vergeben .. muss da noch was bei z.b. "SPS Konfiguration" rein ??


----------



## Feldbus (15 Juni 2009)

Wenn du wie besprochen den Merkerbereich nutzt ist nichts weiter notwendig. IP Adresse, Prot Nummer bei ModbusTCP ist dies immer 502dez dann den Offset 0x4000 hex, wichtig hex nicht dezimal.

Gruß


----------

