Biblioteka iHMS_Util.lib

W związku z faktem, iż biblioteka ta jest składową (choć nie musi, ponieważ źródła bibliotek są otwarte więc każdy użytkownik może je sobie zmodyfikować w taki sposób, aby nie musiały korzystać z tej biblioteki) każdej innej biblioteki iHMS dla CodeSys2.3 poświęcam jej oddzielny wpis.

Biblioteka zawiera bloczki wykorzystywane przez pozostałe biblioteki i jest wymagana do ich uruchomienia. Bloczki nie uwzględnione w dokumentacji są traktowane jako prywatne i nie powinny być wykorzystywane w programach.

Bloczek iHMS_License

Jest to bloczek służący do aktywacji licencji. Od pierwszego uruchomienia biblioteki działają w trybie demo przez 30 dni. Po upływie tego czasu konieczna jest aktywacja licencji.

Nazwa:iHMS_License
Typ:Blok funkcyjny
Wejściowe parametry:Typ:Komentarz:
ACT_CODESTRINGKod aktywacyjny licencji
Wyjściowe parametry:Typ:Komentarz:
ACTIVEBOOLInformuje o stanie aktywacji licencji: TRUE – licencja aktywowana FALSE – brak aktywacji
MAC_ADRARRAY[0..5] OF BYTEZwraca adres MAC urządzenia wymagany do wygenerowania kodu aktywacyjnego.
DEMOBOOLZwraca TRUE, jeżeli jest aktywny tryb demo. Tryb ten jest dostępny przez 30 dni od pierwszego uruchomienia biblioteki.
DEMO_LEFTTIMEZwraca czas, który pozostał do końca trybu demo.
DEMO_DAYS_LEFTDWORDZwraca liczbę dni do końca trybu demo.
Funkcja StringToArr

Funkcja konwertuje ciąg tekstowy do tablicy BYTE.

Nazwa:StringToArr
Typ:Funkcja
Wejściowe parametry:Typ:Komentarz:
strPOINTER TO BYTEWskaźnik na początek ciągu tekstowego. Np: ADR(string_var_to_convert)
arrPOINTER TO BYTEWskaźnika na tablicę do której zostana przepisane znaki z 'str’. Np: ADR(output_array_var)
LenBYTEDługość ciągu tekstowego.
Wyjściowe parametry:Typ:Komentarz:
brak

Bloczek fbBlockQueue

Bloczek wykorzystywany do kolejkowania zadań. Każde zadanie powinno posiadać unikalny identyfikator(BLOCK_ID) w obrębie jednej grupy korzystającej z tej samej instancji bloczka. Mając identyfikator ustawiamy się w kolejkę wywołując bloczek z ENQ=TRUE i BLOCK_ID = nasz identyfikator zadania. Po każdym wywołaniu bloczka sprawdzamy stan zmiennej MY_TURN, która przyjmie wartość TRUE jeżeli jest nasza kolej na wykonanie zadania. Po wykonaniu zadania wywołujemy bloczek z JOB_DONE=TRUE w celu zwolnienia kolejki i ponownego przejścia na jej koniec.

Nazwa:fbBlocksQueue
Typ:Blok funkcyjny
Wejściowe parametry:Typ:Komentarz:
ENQBOOLTRUE – aby zapisać się do kolejki FALSE – wypisuje się z kolejki
JOB_DONEBOOLNależy ustawić na TRUE po wykonaniu zadania. Spowoduje to zwolnienie kolejki i ponowne ustawienie się na jej końcu.
BLOCK_IDINTIdentyfikator zadania. Każde oddzielne zadanie powinno wywoływać bloczek ze stałym i unikalnym identyfikatorem.
Wyjściowe parametry:Typ:Komentarz:
MY_TURNBOOLZwraca TRUE – jeżeli jest nasza kolej na wykonanie zadania. Po wykonaniu zadania należy wywołać bloczek ze zmienną JOB_DONE ustawioną na TRUE w celu zwolnienia kolejki.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *