# Danfoss FC202 an ABB AC500 per Modbus RTU



## Parz (8 April 2020)

Hallo,
ich versuche mehrere Danfoss FC202 an eine ABB AC500 Steuerung zu koppeln. Protokoll ist Modbus RTU (FC-Profil).
Das Zustandswort kann ich lesen und das Steuerwort kann geschrieben werden und funktioniert soweit auch.
Nun möchte ich die Drehzahl verstellen (Hauptsollwert) und die aktuelle Drehzahl zurück lesen. Leider kann ich die beiden Werte nur als Coils lesen bzw. schreiben (also 16 Binärwerte lesen bzw. schreiben). Ich würde die Werte aber gerne als Register lesen bzw. schreiben, da dies einfacher in der SPS umzurechnen geht.
Zusätzlich würde ich gerne die Betriebsstundenzähler und andere Werte (Kundenvorgabe) lesen.
Leider finde ich in den Anleitungen von Danfoss keine Liste mit den zugehörigen Modbus-Registern.
Gibt es da ein spezielles Handbuch von Danfoss in dem die Register aufgeführt sind?
Muss am FU ein passendes PPO Projektiert werden?

Gruß
Patric

PS.: Die gleiche Anfrage habe ich in die Gruppe Automatisierungssysteme sonstige Steuerungen gestellt. Falls Mehrfachpost nicht gewünscht bitte löschen.


----------



## Parz (8 April 2020)

*Danfoss FC200 an ABB AC500 per Modbus RTU*

Hallo,
ich versuche mehrere Danfoss FC202 an eine ABB AC500 Steuerung zu koppeln. Protokoll ist Modbus RTU (FC-Profil).
Das Zustandswort kann ich lesen und das Steuerwort kann geschrieben werden und funktioniert soweit auch.
Nun möchte ich die Drehzahl verstellen (Hauptsollwert) und die aktuelle Drehzahl zurück lesen. Leider kann ich die beiden Werte nur als Coils lesen bzw. schreiben (also 16 Binärwerte lesen bzw. schreiben). Ich würde die Werte aber gerne als Register lesen bzw. schreiben, da dies einfacher in der SPS umzurechnen geht.
Zusätzlich würde ich gerne die Betriebsstundenzähler und andere Werte (Kundenvorgabe) lesen.
Leider finde ich in den Anleitungen von Danfoss keine Liste mit den zugehörigen Modbus-Registern.
Gibt es da ein spezielles Handbuch von Danfoss in dem die Register aufgeführt sind?
Muss am FU ein passendes PPO Projektiert werden?

Gruß
Patric

PS.: Die gleiche Anfrage habe ich in die Gruppe Antriebstechnik gestellt. Falls Mehrfachpost nicht gewünscht bitte löschen.


----------



## doctorVLT (20 April 2020)

*Modbus RTU Danfoss*

Geht auch über die Coils aber besser als Register auf die PCD Daten schreiben/lesen.
Die Werkseinstellungen für CTW/MRV bzw STW/MAV passen da ganz gut.

Hier das Modbus Handbuch (EN):
http://files.danfoss.com/download/Drives/MG92B102.pdf

Protokollaufbau – Register / Datenformate

Es ist möglich jeden Parameter einzeln anzusprechen.
Es ist jedoch auch möglich die Prozessdaten-Parameter zum Mappen nützlicher Daten zu nutzen. 
Die Datenwerte werden auf die Register 2810 bzw. 2910 (und folgende) gemappt.

RTU-Parameter:Schreiben 842.x ; Lesen 843.x
TCP-Parameter:Schreiben 1221.x ; Lesen 1222.x

Protokollaufbau –Register / Datenformate*  (siehe Handbuch 4.1.12 Register Addresses _Table 4.6 )_

Zu Reg. Nr. 9:Modbus überträgt nur 16Bit hex bzw. INT Werte und beherrscht keine Array oder Index Funktionen. 
Daher muss bei Array Parametern(z.B. Festsollwerte P3-10.x)der Parameter Index (.x) vor dem read/write requestin Register Nr. 9 eingetragen werden!

Des Weiteren nutzbar:
PCD Daten - Register lesen02810 – 02873
PCD Daten - Register schreiben02910 – 02973



Gruß DOC


----------



## Parz (20 April 2020)

Hallo,

