Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
22.07.2010, 09:44 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2010 09:47 von Dommas.)
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
Hallo,
kann es sein, dass das "Metronom" eine Mindestzeit am Eingang braucht?
Also auf jeden Fall größer als 25ms oder sowas?
Meine Schleife läuft zwar periodisch, wenn ich mit 28ms fahren will passt auch die Zeit, aber wenn ich auf 25 runter gehe, läuft die Schleife schneller!
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
Hallo Dommas,
dein Metronom wird nur korrekt funktionieren, solange deine Schleife weniger als 25ms zur Abarbeitung braucht. Sonst kommt das Timing ganz schnell durcheinander...
Schon mal mit der TimedWhileLoop gespielt? Die sagt dir auch, wie lange der letzte Schleifendurchlauf dauerte und ob das Timing eingehalten wurde!
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
LV 2009 SP1
so, hier mal das VI. nicht wundern, das gibt es in erster Linie zum Verstehen und Testen. Wichtig ist nur Tab2.
Die Zeit passt jetzt im Schnitt relativ gut, aber ich komme immernoch auf Zeiten zwischen 23 und 27ms. Wenn das besser ginge, wärs mir sehr Recht.
Oder sonst irgendwelche Tips, wie ich auf eine sichere Schleifenzeit von 25 ms +-1ms komme.
Das VI soll übrigens alle 25ms CAN-Nachrichten schicken. In diesem Fall an 8 IDs je 3 Nachrichten.
Mit dem SubVI "Wait until next Fehler" fange ich nur den Fehler ab, den ich beim Start der Metronom-Funktion immer habe.
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
Hallo Dommas,
noch was zu deinem FOR-Loop-Gehuddel, um die CAN-Messages zu basteln...
So geht's auch (einfacher), vor allem, wenn man die Shiftregister mit einer leeren (!) Array-Konstante initialisiert!
Siehe Anhang, das Snippet zeigt leider keine Cluster-Konstanten an...
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
' schrieb:Das VI soll übrigens alle 25ms CAN-Nachrichten schicken.
Das macht das CAN-VI bzw. die CAN-HW doch selbständig?! Man gibt eine Zykluszeit an, konfiguriert das genau 1x mit dem VI und dann sendet die CAN-Karte das fortwährend...und zwar zeitlich sehr genau, weil's über HW geht...und die ist viel genauer als deine LV-Software je sein wird!
Gruß
Achim
EDIT: Guck dir mal im ExampleFinder das VI CAN Transmit - periodic.vi an. Nachdem du bei diesem einmal das ncWriteObj.vi ausgeführt hast (im Schleifendurchlauf 0), brauchst du nichts weiter tun! Die HW sendet in der eingestellten Periodendauer im Endlosmodus. Erst wenn du die zu sendenden Daten ändern willst, führst du das VI in der While-Schleife nochmal aus. In dem Beispiel ist das VI nur ständig am laufen, um einen eventuellen Fehler abzufragen!
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
22.07.2010, 12:14 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2010 12:23 von Dommas.)
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
@Achim
Über CAN-Objekte kann ich doch nur EINE Nachricht an EINEN Empfänger schicken, oder?
Wenn ich jetzt so wie in meinem Beispiel 3 Nachrichten an 8 Empfänger schicken will, brauche ich dann 24 Objekte? Oder kann ich das über eines realisieren, solange die Nachrichten und Empfänger sich nicht ändern?
EDIT:
Zu dem Beispiel:
da steht in dem Initialisierungsteil vor der Case-Struct ein Vergleich, ob die ID >= hex 20000000 ist. Müsste das nicht >= hex 800 sein?!
22.07.2010, 14:24 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2010 14:26 von Achim.)
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
Hi,
genau, dann erzeugst du für jede Botschaft ein Objekt! Vielleicht geht's auch anders, aber ich hab das so gelöst...
Wieso 8 Empfänger? CAN ist Nachrichten-basiert, da können "beliebig viele" Teilnehmer auf dem Bus horchen...und nur die Empfänger, die auf eine bestimmte Botschaft warten nehmen diese an...alle anderen ignorieren sie einfach!
Der Vergleich bezieht sich - glaube ich - nur auf den Anwendungsfall "Extended Identifiers"
Gruß
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)