Hallo Bix,
Zitat:Wie soll aus einer Zahl die eingeben wird der entsprechende binärcode für die Drehzahl rauskommen.
CAN kann nur mit Integerwerten umgehen. Deshalb wird jeder Float-Wert in einen entsprechenden INT-Wert umgerechnet, siehe auch mein Beispiel-Bild oben: es wird ein Wert im Bereich 0.000 bis 100.000 erwartet, aber mit dem Faktor 1000 skaliert, um so einen INT im Bereich 0 … 100000 zu versenden…
Diese Umrechnung ist zu jedem Parameter im SEW-Handbuch angegeben!
Zitat:Erste Problem ist, dass Labview in der Eingabe die führenden Nullen entfernt, also aus z.B. 0011001 macht LabView 11001.
Falsch. Ein U32 ist ein U32 ist ein U32! Daraus wird plötzlich kein U5…
Stell doch einfach mal das Anzeigeformat passend ein, schön ist z.B. %08x oder auch %032b…
Zitat:Des Weiteren weiß ich nicht so recht mit den object index anzufangen. Da helfen mir auch die SEW PDFs nicht weiter.
Das ist schlecht, wenn du die SEW-Anleitung nicht verstehst…
Hier mal ein Ausschnitt der Parameterliste:
Jeder Parameter im FU ist einem Index/Subindex zugeordnet. Wenn du z.B. die Ist-Frequenz lesen willst, musst einen SDO mit Index=0x207F, SubIndex=0 abfragen. Die Einheit des Ergebnisses ist in Hz: einmal ist das direkt dort angegeben, andererseits wird auf Eintrag 28 der Größen-Tabelle verwiesen. Der vom SDO gelieferte Wert muss mit Umrechnung "-3" verarbeitet werden, die zugehörige Tabelle liefert hier einen Faktor von 0.001=1E-3.
Wenn du all das nicht verstehst, solltest du nicht mit diesem FU einen Motor betreiben - oder aber immer einen großen roten Sicherheitsschalter in nächster Nähe haben…
Zu deinem Bild:
Im Allgemeinen ist es ungünstig, eine Referenz sofort nach dem Senden zu schließen. Bei RS232 führt dies z.B. dazu, dass überhaupt nicht versendet wird. Evtl. reagiert der CAN-Treiber hier auch "pikiert". Dein Gerät sofort danach dann auch noch zu "stoppen", könnte auch kontraproduktiv sein…