# Anbindung Wagoklemme 750-511



## sebbe (21 Januar 2018)

Hallo Leute,
braeuchte einen Tipp von euch Spezialisten. Ich betreibe eine Wago 750-841 als Heizungssteuerung funktioniert soweit sehr gut. Ich wollte jetzt die Steuerung um eine 750-511 PWM Klemme erweitern um damit eine Gundfos UPM 3 anzusteuern. Da ich aber die sache nur als Hobby betreibe war ich mit der Anbindung der Klemme schnell am Ende. Nun meine Frage an euch, gibt es fuer diese Klemme einen Funktionsblock mit der man sie dirket ansprechen kann, um aus einem 0-100% Wert ein PWM Signal zu erzeugen. Habe bei Wago nichts brauchbares gefunden. Fuer Hilfe waere ich Dankbar.


----------



## Mavorkit (21 Januar 2018)

Hi sebbe,

es gibt in dem Packet Libraries_BA die Bibliothek Building_HVAC_03, dort gibt es den FbPWM. Das ist glaube ich was du suchst.

Gruß

Mavorkit


----------



## sebbe (21 Januar 2018)

Hi Mavorkit,

Danke für deine schnelle Antwort, ich habe mir den FB_PWM schon angesehen, da dieser FB aber einen Bool Wert ausgibt ist er eheher für einen Do geeignet um damit Thermische Stellantriebe anzusteuern.
Die 750-511 velangt aber Byte Werte als Eingang, ausser es gibt eine Möglichkeit diesen FB doch für diese Karte zu verwenden.

Gruß

Sebbe


----------



## Mavorkit (21 Januar 2018)

Hi Sebbe,

sorry men Fehler .

Andere Möglichkeit wäre Fu2Point aus der selben Bibliothek. rInput ist dein Prozentwert, rX1 0, rX2 100, rY1 0 und rY2 255. Schon machst du aus 0-100% 0-255 byte . Am ende noch ein Real_to_Byte dann passt es.

Gruß

Mavorkit

PS: kannst auch aus der util.lib (die bei CoDeSys direkt dabei ist) die Funktion Lin_Trafo verwenden, ist die gleiche Funktionsweise. Ich gehe aber mal davon aus, dass du die HVAC wegen einem Regler eh schon eingebunden hast.


----------



## sebbe (21 Januar 2018)

Hi Mavorkit,

Danke für den Tipp aber so etwas ähnliches hatte ich schon Probiert wie auf dem Bild zu sehen ist. Mein Problem ist in der Steuerungskonfiguration welche Ein und Ausgänge der Karte müssen mit welchen Daten gefüttert weden damit die Karte arbeitet. Hatte da auf einen fertigen FB gehofft der damit verknüpft wird und ihr alle wichtigen Daten zu verfügung stellt.


----------



## Mavorkit (23 Januar 2018)

Hi sebbe,

achso es geht um das Ausgangsabbild. Da ist es Ähnlich wie bei Zählerkarten, das Ausgangswort (bzw. Eingangsdoppelword bei Zählerkarten) ist in 2 Bytes aufgeteilt. Ein niederwertiges Byte und ein höherwertiges Byte du kannst also eigentlich direkt mit einem FuAO deine PWM-Karte ansteuern. Du musst lediglich aus einem Wort 2 Bytes machen. Ich habe das mal in einer Zähler Anwendung folgendermaßen gelöst:

Low Byte kannst du direkt mit Word_To_Byte umwandeln, da das einfach Abschneidet.
Beim High Byte habe ich mit SHR das Word um 4 Stellen nach rechts geschoben. Dann müsstest du dein Ausgangsword Auf 2 Bytes aufgeteilt haben.

Leider habe ich mit PWM Klemmen noch nicht viel zu tun gehabt, daher auch keine Erfahrung wie du die Taktzeit änderst (vllt. im I/O Check?) oder ist die Taktzeit bei der 750-511 auf 250kHz festgesetzt?

Gruß

Mavorkit


----------



## .:WAGO::014797:. (23 Januar 2018)

Hallo Sebbe,

in der Steuerungskonfiguration sind die Ausgangsbytes %QB2 (LowByte) und %QB3 (HighByte)für den ersten PWM Ausgang zu erkennen. Diese bilden zusammen ein Wort. Die aus meiner Sicht einfachste Lösung ist, eine Variable wie folgt zu deklarieren: 

wOut_PWM1 AT %QB2 : WORD;   

