MathScript i Formula Nodes (MathScript and Formula Nodes) Formula Node w oprogramowaniu LabVIEW jest wygodnym, tekstowym węzłem, który można użyć do wykonywania skomplikowanych operacji matematycznych na zamiast schematów blokowych, z wykorzystaniem struktury składni C++. Jest najbardziej przydatny do równań, które mają wiele zmiennych lub są w inny sposób skomplikowane. Tekstowy kod upraszcza schemat blokowy i zwiększa jego czytelność. Ponadto, można skopiować i wkleić istniejący kod bezpośrednio do Formula Node, bez odtwarzania go w formie graficznej. Oprócz wyrażeń tekstowych równań, Formula Node obsługuje tekstową wersję instrukcji if, pętle while, pętle for i do, które są znane programistom języka C. Te elementy programowania są podobne ale nie identyczne do tych, które znajdują się w języku C. MathScript Node realizuje podobne funkcje, ale z dodatkową możliwością kompilowania całych.m plików, dzięki czemu nadaje się do przetwarzania tekstowych sygnałów, analizy i matematyki. LabVIEW MathScript jest na ogół zgodny ze składnią.m plików. Korzystanie z Formula Node (Using the Formula Node) Wykonaj następujące kroki, aby utworzyć VI, który oblicza różne formuły w zależności od tego, czy wynik z wejść jest pozytywne lub negatywny. 1. Wybierz z menu File»New VI, aby otworzyć pusty VI. 2. Umieść Formula Node na schemacie blokowym. 1. Kliknij prawym przyciskiem myszy na diagramie i przejdź do Programming»Structures»Formula Node. 2. Kliknij i przeciągnij Formula Node na schemat blokowy. 3. Kliknij prawym przyciskiem myszy na ramce Formula Node i wybierz Add Input. 4. Tworzymy zmienna wejściową x. 5. Powtórz krok 3 i 4, aby dodać kolejną zmienną wejściową y. 6. Kliknij prawym przyciskiem myszy na ramce Formula Node i wybierz Add Output. str. 1
7. Utwórz dwa wyjścia i nadaj im nazwy odpowiednio z1 i z2. Uwaga: Do dobrych praktyk programistycznych należy tworzenie wejść po lewej, a wyjść po prawej stronie ramki Formula Node. To pomoże Ci śledzić przepływ danych w VI i zachować organizacje kodu. 8. Wpisz poniższe wyrażenia w Formula Node. Upewnij się, czy na zakończeniu każdego polecenia jest średnik. Zauważ jednak, że wyrażenie nie wymaga średnika po pierwszym wierszu. if (x*y>0) z1 = 3*x**2-2*y**3; else z1 = 0; z2 = sinh(z1); 9. Umieść kontrolki i wskaźniki dla wejść i wyjść. 1. Kliknij prawym przyciskiem myszy na każdym wejściu i wybierz Create»Control. 2. Kliknij prawym przyciskiem myszy na każdym wyjściu i wybierz Create»Indicator. str. 2
10. Wstaw While Loop (pętle while) z przyciskiem stop dookoła Formula Node i kontrolek. Należy pamiętać o umieszczeniu wewnątrz pętli funkcji Wait (Czekaj) (ms) w celu ochrony użycia pamięci. Twój schemat blokowy powinien wyglądać następująco. 11. Kliknij przycisk Run (Uruchom), aby uruchomić VI. Zmień wartości wejściowe kontrolek, aby zaobserwować, w jaki sposób zmieniają się wyniki. W tym przypadku Formula Node pomaga zminimalizować miejsce wymagane na schemacie blokowym. Osiągnięcie tego samego zadania bez użycia Formula Node wymaga następującego kodu. str. 3
Pozostałe materiały (Resources) Więcej informacji na temat składni Formula Node lub dostępnych funkcji, można znaleźć w LabVIEW Help (Pomoc LabVIEW), naciskając klawisze <Ctrl-H> podczas opracowywania kodu. Otworzy się okno Context Help (Pomoc kontekstowa), która zawiera informacje o funkcji, nad którą znajduje się mysz. Aby uzyskać więcej informacji w oknie Context Help (Pomoc kontekstowa), wybierz Detailed help (Szczegółowa pomoc). Korzystanie z MathScript Node (Using the MathScript Node) Wykonaj następujące kroki, aby utworzyć VI, który wykonuje w LabVIEW różne operacje na tablicy 1D. 1. Otwórz pusty VI wybierając z paska narzędzi File»New VI. 2. Umieść MathScript Node na schemacie blokowym. 1. Kliknij prawym przyciskiem myszy na diagramie i przejdź do Programming»Structures»MathScript Node. 2. Kliknij i przeciągnij MathScript Node na schemat blokowy. 3. W ten sam sposób, jak w ramach realizowania wykonywania Formula Node, kliknij prawym przyciskiem myszy na ramce i wybierz Add Input. Tworzymy zmienną wejściową x. 4. Kliknij prawym przyciskiem myszy na ramce i wybierz Add Output. Powtórz ten proces do utworzenia trzech wyjść oznaczonych y, y1 i d. 5. Wstaw tablicę numeryczną kontrolek na przednim panelu. Podłącz tablicę x z wejściem x w MathScript Node na schemacie blokowym. 6. Utwórz wskaźniki do każdego z trzech wyjść, klikając prawym przyciskiem myszy i wybierając dla każdego z nich Create»Indicator. 7. W MathScript Node wprowadź następujące wyrażenia: y = x.^2; y1 = y(1); d = dot(x,y); 8. Wstaw While Loop (pętle while) z przyciskiem stop dookoła MathScript Node i kontrolek. Należy pamiętać o umieszczeniu wewnątrz pętli funkcji Wait (Czekaj) w milisekundach w celu zachowania użycia pamięci. Twój schemat blokowy powinien wyglądać następująco. 9. Na panelu przednim, rozwiń tablice wcelu wyświetlenia wielu elementów. Chwyć kursorem w dolnej połowie tablicy znacznik i przeciągnij go do wyświetlenia wielu elementów. str. 4
10. Rozpocznij od wprowadzenia 1, 2 i 3 w ciągu pierwszych trzech elementów kontrolki x. Panel przedni powinien wyglądać podobnie do tego poniżej. Należy pamiętać, że czwarty i piąty element jest nieaktywny. To dlatego, że nie są zainicjowane. Możesz zainicjować je poprzez kliknięcie wewnątrz komórki i wprowadzenie wartości. W celu wygaszenia komórki, kliknij prawym przyciskiem myszy element i wybierz Data Operations»Delete Element. 11. Przyciśnij przycisk Run (Uruchom). Zmień wartości wejściowe kontrolek, aby zaobserwować w jaki sposób zmieniają się wyniki. Pozostałe materiały (Resources) Więcej informacji na temat składni Formula Node lub dostępnych funkcji, można znaleźć w LabVIEW Help (Pomoc LabVIEW). Pamiętaj, możesz uzyskać dostęp do pomocy przy użyciu okna Context Help (Pomoc Kontekstowa) (Ctrl-H). Zobacz poniżej powiązane linki, aby dowiedzieć się więcej o MathScript Node. Developer Zone: Inside LabVIEW MathScript Developer Zone: Developing Algorithms Using LabVIEW MathScript: Part 1 The LabVIEW MathScript Node Developer Zone: Developing Algorithms Using LabVIEW MathScript: Part 2 The MathScript Interactive Window str. 5