Biblioteka iHMS_FIAS.lib, integracja z systemem hotelowym

Bloczek FIAS_CONTROL

Bardzo ciekawa i użyteczna biblioteka. Jako pierwsza została zainstalowana i użyta z powodzeniem w systemie zarządzania automatyka budynkową w hotelu Puro we Wrocławiu na ulicy Włodkowica.

Bloczek komunikuje się z bramą FIAS (po sieci Ethernet) i zbiera informację na temat zajętych pokoi hotelowych. Wykorzystuje kilka bloczków z biblioteki OSCAT.

Na początku jedna ważna informacja wzięta „z życia”. Wtyczka FIAS udostępniana przez system hotelowy jest z reguły licencjonowana w ten sposób, że za każdy użyty kanał komunikacji płaci się oddzielnie dla producenta systemu hotelowego. Dlatego tej biblioteki najlepiej jest użyć na jednym kontrolerze WAGO, zebrać informację o wszystkich pokojach i potem przesłać ją po odpowiednich protokołach użytych w całym systemie do poszczególnych pokoi. W hotelu Puro we Wrocławiu komunikacja między kontrolerami WAGO I/O odbywała się po ethernecie i protokole Network Variables.

Posiada dwa tryby śledzenia, które mogą być wykorzystane jednocześnie:

  1. Śledzenie stanu pokoju o zdanym numerze – ustawiamy wskaźnik ROOM_OF_INTEREST na strukturę pokoju 'RoomData’ z ustawionym numerem pokoju, którego stan chcemy sledzić. Gdy zostanie odebrany check-in do pokoju dane gości zostaną uzupełnione w tablicy 'guests’ struktury 'RoomData’. Check-out spowoduje wyczyszczenie struktur gości.
  2. Śledzenie stanu wszystkich pokoi hotelowych – należy gdzieś w programie zadeklarować tablicę typu RoomData. Następnie ustawić wskaźnik ROOMS na tablicę(ADR(nazwa_tablicy)) oraz wprowadzić jej rozmiar w zmiennej MAX_ROOMS. Bloczek będzie uzupełniał poszczególne pokoje danymi na temat rezerwacji. Jeżeli ustawimy numery pokojów w tablicy bloczek odpowiednio je rozpozna. Jeżeli pozostawimy numery pokojów w tablicy puste to bloczek uzupełni je w miarę napływania danych z bramy FIAS.

Przed rozpoczęciem konfigurujemy zdalny adres IP(REMOTE_HOST) oraz port bramy FIAS(REMOTE_PORT). Uruchamiamy bloczek ustawiając ENABLE na TRUE. Bloczek powinien połączyć się z bramą i odebrać początkowy stan bazy danych co spowoduje ustawienie zmiennych wyjściowych CONNECTED oraz LINK_ACTIVE na TRUE. W celu zamknięcia połączenia ustawiamy ENABLE na FALSE.

Nazwa:FIAS_CONTROL
Typ:Blok funkcyjny
Wejściowe parametry:Typ:Komentarz:
ENABLEBOOLWłącza/wyłącza bloczek co jest równoznaczne z otwarciem/zamknięciem połączenia z bramą FIAS.
REMOTE_HOSTSTRINGAdres IP bramy FIAS.
REMOTE_PORTINTPort TCP/IP bramy FIAS.
ROOM_OF_INTERESTPOINTER TO RoomDataWskaźnik na strukturę obserwowanego pokoju. Struktura musi mieć uzupełniony numer. Ustawiony na 0 wyłącza funkcję śledzenia pokoju.
ROOMSPOINTER TO RoomDataWskaźnik na początek tablicy pokojów. Do tej tablicy bedą zapisywane dane na temat okupacji pokojów hotelowych. Ustawiony na 0 wyłącza śledzenie stanu wszystkich pokojów.
MAX_ROOMSINTRozmiar tablicy pokojów ROOMS(-1, gdy nie wykorzystywana).
WDT_INTERVALTIMEMaksymalny czas bezczynności po którym połączenie zostanie zamknięte. W normalnych warunkach bramka FIAS wysyła sygnał podtrzymujący połączenie co kilkadziesiąt sekund. Jeżeli sygnał przestanie być odbierany i upłynie okres WDT_INTERVAL połączenie zostanie zamknięte, a bloczek będzie próbował otworzyć nowe połączenie.
Wyjściowe parametry:Typ:Komentarz:
CONNECTEDBOOLTRUE jeżeli udało się ustanowić połączenie TCP z bramą FIAS.
LINK_ACTIVEBOOLTRUE jeżeli została odebrana początkowa baza danych i rozpoczęła się normalna komunikacja FIAS.
PMS_DATESTRINGData z systemu PMS w formacie YYMMDD
PMS_TIMESTRINGCzas z systemu PMS w formacie HHMMSS
PMS_DTDTData i czas z systemu PMS w formacie WAGO DATE_AND_TIME

STRUKTURY DANYCH

GuestData

Struktura przechowuje informacje na temat gościa pokoju hotelowego. Struktura danych pokoju zaweira tablicę gości, która odzwierciedla aktualny stan zapełnienia pokojów. Puste wartości oznaczają brak gościa. Wszelkie dane są tylko do odczytu. Więcej informacji na temat poszczególnych pól można znaleźć w opisie protokołu FIAS_2.11.chm.

Nazwa:GuestData
Typ:Struktura
Zmienna:Typ:Komentarz:
RoomNumberSTRING(8)Numer pokoju.
ReservNumberINTNumer reserwacji.
FirstNameSTRING(20)Imię gościa.
LastNameSTRING(40)Nazwisko.
TitleSTRING(20)Tytuł.
ArrivalDateSTRINGData zameldowania YYMMDD.
DepartureDateSTRINGData wymeldowania YYMMDD.
GroupNumberSTRING(10)Numer grupy.
LanguageSTRING(2)Język (kod dwuliterowy).
VipStatusSTRING(20)Status VIP.
MiniBarSTRING(2)2 znakowy kod uprawnień mini baru.
NoPostSTRING(1)Status „No post”
TVRightsSTRING(2)2 znakowy kod uprawnień TV.
VideoRightsSTRING(2)2 znakowy kod uprawnień wideo.

RoomData

Struktura przechowuje informacje na temat pokoju hotelowego.

Nazwa:RoomData
Typ:Struktura
Zmienna:Typ:Komentarz:
roomNumberSTRINGNumer pokoju. Jeżeli w tablicy pokojów nadamy numery odpowiednim pozycjom to bloczek będzie umieszczał dane na temat pokoju w pozycji z odpowiednim numerem. Jeżeli zostawimy numery puste to bloczek będzie nadawał numer w kolejności zgodnej z napływającymi danymi z bramki FIAS.
guestsARRAY[0..1] OF GuestDataTablica gości przebywających w pokoju.

Dodaj komentarz

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