Der Blick in das Handbuch der Klemme - Stichwort Prozessabbild - verrät nun, dass der PWM Ausgang in 1023 Schritten, entsprechend 0 bis 100%, eingestellt werden kann. Es werden dazu die Bits   5 bis 14 benutzt, die Bits 0 bis 4 sind ohne Bedeutung. Aufgrund dieser Verschiebung der 10 relevanten Bits um 5 Stellen nach links kann man auch einfach dem Ausgangswort Werte im Bereich von 0 bis 32736 dez. zuweisen, was dann 0 bis 100% entspricht.

Letztlich musst Du also Deinen Prozentwert mit dem Skalierungsfaktor - in diesem Fall 327,36 - multiplizieren, das Ergebnis von REAL_TO_WORD wandeln und dann der Variablen wOut_PWM1 zuweisen.


Zum Thema Grundfrequenz der 750-511: Diese ist auf 250 Hz werkseitig voreingestellt. (100 Hz bei der 750-511/000-002). Die Frequenz kann per Registerkommunikation - siehe Beispiel im Handbuch - auch verstellt werden. Da die geänderte Einstellung nicht remanent in der Klemme gespeichert wird, ist dies nach jedem Neustart des Kontrollers erneut durchzuführen.


----------



## sebbe (24 Januar 2018)

Hallo Wago 014797 und Mavorkit,

vielen Dank für eure schnelle Hilfe, mit dem FuAO Skaliere ich die Werte --- REAL_TO_WORD---und die übergabe an die Klemme nach Anleitung von Wago 014797, schon ist das Problem gelöst.
Die Grundfrequenz ist kein Problem da brauche ich die Grundeinstellungen nicht zu ändern, da die UPM3 einen Eingangsbereich von 100-4000Hz hat. Hab die Pumpe schon getestet und die funktioniert mit der 100Hz Karte einwandfrei.

PS: Ich finde es Super das in diesem Forum Wago Hilfestellung leistet, ist ein Zeichen das ich doch zur richtigen Steuerung gegriffen habe.

Grüsse.
Sebbe  			


 	 		 			:grin:


----------



## Mavorkit (25 Januar 2018)

Hallo Wago 014797,

in den Wago Schulungen wird immer darauf verwiesen direkte Adressierungen zu vermeiden. Gibt es an dieser Stelle eine Vorgehensweise das Word direkt zu schreiben oder auf den Anfang des SPeicherbereichs einer anderen Variablen referenziert anzugeben? 

Gruß

Mavorkit


----------



## Tobsucht (26 Januar 2018)

Hallo,

direkte Adressierung soll wegen einer möglichen Verschiebung des Prozessabbildes vermieden werden.
Nutzt man die symbolischen Variablen aus der K-Bus Konfiguration, werden die Variablen automatisch angepasst.

Du könntest symbolische Namen für die Ausgangsbytes vergeben und die Wortvariable ein Bytes aufteilen:


----------



## .:WAGO::014797:. (26 Januar 2018)

Hallo Mavorkit,

wir empfehlen, wo immer möglich, die Variablennamen in der Steuerungskonfiguration zu deklarieren, weil dann eine Erweiterung bzw.  Änderung des Hardwareaufbaus nicht dazu führt, dass man in der Software die Adressen unter Umständen an mehreren Stellen ändern muss. Das geht in der CODESYS2.3.9... aber nicht immer.

In den Fällen in denen das nicht geht, kann man durchaus die Deklaration der Variablen im Deklarationsteil des entsprechenden PRG's wie oben gezeigt durchführen oder aber die Deklaration in eine globale Variablenliste verlagern, wenn denn z.B. eine (Eingangs-) Variable in mehreren POU's benötigt wird. Sicherlich gibt es noch andere Lösungsansätze. Die führen dann aber aus meiner Sicht nicht dazu, dass ein in CFC erstelltes Projekt übersichtlicher oder bei Änderungen leichter zu pflegen ist. 
Eine Deklaration einer Variablen mit z.B. "wVariable_ABC AT %IBxy" an genau einer Stelle des ganzen Projektes widerspricht insofern auch nicht der Aussage, im Programmcode direkte Adressierung möglichst zu vermeiden.


----------



## Techniktobi (11 Mai 2018)

Hallo Sebbe,
ich habe genau die gleiche Konstellation wie Du (Heizungssteuerung mit 750-841, 750-511 und Grundfos UPM 3, PWM C). Und auch genau so umgesetzt wie von WAGO in diesem Thread empfohlen. Die beiden Bytes (REAL_TO_WORD) werden auch an die Karte übergeben. Jedoch reagiert die 511er bei mir überhaupt nicht darauf. Muss ich noch irgendwas auf dem Statusbyte setzten? Die Anleitung der 750-511 sagt darüber leider nichts aus. 

Vielen Dank für die Unterstützung.
Gruß
Tobias


----------

