# Beckhoff cx8090 und Modbus



## knuppel (10 Januar 2014)

Hallo,

ich hoffe ich bin in der richtigen Kategorie.
Zur Zeit teste ich ein Beckhoff CX8090 und einen EL3413 Leistungsmesser. Mit TwinCat2 habe ich nun die Variablen für die Spannung, Strom und Leistung (L1-L3) einem Task hinzugefügt? Wie kriege ich nun die Variablen auf den Modbus?

Den TcpModus Server habe ich installiert.

Ich würde die Modbus Regsiter nun gerne über Ethernet auslesen.
Kann mir da jemand helfen oder Tipps geben?

mfg knuppel


----------



## knuppel (10 Januar 2014)

So wie ich das bereits verstanden habe, muss ich SPS Programm schreiben, welches meine Daten auf den Modbus setzt.
Nur wie ich das für meine im Task gesetzte Variable UL1 (Spannung L1) mache verstehe ich nicht ganz. 


Zum auslesen des Modbusses habe ich Modbbus Poll.

P.s.: Braucht der Modbus Slave nicht eine ID? Wo lege ich die Fest? Ist dann der CX8090 der Slave, oder der EL 3413?


----------



## uncle_tom (10 Januar 2014)

Wenn du den Modbus-Server schon gefunden und installiert hast, dann hast du doch bestimmt auch die Dokumentation dazu gefunden - da steht´s doch drin ;-)

http://infosys.beckhoff.de/content/1031/tcmodbussrvce/html/tcmodbussrv_server_overview.htm?id=28409

In der Default-Einstellung des Modbus-Servers wird z.B. der adressierbare Merkerbereich der Beckhoff-Steuerung auf die Modbus-Register 0x3000 - 0x5FFF (also 12288 - 24575 dezimal) gemappt.

Wenn du jetzt deine Messwerte in der Beckhoff-Steuerung in den Merkerbereich addressierst, dann kannst du über diese Modbus-Register darauf zugreifen.

z.B.

```
Messwert_1 AT%MB0 : INT; (*kann über Modbus-Register 0x3000 ausgelesen werden*)
Messwert_2 AT%MB2 : INT; (*kann über Modbus-Register 0x3001 ausgelesen werden*)
```


----------



## knuppel (10 Januar 2014)

Im Moment bekomme ich mit Modbus Poll keine Verbindung zum CX.


----------



## uncle_tom (10 Januar 2014)

- Ist die TCP/IP Verbindung i.O. - funktioniert der Ping vom Modbus-Poll Rechner an den CX ?
- Wird im Modbus-Poll der richtige Port verwendet - Default 502 ?
- Wurde der CX nach der Installation des Modbus-Servers nochmal komplett durchgestartet - Spannungsreset ?
- Welche Fehlermeldung gibt Modbus-Poll aus ?


----------



## knuppel (10 Januar 2014)

Muss ich den Modbus server auf dem CS installieren? Wenn ja, wie?

Modbus Poll sagt "Slave Device Failure".


----------



## knuppel (10 Januar 2014)

...ich habe TcModbusSrv heruntergeladen. Und mehr ist da laut Anleitung nicht zu tun.


----------



## uncle_tom (10 Januar 2014)

knuppel schrieb:


> Muss ich den Modbus server auf dem CS installieren?
> Modbus Poll sagt "Slave Device Failure".


natürlich musst du den Modbus-Server am CX installieren



knuppel schrieb:


> Wenn ja, wie?



na genauso, wie es in der Dokumentation dazu beschrieben ist.



knuppel schrieb:


> ...ich habe TcModbusSrv heruntergeladen. Und mehr ist da laut Anleitung nicht zu tun.



ich weiss ja nicht was du für eine Anleitung hast, aber in der mir bekannten Dokumentation steht schon noch ein bisschen mehr drin.

http://infosys.beckhoff.de/content/1031/tcmodbussrvce/html/tcmodbussrv_install.htm?id=28408

Weiterhin hast du im 1. Post geschrieben, dass du den Modbus-Server bereits installiert hast, weiter unten schreibst du, dass du ihn nur heruntergelade hast -  ja was denn nun ?

