' schrieb:Hi,
warum willst du zyklisch in ner Whileschleife schreiben? Wenn du tatsächlich zyklisch Botschaften senden musst (das kommt ja sehr häufig vor), dann machst du das per HW! Es gibt dazu ein Beispiel-VI, "Transmit periodic.vi" (oder so ähnlich...).
Ja, ich weiß. Aber ich kann hier nicht mit CANObjects hantieren glaube ich. Deswegen habe ich es auf dem Weg mit der/den while-Schleifen begeben.
1. Ich habe 1-8 Geräte, die ich ansprechen muss. ABER:
2. Die ID is nicht einfach eine Geräte-ID, sondern setzt sich aus verschiedenen Teilen zusammen, unter anderem der Geräte und der Nachrichten-ID (die sagt aus, wie die DATEN zu interpretieren sind.)
3. Im Frontpanel ist ein Tab mit 8 Reitern, je nachdem in welchem Reiter man ist, werden verschiedene Messages an verschiedene Geräte geschickt, also z.B. Message1 an Gerät 1-8, Message2 an Gerät 1-8, und Message3 als Broadcast. Wenn all diese Messages (=Commands) draußen sind, können die einzelnen Geräte antworten (siehe Prioritäten mit Nullen und Einsen, das ist über die verschiedenen IDs sichergestellt). Die Antworten bestehen jetzt aber auch wieder aus verschiedenen Nachrichten, d.h. auf Message1 kommen z.B. 3 Messages als Antworten und auf Message2 vielleicht nur eine.
4. Ich kann maximal mit 48 Objekten arbeiten soviel ich weiß. Wenn ich das alles richtig verstehe sind das 48 verschiedene IDs. Da ich aber wie schon erwähnt eine Art "Message-ID" habe, die mit in die "normale" CAN-ID eingebaut wird, reichen mir 48 Objekte nicht.
EDIT: Ich habe bis zu 148 verschiedene CAN-IDs, wenn ich 8 angeschlossene Geräte habe, und mich in 5 von den besagten 8 Reitern befinde.
Wenn ich hier (v.a. im letzten Punkt) einen gewaltigen Fehler drin habe, lasse ich mich gern verbessern! Ich weiß, dass ich besser die Periode von der CAN-Karten-Hardware zurückgreifen sollte, aber ich habe bisher leider keinen Weg gefunden, das zu realisieren...
' schrieb:PS: Man kann das "Transmit Receive Same Port " natürlich auch mit dem "Transmit periodic" zusammenführen...das hab ich auch schon gemacht!
Ich weiß, das habe ich auch schon gemacht