cRIO - CAN: Botschaften & Signale - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: Hardware (/Forum-Hardware) +---- Forum: 3rd Party Hardware (/Forum-3rd-Party-Hardware) +---- Thema: cRIO - CAN: Botschaften & Signale (/Thread-cRIO-CAN-Botschaften-Signale) |
cRIO - CAN: Botschaften & Signale - cRIOnator - 24.02.2006 12:53 Hallo Leute, wollte meine Anwesenheit hier im Forum nicht "direkt" mit eine Frage ankündigen. Darum an dieser Stelle erst einmal dickes Lob an die Admins und Mods für die großartige Arbeit. und jetzt die Frage: Ich benutze ein cRIO 9004 RTC, cRIO 9102 FPGA Chasis, NI 9853 (CAN Modul) und LabVIEW 8 mit RT, FPGA, cRIO Software. Mein Problem ist, dass wenn ich versuche mehrere Signale von einer und derselben CAN Botschaft an den Bus zu schicken, jedes mal ungewollt die Botschaft mit der höchsten ID (00) mit einer Zykluszeit von 20 ms mit sende, was mir unter Umständen die komplette Buskommunikation blockieren könnte. Ich habe mir das Beispiel „CAN Channel Transmitt (HOST).vi /…(FPGA).vi“ herausgekrallt und habe das FPGA VI mit mehreren While-Schleifen + Loop-Timer versehen…. zur periodischen Übertragung von mehreren Signalen. So kann ich die Zykluszeit der einzelnen Signale unabhängig einstellen. Wie gesagt, solange ich nur ein Signal aus einer Botschaft, oder einzelne Signale aus verschiedenen Botschaften schicke ist alles Wunderbar. Sobald zwei, oder mehr Signale aus einer Botschaft gesendet werden, kommt die 00 mit. : Zum besseren Verständnis meiner Problematik hänge ich ein paar Screenshots an. Oder mache ich etwas grundlegend falsch? Ansonsten … falls jemand eine Idee hat, wie ich meine Problemstellung das periodischen Versendens von mehreren Signalen mit einstellbarer Zykluszeit vielleicht irgendwie eleganter lösen könnte, wäre ich für jede Hilfe wirklich dankbar. Cheers, cRIOnator cRIO - CAN: Botschaften & Signale - Flamme - 27.03.2006 20:44 Hi, schon 'ne Lösung? Hast Du schon mal versucht, hinterher zu debuggen? Die screenshots sind mit ein paar implizit typecasts gespickt, hast Du Dir schon mal die U32-arrays betrachtet, die aus dem host ans FPGA gehen? Sind die koscher? Ich weiß auch nicht so recht, ob es nicht doch ein paar Überschneidungen beim Zugriff geben kann. Ist es hier nicht sinnvoller, im FPGA vor dem zyklischen Senden (z. B. per case) zu entscheiden, ob der Wert neu übernommen werden soll oder der alte noch stimmt? So könnte man mit einer Boolschen, z. B. einem "flush", signalisieren, dass neue Daten anstehen, und die würden dann vor einem erneuten Senden erst übernommen, dann würde wieder gesendet. Dein "write"-Signal ist nur ein verbrämtes FPGA-Start-Signal, die FPGA-while-Schleifen laufen danach permanent, bis das VI "abgeschossen" wird... Aber zurück zu Deinem Problem, kannst Du das noch etwas näher beschreiben? Könntest Du evtl. ein vi posten, das man ausprobieren kann? ich kann mir die Abhängigkeit noch nicht ganz erklären, Du bastelst Dir doch die CAN-message in Deinem host erst komplett zusammen, ehe sie auf die Reise geht... |