INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

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.)
Beitrag #1

Dommas Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 93
Registriert seit: Jul 2010

2010
2008
DE_EN

86741
Deutschland
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!

EDIT: mit 26ms läufts auch noch wie es soll!

Ist das normal? Gibt es Abhilfe?

Gruß
Dommas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.07.2010, 09:59
Beitrag #2

BerndDasBrot Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 128
Registriert seit: Feb 2008

8.2.1, 2012, 2017, 2020
2007
EN

7206
Schweiz
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
Hallo Dommas

Nein, das kann nicht sein. Poste doch mal das VI.

Gruss, BDB
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2010, 10:01 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2010 10:02 von dimitri84.)
Beitrag #3

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
Gibt'n Fehler von 1ms. Ansonsten funktioniert das Ding tadellos:
   
   

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2010, 10:50
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
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!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2010, 10:50
Beitrag #5

Dommas Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 93
Registriert seit: Jul 2010

2010
2008
DE_EN

86741
Deutschland
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.

Gruß Dommas


Angehängte Datei(en)
Sonstige .vi  Wait_Until_Next_mit_Fehler.vi (Größe: 15,38 KB / Downloads: 194)

Sonstige .vi  CAN_Transmit_multiple_periodic_Test.vi (Größe: 34,1 KB / Downloads: 162)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2010, 10:53
Beitrag #6

Dommas Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 93
Registriert seit: Jul 2010

2010
2008
DE_EN

86741
Deutschland
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
@GerdW: Ja, die Schleife braucht weniger als die 25ms. Das ist sichergestellt.

Die "TimedWhileLoop kenne ich bisher gar nicht. Aber werde ich jetzt mal testen.
Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.07.2010, 11:16
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
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...

Lv09_img2


Angehängte Datei(en)
Sonstige .vi  Build_CAN.vi (Größe: 16,03 KB / Downloads: 161)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2010, 11:41 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2010 12:00 von Achim.)
Beitrag #8

Achim Offline
*****
*****


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Wait Until Next / Bis zum nächsten vielfachen warten / Metronom
' schrieb:Das VI soll übrigens alle 25ms CAN-Nachrichten schicken.
Hmm
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)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2010, 12:14 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2010 12:23 von Dommas.)
Beitrag #9

Dommas Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 93
Registriert seit: Jul 2010

2010
2008
DE_EN

86741
Deutschland
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?!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2010, 14:24 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2010 14:26 von Achim.)
Beitrag #10

Achim Offline
*****
*****


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
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)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Frage zur Architektur: Statemachine und Wait for Events tuhpon 6 2.847 18.03.2024 16:14
Letzter Beitrag: tuhpon
  Wait und Wait-Until, seltsame Effekte, ich verstehs einfach nicht... catbull 3 2.959 24.09.2018 20:56
Letzter Beitrag: Lucki
  Wie auf abgearbeitete Queue warten mez15 11 7.037 28.09.2017 13:02
Letzter Beitrag: TR61
  Zustandsautomat geht nicht in nächsten Schritt mrgigi 4 4.143 30.09.2015 13:19
Letzter Beitrag: panduci
  Wait Befehl LabViewPete 3 4.056 17.09.2015 09:12
Letzter Beitrag: Lucki
  Auf Benutzereingabe in einer State-Machine warten, ohne diese zu blockieren Gigantbohne 11 8.064 11.05.2015 17:27
Letzter Beitrag: Gigantbohne

Gehe zu: