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_CODE | STRING | Kod aktywacyjny licencji |
Wyjściowe parametry: | Typ: | Komentarz: |
ACTIVE | BOOL | Informuje o stanie aktywacji licencji: TRUE – licencja aktywowana FALSE – brak aktywacji |
MAC_ADR | ARRAY[0..5] OF BYTE | Zwraca adres MAC urządzenia wymagany do wygenerowania kodu aktywacyjnego. |
DEMO | BOOL | Zwraca TRUE, jeżeli jest aktywny tryb demo. Tryb ten jest dostępny przez 30 dni od pierwszego uruchomienia biblioteki. |
DEMO_LEFT | TIME | Zwraca czas, który pozostał do końca trybu demo. |
DEMO_DAYS_LEFT | DWORD | Zwraca 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: |
str | POINTER TO BYTE | Wskaźnik na początek ciągu tekstowego. Np: ADR(string_var_to_convert) |
arr | POINTER TO BYTE | Wskaźnika na tablicę do której zostana przepisane znaki z 'str’. Np: ADR(output_array_var) |
Len | BYTE | Dł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: |
ENQ | BOOL | TRUE – aby zapisać się do kolejki FALSE – wypisuje się z kolejki |
JOB_DONE | BOOL | Należy ustawić na TRUE po wykonaniu zadania. Spowoduje to zwolnienie kolejki i ponowne ustawienie się na jej końcu. |
BLOCK_ID | INT | Identyfikator zadania. Każde oddzielne zadanie powinno wywoływać bloczek ze stałym i unikalnym identyfikatorem. |
Wyjściowe parametry: | Typ: | Komentarz: |
MY_TURN | BOOL | Zwraca 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. |