ich habe mir nun auf Parameter 843.2 die Motorlaufstunden gelegt.
In 843.0 ist das STW, in 843.1 steht MAV.
Wenn ich die Register 2810, 2811, 2812 und 2813 lese, steht in allen 0.

Beide Werte STW und MAB kann ich wie im Handbuch auf Seite 6 angegeben mittels Register 50200 und 50210 lesen.

Welche Register müsste ich denn jetzt lesen, damit ich die Motorlaufstunden bekomme.



Lg
Patric


----------



## ChrisM82 (20 April 2020)

Hi, 
irgendwie sind die Danfoss FU´s sehr komisch aufgebaut. Versuche mal folgende Holding Register zu lesen. 
Motorspannung 16120  
Frequenz (Hz)                                                16130  
Motorstrom (A)                                            16140
Motorlaufstunden müsste unter 15010 stehen


----------



## Parz (21 April 2020)

ChrisM82 schrieb:


> Hi,
> irgendwie sind die Danfoss FU´s sehr komisch aufgebaut. Versuche mal folgende Holding Register zu lesen.
> Motorspannung 16120
> Frequenz (Hz)                                                16130
> ...



GutenMorgen,

ich habe hier im Forum gelesen, dass das Register die Parameternummer x 10 ist. Insofern hatte ich auch probiert das Register 15010 zu lesen. Da die Adresse der Register bei 0 abfängt, hab ich folgende Register probiert: 15010, 15000 und 15009
Bei allen Registern wird die Modbusanfrage mit Error quittiert, wobei ich den genauen Fehler nicht analysieren konnte.

Gruß Patric


----------



## ChrisM82 (23 April 2020)

Hallo, ich bin auch noch etwas am kämpfen mit dem Teil. Profibus ging da gefühlt etwas schneller, ich teste das ganze immer zuerst mit dem RMMS (Modbus Master Simulator) ist ein relativ einfaches Modbus Master Programm. Wenns damit dann läuft kann man weiter machen. Das komische ist, mit dem Programm läuft es auf bestimmten Registern, in meinem Programm (IoBroker) dann wiederum funktionieren nur ein paar Adressen und nicht alle. Ansonsten schau dir doch mal dieses Video an, ab Sekunde 10 sieht man eine Tabelle.
https://www.youtube.com/watch?v=SQkeUreakCA

Gruß Christian


----------



## ChrisM82 (24 April 2020)

Soo, ich habs bei mir nun am laufen. Man kann quasi alles auslesen, was man sich anzeigen lassen kann. Ab Seite 253 geht die Parameterliste los. Möchtest du dir Anzeigen lassen, was im Display eingestellt ist, einfach mal über das Holding Register die 0210 aufrufen, das ist die Displayzeile 1.2 dann sollte dort die 1614 als Antwort kommen. Man muss beim abfragen nur aufpassen, dass man nicht mehr als 10 Wörter gleichzeitig ausliest, wobei 10 nicht gerade viel Sinn macht, da 0210 Beispielsweise die Displayzeile 1.1 ist und 0220 die Displayzeile 1.2. Sobald du versuchst mehrere Sachen gleichzeitig auszulesen hat er keine Lust mehr.


----------



## Parz (24 April 2020)

Ich bin nächste Woche noch einmal vor Ort in der Anlage, dann teste ich noch einmal.


----------



## Kieler (22 August 2020)

Ihr macht mir Angst.
Ich beginne gerade ein neues Projekt mit einer CODESYS 3.5 Steuerung und 5x FC202 von Danfoss. Ich dachte, wenn die schon alle von sich aus Modbus RTU an Bord haben, dann nehme ich das auch für die Kopplung. Das habe ich mir ganz einfach vorgestellt. In jede Richtung 5 Register und das war es. Aber wenn ich dann die Danfoss Beschreibung lese und nur halb verstehe, weil da von Byte gesprochen wird. Ich dachte bei Modbus ist das Register das Maß aller Dinge. Dann lese ich eure Beschreibung, da wird mir ja Angst und Bange. Läuft es wenigstens stabil, wenn es läuft?


----------



## Parz (23 August 2020)

Kieler schrieb:


