Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> &gt; &gt; Hallo zusammen, > &gt; &gt; ich mußte feststellen, dass es wohl ein Problem sein kann die PLM-Kanaele 0 und 1 von 0% (bzw. gerade initialisiert) auf 100% Tastverhaeltnis zu steuern. Konkret (s.Quelltext unten): Ich initialisiere die PLM Kanaele 0 und 1, setze die timebase auf 25,6 Mikrosekunden und die Periodenlaenge auf 195 Ticks. Direkt danach kann ich die Funktion plm.out nicht mit 195 "fuettern". Das hat lediglich ein Low zur Folge. Erst durch setzen von 194 Ticks dann _zwingend_ ein sleep 5; und nun 195 Ticks gehen beide Ausgaenge auf konstant High. Das ist auch bei einem Sprung von 50% auf 100% Tastverhaeltnis so. D.h. auch hier muss ich erst ueber 194 Ticks gehen. > &gt; &gt; In umgekehrter Richtung (Tastverhaeltnis reduzieren) klappt der Sprung auf 0% Tastverhaeltnis jederzeit. > &gt; &gt; > &gt; &gt; Hat jemand aehnliche Erfahrungen gemacht und weiss vielleicht eine Loesung feur dieses seltsame Verhalten der PLM? Bin fuer jeden Vorschlag dankbar, der mir solche Workarounds erspart. > &gt; &gt; > &gt; &gt; Ciao > &gt; &gt; Theo > &gt; &gt; > &gt; &gt; /* > &gt; &gt; Title: Main-Modul > &gt; &gt; */ > &gt; &gt; /*******************************************************************/ > &gt; &gt; thread main > &gt; &gt; { > &gt; &gt; > &gt; &gt; plm.setmode(0,0); > &gt; &gt; > &gt; &gt; plm.setmode(1,0); > &gt; &gt; > &gt; &gt; // Kanal 0 und 1 mit timebase (Tickdauer) 6 (25,6 Mikrosekunden) init. > &gt; &gt; plm.settimebase(0,6); > &gt; &gt; > &gt; &gt; // Kanal 0 und 1 mit PeriodLength (Anzahl Ticks pro Periode) init. > &gt; &gt; // 195 Ticks * 25,6 Mikrosekunden = 5 ms > &gt; &gt; plm.setperiod(0,195); > &gt; &gt; > &gt; &gt; // PLM-Kanaele 0 und 1 mit 100% Einschaltdauer init. > &gt; &gt; // Die Motorelektronik interpretiert das als Stopp! (Invertierung). > &gt; &gt; // Geht nicht direkt mit 100% PLM. > &gt; &gt; plm.out (0,194); > &gt; &gt; plm.out (1,194); > &gt; &gt; sleep 5; > &gt; &gt; plm.out (0,195); > &gt; &gt; plm.out (1,195); > &gt; &gt; > &gt; &gt; // Ende der Initialisierung > &gt; &gt; > &gt; &gt; halt; > &gt; &gt; > &gt; &gt; } > &gt; &gt; > &gt; > &gt; > Hallo KM, > > zunächst mal vielen Dank für die promte(n) Antwort(en)...auch an Chris. > > &gt; vor diesem Problem habe ich vor längerer Zeit auch schon gestanden und habe eine fast gleiche > &gt; Frage in`s Forum gesetzt. Leider habe ich von den Experten keine Reaktion erhalten. > > Die "fast gleiche Frage" habe _vor_ dem Abschicken meiner Frage im Forum und den Archiven leider wohl übersehen. Wo finde ich Deine Frage? (Es geht doch fast nichts über eine Volltextsuche! ;-) > > &gt; Da ich unbedingt dieses Problem für den Motortreiber TLE52xx von Siemens lösen musste, > &gt; habe ich einfach das PWM-Ausgangssignal negiert. Somit kehren sich all deine Verhältnisse um. > &gt; Mit dem Laden von 0x00 in das PWM Register erhälst du somit sofort ein High. > > Da meine Motortreiberelektronik ein invertiertes PWM-Signal erwartet, habe ich in meiner Funktion "move", die wiederum die plm.out aufruft (hier nicht veröffentlicht) eine Invertierung eingebaut. Wenn ich 0,0 [%] als Parameter an move(LinkerMotor,RechterMotor) übergebe, erhalte ich meine 195 Ticks und die schluckt die PLM nicht sofort. > Das entspricht meinem vereinfachten Quelltextbeispiel und löst nicht das Problem. > > Deine Negierung scheint wohl an einer anderen Stelle zu greifen? Du lädts 0x00 in ein PWM-Register? Vielleicht könntest Du das noch etwas detaillierter ausführen? > > Ich werde aber erstmal jeweils einen Inverter in die Treiberelektronik einbauen (positive Logik erhöht auch die Übersichtlichkeit) und und die Invertierung aus meiner Treiberfunktion entfernen. Dann schaue ich, wie das Modul SFR.C2 von Chris weiterhelfen kann. > > Ciao > Theo >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB