Debugowanie programu bloków funkcyjnych
Debugowanie symulacji (bloki funkcyjne i skrypty LUA) w programie Simultus DIGITAL TWIN.
Wykorzystanie cyfrowego bliźniaka naszego urządzenia w programie Simultus DIGITAL TWIN służy między innymi do testowania i znajdowania błędów programu na sterownik PLC zanim powstanie rzeczywiste urządzenie. Ale przy tworzeniu cyfrowego bliźniaka też można popełnić błędy. W ich znajdowaniu pomocne będą narzędzia do debugowania.
Działanie programu symulacji można przerwać na dowolnym bloku funkcyjnym lub na dowolnym skrypcie.
Następnie można wznowić jego działanie do kolejnego ‘breakpointu’ lub realizować program krok-po-kroku.
Więcej na temat narzędzi do debugowanie przeczytasz poniżej.
Aby uruchomić tę funkcjonalność należy wyłączyć pracę w czasie rzeczywistym poprzez odznaczenie okienka 'czas rzeczywisty' w menu 'ustawienia' -> 'symulacja':
Przyciski służące do debugowania:
[F7] zaznaczenie bloku na którym ma się zatrzymać program (breakpoint) - najpierw należy zaznaczyć blok na diagramie
zlikwidowanie zaznaczenia bloku
[F8] wykonanie kolejnego kroku programu
[F9] kontynuowanie pracy programu
Bloki z breakpointami, na którym zatrzyma się program są zaznaczone niebieską ramką. Można zaznaczać w ten sposób wiele bloków.
Po uruchomieniu symulacji zostanie ona zatrzymana na kolejnym breakpoincie. Blok, na którym zatrzyma sie program zostanie zaznaczony czerwoną ramką. Jednocześnie zostanie wyświetlona informacja na temat stanu wejść danego bloku funkcyjnego (stan wyjść nie zostanie podany, ponieważ zatrzymanie programu następuje przed realizacja funkcji danego bloku):
Przydatnym narzędziem do analizy naszego programu jest również wyświetlanie kolejności realizacji bloków funkcyjnych.
Aby ją uruchomić należy wcześniej program skompilować. Dostępne przyciski znajdziemy w zakładce 'program' przybornika.
Aktywowanie tej funkcjonalności spowoduje pojawienie się liczby określającej kolejność bloków w lewym górnym rogu wszystkich bloków funkcyjnych:
Ta funkcjonalność jest bardzo przydatna. Mimo, że kolejność wykonywania bloków funkcyjnych jest ściśle określona, to czasem może wydawać się nie intuicyjna. Dlatego o kolejności wykonywania bloków funkcyjnych napisaliśmy więcej w osobnym rozdziale.
Kolory sygnałów cyfrowych:
Stan sygnałów cyfrowych można obserwować na diagramie. Gdy strzałka i prostokącik znacznika wejścia i wyjścia są czerwone oznacza to, że sygnał ma logiczną warość '1', a gdy są czarne oznacza, że sygnał, wejście i wyjście mają logiczną wartość '0'.
Błędy skryptu LUA (od wersji 5.0):
- Wykrywanie błędów podczas edycji. Błędy będa podkreślane na czerwono, a dymek przy myszce podpowie, gdzie i jaki błąd wystąpił:
Jeżeli bedziemy próbowali uruchomić źle napisany skrypt to zostanie zgłoszony błąd:
a linia z błędem zostanie podświetlona na czerwono:
Dodatkowo odpowiedni komunikat zostanie wyświetlony w oknie komend:
- Nie wszystkie błędy pojawiają się przed lub w trakcie kompilacji. Niektóre mogą wystąpić w trakcie działania symulacji. Tak się np. stanie, gdy wystąpi błąd dzielenia przez zero. W takim przypadku symulacja wyłączy się a odpwiedni komunikat będzie widoczny w linii komend. Źle wykonany skrypt zostanie podświetlony na czerwono:
Jeżeli nie chcemy, aby symulacja zatrzymała się po wykryciu błędu w skrypcie to należy odznaczyć poniższe pole dostepne w menu górnym (Ustawienia -> Symulacja). W oknie tym można również określić czasy zatrzymania się symulacji przy przekroczeniu limitu trwania skryptu. To w przypadku, gdy np. wstawimy do skryptu zbyt długa pętlę.
Przy zaznaczeniu tej opcji błąd skryptu w trakcie działania symulacji można wykryć sprawdzając stan wyjścia 'error' bloku LUA_SCRIPT:
A może masz pomysł jak jeszcze ulepszyć debugowanie programu? Napisz do nas. Będziemy wdzieczni za każdą sugestię: info@simultus.pl