> Ihr macht mir Angst.
> Ich beginne gerade ein neues Projekt mit einer CODESYS 3.5 Steuerung und 5x FC202 von Danfoss. Ich dachte, wenn die schon alle von sich aus Modbus RTU an Bord haben, dann nehme ich das auch für die Kopplung. Das habe ich mir ganz einfach vorgestellt. In jede Richtung 5 Register und das war es. Aber wenn ich dann die Danfoss Beschreibung lese und nur halb verstehe, weil da von Byte gesprochen wird. Ich dachte bei Modbus ist das Register das Maß aller Dinge. Dann lese ich eure Beschreibung, da wird mir ja Angst und Bange. Läuft es wenigstens stabil, wenn es läuft?



Keine Sorge, wenn es erst mal läuft dann ist der Bus stabil.


----------



## Kieler (30 August 2020)

So, nun gab es die ersten Baubesprechungen zu diesem Thema.
Der Kunde meint, die FU's sind noch nicht bestellt und wenn es einfacher ist, würde er auch Modbus TCP bestellen. Ist die Projektierung eines FC202 mit Modbus TCP einfacher als mit Modbus RTU oder nimmt sich das in Wirklichkeit nichts? Also werden dort die gleichen Register verwendet? Auf die Inbetriebnahme bin ich wirklich gespannt.


----------



## Parz (1 September 2020)

Kieler schrieb:


> So, nun gab es die ersten Baubesprechungen zu diesem Thema.
> Der Kunde meint, die FU's sind noch nicht bestellt und wenn es einfacher ist, würde er auch Modbus TCP bestellen. Ist die Projektierung eines FC202 mit Modbus TCP einfacher als mit Modbus RTU oder nimmt sich das in Wirklichkeit nichts? Also werden dort die gleichen Register verwendet? Auf die Inbetriebnahme bin ich wirklich gespannt.



Hallo,
ich glaube die Registeradressen sind identisch, zumindest hab ich nichts gegenteiliges gefunden.
Ich verwende einen AC500 von ABB, dort gibt es unterschiedliche Bausteine für die Kommunikation mit Modbus TCP und Modbus RTU.

Leider kann ich dir an dieser Stelle nicht weiter helfen.

Gruß Patric


----------



## Kieler (3 Oktober 2020)

Moin,

der FC202 ist gestern gekommen und liegt in der Werkstatt. In der nächsten Woche werde ich mit meinem Test beginnen. Jetzt sitze ich in meinem Sessel und lese mir alles noch einmal durch. Eher durch eure Kommentare und dem Internet und viel weniger durch das Danfoss Handbuch, glaube ich zu wissen, was zu tun ist.

Ich bin nur noch etwas unsicher, auf welches Register ich meinen Sollwert schreiben muss. Ist es 4x16020 oder 4x16050 ??

Gruß aus Kiel


----------



## Kieler (3 Oktober 2020)

Parz schrieb:


> Hallo,
> Ich verwende einen AC500 von ABB, ....
> 
> Gruß Patric



Damit verwendest du ja auch Codesys. Was hast du mit LSB und MSB im Steuerword gemacht?


----------



## Parz (8 Oktober 2020)

Kieler schrieb:


> Damit verwendest du ja auch Codesys. Was hast du mit LSB und MSB im Steuerword gemacht?



Hallo,

anbei Auszug aus meinem Programm:

Deklaration:
ZTW_Adr_1, STW_Adr_1: ARRAY[1..16] OF BOOL;
ist_druck : INT;
Soll_Drz_Adr_1 :INT;




Hoffe das hilft dir.

Gruß
Patric


----------



## Kieler (6 November 2020)

Moin,

endlich habe ich die Zeit gefunden, mich mit dem Danfoss FU und der Modbus TCP Kopplung zu CODESYS zu beschäftigen.

Nach anfänglichen Problemen kann ich die Daten gut auslesen. Hierzu muss ich die Parameternummer x10, abzüglich eins, nehmen.

Zustandswort steht im Parameter 16-03
1603 x 10 - 1 = Register 16029

Um das Zustandswort aus dem Parameter 16-03 auszulesen, greife ich daher auf Register 16029 zu. Das klappt auch wunderbar. Auch für entsprechende Messwerte. Aber in welches Register schreibe ich jetzt mein Steuerwort und meinen Sollwert? Das Handbuch von Danfoss zu diesem Thema ist wirklich ein Reinfall. Ich würde gerne das FC Protokoll verwenden.


----------



## Parz (6 November 2020)

Kieler schrieb:


> Moin,
> 
> endlich habe ich die Zeit gefunden, mich mit dem Danfoss FU und der Modbus TCP Kopplung zu CODESYS zu beschäftigen.
> 
> ...