Nimm es mir nicht übel, aber du solltest dir die Dokumentation erst mal gründlich durchlesen, bevor du hier planlos zur Sache gehst.


----------



## knuppel (10 Januar 2014)

Das ist die Anleitung für TcModbusSrv CE. Ich habe nur TcModbusSrv, und da steht weiter nichts in der Anleitung.


----------



## uncle_tom (10 Januar 2014)

ich geh mal stark davon aus, dass du auf deinem CX8090 Windows CE am laufen hast, dann benötigst du auch die CE-Variante vom Modbus-Server.

Weiterhin musst du den Modbus-Server am CX installieren, und nicht auf deinem Projektierungsrechner.

Wenn du die normale Version herunterlädst, und auf deinem Projektierungsrechner installierst, dann kann das freilich nicht funktionieren.


----------



## knuppel (10 Januar 2014)

Dafür habe ich leider keine Lizenz. Und wie es scheint gibt es keine Evaluierungsversion...


----------



## uncle_tom (10 Januar 2014)

knuppel schrieb:


> Dafür habe ich leider keine Lizenz. Und wie es scheint gibt es keine Evaluierungsversion...



korrekt

Evtl. mal mit deinem/eurem Beckhoff Vertriebler sprechen - so teuer ist die Lizenz auch wieder nicht.


----------



## knuppel (10 Januar 2014)

Und für was ist dann die Version ohne CE? Welchen nutzen hat diese?


----------



## knuppel (10 Januar 2014)

_"Der CX8090 ist eine Steuerung mit einem geswitchten Ethernet-Port. Es werden  Protokolle, wie Realtime-Ethernet, ADS UDP/TCP, Modbus TCP Client/Server  oder eine offene TCP/IP-UDP/IP-Kommunikation, unterstützt. Wahlweise können  K-Bus- oder E-Bus-Klemmen angereiht werden; der CX8090 erkennt in der  Hochlaufphase automatisch, welcher Klemmentyp angeschlossen ist. Programmiert  wird die Steuerung mit TwinCAT über die Feldbusschnittstelle oder das  zusätzliche Ethernet-Interface."_

Das nützt mir also erst mal nichts, ohne diese Zusatzsoftware?


----------



## uncle_tom (10 Januar 2014)

> Und für was ist dann die Version ohne CE? Welchen nutzen hat diese?



Die "normale" Version ist für die richtigen Windows-Systeme (Windows XP, Windows 7, etc.).
Es gibt auch Embedded also Hutschienensteuerungen, auf denen ein richtiges Windows läuft - das sind dann aber die größeren und teureren CX10..., CX20...,  bzw. CX5....

Du kannst ja die Twincat-SPS auch auf deinem Projektierungsrechner laufen lassen - auch hier bräuchtest du dann für das Modbus-Protokoll das Zusatzsupplement.

Bei deiner Steuerung handelt es sich um eine Kleinsteuerung mit ARM-Prozessor, diese Steuerungen gibt es nur mit Windows-CE.
Für Windows-CE wird eben eine spezielle Version des Modbus-Servers benötigt.



> Das nützt mir also erst mal nichts, ohne diese Zusatzsoftware?



Richtig, die Windows-basierten Beckhoff-Steuerungen können im Auslieferungszustand ohne weiteres kein Modbus-Protokoll.
Es wird immer ein kostenpflichtiges Supplement mit Lizenz pro CPU benötigt.

Lediglich die kleinen programmierbaren Busklemmencontroller BC9..... unterstützen das Modbus-Protokoll bereits von Haus auf.

Wenn ihr/du bereits eine normale Modbus-Server Lizenz besitzt, dann frag halt mal bei Beckhoff nach, ob man die nicht auf eine CE-Lizenz umstellen kann.

Und auch für eine offene TCP/IP Kommunikation mit dem CX8090 (also z.B. für die Umsetzung von eigenen Protokollen) wird ein Zusatzsupplement (Beckhoff TCP/IP Server) benötigt.
Im Auslieferungszustand kann man mit dem CX8090 auch keine Socketverbindungen öffnen.
Lediglich das Beckhoffeigene ADS-Protokoll wird vom CX8090 im Auslieferungszustand unterstützt.
Dieses ADS-Protokoll ist dafür aber im Beckhoff Information System weitgehend offengelegt und dokumentiert.

