Warszawa dnia 15.02.2001r.
HE_DDE VER. 1.0
INSTRUKCJA
TIGER-SOFT
UL. Wiązana 28B
04-680 Warszawa
tel./fax (0-22) 615-89-84
e-mail: tiger-soft@tiger-soft.com.pl
Spis treści 1) Wstęp
HE_DDE ver. 1.0 jest kontrolką ActiveX umożliwiającą współpracę systemu Honeywell XBS z dowolnym innym programem posiadającym możliwość używania technologii ActiveX. Podstawowe cechy programu to:
2) Instalacja programu i wklejenie kontrolki
W celu zainstalowania programu należy uruchomić program HE_DDE_INSTALACJA.exe. Program instalacyjny instaluje w systemie kontrolkę He_dde.ocx. Aby mieć możliwość używania kontrolki należy wkleić obiekt OLE (ActiveX) tego typu do swojego programu mającego czytać informację z XBS.
3) Konfiguracja HE_DDE
W komunikacji z XBS używany jest protokół DDE. W celu skonfigurowania HE_DDE należy podaj czas jaki kontrolka czeka na odpowiedź z XBS. Parametr ten ma nazwę timeout i jest podawany w ms. Domyślna wartość tego parametru wynosi 10000 ms. W celu poprawnego funkcjonowania programu na komputerze musi być zainstalowane oprogramowanie Honeywell XBS z serwerem DDE firmy Honeywell tzn. programem XGCCUS.EXE.
4) Odczyt danych z XBS
Aby odczytać dane z programu XBS należy użyć funkcji HEReadPoint(point). Argument funkcji point jest ciągiem znaków określającym nazwę punktu zdefiniowaną w systemie XBS. Funkcja powinna być używana zarówno do odczytu danych analogowych jak i cyfrowych. Użycie powyższej funkcji ilustruje przykład stworzony w Visual Basicu
x = He_dde1.HEReadPoint("TEMP.PIECA")
W odpowiedzi HEReadPoint(point) zwraca tablicę x zawierającą następujące dane:
a) dla punktu analogowego
x(0) - nazwa punkt
x(1) - wartość punktu
x(2) - nazwa jednostki inżynierskiej
x(3) - stan pracy (automatic/manual)
x(4) - dostępność punktu (yes/no)
x(5) - stan alarmu (yes/no)
x(6) - alarm stłumiony (yes/no)
x(7) - dolny poziom alarmowy
x(8) - nazwa jednostki inżynierskiej dla dolnego poziomu alarmowego
x(9) - dolny poziom ostrzegawczy
x(10) - nazwa jednostki inżynierskiej dla dolnego poziomu ostrzegawczego
x(11) - górny poziom ostrzegawczy
x(12) - nazwa jednostki inżynierskiej dla górnego poziomu ostrzegawczego
x(13) -górny poziom alarmowy
x(14) - nazwa jednostki inżynierskiej dla górnego poziomu alarmowego
x(15) - rodzaj punktu (0- analogowy 1-cyfrowy)
b) dla punktu cyfrowego
x(0) - nazwa punkt
x(1) - tekst określający status punktu
x(2) - stan pracy (automatic/manual)
x(3) - dostępność punktu (yes/no)
x(4) - stan alarmu (yes/no)
x(5) - alarm stłumiony (yes/no)
x(6) - dostępny w runtime
x(7) - długość przerwy serwisowej
x(8) - ilość godzin od ostatniego przeglądu serwisowego
x(9) - zakumulowany runtime
x(10) - licznik cykli
x(15) - rodzaj punktu (0- analogowy 1-cyfrowy)
5) Obsługa błędów
HE_DDE posiada właściwość zwaną Status. Jeśli wszystkie bity w statusie są równe zero, czyli Status = 0 to znaczy, że nie wystąpiły żadne błędy. Ustawiony bit:
1 - oznacza błąd inicjalizacji DDE
2 - błąd połączenia z serwerem DDE
3 - nieudaną transakcję DDE
Przykład zastosowania statusu znajduje się w następnym punkcie.
6) Współpraca z Intellution iFix
Kontrolka HE_DDE może być używana do przekazywania danych z XBS do programu Intellution iFix. Poniższe przykłady prezentują sposób wpisania wartości odczytanych z XBS do punktów bazy danych w iFix.
a) dla punktu analogowego a1
Private Sub CommandButton1_Click()
Dim x As Variant
x = He_dde1.HEReadPoint("TEMP.PIECA")
If (He_dde1.Status = 0) then
Fix32.Fix.a1.a_desc = x(0)
Fix32.Fix.a1.f_cv = x(1)
Fix32.Fix.a1.a_egudesc = x(2)
Fix32.Fix.a1.f_lolo = x(7)
Fix32.Fix.a1.f_lo = x(9)
Fix32.Fix.a1.f_hi = x(11)
Fix32.Fix.a1.f_hihi = x(13)
End
If
End
Sub
b) dla punktu cyfrowego c1
Private Sub CommandButton2_Click()
Dim x As Variant
x = He_dde1.HEReadPoint("PIEC.WLACZ")
If (He_dde1.Status = 0) Then
Fix32.Fix.c1.a_desc = x(0)
If (x(1) = "NORMAL") Then
Fix32.Fix.c1.f_cv = 1
Else
Fix32.Fix.c1.f_cv = 0
End If
End
If
End Sub