Hallo,

ich schreibe 16-Bit mit Funktion 15 auf das Register 0. Damit kann ich den FU steuern.
siehe auch Bild in meinem Post zuvor. STW:=Steuerwort, ZTW:=Zustandswort

Gruß
Patric


----------



## Kieler (6 November 2020)

Hallo Patric,

vielen Dank für Deine Unterstützung am späten Freitagnachmittag. Leider hat Dein Vorschlag bei mir nicht funktioniert. Dann meckert gleich die Kopplung rum. Vielleicht, gibt es an dieser Stelle doch Unterschiede zwischen RTU und TCP. Bin ratlos. Das muss ich mich doch an den Danfoss Support wenden.


----------



## Parz (7 November 2020)

Kieler schrieb:


> Hallo Patric,
> 
> vielen Dank für Deine Unterstützung am späten Freitagnachmittag. Leider hat Dein Vorschlag bei mir nicht funktioniert. Dann meckert gleich die Kopplung rum. Vielleicht, gibt es an dieser Stelle doch Unterschiede zwischen RTU und TCP. Bin ratlos. Das muss ich mich doch an den Danfoss Support wenden.



Hallo,
hast du daran gedacht die Steuertworthoheit auf Bus zu stellen?
Wenn der auf Klemme steht akzeptiert der FU das Bussignal nicht. Bei Klemme Und Bus müssen beide Signale anstehen.

Gruß Patric


----------



## Kieler (7 November 2020)

Parz schrieb:


> Hallo,
> hast du daran gedacht die Steuertworthoheit auf Bus zu stellen?



Daran habe ich natürlich nicht gedacht. Mein Problem ist aber auch, dass meine Steuerung schon einen Fehler anzeigt, wenn ich in das Register 0 schreiben möchte. Egal mit welcher Modbus Funktion.


----------



## Parz (7 November 2020)

Kieler schrieb:


> Daran habe ich natürlich nicht gedacht. Mein Problem ist aber auch, dass meine Steuerung schon einen Fehler anzeigt, wenn ich in das Register 0 schreiben möchte. Egal mit welcher Modbus Funktion.



Was für ein FU hast du denn genau?


----------



## Kieler (7 November 2020)

FC202 mit Modbus TCP


----------



## Parz (7 November 2020)

Kieler schrieb:


> FC202 mit Modbus TCP



Hallo,
ich hab eben noch folgende Excel Tabelle im Netz gefunden.
Kann die Datei leider nicht direkt posten, hier der Link:
https://www.ccontrols.com/support/dp/DanfossFC102.xls


Gruß
Patric


----------



## Kieler (7 November 2020)

Mit genau dieser Excel Liste habe ich auch gearbeitet. Irgendwie habe ich aber trotzdem einen Aussetzer. Da steht, dass ich in das Register 50000 mein Steuerwort schreiben soll. Steht die 5 am Anfang einfach für Coils?
Bei den angegebenen Word Registern musste ich immer einen abziehen. Das würde bei der Adresse Null ja schlecht gehen. Müsste ich dann den Sollwert auch als Coils übertragen?

Leider habe ich meinen gesamten Aufbau gerade runter gefahren. Ich spiele damit morgen noch etwas herum. So richtig logisch erscheint mir das alles nicht.


----------



## Parz (8 November 2020)

Kieler schrieb:


> Mit genau dieser Excel Liste habe ich auch gearbeitet. Irgendwie habe ich aber trotzdem einen Aussetzer. Da steht, dass ich in das Register 50000 mein Steuerwort schreiben soll. Steht die 5 am Anfang einfach für Coils?
> Bei den angegebenen Word Registern musste ich immer einen abziehen. Das würde bei der Adresse Null ja schlecht gehen. Müsste ich dann den Sollwert auch als Coils übertragen?
> 
> Leider habe ich meinen gesamten Aufbau gerade runter gefahren. Ich spiele damit morgen noch etwas herum. So richtig logisch erscheint mir das alles nicht.



Schau mal hier: https://www.wachendorff-prozesstech...technical_notes/TN_0302_Grundlagen_Modbus.pdf

da sind die Bereiche von Modbus gut erklärt.

Ich konnte die Coils übrigens mit Funktionscode 5 nicht einzeln setzen. Deshalb übertrage ich das Array komplett mit Funktionscode 15.
Und Stell die Bedienhoheit vor dem Testen auf Bus.

