Można utworzyć funkcję do wykonania dowolnego zadania, takiego jak sterowanie piekarnikiem, a następnie przeciągnąć ją z drzewka projektu i upuścić w innej funkcji. Każda funkcja może być zatem użyta jako UDFB.
Oprócz kodu drabinkowego, UDFB może zawierać dowolne z poniższych elementów:
- Tagi wejściowe i wyjściowe do przesyłania wartości do i z funkcji.
- Tagi lokalne, które istnieją tylko w obrębie danej funkcji.
- Tagi globalne, struktury i tablice.
Definiowanie tagów UDFB
- Wybierz funkcję w drzewie projektu.
- W oknie Tag kliknij kartę tej funkcji.
- Kliknij typ FunctionIN Scope.
Nazwa |
Opis |
Global Scope |
Tagi tworzone i łączone z typami danych. Właściwość Global scope oznacza, że można używać tagów globalnych w całym programie, zarówno w aplikacjach HMI, jak i Ladder. |
Local Scope |
Tagi tworzone w ramach określonej funkcji drabinkowej. Są one widoczne i dostępne tylko w ramach tej funkcji. Oznacza to, że jeśli wymaga tego aplikacja, można używać tych samych nazw tagów w różnych funkcjach. Należy pamiętać, że tagi lokalne nie mogą:
|
Uwaga
Tag lokalny można przekonwertować na globalny lub globalny na lokalny, klikając go prawym przyciskiem myszy w oknie tagu i wybierając żądaną opcję.
Nazwa |
Opis |
FunctionIn Scope |
Właściwość FunctionIn można przypisać do tagu lokalnego dowolnego typu danych w celu przeniesienia wartości do funkcji, do której należy. Gdy funkcja zostanie przeciągnięta do innej funkcji jako UDFB, pojawi się po lewej stronie funkcji jako parametr wejściowy. Należy pamiętać, że tagi FunctionIn nie mogą:
|
FunctionOut Scope |
Właściwość FunctionOut można przypisać do tagu lokalnego dowolnego typu danych w celu przesyłania wartości poza funkcję, do której należy. Gdy funkcja zostanie przeciągnięta do innej funkcji, pojawi się po prawej stronie funkcji jako parametr wyjściowy. Należy pamiętać, że tagi FunctionOut nie mogą:
|
- Kliknij ikonę Add Tag i utwórz tag.
- Użyj tej samej metody, aby dodać tag FunctionOut.
- Przeciągnij i upuść UDFB do żądanej funkcji, a następnie połącz tagi z parametrami FunctionIN i FunctionOut. Zwróć uwagę, że możesz wyświetlić opis parametru, najeżdżając na niego kursorem myszy, jak pokazano w Starting Temp na poniższym obrazku.
Zagnieżdżanie (nesting)
UniLogic obsługuje 8 poziomów zagnieżdżonych funkcji.
Oznacza to, że funkcja może zawierać (wywoływać) funkcje enkapsulowane, jak pokazano na poniższym diagramie.
Każda funkcja może zawierać do 10 parametrów wejściowych funkcji i 10 parametrów wyjściowych funkcji oraz może zawierać do 256 bajtów lokalnych tagów dowolnego typu danych.
Obowiązkiem programisty jest nieprzekraczanie tego limitu.