# KL2502 - Frequenz im Register einstellen



## Neals (18 April 2009)

Hey Leute,

möchte gerne bei der PWM-Klemme KL2502 die Frequenz einstellen. In der Dokumentation steht, ich müsste auf das Register zugreifen und kann dort die Periodendauer einstellen.



> R2: Periodendauer
> Im PWM-Modus kann hier die Periodendauer für den laufenden Betrieb
> vorgegeben werden. Im Anschluss an einen Power-On-Reset wird die
> Periodendauer aus R35 übernommen.
> ...



Doch wie greife ich auf dieses Register zu? Funktioniert das nur über die zusätzliche KS2000-Software? Habe den Baustein ReadWriteTerminalReg 
gefunden, werd aber nicht so recht schlau, wie ich nun damit genau meine Frequenz einstellen kann.

Wie ist der beste Weg um auf das Register zuzugreifen und darin die Werte einzustellen?


----------



## trinitaucher (18 April 2009)

Neals schrieb:


> Doch wie greife ich auf dieses Register zu? Funktioniert das nur über die zusätzliche KS2000-Software? Habe den Baustein ReadWriteTerminalReg
> gefunden, werd aber nicht so recht schlau, wie ich nun damit genau meine Frequenz einstellen kann.


Mit KS2000 gehts einfach, kostet aber Geld.
Mit Registerkommunikation (den richtigen FB haste ja schon) gehts auch. Die Doku zum Baustein erklärt doch alles. Du must hat in dein Register den entsprechenden Wert schreiben.


----------



## yather (1 Mai 2009)

Hallo! ich habe auch genau dieses Problem wie du!.
ich möchte die frequenz von mein pwm signal via Registerkommunikation ändern! und noch ein paar andere sagen . 
ich habe eine Adressbereich von 104 bis 109
habe 3 Bytes Pro Kanal -> Kanal 1 --> 104-106, und Kanal 2 -->106-109
der erster Byte ist der Kontrolbyte hier AB 104 und ich habe die bits so gestezt kann das ich lesen und schreiben kann. aber beim schreiben, wird nix geändert! zb.
AB 104 = 10000011 bedeutet ich will im Reg 3 die Grundfrequenz auslesen.
wie ändere ich dann diese Grundfrequenz ist doch über AW 105 oder?? ein beispiel wäre echt hilfreich um die sachen zu verstehen

kannst du mir deine Lösung mailen oder hier deine lösung posten??? 
patrick2001j@yahoo.de ist meine email.

Danke.


----------



## trinitaucher (1 Mai 2009)

1. An was für ner SPS betriebt ihr die Klemme?

Falls Beckhoff-SPS, dann gibt's nen Baustein dafür, der euch alle Sorgen abnimmt.
Falls ne Fremdsteuerung, dann müsst ihr die Registerkommunikation selbst basteln. 
Dann muss man noch beachten, dass es teilweise ein Codewort gibt, was zunächst geschrieben werden muss, bevor einige Register geändert werden können.
... steht aber alles in der Doku!!!

http://www.beckhoff.com/download/Document/BusTermi/BusTermi/KL2502+KL2512d.pdf
(ab Seite 14)


----------



## yather (1 Mai 2009)

Hallo! danke für deine Antwort. die klemme wird mit einer S7 betrieben. ich verstehe nicht um was für ein Baustein es sich handeln sollte.
ich will nur das einer mit den Prinzip von Reg. Kommunikation erklärt, da ich nur diese Methode zum ändern von Einstellungen habe.

die Anleitung (wie in deinem Link)  hatte ich schon und der Bauteil  auch...


----------



## trinitaucher (1 Mai 2009)

yather schrieb:


> ich verstehe nicht um was für ein Baustein es sich handeln sollte.


Für die Beckhoff-Soft-SPS- "TwinCAT" gibt's einen Funktionsbaustein für die Registerkommunikation. Dann erspart man sich das lästige Bitgeshifte.



yather schrieb:


> ich will nur das einer mit den Prinzip von Reg. Kommunikation erklärt, da ich nur diese Methode zum ändern von Einstellungen habe.
> 
> die Anleitung (wie in deinem Link)  hatte ich schon und der Bauteil  auch...