Das Register 50000 ist übrigens für FC Profil ( siehe Handbuch Danfoss Seite 152 https://files.danfoss.com/download/Drives/MG11BC03.pdf).


----------



## Kieler (8 November 2020)

Moin,

dieses Dokument habe ich auch gelesen. Ich habe das Internet quasi leer gelsen.

Ich bin auch einen minimalen Schritt weiter. Ich habe noch einmal das Handbuch von Danfoss zur Modbus TCP Karte angesehen. In einem Bild wird die Kopplung zu einer Quantum SPS dargestellt. Hier kann man sehen, dass die Register 2810 bis 2819 im FC 202 beschrieben werden und die Register 2910 bis 2919 gelesen werden. Wenn ich jetzt das Register 2810 zyklisch beschreibe, dann läuft mein Bus stabil. Aber was mache ich mit diesem Register? Steuerwort?  Eine kleine Liste über den Inhalt dieser 10 Wörter wäre doch echt nicht zu viel verlangt.


----------



## Parz (8 November 2020)

Kieler schrieb:


> Moin,
> 
> dieses Dokument habe ich auch gelesen. Ich habe das Internet quasi leer gelsen.
> 
> Ich bin auch einen minimalen Schritt weiter. Ich habe noch einmal das Handbuch von Danfoss zur Modbus TCP Karte angesehen. In einem Bild wird die Kopplung zu einer Quantum SPS dargestellt. Hier kann man sehen, dass die Register 2810 bis 2819 im FC 202 beschrieben werden und die Register 2910 bis 2919 gelesen werden. Wenn ich jetzt das Register 2810 zyklisch beschreibe, dann läuft mein Bus stabil. Aber was mache ich mit diesem Register? Steuerwort?  Eine kleine Liste über den Inhalt dieser 10 Wörter wäre doch echt nicht zu viel verlangt.



Laut Danfoss Handbuch müssten das die entsprechenden Parameter in der Gruppe 2 sein

  Halteregister
 Registernummer Beschreibung
00001-00006 Reserviert
 00007 Letzter Fehlercode von einer FC-Datenobjektschnittstelle
00008 Reserviert
00009 Parameterindex*
00100-00999 Parametergruppe 000 (Parameter 001 bis 099)
01000-01999 Parametergruppe 100 (Parameter 100 bis 199)
02000-02999 Parametergruppe 200 (Parameter 200 bis 299)
03000-03999 Parametergruppe 300 (Parameter 300 bis 399)
04000-04999 Parametergruppe 400 (Parameter 400 bis 499)
... ...
49000-49999 Parametergruppe 4900 (Parameter 4900 bis 4999)
500000 Eingangsdaten: FU-Steuerwortregister (STW)
50010 Eingangsdaten: Bussollwertregister (REF)
... ...
50200 Ausgangsdaten: FU-Zustandswortregister (ZSW)
50210 Ausgangsdaten: FU-Hauptistwertregister (HIW)
        *Zur Angabe der beim Zugriff auf Indexparameter zu verwendenden Indexnummer.


----------



## JSEngineering (9 November 2020)

*Modbus-Datei von Danfoss*

Hallo zusammen,


folgende Datei ist mir mal von Danfoss zur Verfügung gestellt worden:
Anhang anzeigen Modbus-Examples-FC-102-DE-24-10-2018 in Arbeit.zip


Vielleicht hilft sie ja weiter.
Gruß
   Jens


----------



## Kieler (9 November 2020)

Hallo Patric,

jetzt läuft es bei mir. Nach dem Motto, kaum macht man es richtig, schon geht es.
Obwohl es nirgends so richtig steht, muss man bei Modbus TCP die folgenden Register verwenden:
2810 : Steuerwort
2811 : Sollwert

Ob man diese Register auch bei Modbus RTU verwenden kann, konnte keiner so richtig sagen. Bei Modbus TCP müssen diese aber verwendet werden.


----------



## Parz (9 November 2020)

Kieler schrieb:


> Hallo Patric,
> 
> jetzt läuft es bei mir. Nach dem Motto, kaum macht man es richtig, schon geht es.
> Obwohl es nirgends so richtig steht, muss man bei Modbus TCP die folgenden Register verwenden:
> ...



Danke für die Rückmeldung.


----------