Die Zusatzsupplements Modbus, TCP/IP Server sind aber erschwinglich - ich glaube so zwischen 50,-- € bis 100,-- € Listenpreis pro CPU.
Bei mehrfacher Abnahme wird´s billiger.


----------



## knuppel (10 Januar 2014)

Hallo nochmal,

laut Beckhoff Support ist der Modbus Server auf dem CX drauf?!


----------



## uncle_tom (10 Januar 2014)

knuppel schrieb:


> laut Beckhoff Support ist der Modbus Server auf dem CX drauf?!



Kann ich mir nicht vorstellen, es sei denn, bei deinem CX handelt es sich um eine Version mit speziell angepasstem Image.

Aber wenn dem so sein sollte (Server bereits installiert), dann sollte ja auch mit Modbus Poll zumindest ein Verbindungsaufbau möglich sein.
Da hättest du dann gleich den Beckhoff Support löchern sollen.

Wenn der Server bereits installiert sein soll, dann muss es ja auch eine Lizenz geben - somit kannst du ja bei Bedarf das Supplement nochmal nachinstallieren.


----------



## knuppel (11 Januar 2014)

Laut Support Mitarbeiter muss ein SPS Programm auf dem CX vorhanden sein,daß er Daten sendet, was zu tun wäre, daß zu mindest eine Verbindung zu stande kommt weiß ich nicht.


----------



## trinitaucher (11 Januar 2014)

Mensch, lasst euch doch von eurem Beckhoff-Vertriebler mal vernünftig beraten 

Und dann einfach Doku lesen. Der Modbus Server ist drauf!
http://infosys.beckhoff.com/index.php?content=../content/1031/cx8090/html/cx8090_modbustcp.htm


----------



## knuppel (13 Januar 2014)

uncle_tom schrieb:


> Wenn du den Modbus-Server schon gefunden und installiert hast, dann hast du doch bestimmt auch die Dokumentation dazu gefunden - da steht´s doch drin ;-)
> 
> http://infosys.beckhoff.de/content/1031/tcmodbussrvce/html/tcmodbussrv_server_overview.htm?id=28409
> 
> ...



Wie kriege ich die Messwerte in den Merkerbereich?

Woran könnte es liegen, daß ich keine Verbindung zum Modbus Server bekomme?


----------



## uncle_tom (13 Januar 2014)

knuppel schrieb:


> Wie kriege ich die Messwerte in den Merkerbereich?



Also wenn du einen CX mit Ethercat in Betrieb nehmen kannst, und die Messwerte bereits im CX hast, dann sollte dir doch wohl der Code-Auszug von mir weiterhelfen :roll:

Im Beispiel von mir sind die Variablen "Messwert_1" und "Messwert_2" mit INT-Datentyp in den Merkerbereich adressiert.
Du musst jetzt eben deine Messwerte bzw. Variablen ebenfalls adressieren.
Evtl. noch in Ganzzahlen umwandeln, sofern deine Messwerte als Gleitpunktzahl vorhanden sind.




knuppel schrieb:


> Woran könnte es liegen, daß ich keine Verbindung zum Modbus Server bekomme?



Wenn der Modbus-Server wirklich am CX läuft, dann sollte man diesen über die IP-Adresse des CX und den TCP-Port 502 erreichen können.
Man kann dann z.B. auch mit einem TCP-Testtool (z.B. sowas: http://www.simplecomtools.com/productcart/pc/viewPrd.asp?idproduct=7 ) eine Verbindung aufbauen.
Laut Beckhoff-Support soll es ja angeblich notwendig sein, dass ein Programm auf dem CX läuft - ist denn das bei dir der Fall?
Wenn alle Punkte bei dir i.O. sein sollten, und es trotzdem nicht funktioniert - dann löcher doch bitte nochmal den Beckhoff-Support.


----------



## knuppel (13 Januar 2014)

Ich hab ein kleines SPS Programm geschrieben, welches die die definierten Daten auf den Modbus schreibt und kann diese auch mit Modbus Poll auslesen.

Danke für eure Hilfe!
Hatte schon öfters mit dem Modbus zu tun, aber seit der Techniker Schule nichts mehr mit SPS.


----------

