2017-06-28 5 views
-1

Ich bin LabVIEW sehr neu ... Ich muss ein einfaches Programm in LabView schreiben, um den Wert eines Encoders zu aktualisieren.EINFACH! Labview Race Condition

Lange Rede kurzer Sinn ... In einer Schleife, ich brauche Variablen in dieser Reihenfolge zu manipulieren:

  1. New Value = Alter Wert + Aktueller Wert
  2. Alter Wert = Neuer Wert

Wie verhindere ich, dass der alte Wert versehentlich gespeichert wird, bevor ich den neuen Wert berechne?

Vielen Dank im Voraus.

+1

Überwachen Sie, ob sich der Wert ändert? Fügen Sie eine weitere Variable 'Neuer Wert2' hinzu, weisen Sie' Neuer Wert2 = Neuer Wert' zu, bevor Sie '1.Neuer Wert = Alter Wert + Aktueller Wert' eingeben, dann vergleichen Sie 'if (Neuer Wert! = Neuer Wert2)', dann Schritt 2 Aber ich frage mich, wie könnte das passieren, wenn es Schritt 1 überspringt und zu Schritt 2 springt, wenn Sie nicht über Wertänderungen sprechen – LONG

+0

* Gesicht palm * Dies wird wahrscheinlich reparieren es danke. Es überspringt Schritt 1 nicht, sie passieren beide zur "gleichen" Zeit, manchmal berechnet es also äquivalent neuen Wert = neuen Wert + aktuellen Wert. – heyjaynell

+0

np, versuchen Sie es :) – LONG

Antwort

1

Was Sie wollen ist, den alten Wert über ein Schieberegister (oder Feedback-Knoten, ist das gleiche) zu übergeben. Hier ist der Code-Schnipsel, die Sie zeigen, wie es gehen:

enter image description here

Sie können prüfen, ob es funktioniert, indem an der New suchen und alten Werte-Array.

Eine Randnotiz seit Ihrem neuen, können Sie Code-Schnipsel direkt in labview importieren.