Aber es steht doch in der Doku erklärt 

Zitat aus der Doku:


> Wenn Bit 7 des Control-Bytes gesetzt wird, werden die ersten zwei Byte
> der Nutzdaten nicht zum Prozessdatenaustausch verwendet, sondern in
> den Registersatz der Klemme geschrieben oder daraus ausgelesen.
> 
> ...


Dann folgt eine Grafik und mehrere Beispiele.
Sogar der Betrieb am Profibus-Koppler ist auf Seite 17 beschrieben.


----------



## yather (1 Mai 2009)

danke 
ich habe 2 fragen:
1) ist die twincat von beckoff kostenlos?

2) a propos Reg. Komm ich habe die Anleitung gelesen aber ich schaffe es noch nicht irgendwas zu schreiben. lesen geht klar.
also z. b. ich habe wie oben die Einstellungen am AB 104 gemacht damit ich die grundfrequenz ändern kann. dann sollte ich doch am EW 105 die informations schreiben können. aber EW 105 ist 2Bytes groß. wie schreibe ich dann drin das ich mal angenommen die frequenz soll 350hz sein?

die Sache mit den ControlByte hab ich soweit verstanden. es gut um die nutzdaten also die 2 andere Byte

wenn einer das schon hatte wäre ich sehr dankbar. bin kein sps Profi!


----------



## trinitaucher (1 Mai 2009)

yather schrieb:


> 1) ist die twincat von beckoff kostenlos?


Es gibt ne Demo-Version, aber wenn du ne Siemens SPS hast (mit rofibus schätze ich mal), nutzt dir das nichts da du die nötige Profibus-Hardware nicht hast.


yather schrieb:


> 2) a propos Reg. Komm ich habe die Anleitung gelesen aber ich schaffe es noch nicht irgendwas zu schreiben. lesen geht klar.
> also z. b. ich habe wie oben die Einstellungen am AB 104 gemacht damit ich die grundfrequenz ändern kann. dann sollte ich doch am EW 105 die informations schreiben können. aber EW 105 ist 2Bytes groß. wie schreibe ich dann drin das ich mal angenommen die frequenz soll 350hz sein?
> 
> die Sache mit den ControlByte hab ich soweit verstanden. es gut um die nutzdaten also die 2 andere Byte
> ...


Anscheinend meinst du mit "AB 104" Ausgangsbyte 104, richtig? Ich kenne mich mit Siemens fast nicht aus. ... nutze halt Beckhoff-SPSen. Da braucht man sich um Adresse nicht zu kümmern 

Zum Schreiben des Registers R3 musst du in das Controlbyte 11000011 schreiben, meine ich. Bit 7 = Registerkommunikation, Bit 6 = Schreiben, Bit 0 bis 5 dann die Registernummer. 
Kann aber auch sein, dass du zunächst das Anwender-Codewort schreiben musst, so wie im Beispiel 2 der Doku.

Alternativ kannst du auch die KS2000 Software kaufen. Is ne Software + Programmierkabel für den Buskoppler. Dann brauchst du dich nicht mit den Registern rumquälen.


----------



## yather (1 Mai 2009)

AB ist ja für mich den Ausgangsbyte 104. was du erklärt hast wüßte ich schon. habe so gemacht und die freq. ausgelesen.  aber weiss das wenn ich den 6. bit auf 1 setze dann will ich auch die klemme schreiben. bsp. 1100011

geht einfach so das ich ein entsprechenden Hex wert zb bei EW 105 schreibe und wird dann dieser wert als grundfreq. für die klemme gesetzt?
bsp. und AW auf bsp EW = 15E bedeutet ich will dir freq. im Reg 3 auf 350hz haben


----------



## trinitaucher (1 Mai 2009)

Ich verstehe dein Problem mit deinem AW und EW nicht. Um Daten zur Klemme zu übermitteln musst du selbstverständlich alles in deine Ausgangsbytes schreiben (zur Klemme hin) ... oder was ist hier faul 

Zum Schreiben von "350" ins Register 3 würde ich in dein AB104 = 11000011 schreiben und gleichzeitig in AB105 und 106 den in Bytes zerlegten binären Wert "101011110". Frag mich jetzt nicht welches das High- und welches das Low-Byte ist. Das musst du selbst wissen. Probier mal AB105 = 00000001 und AB106 = 01011110.

Danach das ganze Auslesen mittels AB104 = 10000011 (AB105 und 106 genauso wie zuvor).
Dann sollte in deinen Eingangsbytes der Wert zurückgegeben werden.


----------



## yather (1 Mai 2009)

danke! das war mein Problem
es ging darum wie ich die infos in ein Wort AW 105 Kodieren kann
ich werde es mal am Montag ausprobieren
vielleicht klappt,s ja jetzt!
danke nochmal


----------



## trinitaucher (1 Mai 2009)

yather schrieb:


> es ging darum wie ich die infos in ein Wort AW 105 Kodieren kann


Und wieso fragst du das nicht gleich?

... das steht übrigens auch in der Doku in den Beispielen. Seite 15 bei Beispiel 2 ... musst nur richtig lesen.


----------



## yather (1 Mai 2009)

habe versucht mich so klar wie möglisch auszudrücken! und ausserdem in der seite 15 ist eine andere klemme und nicht der KL2502. (4bytes). was mich verwirrt


----------



## trinitaucher (1 Mai 2009)

Wieso sollte in der Dokumentation der KL2502 was drinstehen, was für diese Klemme nicht gilt?
... das Prinzip der Registerkommunikation ist für alle Beckhoff-Klemmen gleich.


----------



## Neals (2 Mai 2009)

Ich möchte gerne den PWML Modus verwenden und ein Signal mit ner Frequenz von 62,5 Hz erzeugen, die Pulsweite wird ja als Duty angegeben. Duty von 100 % hieße ja, das ein reines 1 Signal anliegt. Duty von 0 währe durchgehendes 0 Signal.

Nun habe ich das Register 35 und 2 mit 2000 beschrieben, entsprechen den 16ms Periodendauer, durch 8us pro Digit. Dann schaue ich mir das Signal auf dem Osci an, das wird aber ein Sinus ausgegeben, der teilweise seine Amplitude ändert. Muss ich noch irgendein Registereintrag verändern?


----------



## trinitaucher (2 Mai 2009)

Hast du auch zuerst im R32 den PWML-Modus aktiviert? Grundfrequenz stimmt auch? 
Im PWML-Modus wird laut Doku der Prozesswert als Verhältnis von Duty-Cycle zur Periodendauer vorgegeben. Wenn du 62,5 Hz möchtest, sind das 25% von einer Grundfrequenz von 250 Hz, oder?
Ich würde dann der Klemme im PWML-Modus einen Prozesswert von 25% vorgeben, also wenn 32767 100% entspricht, wären 25% ca. 8191 dec (geht nicht genau auf), also 1FFF hex.

Ich denke mal auch dass die gewünschte Frequenz zur Grundfrequenz passen muss.
Probiert doch einfach mal verschiedene Einstellungen aus.


----------



## Neals (2 Mai 2009)

Zur Grundfrequenz wird in der Doku garnichts beschrieben, was besagt diese Frequenz denn aus?

Dachte ich stelle die Periodendauer ein und über die Prozessdaten wird dann das Duty eingestellt, fertig.


----------



## Neals (4 Mai 2009)

Anbei das Signal, welches ich bräuchte.

PWML Modus ist im Register 32 eingetragen.

Habe es so aus der Doku gelesen, dass ich die Periodendauer einstelle, mit den 16ms. 1 Digit entspricht 8 Mikrosekunden, also 2000 Digits. Daraufhin kann ich über den Duty-Cycle die Länge des High-Signals einstellen.

Das hieße, bei nem Duty-Cycle von 25% hätte ich 4ms ein High-Signal und daraufhin 12ms ein Low-Signal. Das wiederholt sich dann durchgängig, solange ich nichts in den Prozessdaten ändere.


----------

