Wonderware
®
FactorySuite™
InTouch
®
Opis funkcji, pól i zmiennych
systemowych
Wersja A
Ostatnia wersja: Wrzesień 2002
Invensys Systems, Inc.
Wszystkie prawa zastrzeżone. Żaden fragment niniejszej publikacji nie może być
kopiowany, przechowywany w systemie do wyszukiwania informacji, przesyłany za
pomocą jakichkolwiek metod: elektronicznych, mechanicznych, fotokopiowania,
nagrywania, lub też w jakikolwiek inny sposób, bez uprzedniego otrzymania
pisemnej zgody Invensys Systems, Inc. Dołożono wszelkich starań, aby informacje
zawarte w tej publikacji były kompletne i rzetelne, jednakże ani dostawca ani autor
nie przejmują odpowiedzialności za błędy i omyłkowe pominięcia. Nie jest również
przyjmowana jakakolwiek odpowiedzialność za szkody wynikłe z korzystania z
informacji podanych w niniejszym dokumencie.
Podane informacje mogą ulec zmianie bez uprzedzenia, i nie są zobowiązujące dla
Invensys Systems, Inc. Oprogramowanie może być wykorzystywane i kopiowane
wyłącznie przy zachowaniu zgodności z tymi dokumentami.
© 2002 Invensys Systems, Inc. Wszystkie prawa zastrzeżone.
Invensys Systems, Inc.
33 Commercial Street
Foxboro, MA 02035
(949) 727-3200
http://www.wonderware.com
Znaki handlowe
Terminy używane w niniejszej książce, co do których było wiadomo, że są
znakami firmowymi lub oznaczeniami usług, zostały odpowiednio
wyróżnione. Invensys Systems, Inc. nie może zaświadczyć o pełnej
kompletności tych informacji. Korzystanie z tych terminów w niniejszej
książce nie może być traktowane jako naruszanie praw do tych znaków
handlowych lub oznaczeń usług.
Alarm Logger, ActiveFactory, ArchestrA, Avantis, DBDump, DBLoad,
DTAnalyst, FactoryFocus, FactoryOffice, FactorySuite, hotlinks, InBatch,
InControl, IndustrialRAD, IndustrialSQL Server, InTouch, InTrack,
MaintenanceSuite, MuniSuite, QI Analyst, SCADAlarm, SCADASuite,
SuiteLink, SuiteVoyager, WindowMaker, WindowViewer, Wonderware, oraz
Wonderware Logger są znakami towarowymi Invensys plc, jego
reprezentanów i filii. Wszystkie inne znaki mogą być znakami towarowymi
należącymi do ich właścicieli.
Spis treści
5
Opis funkcji, pól i zmiennych systemowych
Spis treści
Wprowadzenie ..................................................17
Konwencja opisu .................................................................................. 17
Informacje o Podręczniku użytkownika............................................... 18
Pomoc techniczna................................................................................. 19
Licencja FactorySuite........................................................................... 19
ROZDZIAŁ 1: Zmienne systemowe.................21
$AccessLevel ....................................................................................... 21
$AlarmPrinterError .............................................................................. 22
$AlarmPrinterNoPaper......................................................................... 22
$AlarmPrinterOffline ........................................................................... 23
$AlarmPrinterOverflow ....................................................................... 23
$ApplicationChanged........................................................................... 24
$ApplicationVersion............................................................................. 24
$ChangePassword ................................................................................ 25
$ConfigureUsers................................................................................... 25
$Date .................................................................................................... 26
$DateString........................................................................................... 26
$DateTime ............................................................................................ 26
$Day ..................................................................................................... 27
$HistoricalLogging............................................................................... 27
$Hour.................................................................................................... 28
$InactivityTimeout ............................................................................... 28
$InactivityWarning............................................................................... 29
$LogicRunning..................................................................................... 29
$Minute ................................................................................................ 30
$Month ................................................................................................. 30
$Msec ................................................................................................... 30
$NewAlarm .......................................................................................... 31
$ObjHor................................................................................................ 31
$ObjVer ................................................................................................ 31
$Operator.............................................................................................. 32
$OperatorDomain................................................................................. 32
$OperatorDomainEntered .................................................................... 33
$OperatorEntered ................................................................................. 33
$OperatorName .................................................................................... 33
$PasswordEntered ................................................................................ 34
$Second ................................................................................................ 34
$StartDdeConversations....................................................................... 34
6
Spis treści
Opis funkcji, pól i zmiennych systemowych
$System.................................................................................................35
$Time ....................................................................................................35
$TimeString...........................................................................................35
$VerifiedUserName...............................................................................36
$Year .....................................................................................................36
ROZDZIAŁ 2: Pola zmiennych.........................37
Typy zmiennych ....................................................................................37
Zmienne typu pamięciowego (Memory)...............................................38
Zmienne typu I/O ..............................................................................38
Indirect Discrete, Indirect Analog, Indirect Message........................39
Pozostałe typy zmiennych .................................................................39
Zestawienie typów pól zmiennych........................................................40
.Ack .......................................................................................................46
.AckDev ................................................................................................48
.AckDsc ................................................................................................49
.AckROC...............................................................................................50
.AckValue..............................................................................................51
.Alarm ...................................................................................................52
.AlarmAccess ........................................................................................53
.AlarmAckModel ..................................................................................54
.AlarmClass...........................................................................................55
.AlarmComment....................................................................................56
.AlarmDate............................................................................................57
.AlarmDev.............................................................................................58
.AlarmDevCount ...................................................................................59
.AlarmDevDeadband.............................................................................59
.AlarmDevUnAckCount .......................................................................60
.AlarmDisabled .....................................................................................60
.AlarmDsc .............................................................................................61
.AlarmDscCount ...................................................................................62
.AlarmDscDisabled ...............................................................................62
.AlarmDscEnabled ................................................................................63
.AlarmDscInhibitor ...............................................................................64
.AlarmDscUnAckCount........................................................................65
.AlarmEnabled ......................................................................................65
.AlarmGroup .........................................................................................66
.AlarmGroupSel ....................................................................................67
.AlarmHiDisabled .................................................................................67
.AlarmHiEnabled ..................................................................................68
.AlarmHiHiDisabled .............................................................................68
.AlarmHiHiEnabled .............................................................................69
.AlarmHiHiInhibitor .............................................................................70
Spis treści
7
Opis funkcji, pól i zmiennych systemowych
.AlarmHiInhibitor................................................................................. 71
.AlarmLimit.......................................................................................... 72
.AlarmLoDisabled ................................................................................ 72
.AlarmLoEnabled ................................................................................. 73
.AlarmLoInhibitor ................................................................................ 74
.AlarmLoLoDisabled............................................................................ 75
.AlarmLoLoEnabled............................................................................. 75
.AlarmLoLoInhibitor............................................................................ 76
.AlarmMajDevDisabled ....................................................................... 77
.AlarmMajDevEnabled ........................................................................ 77
.AlarmMajDevInhibitor........................................................................ 78
.AlarmMinDevDisabled ....................................................................... 79
.AlarmMinDevEnabled ........................................................................ 79
.AlarmMinDevInhibitor ....................................................................... 80
.AlarmName ......................................................................................... 81
.AlarmOprName................................................................................... 82
.AlarmOprNode.................................................................................... 83
.AlarmPri .............................................................................................. 84
.AlarmProv ........................................................................................... 85
.AlarmROC .......................................................................................... 86
.AlarmROCCount................................................................................. 87
.AlarmROCDisabled ............................................................................ 87
.AlarmROCEnabled ............................................................................. 88
.AlarmROCInhibitor ............................................................................ 89
.AlarmROCUnAckCount ..................................................................... 90
.AlarmState........................................................................................... 90
.AlarmTime .......................................................................................... 91
.AlarmTotalCount................................................................................. 91
.AlarmType........................................................................................... 92
.AlarmUnAckCount ............................................................................. 92
.AlarmUserDefNum1 ........................................................................... 93
.AlarmUserDefNum2 ........................................................................... 94
.AlarmUserDefStr ................................................................................ 95
.AlarmValDeadband ............................................................................. 96
.AlarmValue.......................................................................................... 96
.AlarmValueCount................................................................................ 97
.AlarmValueUnAckCount .................................................................... 97
.Caption ................................................................................................ 98
.ChartLength......................................................................................... 99
.ChartStart .......................................................................................... 100
.Comment ........................................................................................... 100
.DevTarget .......................................................................................... 101
.DisplayMode ..................................................................................... 101
8
Spis treści
Opis funkcji, pól i zmiennych systemowych
.Enabled...............................................................................................102
.EngUnits.............................................................................................103
.Freeze .................................................................................................103
.HiHiLimit...........................................................................................104
.HiHiSet...............................................................................................104
.HiHiStatus..........................................................................................105
.HiLimit...............................................................................................105
.HiSet...................................................................................................106
.HiStatus..............................................................................................106
.ListChanged .......................................................................................107
.ListCount............................................................................................107
.ListIndex ............................................................................................108
.LoLimit ..............................................................................................108
.LoLoLimit..........................................................................................109
.LoSet ..................................................................................................109
.LoLoSet..............................................................................................110
.LoLoStatus .........................................................................................111
.LoStatus .............................................................................................112
.MajorDevPct ......................................................................................112
.MajorDevSet ......................................................................................113
.MajorDevStatus .................................................................................114
.MaxEU ...............................................................................................115
.MaxRange ..........................................................................................116
.MaxRaw .............................................................................................117
.MinEU................................................................................................118
.MinorDevPct......................................................................................119
.MinorDevSet......................................................................................119
.MinorDevStatus .................................................................................120
.MinRange...........................................................................................121
.MinRaw..............................................................................................122
.Name ..................................................................................................122
.NewIndex ...........................................................................................124
.NextPage ............................................................................................124
.Normal ...............................................................................................125
.NumAlarms........................................................................................126
.OffMsg ...............................................................................................126
.OnMsg................................................................................................127
.PageNum............................................................................................127
.Pen1-.Pen8 .........................................................................................128
.PendingUpdates .................................................................................131
.PrevPage.............................................................................................132
.PriFrom ..............................................................................................133
.PriTo...................................................................................................133
Spis treści
9
Opis funkcji, pól i zmiennych systemowych
.ProviderReq....................................................................................... 134
.ProviderRet........................................................................................ 134
.Quality............................................................................................... 135
.QualityLimit ...................................................................................... 138
.QualityLimitString ............................................................................ 139
.QualityStatus ..................................................................................... 139
.QualityStatusString ........................................................................... 139
.QualitySubstatus................................................................................ 140
.QualitySubstatusString...................................................................... 141
.QueryState......................................................................................... 141
.QueryType......................................................................................... 142
.RawValue .......................................................................................... 143
.ReadOnly........................................................................................... 143
.Reference........................................................................................... 144
.ReferenceComplete ........................................................................... 144
.ROCPct.............................................................................................. 145
.ROCSet.............................................................................................. 145
.ROCStatus......................................................................................... 146
.ScooterLockLeft................................................................................ 147
.ScooterLockRight.............................................................................. 147
.ScooterPosLeft .................................................................................. 148
.ScooterPosRight ................................................................................ 149
.Successful.......................................................................................... 150
.SuppressRetain .................................................................................. 150
.TagID................................................................................................. 151
.TimeDate ........................................................................................... 151
.TimeDateString ................................................................................. 151
.TimeDateTime................................................................................... 152
.TimeDay............................................................................................ 152
.TimeHour .......................................................................................... 152
.TimeMinute ....................................................................................... 153
.TimeMonth........................................................................................ 153
.TimeMsec.......................................................................................... 153
.TimeSecond....................................................................................... 154
.TimeTime .......................................................................................... 154
.TimeTimeString ................................................................................ 154
.TimeYear ........................................................................................... 155
.TopIndex............................................................................................ 155
.TotalPages ......................................................................................... 156
.UnAck ............................................................................................... 157
.UpdateCount...................................................................................... 158
.UpdateInProgress .............................................................................. 159
.UpdateTrend...................................................................................... 160
10
Spis treści
Opis funkcji, pól i zmiennych systemowych
.Value...................................................................................................160
.Value...................................................................................................161
.Visible ................................................................................................162
ROZDZIAŁ 3: Funkcje skryptowe .................163
Abs()....................................................................................................164
Ack() ...................................................................................................164
ActivateApp()......................................................................................165
AddPermission() .................................................................................165
almAckAll() ........................................................................................166
almAckDisplay().................................................................................166
almAckGroup() ...................................................................................167
almAckPriority() .................................................................................168
almAckRecent() ..................................................................................168
almAckSelect()....................................................................................169
almAckSelectedGroup()......................................................................169
almAckSelectedPriority()....................................................................170
almAckSelectedTag()..........................................................................170
almAckTag() .......................................................................................171
almDefQuery() ....................................................................................172
almMoveWindow() .............................................................................172
almQuery() ..........................................................................................173
almSelectAll() .....................................................................................174
almSelectGroup() ................................................................................174
almSelectionCount() ...........................................................................175
almSelectItem()...................................................................................175
almSelectPriority() ..............................................................................175
almSelectTag() ....................................................................................176
almSetQueryByName().......................................................................176
almShowStats() ...................................................................................177
almSuppressAll() ................................................................................177
almSuppressGroup() ...........................................................................178
almSuppressDisplay() .........................................................................178
almSuppressPriority() .........................................................................179
almSuppressRetain() ...........................................................................179
almSuppressSelected() ........................................................................180
almSuppressTag()................................................................................180
almSuppressSelectedGroup()..............................................................181
almSuppressSelectedPriority()............................................................181
almSuppressSelectedTag() ..................................................................182
almUnSelectAll() ................................................................................182
almUnSuppressAll()............................................................................183
Spis treści
11
Opis funkcji, pól i zmiennych systemowych
ArcCos() ............................................................................................. 183
ArcSin().............................................................................................. 184
ArcTan() ............................................................................................. 184
AttemptInvisibleLogon().................................................................... 185
ChangePassword().............................................................................. 185
Cos() ................................................................................................... 186
DialogStringEntry()............................................................................ 186
DialogValueEntry() ............................................................................ 188
DText() ............................................................................................... 190
EnableDisableKeys().......................................................................... 190
Exp()................................................................................................... 191
FileCopy() .......................................................................................... 191
FileDelete()......................................................................................... 193
FileMove().......................................................................................... 194
FileReadFields() ................................................................................. 196
FileReadMessage()............................................................................. 197
FileWriteFields() ................................................................................ 198
FileWriteMessage() ............................................................................ 199
GetNodeName() ................................................................................. 199
GetPropertyD()................................................................................... 200
GetPropertyI() .................................................................................... 200
GetPropertyM() .................................................................................. 201
Hide .................................................................................................... 202
HideSelf.............................................................................................. 202
HTGetLastError()............................................................................... 203
HTGetPenName()............................................................................... 204
HTGetTimeAtScooter()...................................................................... 204
HTGetTimeStringAtScooter()............................................................ 205
HTGetValue() ..................................................................................... 206
HTGetValueAtScooter()..................................................................... 207
HTGetValueAtZone()......................................................................... 208
HTScrollLeft().................................................................................... 210
HTScrollRight() ................................................................................. 210
HTSelectTag() .....................................................................................211
HTSetPenName() ................................................................................211
HTUpdateToCurrentTime()................................................................ 212
HTZoomIn() ....................................................................................... 212
HTZoomOut() .................................................................................... 213
InfoAppActive() ................................................................................. 214
InfoAppTitle() .................................................................................... 214
InfoDisk() ........................................................................................... 215
InfoFile() ............................................................................................ 216
InfoInTouchAppDir() ......................................................................... 217
12
Spis treści
Opis funkcji, pól i zmiennych systemowych
InfoResources()...................................................................................217
Int()......................................................................................................218
InvisibleVerifyCredentials()................................................................218
IOGetApplication() .............................................................................218
IOGetNode() .......................................................................................219
IOGetTopic() .......................................................................................219
IOReinitialize() ...................................................................................219
IOSetAccessName()............................................................................220
IOSetItem() .........................................................................................221
IOStartUninitConversations() .............................................................222
IsAnyAsynchFunctionBusy()..............................................................222
IsAssignedRole().................................................................................223
Log()....................................................................................................223
LogMessage()......................................................................................224
LogN().................................................................................................224
Logoff() ...............................................................................................225
Pi().......................................................................................................225
PlaySound().........................................................................................225
PostLogonDialog()..............................................................................226
PrintHT().............................................................................................227
PrintScreen() .......................................................................................228
PrintWindow().....................................................................................230
QueryGroupMembership()..................................................................232
RecipeDelete() ....................................................................................232
RecipeGetMessage() ...........................................................................233
RecipeLoad().......................................................................................234
RecipeSave() .......................................................................................235
RecipeSelectNextRecipe() ..................................................................236
RecipeSelectPreviousRecipe() ............................................................237
RecipeSelectRecipe() ..........................................................................238
RecipeSelectUnit() ..............................................................................239
ReloadWindowViewer()......................................................................240
RestartWindowViewer()......................................................................240
Round() ...............................................................................................241
SendKeys ............................................................................................242
SetPropertyD() ....................................................................................243
SetPropertyI()......................................................................................244
SetPropertyM()....................................................................................244
Sgn()....................................................................................................245
Show....................................................................................................245
ShowAt().............................................................................................246
ShowHome..........................................................................................246
ShowTopLeftAt() ................................................................................247
Spis treści
13
Opis funkcji, pól i zmiennych systemowych
Sin().................................................................................................... 247
SPCConnect()..................................................................................... 248
SPCDatasetDlg() ................................................................................ 248
SPCDisconnect() ................................................................................ 249
SPCDisplayData() .............................................................................. 249
SPCLocateScooter() ........................................................................... 250
SPCMoveScooter()............................................................................. 250
SPCSaveSample() .............................................................................. 251
SPCSelectDataset() ............................................................................ 251
SPCSelectProduct()............................................................................ 251
SPCSetControlLimits() ...................................................................... 252
SPCSetMeasurement() ....................................................................... 252
SPCSetProductCollected() ................................................................. 253
SPCSetProductDisplayed() ................................................................ 253
SPCSetRangeLimits() ........................................................................ 254
SPCSetSpecLimits()........................................................................... 254
SQLAppendStatement() ..................................................................... 255
SQLClearParam()............................................................................... 255
SQLClearStatement() ......................................................................... 255
SQLClearTable() ................................................................................ 256
SQLCommit()..................................................................................... 257
SQLConnect() .................................................................................... 258
SQLCreateTable() .............................................................................. 260
SQLDelete() ....................................................................................... 261
SQLDisconnect()................................................................................ 262
SQLDropTable()................................................................................. 262
SQLEnd() ........................................................................................... 262
SQLErrorMsg() .................................................................................. 263
SQLExecute()..................................................................................... 263
SQLFirst() .......................................................................................... 264
SQLGetRecord() ................................................................................ 264
SQLInsert()......................................................................................... 265
SQLInsertEnd() .................................................................................. 265
SQLInsertExecute()............................................................................ 266
SQLInsertPrepare() ............................................................................ 266
SQLLast()........................................................................................... 267
SQLLoadStatement() ......................................................................... 267
SQLManageDSN()............................................................................. 268
SQLNext().......................................................................................... 268
SQLNumRows()................................................................................. 268
SQLPrepareStatement() ..................................................................... 269
SQLPrev() .......................................................................................... 269
SQLRollback() ................................................................................... 270
14
Spis treści
Opis funkcji, pól i zmiennych systemowych
SQLSelect().........................................................................................271
SQLSetParamChar() ...........................................................................274
SQLSetParamDate()............................................................................274
SQLSetParamDateTime() ...................................................................275
SQLSetParamDecimal()......................................................................275
SQLSetParamFloat()...........................................................................276
SQLSetParamInt()...............................................................................276
SQLSetParamLong()...........................................................................276
SQLSetParamNull() ............................................................................277
SQLSetParamTime()...........................................................................278
SQLSetStatement() .............................................................................278
SQLTransact() .....................................................................................279
SQLUpdate().......................................................................................281
SQLUpdateCurrent()...........................................................................282
Sqrt() ...................................................................................................282
StartApp ..............................................................................................283
StringASCII()......................................................................................283
StringChar() ........................................................................................284
StringFromIntg() .................................................................................284
StringFromReal() ................................................................................285
StringFromTime() ...............................................................................286
StringFromTimeLocal() ......................................................................287
StringInString() ...................................................................................288
StringLeft()..........................................................................................289
StringLen() ..........................................................................................290
StringLower()......................................................................................290
StringMid()..........................................................................................291
StringReplace() ...................................................................................292
StringRight() .......................................................................................293
StringSpace().......................................................................................294
StringTest()..........................................................................................295
StringToIntg()......................................................................................296
StringToReal().....................................................................................297
StringTrim() ........................................................................................298
StringUpper() ......................................................................................299
Tan() ....................................................................................................299
Text() ...................................................................................................300
Trunc().................................................................................................300
TseGetClientId()..................................................................................301
TseQueryRunningOnConsole()...........................................................301
TseQueryRunningOnClient() ..............................................................302
wcAddItem() .......................................................................................302
wcClear().............................................................................................303
Spis treści
15
Opis funkcji, pól i zmiennych systemowych
wcDeleteItem()................................................................................... 303
wcDeleteSelection() ........................................................................... 304
wcErrorMessage() .............................................................................. 304
wcFindItem()...................................................................................... 305
wcGetItem() ....................................................................................... 306
wcGetItemData()................................................................................ 307
wcInsertItem() .................................................................................... 308
wcLoadList() ...................................................................................... 309
wcLoadText() ..................................................................................... 310
wcSaveList()........................................................................................311
wcSaveText()...................................................................................... 312
wcSetItemData()................................................................................. 313
WWControl() ..................................................................................... 314
WWExecute()..................................................................................... 315
WWPoke().......................................................................................... 316
WWRequest()..................................................................................... 317
ROZDZIAŁ 4: Automatyzacja OLE w programie
InTouch.............................................................319
Elementy OLE Automation................................................................ 319
Obsługa OLE Automation w programie InTouch .............................. 320
Format wyrażeń .............................................................................. 320
Tworzenie obiektu: OLE_CreateObject ......................................... 324
Zarządzanie obiektem: OLE_ReleaseObject.................................. 325
Sprawdzanie aktywności obiektu: OLE_IsObjectValid ................. 326
Odczytywanie wartości właściwości .............................................. 326
Ustawianie właściwości.................................................................. 328
Wywoływanie metody .................................................................... 329
Obsługa błędów w programie InTouch........................................... 332
Najczęstsze błędy automatyzacji obiektów. ................................... 335
Załącznik A: Usuwanie problemów przy
korzystaniu z funkcji skryptowych ................337
Usuwanie problemów przy korzystaniu z funkcji receptur ............... 338
Nazwy elementów SPC DDE............................................................. 340
Elementy DDE SPC do sterowania i wyświetlania ........................ 340
Elementy DDE SPC dla bieżącej próbki ........................................ 343
Elementy DDE SPC do ręcznego wprowadzania........................... 347
Elementy DDE SPC do zaznaczania .............................................. 349
Usuwanie problemów przy korzystaniu z funkcji SQL.................. 352
Komunikaty błędów dla poszczególnych baz danych........................ 354
Indeks..............................................................357
16
Spis treści
Opis funkcji, pól i zmiennych systemowych
Wprowadzenie
17
Opis funkcji, pól i zmiennych systemowych
Wprowadzenie
Podręcznik ten zawiera alfabetyczny, szczegółowy opis każdego pola
zmiennej (.pole), właściwości obiektów sterujących, właściwości obiektu
alarmu, zmiennych systemowych i funkcji QuickScript zawartych w
programie InTouch. Zawiera również opis dodatkowych modułów
oprogramowania: Menadżera Receptur, SPC Pro i SQL Access. Zawartość
podręcznika jest następująca:
•
Rozdział 1 - "Zmienne systemowe" zawiera szczegółowy opis wszystkich
predefiniowanych zmiennych systemowych.
Uwaga: Nazwy wszystkich zmiennych systemowych rozpoczynają się od
znaku dolara ($).
•
Rozdział 2, “Pola zmiennych” zawiera szczegółowy opis pól (.pola)
zmiennych, alarmów, alarmów rozproszonych, obiektów sterujących
okien, systemu, trendów historycznych i innych.
•
Rozdział 3 – “Funkcje QuickScript w programie InTouch” zawiera
szczegółowy opis wbudowanych funkcji QuickScript (tekstowe,
matematyczne, systemowe, historyczne, obiektów sterujących okien,
alarmy rozproszone i inne funkcje).
•
Rozdział 4 – “Automatyzacja OLE w programie InTouch” zawiera
zwięzły opis architektury automatyzacji OLE.
Konwencja opisu
Z prawej strony każdej zmiennej systemowej, właściwości, pola zmiennej lub
funkcji skryptowej podano kategorię zastosowania (bezpieczeństwo, alarm,
aplikacja, itp.), co ma na celu ułatwienie korzystania z podręcznika.
Przykładowo: $AccessLevel bezpieczeństwo
Przykład
Opis
.ChartStart
Ogólnie ujmując, czcionką pogrubioną
oznaczone są pola, zmienne systemowe
lub funkcje.
Zmienna
Przy opisie składni, czcionką pochyloną
zaznaczono miejsca gdzie należy
wprowadzić własne dane.
{ .HiLimit | .HiHiLimit }
Przy opisie składni, kreska pionowa
oznacza, że należy wybrać jeden spośród
dwóch lub większej liczby elementów.
[ErrorMessage=]
Elementy ujęte w nawiasy kwadratowe są
opcjonalne.
18
Zanim rozpoczniesz
Opis funkcji, pól i zmiennych systemowych
Informacje o Podręczniku użytkownika
Jeżeli ten podręcznik użytkownika jest używany w wersji elektronicznej, jeżeli
tekst jest w kolorze zielonym, wystarczy kliknąć na tekście, aby „przeskoczyć”
do odpowiedniej sekcji lub rozdziału. Po przejściu do innego punktu lub
rozdziału, można skorzystać z polecenia "Wstecz", powodującego przejście do
pierwotnego miejsca.
Wskazówka: Znak ten umieszczono obok “Podpowiedzi”, zawierających
prostszą lub szybszą metodę realizacji funkcji lub zadania.
W podręczniku użytkownika InTouch omówiono środowisko edycyjne w
programie WindowMaker, oraz dostępne w nim narzędzia (przeczytaj rozdział
1 tego podręcznika "Elementy programu WindowMaker"). W celu zapoznania
się z oknami, obiektami graficznymi, wizardami, obiektami ActiveX, itp.
należy przeczytać Rozdział 2, "Korzystanie z programu WindowMaker". Aby
uzyskać więcej informacji o tworzeniu skryptów QuickScripts w programie
InTouch, przeczytaj Rozdział 6 – „Tworzenie skryptów QuickScript”
Szczegółowe informacje o środowisku pracy (WindowViewer) podano w
podręczniku InTouch Runtime User's Guide.
Więcej informacji na temat dodatkowego programu SPC Pro podano w
podręczniku użytkownika SPC Pro.
Szczegóły dotyczące dodatkowego programu Recipe Manager podano w
podręczniku użytkownika Recipe Manager.
Szczegóły dotyczące dodatkowego programu SQL Access Manager podano w
podręczniku SQL Access Podręcznik użytkownika.
Podręcznik FactorySuite Systems Administrator's Guide zawiera również
kompletne informacje o wspólnych elementach zawartych w FactorySuite,
wymaganiach systemu, pracy w sieci, integracji produktów, pomocy
technicznej, itd.
Podręczniki w wersji elektronicznej dla wszystkich elementów pakietu
FactorySuite są również zawarte w pakiecie oprogramowania FactorySuite.
Uwaga: Aby przeglądać lub drukować podręczniki w wersji elektronicznej
należy zainstalować Adobe Acrobat Reader (wersja 4.0 lub późniejszą).
Wymagane wiadomości
W niniejszej instrukcji przyjęto następujące założenia o użytkowniku:
•
Użytkownik jest zapoznany z systemami operacyjnymi Windows 2000 i
Windows NT.
•
Posiada umiejętność korzystania z myszki, menu Windows, wybierania
opcji, oraz korzystania z pomocy.
•
Posiada doświadczenie w zakresie programowania lub języka makro. W
celu osiągnięcia jak największych korzyści, użytkownik powinien być
zapoznany z takimi zagadnieniami programowania jak zmienne,
deklaracje, funkcje i metody.
Wprowadzenie
19
Opis funkcji, pól i zmiennych systemowych
Pomoc techniczna
Dział Pomocy Technicznej Wonderware oferuje różne metody wsparcie w
zakresie produktów Wonderware jak również ich implementacji.
Przed skontaktowaniem się z Działem Pomocy Technicznej, proszę szukać
rozwiązania problemów, mogących wystąpić w czasie korzystania z systemu
InTouch, w Podręczniku użytkownika InTouch. Jeżeli okaże się konieczne
skorzystanie z pomocy technicznej, należy mieć przygotowane następujące
informacje:
1. Numer seryjny oprogramowania.
2. Numer wykorzystywanej wersji programu InTouch.
3. Typ i wersję wykorzystywanego sytemu operacyjnego. Przykładowo,
Microsoft Windows NT Wersja 4.0, SP4, jednostanowiskowa.
4. Dokładną treść wyświetlanego przez system komunikatu o błędzie.
5. Jakiekolwiek, mogące być pomocne wydruki z Wonderware Logger,
narzędzi diagnostycznych Microsoft Diagnostic (MSD), czy innych
aplikacji diagnostycznych.
6. Szczegółowe informacje na temat podejmowanych prób rozwiązania
problemów, oraz ich wyniki.
7. Szczegółowe informacje odnośnie sposobu odtworzenia zaistniałego
problemu.
8. Jeżeli jest dostępna taka informacja, numer przyporządkowany do tego
problemu przez Dział Pomocy Technicznej Wonderware (dotyczy to
problemów aktualnie opracowywanych).
Więcej informacji o pomocy technicznej podano w podręczniku użytkownika
FactorySuite System Administrator's.
Licencja FactorySuite
Informacje na temat posiadanej licencji na system FactorySuite, pokazywane
są przez narzędzie do wyświetlania informacji o licencji, dostępne po
wybraniu okna dialogowego O programie z menu Pomoc programu
WindowMaker.
W celu otwarcia programu narzędziowego licencji:
1. W menu Pomoc programu WindowMaker, wybrać Informacje o.
2. Kliknąć Licencja. Wyświetlone zostanie okno dialogowe License Utility
- LicView.
Więcej informacji na temat narzędzi do wyświetlania informacji o licencji
podano w podręczniku FactorySuite System Administrator's Guide.
20
Zanim rozpoczniesz
Opis funkcji, pól i zmiennych systemowych
Zmienne systemowe
21
Opis funkcji, pól i zmiennych systemowych
R O Z D Z I A Ł 1
Zmienne systemowe
InTouch posiada pewną liczbę predefiniowanych zmiennych systemowych.
Zmienne te są wbudowane w program InTouch i identyfikowane za pomocą
poprzedzającego je znaku dolara ($). W czasie pracy aplikacji InTouch,
wartość tych zmiennych ulega zmianie, w odpowiedzi na stan systemu i
zdarzenia zaistniałe w systemie. Zmienne systemowe można wykorzystywać
wszędzie, gdzie używane są inne zmienne programu InTouch, np. w
połączeniach animacyjnych, lub w skryptach QuickScript.
$AccessLevel
Zmienna ta określa poziom dostępu aktualnie zalogowanego użytkownika.
Kategoria
bezpieczeństwo
Sposób użycia
$AccessLevel
Uwagi
Jest to zmienna przeznaczona tylko do odczytu, której wartość jest określana
przez Poziom Dostępu (Acces Level) przypisany do aktualnie zalogowanych
w InTouch-u profili bezpieczeństwa użytkowników. Uprawnienia te dla
konkretnego użytkownika są dostępne z poziomu menu Konfiguracja
użytkowników w programie WindowViewer.
Rzeczywista wartość zmiennej $AccessLevel nie ma żadnego znaczenia dla
programu WindowViewer. Wszelkie żądane "zabezpieczenia" muszą zostać
stworzone przez projektanta aplikacji. Zastosowanie zmiennej $AccessLevel
pozwala na zwiększenie poziomu bezpieczeństwa systemu.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Od 0 do 9999
Przykład(y)
Wyrażenie zamieszczone poniżej umożliwia wyświetlenie obiektu (np.
przycisku) na ekranie (połączenie animacyjne widoczności) w zależności od
poziomu dostępu zalogowanego użytkownika:
$AccessLevel >= 2000;
{Obiekt mo
ż
e mie
ć
równie
ż
przypisane poł
ą
czenie animacyjne
do deaktywacji, w którym wykorzystywane jest wyra
ż
enie
zawieraj
ą
ce zmienn
ą
$AccessLevel.}
$AccessLevel < 5411;
IF $AccessLevel <=500 THEN
Show "Access Denied"; {Wy
ś
wietlenie komunikatu
informuj
ą
cego o braku mo
ż
liwo
ś
ci zalogowania}
ELSE
Show "Access Denied"; {Wy
ś
wietlenie komunikatu
informuj
ą
cego o mo
ż
liwo
ś
ci zalogowania}
ENDIF;
Patrz również
$Operator, $OperatorEntered, $PasswordEntered; $ConfigureUsers
22
Rozdział 1
Opis funkcji, pól i zmiennych systemowych
$AlarmPrinterError
$AlarmPrinterNoPaper
Błąd drukarki alarmów.
Kategoria
alarmy
Sposób użycia
$AlarmPrinterError
Uwagi
Jeśli drukarka alarmów sygnalizuje błąd, zmienna ta przyjmuje wartość 1.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Drukarka alarmów nie sygnalizuje błędu
1 = Drukarka alarmów sygnalizuje błąd
Przykład(y)
Jeżeli instrukcja zamieszczona poniżej zostanie użyta jako wyrażenie w
połączeniu animacyjnym wyświetlania wartości analogowej, w przypadku
wystąpienia błędu w drukarce alarmów wyświetlona zostanie wartość 1, w
przeciwnym wypadku wyświetlona zostanie wartość 0.
IF $AlarmPrinterError == 1 THEN
DisplayMessageTag = "Error on alarm printer";
ELSE
DisplayMessageTag = "No error on alarm printer";
ENDIF;
Patrz również
$AlarmPrinterNoPaper, $AlarmPrinterOffline, $AlarmPrinterOverflow
Zmienna ta sygnalizuje brak papieru w drukarce alarmów.
Kategoria
alarmy
Sposób użycia
$AlarmPrinterNoPaper
Uwagi
Jeśli w drukarce alarmów brakuje papieru, zmienna przyjmuje wartość 1.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = W drukarce alarmów jest papier
1 = W drukarce alarmów brakuje papieru
Przykład(y)
Jeżeli instrukcja zamieszczona poniżej zostanie użyta w połączeniu
animacyjnym wyświetlania wartości analogowej, oraz jeżeli w drukarce
będzie brakować papieru, wyświetlona zostanie wartość 1, w przeciwnym
wypadku, wyświetlona zostanie wartość 0.
$AlarmPrinterNoPaper
Zastosowanie w skrypcie warunkowym zdarzenia Jeżeli prawda:
Condition:
$AlarmPrinterOffline == 1
Script:
show"window";
playsound("c:\winnt\system32\alarm.wav",1);
Patrz również
$AlarmPrinterOffline, $AlarmPrinterError, $AlarmPrinterOverflow
Zmienne systemowe
23
Opis funkcji, pól i zmiennych systemowych
$AlarmPrinterOffline
$AlarmPrinterOverflow
Zmienna ta sygnalizuje brak gotowości do pracy drukarki alarmów.
Kategoria
alarmy
Sposób użycia
$AlarmPrinterOffline
Uwagi
Jeśli drukarka alarmów nie jest gotowa do pracy (Offline), zmienna
przyjmuje wartość 1.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Drukarka alarmów jest gotowa do pracy
1 = Drukarka alarmów nie jest gotowa do pracy (Offline)
Przykład(y)
Jeżeli wyrażenie zamieszczone poniżej zostanie użyte w połączeniu
animacyjnym wyświetlania wartości analogowej, oraz drukarka alarmów nie
jest gotowa do pracy, wyświetlona zostanie wartość 1, natomiast w
przypadku przeciwnym, wyświetlona zostanie wartość 0.
$AlarmPrinterOffline
IF $AlarmPrinterOffline == 1 THEN
Call PLCHorn( );
{Funkcja skryptowa powoduj
ą
ca uruchomienie alarmu
d
ź
wi
ę
kowego w zakładzie}
ENDIF;
Patrz również
$AlarmPrinterNoPaper, $AlarmPrinterError, $AlarmPrinterOverflow
Zmienna ta sygnalizuje przepełnienie bufora drukarki alarmów.
Kategoria
alarmy
Sposób użycia
$AlarmPrinterOverflow
Uwagi
W przypadku przepełnienia bufora drukarki alarmów, zmienna przyjmuje
wartość 1.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Bufor drukarki alarmów nie jest całkowicie wypełniony
1 = Bufor drukarki alarmów jest przepełniony
Przykład(y)
Jeżeli wyrażenie zamieszczone poniżej zostanie użyte w połączeniu
animacyjnym wyświetlania wartości analogowej, oraz nastąpi przepełnienie
bufora drukarki alarmów, wyświetlona zostanie wartość 1, w przeciwnym
wypadku, wyświetlona zostanie wartość 0.
$AlarmPrinterOverflow
Patrz również
$AlarmPrinterNoPaper, $AlarmPrinterOffline, $AlarmPrinterError
24
Rozdział 1
Opis funkcji, pól i zmiennych systemowych
$ApplicationChanged
$ApplicationVersion
Zmienna ta sygnalizuje zmianę aplikacji nadrzędnej w architekturze NAD
(Network Application Development).
Kategoria
aplikacja
Sposób użycia
$ApplicationChanged
Uwagi
Zmienna ta przyjmuje wartość 1 w przypadku otrzymania sygnału
generowanego po wybraniu polecenia Aktualizacja aplikacji w sieci z menu
Specjalne programu WindowViewer. W przypadku uaktualnienia aplikacji,
wartość tej zmiennej ustawiana jest na 0. Zmienna ta jest stosowana do
obsługi aplikacji sieciowych.
Typ danych
Discrete (tylko odczyt)
Przykład(y)
Jeżeli zamieszczona poniżej instrukcja zostanie wykorzystana w QuickScript
związanym ze zmianą wartości pola zmiennej, spowoduje to wykonanie
instrukcji tego QuickScript - u. QuickScript powinien powodować
wyświetlenie komunikatu, informującego użytkownika o konieczności
ponownego uruchomienia programu WindowViewer w celu uwzględnienia
wprowadzonych zmian.
$ApplicationChanged
Patrz również
$ApplicationVersion
Zmienna ta zawiera bieżący numer wersji aplikacji. Wartość tej zmiennej
ulega zawsze zmianie w przypadku zmodyfikowania, dodania lub usunięcia
zmiennej albo skryptu QuickScript.
Kategoria
aplikacja
Sposób użycia
$ApplicationVersion
Uwagi
-
Typ danych
Real (tylko odczyt)
Przykład(y)
Jeżeli instrukcja zamieszczona poniżej zostanie użyta w połączeniu
animacyjnym wyświetlania wartości analogowej, wyświetlony zostanie
bieżący numer wersji aplikacji pracującej w programie WindowViewer.
$ApplicationVersion
Patrz również
$ApplicationChanged
Zmienne systemowe
25
Opis funkcji, pól i zmiennych systemowych
$ChangePassword
$ConfigureUsers
Zmienna ta służy do wyświetlenia pola dialogowego do zmiany hasła.
Działanie jest równoważne wybraniu polecenia Zabezpieczenia, a następnie
Zmiana hasła dostępu, z menu Specjalne programu WindowMaker.
Kategoria
bezpieczeństwo
Sposób użycia
$ChangePassword
Uwagi
Przypisanie tej zmiennej wartości 1 powoduje wyświetlenie okna
dialogowego Zmiana hasła dostępu. Po zamknięciu pola dialogowego,
InTouch automatycznie ustawia wartość na 0. Przypisanie tej zmiennej
systemowej wartości innej niż 1 nie ma żadnego znaczenia, a wynik takiej
operacji jest nieokreślony
Typ danych
Discrete (tylko zapis)
Zakres wartości
1
Przykład(y)
Można utworzyć przycisk powiązany ze zmienną dyskretną, którego
wciśnięcie umożliwi operatorowi wyświetlenie okna dialogowego Zmiana
hasła dostępu. Przycisk ten powinien mieć pojedyncze połączenie
powiązane ze zmienną dyskretną z zaznaczoną opcją Ustaw. Naciśnięcie
przycisku powoduje przypisanie wartości 1 do zmiennej $ChangePassword i
wyświetlenie okna dialogowego Zmiana hasła dostępu.
Patrz również
$AccessLevel, $OperatorEntered, $PasswordEntered, $Operator,
$ConfigureUsers
Zmienna ta służy do wyświetlenia pola dialogu służącego do
konfigurowania użytkowników. Działanie jest równoważne wybraniu
polecenia Zabezpieczenie, a następnie Zmiana hasła dostępu, z menu
Specjalne programu WindowMaker.
Kategoria
bezpieczeństwo
Sposób użycia
$ConfigureUsers
Uwagi
Przypisanie tej zmiennej wartości 1 powoduje wyświetlenie okna
dialogowego Konfigurowanie użytkowników. Po zamknięciu pola
dialogowego, InTouch automatycznie ustawia wartość na 0. Aby wyświetlić
to pole dialogowe, użytkownik musi mieć przypisaną wartość zmiennej
$AccessLevel >9000. Przypisanie tej zmiennej systemowej wartości innej niż
1 nie ma żadnego znaczenia, a wynik takiej operacji jest nieokreślony.
Typ danych
Discrete (tylko zapis)
Zakres wartości
1
Przykład(y)
Można utworzyć przycisk powiązany ze zmienną dyskretną, którego
wciśnięcie umożliwi operatorowi wyświetlenie okna dialogowego Zmiana
hasła dostępu. Przycisk ten powinien mieć pojedyncze połączenie
powiązane ze zmienną dyskretną z zaznaczoną opcją Ustaw. Naciśnięcie
przycisku powoduje przypisanie wartości 1 do zmiennej $ConfigureUsers i
wyświetlenie okna dialogowego Konfigurowanie użytkowników.
Patrz również
$Operator, $OperatorEntered, $ChangePassword, $PasswordEntered,
$AccessLevel
26
Rozdział 1
Opis funkcji, pól i zmiennych systemowych
$Date
$DateString
$DateTime
Wartością tej zmiennej jest całkowita liczba dni, które upłynęły od 1/1/70.
Kategoria
system
Sposób użycia
$Date
Uwagi
-
Typ danych
Integer (tylko odczyt)
Przykład(y)
StringFromTime(($Date*86400)+($Time/1000),3);
(Zwraca aktualn
ą
dat
ę
)
Patrz również
$DateTime, $DateString, $Day, $Month, $Year
Wartością tej zmiennej jest data w formacie określonym w pliku
WIN
.
INI
.
Kategoria
system
Sposób użycia
$DateString
Uwagi
Format daty jest ustawiany w panelu sterowania Windows lub przez
dwukrotne kliknięcie na ikonie zegara na pasku zadań Windows.
Typ danych
Memory message (tylko odczyt)
Przykład(y)
If StringRight($DateString,2)== "00" THEN
LogMessage("The Year 2000!");
ENDIF;
Patrz również
$Date, $DateTime, $Day, $Month, $Year, $Time, $TimeString
Wartością tej zmiennej jest ułamkowa liczba dni, które upłynęły od 1/1/70.
Kategoria
system
Sposób użycia
$DateTime
Uwagi
-
Typ danych
Real (tylko odczyt)
Przykład(y)
dayvalue = 86400 * $DateTime;
If StringFromTime(Dayvalue,4) == "Fri" THEN
DisplayMessageTag = "It's Friday!";
ENDIF;
Patrz również
$Date, $DateString, $Day, $Month, $Year, $Time, $TimeString
Zmienne systemowe
27
Opis funkcji, pól i zmiennych systemowych
$Day
$HistoricalLogging
Wartością tej zmiennej jest bieżący dzień miesiąca.
Kategoria
system
Sposób użycia
$Day
Uwagi
Zmienna ta przyjmuje wartości od 1 do 31.
Typ danych
Integer (tylko odczyt)
Przykład(y)
If $Day == 15 THEN
Show "Mid-Month Washdown Window";
ENDIF;
Patrz również
$DateTime, $DateString, $Date, $Month, $Year
Zmienna ta służy do monitorowania i/lub sterowania procesem rejestrowania
danych historycznych. Działanie jej jest równoważne wybraniu polecenia
Restartuj logowanie historyczne z menu Specjalne programu
WindowViewer, lub też wybraniu polecenia Zatrzymaj logowanie
historyczne z menu Specjalne programu WindowViewer.
Kategoria
dane historyczne
Sposób użycia
$HistoricalLogging
Uwagi
Przypisanie tej zmiennej wartości 0 zatrzymuje rejestrowanie danych
historycznych. Przypisanie tej zmiennej wartości 1 powoduje ponowne
rozpoczęcie rejestrowania danych historycznych. Nie jest możliwe
rozpoczęcie rejestracji danych historycznych poprzez $HistoricalLogging,
chyba że zaznaczona jest opcja Włącz logowanie historyczne w polu
dialogowym Parametry logowania historycznego.
Typ danych
Discrete (odczyt/zapis)
Przykład(y)
IF (InfoDisk("C",4,$Second)/1024)<50 THEN
{Wył
ą
cza rejestracj
ę
danych historycznych, je
ż
eli wolna
przestrze
ń
na dysku twardym jest mniejsza ni
ż
50MB}
$HistoricalLogging = 0;
ENDIF;
28
Rozdział 1
Opis funkcji, pól i zmiennych systemowych
$Hour
$InactivityTimeout
Wartością tej zmiennej jest bieżąca godzina dnia.
Kategoria
system
Sposób użycia
$Hour
Uwagi
Zmienna ta przyjmuje wartości od 0 do 23.
Typ danych
Integer (tylko odczyt)
Przykład(y)
Zastosowanie w skrypcie warunkowym zdarzenia On True.
$Hour == 20 AND $Second == 30
PrintWindow("Day Batch Summary",1,1,0,0,0);
Patrz również
$DateTime, $Minute, $Msec, $Second, $Time, $TimeString
Zmienna ta sygnalizuje, że upłynął skonfigurowany czas, po którym
użytkownik zostaje automatycznie wylogowany z aplikacji wskutek braku
aktywności.
Kategoria
bezpieczeństwo
Sposób użycia
$InactivityTimeout
Uwagi
Zmienna ta przyjmuje wartość 1, gdy upłynął czas po którym użytkownik
zostaje automatycznie wylogowany z aplikacji wskutek braku aktywności. W
celu skonfigurowania tego czasu, z menu Specjalne wybrać Konfiguracja, a
następnie kliknąć WindowViewer, lub rozwinąć grupę Konfiguracja w
Eksploratorze aplikacji, a następnie podwójnie kliknąć WindowViewer.
Wyświetlone zostanie okno dialogowe Właściwości WindowViewer z
aktywną zakładką właściwości Ogólne: W grupie Nieaktywność
wprowadzić czas w sekundach.
Uwaga: Licznik czasu braku aktywności nie jest zerowany dla obiektów
Active-X, obiektów OLE Automation i wizardów SPC.
Typ danych
Discrete (tylko odczyt)
Patrz również
$InactivityWarning
Przykład(y)
Zastosowanie w skrypcie warunkowym zdarzenia Jeżeli prawda.
Warunek:
$InactivityTimeout == 1
Skrypt:
Show "You have been logged off window";
Patrz również
$InactivityWarning
Zmienne systemowe
29
Opis funkcji, pól i zmiennych systemowych
$InactivityWarning
$LogicRunning
Zmienna ta sygnalizuje, że upłynął skonfigurowany czas, po którym
użytkownik zostaje ostrzeżony o zbliżającym się automatycznym
wylogowaniu z aplikacji wskutek braku aktywności.
Kategoria
bezpieczeństwo
Sposób użycia
$InactivityWarning
Uwagi
Zmienna ta przyjmuje wartość 1, gdy upłynął czas, po którym użytkownik
jest ostrzegany o braku aktywności. Licznik czasu braku aktywności
użytkownika może być wyzerowany wyłącznie poprzez kliknięcie myszką
lub wciśnięcie klawisza. W celu skonfigurowania tego czasu, z menu
Specjalne wybrać Konfiguracja, a następnie kliknąć WindowViewer, lub
rozwinąć grupę Konfiguracja w Eksploratorze aplikacji, a następnie
podwójnie kliknąć WindowViewer. Wyświetlone zostanie okno dialogowe
Właściwości WindowViewer z aktywną zakładką właściwości Ogólne: W
grupie Nieaktywność wprowadzić wartość czasu wyrażoną w sekundach.
Uwaga: Licznik czasu braku aktywności nie jest zerowany dla obiektów
Active-X, obiektów OLE Automation i wizardów SPC.
Typ danych
Discrete (tylko odczyt)
Przykład(y)
Zastosowanie w skrypcie warunkowym zdarzenia Jeżeli prawda.
If $InactivityWarning == 1 THEN
Show "Za chwil
ę
bie
żą
cy u
ż
ytkownik zostanie wylogowany-
okno";
ENDIF;
Patrz również
$InactivityTimeOut
Zmienna ta monitoruje i/lub steruje wykonywaniem skryptów. Działanie tej
zmiennej jest równoważne wybraniu polecenia Uruchom skrypty, lub
polecenia Zatrzymaj skrypty z menu Skrypty programu WindowViewer.
Uwaga: Aktualnie wykonywane asynchroniczne funkcje QuickFunction nie
mogą być zatrzymywane. Można jednakże uniemożliwić uruchamianie
następnych funkcji.
Kategoria
system
Sposób użycia
$LogicRunning
Uwagi
Przypisanie zmiennej wartości 1 pozwala na uruchamianie QuickScript-ów
logicznych. Przypisanie zmiennej wartości 0 uniemożliwia uruchamianie
QuickScript-ów logicznych.
Typ danych
Discrete (odczyt/zapis)
30
Rozdział 1
Opis funkcji, pól i zmiennych systemowych
$Minute
$Month
$Msec
Wartością tej zmiennej jest bieżąca minuta godziny.
Kategoria
system
Sposób użycia
$Minute
Uwagi
Zmienna ta przyjmuje wartości od 0 do 59.
Typ danych
Integer (tylko odczyt)
Przykład(y)
W wyrażeniu tekstowym połączenia animacyjnego:
IF InfoFile("C:\InTouch.32\WIZ.INI",1,$Minute)==1 THEN
LogMessage("Plik istnieje!");
ENDIF;
Patrz również
$DateTime, $Hour, $Msec, $Second, $Time, $TimeString
Wartością tej zmiennej jest bieżący miesiąc roku.
Kategoria
system
Sposób użycia
$Month
Uwagi
Zmienna ta przyjmuje wartości od 1 do 12.
Typ danych
Integer (tylko odczyt)
Przykład(y)
IF $Month==10 THEN
CurrentMonthName = "Pa
ź
dziernik";
ENDIF;
Patrz również
$Date, $Day, $Year
Wartością tej zmiennej jest bieżąca milisekunda. Częstotliwość uaktualniania
tej zmiennej przez system zależna jest od wartości parametrów Rozdzielczość
zegara i Uaktualniaj zmienne czasu co. W menu Specjalne wybrać
Konfiguracja, następnie wybrać WindowViewer lub w eksploratorze
aplikacji w gałęzi Konfiguracja kliknąć na WindowViewer. Wyświetlone
zostanie okno dialogowe Właściwości WindowViewer z aktywną zakładką
właściwości Ogólne:
Kategoria
system
Sposób użycia
$Msec
Uwagi
Zmienna ta przyjmuje wartości od 0 do 999.
Typ danych
Integer (tylko odczyt)
Patrz również
$DateTime, $Minute, $Second, $Hour, $Time, $TimeString
Zmienne systemowe
31
Opis funkcji, pól i zmiennych systemowych
$NewAlarm
$ObjHor
$ObjVer
Zmienna ta sygnalizuje wystąpienie nowego alarmu.
Kategoria
alarmy
Sposób użycia
$NewAlarm
Uwagi
Zmienna przyjmuje wartość 1, gdy pojawi się nowy alarm. Wartość tej
zmiennej ustawiana jest wyłącznie w przypadku wystąpienia alarmu
lokalnego. Dotyczy to alarmów lokalnych (nie dotyczy alarmów
zewnętrznych).
Typ danych
Discrete (odczyt/zapis)
Przykład(y)
Tą zmienną można powiązać z funkcją logiczną PlaySound, powodującą
zasygnalizowanie alarmu dźwiękowego. Można utworzyć również przycisk
do zatwierdzania alarmu, umożliwiający operatorowi potwierdzenie alarmu i
równoczesne wyzerowanie tej zmiennej.
Wartością tej zmiennej jest pozycja środka wybranego obiektu w kierunku
poziomym, wyrażona w punktach ekranowych (pikselach).
Kategoria
system
Sposób użycia
$ObjHor
Uwagi
-
Typ danych
Integer (tylko odczyt)
Patrz również
$ObjVer
Wartością tej zmiennej jest pozycja środka wybranego obiektu w kierunku
pionowym, wyrażona w punktach ekranowych (pikselach).
Kategoria
system
Sposób użycia
$ObjVer
Uwagi
-
Typ danych
Integer (tylko odczyt)
Patrz również
$ObjHor
32
Rozdział 1
Opis funkcji, pól i zmiennych systemowych
$Operator
$OperatorDomain
Określa zakres działań, które mogą być realizowane przez zalogowanego
użytkownika.
Kategoria
bezpieczeństwo
Sposób użycia
$Operator
Uwagi
Wartość tej zmiennej reprezentuje nazwę aktualnie zalogowanego operatora.
Typ danych
Message (tylko odczyt)
Przykład(y)
Dostęp do określonego okna może być kontrolowany przy pomocy
następującego skryptu:.
IF $Operator == "DayShift" THEN
Show "Control Panel Window";
ELSE
Show "Wrong Operator";
ENDIF;
Patrz również
$OperatorEntered, $AccessLevel, $PasswordEntered,
$ChangePassword, $ConfigureUsers
Kategoria
Bezpieczeństwo
Sposób użycia
Jeżeli system bezpieczeństwa oparty jest na systemie operacyjnym a operator
zalogował się pomyślnie, zmienna $OperatorDomain będzie zawierała
nazwę domeny lub komputera, który został określony przy logowaniu. Jeżeli
wybrany został system bezpieczeństwa ArchestrA, zmienna
$OperatorDomain będzie zawierała "ArchestrA". Jeżeli wybrany został
system bezpieczeństwa InTouch, zmienna $OperatorDomain będzie
zawierała "InTouch". Jeżeli żaden system bezpieczeństwa nie został
wybrany, zmienna ta będzie zawierała pusty tekst "".
Uwagi
N/A
Typ danych
String
Przykład(y)
$Operator = "john";
$OperatorDomain="CORPORATE_HQ";
Patrz również
$Operator
Zmienne systemowe
33
Opis funkcji, pól i zmiennych systemowych
$OperatorDomainEntered
$OperatorEntered
$OperatorName
Kategoria
Bezpieczeństwo
Sposób użycia
Gdy zmianie ulega zmienna $PasswordEntered, następuje próba zalogowania
bez użycia interfejsu użytkownika. Logowanie odbywa się przy użyciu
zmiennych $*Entered, które służą do wprowadzania parametrów logowania
oraz zmiennej $OperatorDomainEntered w której wprowadza się nazwę
domeny (używana tylko gdy jest wybrany system bezpieczeństwa systemu
operacyjnego). Jeżeli system bezpieczeństwa nie jest oparty na systemie
operacyjnym, zmienna ta nie jest używana.
Uwagi
N/A
Typ danych
String
Przykład(y)
$OperatorEntered="john";
$OperatorDomainEntered="Corporate_hq";
$PasswordEntered="password";
Patrz również
$Operator
Zmienna ta służy do wprowadzania nazwy użytkownika.
Kategoria
bezpieczeństwo
Sposób użycia
$OperatorEntered
Uwagi
Umożliwia utworzenie okna użytkownika do logowania. Powiązanie z tą
zmienną obiektów do wprowadzania danych reagujących na naciskanie i/lub
QuickScript - ów umożliwia wprowadzenie nazwy użytkownika.
Uwaga: Jeżeli zmiennej $OperatorEntered przypisana zostanie jedna z
poprawnych wartości, zmienne systemowe $AccessLevel i $Operator
zostaną ustawione na predefiniowane wartości.
Typ danych
Message (odczyt/zapis)
Patrz również
$AccessLevel, $Operator, $PasswordEntered, $ChangePassword,
$ConfigureUsers
Kategoria
Bezpieczeństwo
Sposób użycia
Zmienna $OperatorName będzie zawierała pełną nazwę użytkownika jeżeli
został wybrany system bezpieczeństwa ArchestrA lub system operacyjny a
użytkownik jest zalogowany. W innym wypadku, zmienna ta będzie
zawierała nazwę zalogowanego użytkownika (to samo co zmienna
$Operator).
Uwagi
N/A
Typ danych
String
Przykład(y)
$Operator = "john";
$OperatorName = "John Smith";
Patrz również
$Operator
34
Rozdział 1
Opis funkcji, pól i zmiennych systemowych
$PasswordEntered
$Second
$StartDdeConversations
Zmienna ta służy do wprowadzania właściwego hasła.
Kategoria
bezpieczeństwo
Sposób użycia
$PasswordEntered
Uwagi
Ta zmienna systemowa jest zawsze odczytywana jako pusty łańcuch znaków.
Połączenia animacyjne wyświetlające wartość zmiennej $PasswordEntered
zawsze wyświetlać będą pusty tekst. Z tego powodu skrypty uaktywniane
zmianą wartości danych (skrypty zmiany wartości zmiennej) i uzależnione
od zmiennej $PasswordEntered nie będą nigdy wykonywane. Może zostać
wykorzystana do tworzenia okna użytkownika do logowania. Powiązanie z tą
zmienną obiektów do wprowadzania danych reagujących na naciskanie i/lub
skryptów umożliwia wprowadzenie przez użytkownika hasła.
Uwaga: Jeżeli zmiennej $PasswordEntered przypisana zostanie jedna z
poprawnych wartości, zmienne systemowe $AccessLevel i $Operator
zostaną ustawione na predefiniowane wartości.
Typ danych
Message (tylko zapis)
Patrz również
$AccessLevel, $Operator, $OperatorEntered, $ChangePassword,
$ConfigureUsers
Wartością tej zmiennej jest bieżąca sekunda.
Kategoria
system
Sposób użycia
$Second
Uwagi
Zmienna ta przyjmuje wartości od 0 do 59.
Typ danych
Integer (tylko odczyt)
Przykład(y)
Wave=100*Sin(6*$Second);
Patrz również
$DateTime, $Minute, $Msec, $Hour, $Time
Zmienna ta rozpoczyna nie zainicjowaną konwersację DDE w czasie pracy
aplikacji, w sytuacji, gdy menu Specjalne zostało wyłączone. Działanie jest
równoważne wybraniu polecenia Wznów niezainicjalizowane konwersacje
z menu Specjalne programu WindowMaker.
Kategoria
system
Sposób użycia
$StartDdeConversations
Uwagi
Przypisanie zmiennej wartości 1 powoduje uruchomienie nie zainicjowanej
dotychczas konwersacji DDE.
Typ danych
Discrete (odczyt/zapis)
Zmienne systemowe
35
Opis funkcji, pól i zmiennych systemowych
$System
$Time
$TimeString
Standardowa, nadrzędna grupa alarmowa.
Kategoria
alarmy
Sposób użycia
$System
Uwagi
Jeżeli zmienna nie jest przyporządkowana do konkretnej grupy alarmowej,
InTouch automatycznie przyporządkuje ją do grupy $System. Wszystkie
zdefiniowane grupy alarmowe są podgrupami grupy $System.
Typ danych
System Alarm Group (tylko odczyt)
Przykład(y)
$System.Ack = 1;{Zatwierdzenie wszystkich alarmów}
Wartością tej zmiennej jest czas w milisekundach, który upłynął od północy.
Kategoria
system
Sposób użycia
$Time
Uwagi
-
Typ danych
Integer (tylko odczyt)
Przykład(y)
Sec_Midnight = $Time/1000;{Liczba sekund, które upłyn
ę
ły
licz
ą
c od północy}
Patrz również
$DateTime, $Minute, $Msec, $Second, $Hour, $TimeString
Wartością tej zmiennej jest czas w formacie określonym w pliku
WIN
.
INI
.
Kategoria
system
Sposób użycia
$TimeString
Uwagi
Format czasu jest ustawiany w Panelu Sterowania (Control Panel) Windows
lub przez dwukrotne kliknięcie na ikonie zegara (Clock) na Pasku Zadań
Windows.
Typ danych
String (tylko odczyt)
Przykład(y)
BatchStartString = $TimeString;
Patrz również
$DateTime, $Minute, $Msec, $Second, $Hour, $Time
36
Rozdział 1
Opis funkcji, pól i zmiennych systemowych
$VerifiedUserName
$Year
Zawiera sprawdzoną nazwę użytkownika jeżeli powiodło się wywołanie
funkcji InvisibleVerifyCredentials() oraz gdy system bezpieczeństwa jest
ustawiony na system operacyjny lub ArchestrA. Jeżeli wywołanie nie
powiedzie się, powyższa zmienna będzie ustawiona na pusty tekst.
Kategoria
bezpieczeństwo
Sposób użycia
$VerifiedUserName
Uwagi
Jeżeli powyższa zmienna ulega zmianie (wywołana jest funkcja
InvisibleVerifyCredentials), generowane jest zdarzenie a kolumna "Wartość"
będzie zawierała sprawdzoną nazwę użytkownika. Kolumna "Wartość"
będzie zawierała pusty tekst jeżeli wywołanie funkcji nie powiodło się.
Kolumna Nazwa będzie zawierała wartość "$VerifiedUserFullName".
Typ danych
String
Zakres wartości
Pełna nazwa u
ż
ytkownika
Przykład(y)
Tag = InvisibleVerifyCrdentials( "john","password",
"Plant_Floor"). Je
ż
eli wywołanie jest prawidłowe, zmienna
$VerifiedUserName zostanie ustawiona na "John Smith" oraz
zostanie wygenerowane zdarzenie. Kolumna nazwa b
ę
dzie
zawierała $VerifiedUserName oraz warto
ść
kolumny zostanie
ustawiona na "John Smith". Je
ż
eli wywołanie nie zako
ń
czy
si
ę
powodzeniem, $VerifiedUserName i kolumna zostan
ą
ustawione na "". Za ka
ż
dym razem gdy wywołujemy powy
ż
sz
ą
funkcj
ę
skryptow
ą
, zmienna $VerifiedUserName jest
ustawiana na odpowiedni
ą
nazw
ę
u
ż
ytkownika lub null.
Patrz również
InvisibleVerifyCredentials(); $OperatorName, $Operator
Wartością tej zmiennej jest bieżący rok w czterocyfrowym formacie.
Kategoria
system
Sposób użycia
$Year
Uwagi
Podaje rok w następującym formacie:
2002
Typ danych
Integer (tylko odczyt)
Przykład(y)
CurrentYear = $Year;
NoYrsTill2010 = 2002 - CurrentYear;
Patrz również
$Day, $Month
Pola zmiennych
37
Opis funkcji, pól i zmiennych systemowych
R O Z D Z I A Ł 2
Pola zmiennych
InTouch wykorzystuje pola do monitorowania i modyfikacji właściwości
takich obiektów jak zmienne, trendy historyczne oraz obiekty sterujące
Windows. Pola mogą być użyte do monitorowania i modyfikacji tych
właściwości. W zależności od rodzaju obiektu, istnieją dwie metody
korzystania z tych właściwości: bezpośrednio za pomocą instrukcji o składni
Zmienna.pole, lub pośrednio, za pomocą funkcji skryptowej.
Wszystkie obiekty, z wyjątkiem obiektów sterujących Windows oraz obiektów
związanych z alarmowaniem rozproszonym wykorzystują składnię
Zmienna.pole. Aby uzyskać dostęp do właściwości tych obiektów w czasie
pracy aplikacji wystarczy wpisać nazwę obiektu, kropkę i nazwę pola, które
ma być wykorzystane w skrypcie QuickScript lub w połączeniu animacyjnym.
Przykładowo, aby umożliwić zmiany w czasie pracy aplikacji wartości
granicznej alarmu HiHi zmiennej analogowej Zmienna_Analogowa, należy
powiązać połączenie Zmienna analogowa - Wprowadzanie wartości z
przyciskiem, i zdefiniować dla tego przycisku wyrażenie
Zmienna_Analogowa.HiHiLimit. Wówczas, w czasie pracy, operator może
kliknąć przycisk, wprowadzić nową wartość dla pola HiHi, wykorzystywanego
przez zmienną Zmienna_Analogowa.
Obiekty sterujące Windows oraz obiekty związane z alarmowaniem
rozproszonym wykorzystują funkcje GetPropertyX oraz SetPropertyX (gdzie
X jest typem danych reprezentowanym przez określoną właściwość (D =
Discrete, I = Integer, M = Message). Można również wykorzystać te funkcje w
skryptach lub połączeniach animacyjnych, aby uzyskać dostęp do tych
właściwości.
Więcej informacji na temat funkcji GetProperty oraz SetProperty znajduje się
w rozdziale Rozdział 3, "Funkcje skryptowe."
Typy zmiennych
Przy definiowaniu nowej zmiennej na liście zmiennych programu InTouch,
należy przypisać jej typ, zgodnie ze sposobem użycia. Przykładowo, jeżeli
wartość zmiennej jest ustawiana lub odczytywana przez inne aplikacje
Windows, jak na przykład program komunikacyjny, należy zadeklarować ją
jako zmienną typu I/O. Poniżej opisano wszystkie typy zmiennych oraz sposób
ich wykorzystywania.
38
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
Zmienne typu pamięciowego (Memory)
Tego typu zmienne wykorzystywane są wewnątrz aplikacji InTouch. Mogą
one być stosowane jako zmienne stałe, oraz do symulacji. Można je także
wykorzystywać do udostępniania wyników obliczeń innym aplikacjom
pracującym w środowisku Windows. Przykładowo, można zadeklarować
zmienną typu pamięciowego o wartości początkowej 3.1416, lub można przy
użyciu grupy zmiennych typu pamięciowego zapisać receptury. W czasie
symulowania, zmienne te mogą być wykorzystywane do sterowania
działaniami wykonywanymi w tle skryptu. Przykładowo, można zdefiniować
zmienną typu pamięciowego "Licznik", której wartość jest zmieniana w czasie
wykonywania skryptu, dzięki czemu uzyskiwane będą różne efekty
animacyjne, zależne od bieżącego etapu procesu. Istnieją cztery rodzaje
zmiennych typu pamięciowego:
Memory Discrete
Wewnętrzna zmienna dyskretna o wartości 0 (Fałsz, Wył), lub 1 (Prawda, Wł).
Memory Integer
32-bitowa zmienna całkowita ze znakiem o wartościach z zakresu od -
2,147,483,648 do 2,147,483,648.
Memory Real
Zmienna typu rzeczywistego. Zmienna typu rzeczywistego może przyjmować
wartości między +3.4e
38
. Wszystkie obliczenia na zmiennych tego typu
wykonywane są z dokładnością do 64-bitów, a zapamiętywane z dokładnością
do 32 bitów.
Memory Message
Zmienna typu tekstowego o długości do 131 znaków.
Zmienne typu I/O
Wszystkie zmienne, które czytają lub zapisują wartości w innym programie
pracującym w systemie Windows są zmiennymi typu I/O. Obejmuje to
wymianę danych z programowalnymi sterownikami PLC, komputerami
sterującymi procesami, oraz stacjami sieciowymi. Ze zmiennych typu I/O
można korzystać zarówno za pomocą mechanizmu dynamicznej wymiany
danych Microsoftu (DDE - Dynamic Data Exchange), jak również za pomocą
protokołu komunikacyjnego SuiteLink.
Pola zmiennych
39
Opis funkcji, pól i zmiennych systemowych
Każda zmiana wartości zmiennej typu I/O przeznaczonej do zapisu/ odczytu,
powoduje natychmiastową aktualizację tej zmiennej w aplikacjach, w których
jest ona wykorzystywana. Podobnie, powodem aktualizacji może być zmiana
wartości zmiennej w jednej z aplikacji. Domyślnie, wszystkie zmienne typu
I/O ustawiane są tak, aby można było zarówno odczytywać jak i zmieniać ich
wartość. Można jednak zdefiniować je jako przeznaczone wyłącznie do
odczytu, poprzez zaznaczenie odpowiedniej opcji w oknie dialogowym Lista
zmiennych. Istnieją cztery rodzaje zmiennych typu I/O:
I/O Discrete
Zmienna I/O o wartości 0 (Fałsz, Wył), lub 1 (Prawda, Wł).
I/O Integer
32-bitowa zmienna całkowita ze znakiem o wartościach z zakresu od -
2,147,483,648 do 2,147,483,648.
I/O Real
Zmienna typu rzeczywistego. Zmienna typu rzeczywistego może przyjmować
wartości między +3.4e
38
. Wszystkie obliczenia na zmiennych tego typu
wykonywane są z dokładnością do 64-bitów, a zapamiętywane z dokładnością
do 32 bitów.
I/O Message
Zmienna typu tekstowego o długości do 131 znaków.
Indirect Discrete, Indirect Analog, Indirect
Message
Zmienne tego typu pozwalają tworzyć okna, w których źródła wartości
zmiennych mogą być wielokrotnie zmieniane. Przykładowo, można utworzyć
skrypt wykonywany przy zmianie wartości zmiennej, który zmienia źródło
wszystkich zmiennych występujących w oknie, w zależności od wartości
zmiennej.
Pozostałe typy zmiennych
Dostępnych jest szereg specjalnych typów zmiennych, które mogą być
wykorzystane do realizacji złożonych funkcji, jak na przykład dynamiczne
wyświetlanie alarmów, tworzenie trendów historycznych, monitorowanie, oraz
sterowanie przypisaniem pisaków do zmiennych na wykresie trendów
historycznych. Dostępne są również zmienne pośrednie, które umożliwiają
odłączenie zmiennej od jednego źródła i przypisanie jej do innego. Poniżej
opisano te cztery specjalne typy zmiennych.
40
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
Hist Trend (Trend historyczny)
Typ Hist Trend jest wymagany do tworzenia trendów historycznych.
Wszystkie pola zmiennych dostępne w trendach historycznych mogą być
również stosowane w przypadku zmiennych typu Hist Trend.
Tag ID (Identyfikator zmiennej)
Ten specjalny typ zmiennych jest wykorzystywany w połączeniu z obiektami
trendów historycznych. Za pomocą zmiennej typu Tag ID można uzyskać
informacje o zmiennych rysowanych na trendzie historycznym. W większości
przypadków, zmienne typu Tag ID będą wykorzystywane do wyświetlania
nazwy zmiennej rysowanej przez dany pisak, lub też do zmiany zmiennej
przyporządkowanej do pisaka.
Więcej informacji na temat trendów historycznych podano w Podręczniku
użytkownika InTouch.
Zmienne typu SuperTag
InTouch pozwala na definiowanie szablonów SuperTag, wykorzystywanych
do tworzenia złożonych typów zmiennych. Szablony SuperTags mogą
zawierać do 64 zmiennych składowych, i mogą mieć 2 poziomy
zagnieżdżenia. Zmienne składowe mają dokładnie takie same właściwości jak
normalne zmienne. Umożliwiają one tworzenie trendów, obsługę alarmów,
oraz posiadają takie same pola jak zmienne.
Więcej informacji na temat alarmów podano w Podręczniku użytkownika
InTouch.
Zestawienie typów pól zmiennych
Tabela poniżej ilustruje zestawienie typów zmiennych i pól zmiennych.
Podany poniżej przypis odnosi się do tabeli zamieszczonej na następnej
stronie.
Jeżeli te zmienne typu Memory mają być przesyłane ze stacji klienckiej jako
zmienne typu I/O, stacja serwera dołącza do nich informacje o czasie wysłania
wartości do stacji klienckiej. Zmienne typu memory zawsze mają dobrą jakość
i nie posiadają stempla czasowego. Oznacza to, że czas zmiany wartości przez
skrypty lub połączenia nie jest pamiętany.
* Obsługiwane w wersji 7.0 lub wyższej.
** Obsługiwane w wersji 7.1 lub wyższej.
Pola zmiennych
41
Opis funkcji, pól i zmiennych systemowych
*** Obsługiwane w wersji 7.11 lub wyższej.
Typy zmiennych:
Memory
I/O
Indirect
Inne
Discrete
Integer
Real
Discrete
Integer
Real
Discrete
Analog
Alarm Gr
oup
Hist
T
ren
d
Alarmowanie r
o
zproszone
Obiekt/ kontrolka
Ta
g
ID
Nazwy pól
.Ack
X
X
X
X
X
X
X
X
X
.AckDev***
X
X
X
X
X
X
.AckDsc
X
X
X
X
.AckROC***
X
X
X
X
X
X
.AckValue***
X
X
X
X
X
X
.Alarm
X
X
X
X
X
X
X
X
X
.AlarmAccess **
X
.AlarmAckModel***
X
X
X
X
X
X
X
X
X
.AlarmClass **
X
.AlarmComment ** Pierwszy
sposób użycia.
X
X
X
X
X
X
X
X
X
X
.AlarmComment ** Drugi
sposób użycia.
X
.AlarmDate**
X
.AlarmDev
X
X
X
X
X
X
.AlarmDevCount
X
X
X
X
X
X
.AlarmDevDeadband
X
X
X
X
X
.AlarmDevUnAckCount
X
X
X
X
X
X
.AlarmDisabled***
X
X
X
X
X
X
X
X
X
.AlarmDsc
X
X
X
X
.AlarmDscCount
X
X
X
X
.AlarmDscDisabled
X
X
X
X
.AlarmDscEnabled
X
X
X
X
.AlarmDscInhibitor
X
X
X
X
.AlarmDscUnAckCount
X
X
X
X
.AlarmEnabled
X
X
X
X
X
X
X
X
X
.AlarmGroup**
X
.AlarmGroupSel **
X
.AlarmHiDisabled***
X
X
X
X
X
X
42
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmHiEnabled***
X
X
X
X
X
X
.AlarmHiHiDisabled***
X
X
X
X
X
X
.AlarmHiHiEnabled***
X
X
X
X
X
X
.AlarmHiHiInhibitor***
X
X
X
X
X
X
.AlarmHiInhibitor***
X
X
X
X
X
X
.AlarmLimit **
X
.AlarmLoDisabled***
X
X
X
X
X
X
.AlarmLoEnabled***
X
X
X
X
X
X
.AlarmLoInhibitor***
X
X
X
X
X
X
.AlarmLoLoDisabled***
X
X
X
X
X
X
.AlarmLoLoEnabled***
X
X
X
X
X
X
.AlarmLoLoInhibitor***
X
X
X
X
X
X
.AlarmMajDevDisabled***
X
X
X
X
X
X
.AlarmMajDevEnabled***
X
X
X
X
X
X
.AlarmMajDevInhibitor***
X
X
X
X
X
X
.AlarmMinDevDisabled***
X
X
X
X
X
X
.AlarmMinDevEnabled***
X
X
X
X
X
X
.AlarmMinDevInhibitor***
X
X
X
X
X
X
.AlarmName **
X
.AlarmOprName **
X
.AlarmOprNode **
X
.AlarmPri **
X
.AlarmProv **
X
.AlarmROC
X
X
X
X
X
X
.AlarmROCCount
X
X
X
X
X
X
.AlarmROCDisabled***
X
X
X
X
X
X
.AlarmROCEnabled***
X
X
X
X
X
X
.AlarmROCInhibitor***
X
X
X
X
X
X
.AlarmROCUnAckCount
X
X
X
X
X
X
.AlarmState **
X
Typy zmiennych:
Memory
I/O
Indirect
Inne
Discrete
Integer
Real
Discrete
Integer
Real
Discrete
Analog
Alarm Gr
oup
Hist
T
ren
d
Alarmowanie rozproszone Obiekt/ kontrolka
Ta
g
ID
Pola zmiennych
43
Opis funkcji, pól i zmiennych systemowych
.AlarmTime **
X
.AlarmTotalCount
X
X
X
X
X
X
X
X
X
.AlarmType **
X
.AlarmUnAckCount
X
X
X
X
X
X
X
X
X
.AlarmUserDefNum1***
X
X
X
X
X
X
X
X
X
.AlarmUserDefNum2***
X
X
X
X
X
X
X
X
X
.AlarmUserDefStr***
X
X
X
X
X
X
X
X
X
.AlarmValDeadband
X
X
X
X
X
.AlarmValue **
X
.AlarmValueCount
X
X
X
X
X
X
.AlarmValueUnAckCount
X
X
X
X
X
X
.Caption
X
.ChartLength
X
.ChartStart
X
.Comment
X
X
X
X
X
X
X
X
X
.DevTarget
X
X
X
X
X
.DisplayMode
X
.Enabled
X
X
X
X
X
X
X
X
.EngUnits *
X
X
X
X
X
.Freeze
X
.HiHiLimit
X
X
X
X
X
.HiHiSet **
X
X
X
X
X
.HiHiStatus
X
X
X
X
X
.HiLimit
X
X
X
X
X
.HiSet **
X
X
X
X
X
.HiStatus
X
X
X
X
X
.ListChanged
X
.ListCount
X
.ListIndex
X
.LoLimit
X
X
X
X
X
Typy zmiennych:
Memory
I/O
Indirect
Inne
Di
sc
re
te
In
te
ger
Re
al
Di
sc
re
te
In
te
ger
Re
al
Di
sc
re
te
An
al
og
Alarm Group
H
ist
T
ren
d
Alarmowanie rozproszone O
b
iekt/ kontrolka
Ta
g
ID
44
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.LoLoLimit **
X
X
X
X
X
.LoLoSet
X
X
X
X
X
.LoLoStatus
X
X
X
X
X
.LoSet **
X
X
X
X
X
.LoStatus
X
X
X
X
X
.MajorDevPct
X
X
X
X
X
.MajorDevSet **
X
X
X
X
X
.MajorDevStatus
X
X
X
X
X
.MaxEU
X
X
X
X
X
.MaxRange
X
.MaxRaw *
X
X
X
.MinEU
X
X
X
X
X
.MinorDevPct
X
X
X
X
X
.MinorDevSet **
X
X
X
X
X
.MinorDevStatus
X
X
X
X
X
.MinRange
X
.MinRaw *
X
X
X
.Name
X
X
X
X
X
X
X
X
X
X
X
X
.NewIndex
X
X
.NextPage
X
.Normal
X
X
X
X
X
X
X
X
X
.NumAlarms
X
.OffMsg *
X
X
X
.OnMsg *
X
X
X
.PageNum
X
.Pen1 through .Pen8
X
.PendingUpdates
X
.PrevPage
X
.PriFrom
X
.PriTo
X
Typy zmiennych:
Memory
I/O
Indirect
Inne
Discrete
Integer
Real
Discrete
Integer
Real
Discrete
Analog
Alarm Gr
oup
Hist
T
ren
d
Alarmowanie rozproszone Obiekt/ kontrolka
Ta
g
ID
Pola zmiennych
45
Opis funkcji, pól i zmiennych systemowych
.ProviderReq
X
.ProviderRet
X
.Quality
X
X
X
X
X
X
X
X
.QualityLimit *
X
X
X
X
X
X
X
X
.QualityLimitstring *
X
X
X
X
X
X
X
X
.QualityStatus *
X
X
X
X
X
X
X
X
.QualityStatusString *
X
X
X
X
X
X
X
X
.QualitySubstatus *
X
X
X
X
X
X
X
X
.QualitySubstatusString *
X
X
X
X
X
X
X
X
.QueryState
X
.QueryType
X
.RawValue *
X
X
X
.ReadOnly
X
.Reference
X
X
X
X
X
.ReferenceComplete
X
X
X
X
X
.ROCPct
X
X
X
X
X
.ROCSet **
X
X
X
X
X
.ROCStatus
X
X
X
X
X
.ScooterLockLeft
X
.ScooterLockRight
X
.ScooterPosLeft
X
.ScooterPosRight
X
.Successful
X
.SuppressRetain
X
.TagID
X
.TimeDate *
X
X
X
X
X
X
X
X
.TimeDateString
X
X
X
X
X
X
X
X
.TimeDateTime
X
X
X
X
X
X
X
X
.TimeDay *
X
X
X
X
X
X
X
X
.TimeHour *
X
X
X
X
X
X
X
X
Typy zmiennych:
Memory
I/O
Indirect
Inne
Di
sc
re
te
In
te
ger
Re
al
Di
sc
re
te
In
te
ger
Re
al
Di
sc
re
te
An
al
og
Alarm Group
H
ist
T
ren
d
Alarmowanie rozproszone O
b
iekt/ kontrolka
Ta
g
ID
46
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.Ack
.TimeMinute *
X
X
X
X
X
X
X
X
.TimeMonth *
X
X
X
X
X
X
X
X
.TimeMsec *
X
X
X
X
X
X
X
X
.TimeSecond *
X
X
X
X
X
X
X
X
.TimeTime *
X
X
X
X
X
X
X
X
.TimeTimeString
X
X
X
X
X
X
X
X
.TimeYear *
X
X
X
X
X
X
X
X
.TopIndex
X
.TotalPages
X
.UnAck
X
X
X
X
X
X
X
X
X
.UpdateCount
X
.UpdateinProgress
X
.UpdateTrend
X
.Value(Zmienna)
X
X
X
X
X
X
X
X
X
X
.Value(Obiekt sterujący
Windows)
X
.Visible
X
Pole to umożliwia sprawdzanie i/lub zmianę statusu potwierdzenia wszystkich
typów alarmów lokalnych.
Kategoria
alarmy
Sposób użycia
Zmienna.Ack=1
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
zmienna typu Indirect Analog lub grupa alarmowa.
Typy zmiennych:
Memory
I/O
Indirect
Inne
Discrete
Integer
Real
Discrete
Integer
Real
Discrete
Analog
Alarm Gr
oup
Hist
T
ren
d
Alarmowanie rozproszone Obiekt/ kontrolka
Ta
g
ID
Pola zmiennych
47
Opis funkcji, pól i zmiennych systemowych
Uwagi
Przypisanie temu polu zmiennej wartości 1 powoduje potwierdzenie
wszystkich aktywnych alarmów, które są związane z daną zmienną lub grupą.
Jeśli podana zmienna jest grupą alarmową, wszystkie nie potwierdzone
alarmy związane ze zmiennymi wchodzącymi w skład określonej grupy
zostają potwierdzone. W przypadku gdy zmienna jest innego typu niż grupa
alarmowa, potwierdzany jest wyłącznie alarm powiązany z daną zmienną.
Ustawienie tego pola na wartość inną niż 1 nie ma żadnego znaczenia, a
wynik takiej operacji jest nieokreślony.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1
Przykład(y)
Podane poniżej wyrażenie powoduje potwierdzenie alarmu związanego ze
zmienną o nazwie Tag1.
Tag1.Ack=1;
Wyrażenie podane w następnym przykładzie spowoduje potwierdzenie
wszystkich alarmów należących do grupy alarmów o nazwie PumpStation.
PumpStation.Ack=1;
Uwaga Polem o wartości przeciwnej do .Ack jest pole .UnAck. Jeżeli alarm
nie jest zatwierdzony, pole .Unack ustawiane jest na wartość 0. Pole .Unack
może zostać wtedy wykorzystane w połączeniach animacyjnych lub skryptach
warunkowych do sygnalizowania nie zatwierdzenia alarmu.
Patrz również
.Alarm, .UnAck, .AckDev, AckROC, .AckDSC, .AckValue, .AlarmAckModel
48
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AckDev
Pole to umożliwia sprawdzanie i/lub zmianę statusu zatwierdzenia lokalnego
(-ych) alarmów odchyleniowych.
Kategoria
alarmy
Sposób użycia
Zmienna.AckDev=1
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub grupa alarmowa.
Uwagi
Przypisanie omawianemu polu zmiennej wartości 1 powoduje potwierdzenie
wszystkich aktywnych alarmów odchyleniowych, które są związane z daną
zmienną lub grupą. Jeśli podana zmienna jest grupą alarmową, wszystkie nie
potwierdzone alarmy odchyleniowe związane ze zmiennymi wchodzącymi w
skład określonej grupy zostają potwierdzone. Ustawienie tego pola na
wartość inną niż 1 nie ma żadnego znaczenia, a wynik takiej operacji jest
nieokreślony.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1
Przykład(y)
Podane poniżej wyrażenie powoduje potwierdzenie alarmu odchyleniowego
związanego ze zmienną o nazwie Tag1.
Tag1.AckDev=1;
Wyrażenie podane w następnym przykładzie spowoduje potwierdzenie
wszystkich niepotwierdzonych alarmów odchyleniowych należących do
grupy alarmów o nazwie PumpStation.
PumpStation.AckDev=1;
Patrz również
.Alarm, .AlarmDev, .Ack, .UnAck, .AckDSC, .AckROC, .AckValue,
.AlarmAckModel
Pola zmiennych
49
Opis funkcji, pól i zmiennych systemowych
.AckDsc
Pole to umożliwia sprawdzanie i/lub zmianę statusu zatwierdzenia lokalnego
(-ych) alarmów zmiennych dyskretnych.
Kategoria
alarmy
Sposób użycia
Zmienna.AckDsc=1
Parametr
Opis
Zmienna
Dowolna zmienna typu Indirect Discrete lub grupa
alarmowa.
Uwagi
Przypisanie omawianemu polu zmiennej wartości 1 powoduje potwierdzenie
wszystkich aktywnych alarmów typu Discrete, które są związane z daną
zmienną lub grupą. Jeśli podana zmienna jest grupą alarmową, wszystkie nie
potwierdzone alarmy dyskretne związane ze zmiennymi wchodzącymi w
skład określonej grupy zostają potwierdzone. W przypadku gdy zmienna jest
innego typu niż grupa alarmowa, zatwierdzany jest wyłącznie alarm typu
Discrete powiązany z daną zmienną. Ustawienie tego pola na wartość inną
niż 1 nie ma żadnego znaczenia, a wynik takiej operacji jest nieokreślony.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1
Przykład(y)
Podane poniżej wyrażenie powoduje potwierdzenie alarmu typu Discrete
związanego ze zmienną o nazwie Tag1.
Tag1.AckDsc=1;
Wyrażenie podane w następnym przykładzie spowoduje potwierdzenie
wszystkich niepotwierdzonych alarmów typu Discrete należących do grupy
alarmów o nazwie PumpStation.
PumpStation.AckDsc=1;
Patrz również
.Alarm, .AlarmDSC, .Ack, .UnAck, .AckDev, .AckDSC, .AckROC,
.AckValue, .AlarmAckModel
50
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AckROC
Pole to umożliwia sprawdzanie i/lub zmianę statusu potwierdzenia alarmów
lokalnych typu szybkość zmiany.
Kategoria
alarmy
Sposób użycia
Zmienna.AckROC=1
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub grupa alarmowa.
Uwagi
Przypisanie omawianemu polu zmiennej 1 powoduje potwierdzenie
wszystkich aktywnych alarmów Szybkości Zmiany, które są związane z daną
zmienną lub grupą. Jeśli podana zmienna jest Grupą alarmową, wszystkie nie
potwierdzone alarmy szybkości zmian związane ze zmiennymi wchodzącymi
w skład określonej grupy zostają potwierdzone. W przypadku gdy zmienna
jest innego typu niż grupa alarmowa, potwierdzane są wyłącznie alarmy
szybkości zmiany powiązane z daną zmienną. Ustawienie tego pola na
wartość inną niż 1 nie ma żadnego znaczenia, a wynik takiej operacji jest
nieokreślony.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1
Przykład(y)
Podane poniżej wyrażenie powoduje potwierdzenie alarmu Szybkości
Zmiany związanego ze zmienną o nazwie Tag1.
Tag1.AckROC=1;
Wyrażenie podane w następnym przykładzie spowoduje potwierdzenie
wszystkich niepotwierdzonych alarmów Szybkości Zmiany należących do
grupy alarmów o nazwie PumpStation.
PumpStation.AckROC=1;
Patrz również
.Alarm, .AlarmROC, .Ack, .UnAck, .AckDev, .AckDSC, .AckValue,
.AlarmAckModel
Pola zmiennych
51
Opis funkcji, pól i zmiennych systemowych
.AckValue
Pole to umożliwia sprawdzanie i/lub zmianę statusu zatwierdzenia lokalnego
(-ych) alarmów wartości.
Kategoria
alarmy
Sposób użycia
Zmienna.AckValue=1
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub grupa alarmowa.
Uwagi
Przypisanie omawianemu polu zmiennej wartości 1 powoduje zatwierdzenie
wszystkich aktywnych alarmów typu przekroczenia wartości , które są
związane z daną zmienną lub grupą. Jeśli podana zmienna jest Grupą
alarmową, wszystkie nie potwierdzone alarmy typu Przekroczenia Wartości
związane ze zmiennymi wchodzącymi w skład określonej grupy zostają
potwierdzone. W przypadku gdy zmienna jest innego typu, potwierdzane są
wyłącznie alarmy typu przekroczenia wartości powiązane z daną zmienną.
Ustawienie tego pola na wartość inną niż 1 nie ma żadnego znaczenia, a
wynik takiej operacji jest nieokreślony.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1
Przykład(y)
Podane poniżej wyrażenie powoduje zatwierdzenie alarmu typu Zmiany
Wartości związanego ze zmienną o nazwie Tag1.
Tag1.AckValue=1;
Wyrażenie podane w następnym przykładzie spowoduje potwierdzenie
wszystkich niepotwierdzonych alarmów typu Przekroczenia Wartości
należących do grupy alarmów o nazwie PumpStation.
PumpStation.AckValue=1;
Do potwierdzania alarmów typu Przekroczenia Wartości można skorzystać z
zmiennej pośredniej (używając do tego celu zmiennej typu GroupVar).
Przykładowo, można wprowadzić następujące wyrażenie:
StationAlarms.Name = "PumpStation";
Zdefiniowana została zmienna StationAlarms typu grupa alarmowa, a
następnie przypisano do niej zmienną PumpStation. Tak więc podane
poniżej wyrażenie jest bardzo podobne do zamieszczonych w przykładach
powyżej, za wyjątkiem faktu, że jest ono wykorzystywane do potwierdzania
wszystkich nie potwierdzonych alarmów typu Przekroczenia Wartości w
grupie alarmów PumpStation, która powiązana jest aktualnie ze zmienną
typu grupa alarmowa o nazwie StationAlarms.
StationAlarms.AckValue=1
Patrz również
.Alarm, .AlarmValue .Ack, .UnAck, .AckDev, .AckDSC, .AckROC,
.AlarmAckModel
52
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.Alarm
Pole to przyjmuje wartość 1, gdy zmienna lub grupa alarmowa, z którą jest
ono skojarzone znajduje się w stanie alarmowym.
Kategoria
alarmy
Sposób użycia
Zmienna.Alarm
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
zmienna typu Indirect Analog lub grupa alarmowa.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0,a w przypadku wystąpienia alarmu dla zmiennej zostaje zmieniona przez
system na 1. Pole to ma wartość równą 1 do czasu, gdy zniknie przyczyna
alarmu. Jeśli dana zmienna jest nazwą grupy alarmowej, polu .Alarm zostaje
przypisana wartość 1 zawsze, gdy którakolwiek ze zmiennych należących do
tej grupy znajdzie się w stanie alarmowym. Dostępne jest również pole
.Normal, o wartości przeciwnej do wartości pola .Alarm.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 lub 1
Przykład(y)
Zamieszczone poniżej wyrażenie sprawdza, czy zmienna Tag1 jest w stanie
alarmowym.
IF (Tag1.Alarm == 1) THEN
Wyrażenia zawarte w poniższej instrukcji IF-THEN będą wykonywane,
jeżeli w grupie alarmów PumpStation występują aktywne alarmy.
IF (PumpStation.Alarm == 1) THEN
MyAlarmMessage="The pumping station currently has an
ALARM!";
ENDIF;
To pole nie jest związane z polami .Ack i .UnAck Z tego powodu, nawet
jeżeli aktywny alarm zostanie potwierdzony, wartość tego pola pozostaje
równa 1.
Patrz również
.Ack, .Normal, Ack()
Pola zmiennych
53
Opis funkcji, pól i zmiennych systemowych
.AlarmAccess
Pole to zwraca nazwę dostępu zmiennej związanej z wybranym alarmem.
Alarm musi być wybrany przez kliknięcie na bieżącym wyświetlanym
Obiekcie Alarmu Rozproszonego.
Kategoria
alarmy
Sposób użycia
GetPropertyM("NazwaObiektu.AlarmAccess",Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa Obiektu Alarmu Rozproszonego
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
Wyrażenie zawarte poniżej zwraca nazwę dostępu zmiennej dla wybranego
alarmu.
GetPropertyM("AlmObj_1.AlarmAccess",almAccess);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almAccess jest
zmienną typu Memory Message zawierającą nazwę dostępu zmiennej
powiązanej z wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola almAccess, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole almAccess będzie zawierało nazwę dostępu zmiennej powiązanej z
wybranym alarmem.
Patrz również
GetPropertyM(), .AlarmClass, .AlarmComment, .AlarmDate, .AlarmLimit,
.AlarmName, .AlarmOprName, .AlarmOprNode, .AlarmPri, .AlarmProv,
.AlarmState, .AlarmTime, .AlarmType,
54
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmAckModel
Monitorowanie modelu potwierdzenia związanego ze zmienną:
0 = warunkowy (model domyślny)
1 = zorientowany zdarzeniowo
2 = rozszerzony
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmAckModel
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
zmienna typu Indirect Analog lub grupa alarmowa.
Uwagi
Wartością domyślną tego pola jest 0 (warunkowy model zatwierdzenia)
Typ danych
Analog (tylko do odczytu)
Zakres wartości
0, 1, lub 2.
Przykład(y)
Wyrażenia zawarte w poniższej instrukcji If-THEN będą wykonane jeśli
PumpStation ma zdefiniowany zdarzeniowy model potwierdzeń.
IF (PumpStation.AlarmAckModel == 1) THEN
MyAlarmMessage="PumpStation is an Event alarm";
ENDIF;
Patrz również
.Alarm, .Ack, .UnAck, .AckDev, .AckDSC, .AckROC
Pola zmiennych
55
Opis funkcji, pól i zmiennych systemowych
.AlarmClass
Pole to zawiera klasę zmiennej związanej z wybranym alarmem. Alarm musi
być wybrany przez kliknięcie na bieżącym wyświetlanym Obiekcie Alarmu
Rozproszonego.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmClass",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
Wyrażenie zawarte poniżej zwraca klasę alarmu powiązanej z wybranym
alarmem.
GetPropertyM("AlmObj_1.AlarmClass",almClass);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almClass jest
zmienną typu Memory Message zawierającą klasę zmiennej powiązanej z
wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola almClass, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole almClass będzie zawierało klasę alarmu powiązaną z wybranym
alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmComment, .AlarmDate,
.AlarmLimit, .AlarmName, .AlarmOprName, .AlarmOprNode, .AlarmPri,
.AlarmProv, .AlarmState, .AlarmTime, .AlarmType, .AlarmValue
56
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmComment
Łańcuch tekstowy który może być odczytywany/zapisywany, opisujący
czego dotyczy alarm, nie opisuje, czego dotyczy zmienna. Domyślnie jest on
pusty w nowej aplikacji.
Jednakże, kiedy stara wersja aplikacji jest konwertowana do wersji 7.11,
komentarz zmiennej jest kopiowany do pola .AlarmComment w celu
zachowania kompatybilności z poprzednimi wersjami.
Kategoria
alarmy
Pierwszy sposób
użycia.
Zmienna.AlarmComment
Parametr
Opis
Zmienna
Dowolna zmienna InTouch lub grupa alarmowa.
Typ danych
Message (odczyt/zapis)
Drugi sposób
użycia.
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmComment",Zm
ienna);
Parametr
Opis
Zmienna
Zmienna Memory Message.
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Typ danych
Message (tylko odczyt)
Przykład(y)
Pierwszy sposób użycia: Wyrażenie zawarte poniżej zwróci komentarz
alarmu dla zmiennej Tag1 i umieści go w mTag1, mTag1 jest zmienną typu
Memory Message.
mTag1=Tag1.AlarmComment;
Drugi sposób użycia: Wyrażenie zawarte poniżej zwróci komentarz alarmu
dla zmiennej wybranej w obiekcie alarmu rozproszonego AlmObj_1 i
umieści go w zmiennej typu Memory Message - almComment.
GetPropertyM(AlmObj_1.AlarmComment”, almComment);
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmDate, .AlarmLimit,
.AlarmName, .AlarmOprName, .AlarmOprNode, .AlarmPri, .AlarmProv,
.AlarmState, .AlarmTime, .AlarmType, .AlarmValue
Pola zmiennych
57
Opis funkcji, pól i zmiennych systemowych
.AlarmDate
Pole to zwraca datę zmiennej związanej z wybranym alarmem. Alarm musi
być wybrany przez kliknięcie na bieżącym wyświetlanym Obiekcie Alarmu
Rozproszonego.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmDate",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
GetPropertyM("AlmObj_1.AlarmDate",almDate);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almDate jest
zmienną typu Memory Message zawierającą datę zmiennej powiązanej z
wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola almDate, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole almDate będzie zawierało datę alarmu powiązaną z wybranym
alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmLimit, .AlarmName, .AlarmOprName, .AlarmOprNode, .AlarmPri,
.AlarmProv, .AlarmState, .AlarmTime, .AlarmType, .AlarmValue,
.AlarmValue
58
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmDev
Pole to przyjmuje wartość 1 w momencie wystąpienia stanu alarmu
odchyleniowego dla danej zmiennej lub grupy alarmowej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDev
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub grupa alarmowa.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0, a w przypadku wystąpienia alarmu odchyleniowego dla danej zmiennej
zostaje zmieniona przez system na 1. Pole to ma wartość równą 1 do czasu,
gdy zniknie przyczyna alarmu odchyleniowego. Jeśli dana zmienna jest
nazwą grupy alarmowej, polu .AlarmDev zostaje przypisana wartość 1
zawsze, gdy którakolwiek ze zmiennych należących do tej grupy znajdzie się
w alarmu odchyleniowego.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 lub 1
Przykład(y)
Zamieszczone poniżej wyrażenie sprawdza, czy zmienna Tag1 jest w stanie
alarmu odchyleniowego.
IF (Tag1.AlarmDev == 1) THEN
Wyrażenia zawarte w poniższej instrukcji IF-THEN będą wykonywane,
jeżeli w grupie alarmów PumpStation występują aktywne alarmy
odchyleniowe.
IF (PumpStation.AlarmDev == 1) THEN
MyAlarmMessage="The pumping station currently has an
ALARM!";
ENDIF;
To pole nie jest związane z polami .Ack lub .UnAck Z tego powodu, nawet
jeżeli aktywny alarm zostanie potwierdzony, wartość tego pola pozostaje
równa 1.
Patrz również
.Ack, .UnAck, .Alarm, .AckDev
Pola zmiennych
59
Opis funkcji, pól i zmiennych systemowych
.AlarmDevCount
.AlarmDevDeadband
Śledzi całkowitą liczbę aktywnych alarmów odchyleniowych w danej
zmiennej lub grupie alarmowej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDevCount
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer, Real lub grupa
alarmowa.
Uwagi
Zawiera ilość „małych” (Minor Deviation) i „dużych” (Major Deviation)
alarmów odchyleniowych. Zawiera ilość zarówno alarmów zatwierdzonych,
jak i nie zatwierdzonych. Dla zmiennych alarmów innych niż zmienne
Rozszerzonych Alarmów Bieżących ta ilość będzie zawsze równa 1.
Typ danych
Analog (tylko do odczytu)
Zakres wartości
0 lub dowolna, dodatnia liczba całkowita (Integer).
Przykład(y)
ADC=Tag1.AlarmDevCount
Gdzie Tag1 jest zmienną typu Analog, skonfigurowaną dla alarmów
odchyleniowych. ADC jest również zmienną typu Analog, zawierającą
całkowitą ilość aktywnych alarmów odchyleniowych (zarówno nie
potwierdzonych jak i potwierdzonych) istniejących w Tag1.
Patrz również
.AlarmDSCCount, .AlarmValueCount, .AlarmROCUnAckCount,
.AlarmTotalCount, .AlarmDSCUnAckCount, .AlarmValueUnAckCount,
.AlarmDevUnAckCount, .AlarmROCUnAckCount, .AlarmUnAckCount
Pole to służy do zmiany i monitorowania procentowej strefy nieczułości
(Dead band) dla "małego" (Minor Deviation) i "dużego" (Major Deviation)
alarmu odchyleniowego.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDevDeadband
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Zaznaczenie opcji Zachowaj param. na liście zmiennych powoduje
automatyczne zapisywanie zmian wartości tego pola za pomocą połączeń
animacyjnych lub skryptów programu WindowViewer.
Typ danych
Integer (odczyt/zapis)
Zakres wartości
Od 0 do 100 (Integer)
Przykład(y)
Zamieszczone poniżej wyrażenie powoduje zmianę procentowego pola
nieczułości na 25%.
Tagname.AlarmDevDeadband=25;
Patrz również
.AlarmValDeadband, .AlarmDev
60
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmDevUnAckCount
.AlarmDisabled
Pole to zawiera całkowitą liczbę nie potwierdzonych alarmów
odchyleniowych aktywnych w danej zmiennej lub grupie alarmowej. Zawiera
ilość „małych” (Minor Deviation) i „dużych” (Major Deviation) alarmów
odchyleniowych.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDevUnAckCount
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer, Real lub Grupa
Alarmowa.
Typ danych
Analog (tylko do odczytu)
Zakres wartości
0 lub dowolna, dodatnia liczba całkowita (Integer).
Przykład(y)
ADUC = Tag1.AlarmDevUnAckCount;
Gdzie Tag1 jest zmienną typu Analog, skonfigurowaną dla alarmów
odchyleniowych. ADUC jest również zmienną typu Analog, pobierającą
całkowitą ilość nie zatwierdzonych, aktywnych alarmów odchyleniowych
istniejących w Tag1.
Patrz również
.AlarmDevCount, .AlarmDSCCount, .AlarmValueCount,
.AlarmROCUnAckCount, .AlarmTotalCount, .AlarmDSCUnAckCount,
.AlarmValueUnAckCount, .AlarmROCUnAckCount, .AlarmUnAckCount
Pole to umożliwia wyłączenie i/lub włączenie alarmów dla zmiennej lub
grupy alarmowej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDisabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
zmienna Indirect Discrete, Indirect Analog, lub
Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmDisabled jest ustawiona na 1, wszystkie zdarzenia i
alarmy są ignorowane. Nie są one zapisywane w buforze, ani też na dysku.
Aby uniknąć utraty danych, należy zawsze, gdy to jest możliwe, włączać
sygnalizację zdarzeń i alarmów.Jeśli podana zmienna jest Grupą alarmową,
wszystkie alarmy związane ze zmiennymi wchodzącymi w skład określonej
grupy są wyłączone.Jest to pole identyczne z .AlarmEnabled, ale z
przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy włączone (ustawienie domyślne)
1 = Alarmy wyłączone
Przykład(y)
Zamieszczone poniżej wyrażenie włącza alarmy zmiennej Tag1.
Tag1.AlarmDisabled=0;
Patrz również
.AlarmEnabled
Pola zmiennych
61
Opis funkcji, pól i zmiennych systemowych
.AlarmDsc
Pole to przyjmuje wartość 1 w momencie wystąpienia alarmu dyskretnego
dla danej zmiennej lub grupy alarmowej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDsc
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Indirect, lub Grupa
Alarmowa.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0,a w przypadku wystąpienia alarmu typu Discrete dla danej zmiennej zostaje
zmieniona przez system na 1. Pole to ma wartość równą 1 do czasu, gdy
zniknie przyczyna alarmu typu Discrete. Jeśli dana zmienna jest nazwą grupy
alarmowej, polu .AlarmDSC zostaje przypisana wartość 1 zawsze, gdy
którakolwiek ze zmiennych należących do tej grupy znajdzie się w stanie
alarmu typu Discrete.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 lub 1
Przykład(y)
Zamieszczone poniżej wyrażenie sprawdza, czy zmienna Tag1 jest w stanie
alarmu typu Discrete.
IF (Tag1.AlarmDsc == 1) THEN
MyAlarmMessage="The pumping station currently has an
ALARM!";
ENDIF;
To pole nie jest związane z polami .Ack i .UnAck Z tego powodu, nawet
jeżeli aktywny alarm zostanie potwierdzony, wartość tego pola pozostaje
równa 1.
Patrz również
.Ack, .UnAck, .Alarm, .AlarmDsc, .AckDsc
62
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmDscCount
.AlarmDscDisabled
Pole to zawiera całkowitą liczbę aktywnych alarmów dyskretnych w danej
zmiennej lub grupie alarmowej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDscCount
Parametr
Opis
Zmienna
Dowolna zmienna Discrete lub Grupa Alarmowa.
Uwagi
Zawiera ilość zarówno alarmów zatwierdzonych, jak i nie zatwierdzonych.
Dla zmiennych alarmów innych niż zmienne Rozszerzonych Alarmów
Bieżących ta ilość będzie zawsze równa 1.
Typ danych
Analog (tylko do odczytu)
Zakres wartości
0 lub dowolna, dodatnia liczba całkowita (Integer).
Przykład(y)
ADC = Tag1.AlarmDSCCount
Gdzie Tag1 jest zmienną typu Analog, skonfigurowaną dla alarmów typu
Discrete. ADC jest również zmienną typu Analog, pobierającą całkowitą
ilość aktywnych alarmów typu Discrete (zarówno niepotwierdzonych jak i
potwierdzonych) istniejących w Tag1.
Patrz również
.AlarmDevCount, .AlarmDevUnAckCount, .AlarmValueCount,
.AlarmROCUnAckCount, .AlarmTotalCount, .AlarmDscUnAckCount,
.AlarmValueUnAckCount, .AlarmROCUnAckCount, .AlarmUnAckCount
Wskazuje, czy możliwe jest generowanie przez zmienną alarmów.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDscDisabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete lub Grupa
Alarmowa.
Uwagi
Gdy wartość pola .AlarmDscDisabled jest ustawiona na 1, wszystkie alarmy
warunkowe i zdarzenia typu Discrete są ignorowane. Nie są one zapisywane
w buforze, ani też na dysku. Aby uniknąć utraty danych, należy zawsze, gdy
to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmDscEnabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy włączone (ustawienie domyślne)
1 = Alarmy wyłączone
Przykład(y)
Zamieszczone poniżej wyrażenie włącza alarmy typu Discrete zmiennej
Tag1:
Tag1.AlarmDscDisabled=0;
Patrz również
.AlarmDscEnabled
Pola zmiennych
63
Opis funkcji, pól i zmiennych systemowych
.AlarmDscEnabled
Wskazuje, czy możliwe jest czy nie wygenerowanie przez zmienną alarmów
dyskretnych.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDscEnabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete lub Grupa
Alarmowa.
Uwagi
Gdy wartość pola .AlarmDscEnabled jest ustawiona na 0, wszystkie
zdarzenia i alarmy są ignorowane. Nie są one zapisywane w buforze, ani też
na dysku. Aby uniknąć utraty danych, należy zawsze, gdy to jest możliwe,
włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmDscDisabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy wyłączone
1 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Zamieszczone poniżej wyrażenie wyłącza alarmy typu Discrete zmiennej
Tag1:
Tag1.AlarmDscEnabled=0;
Patrz również
.AlarmDscDisabled
64
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmDscInhibitor
Zwraca nazwę zmiennej wstrzymującej przypisanej do alarmu dyskretnego,
(jeżeli istnieje) dla tej zmiennej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDscInhibitor
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete lub Grupa
Alarmowa.
Uwagi
Pole to jest konfigurowane w programie WindowMaker i nie może być
modyfikowane w czasie pracy.
Typ danych
Message (tylko odczyt)
Przykład(y)
Pole .AlarmDSCInhibitor jest używane przez ustawienie pola .Name
zmiennej pośredniej (typu Indirect) na wartość równą wartości pola
.AlarmDscInhibitor zmiennej alarmowej AlarmedTag, zmieniając tym
samym wartość zmiennej pośredniej. Zamieszczone poniżej wyrażenie
zwraca nazwę zmiennej wstrzymującej dla alarmu typu Discrete (przy
założeniu, że SomeIndirectTag jest zmienną typu Analog Indirect).
SomeIndirectTag.Name = AlarmedTag.AlarmDscInhibitor;
Stan wstrzymania alarmów zmiennej alarmowej może być kontrolowany
przez ustawienie wartości zmiennej pośredniej w następujący sposób:
SomeIndirectTag = 1;
Włącza wstrzymywanie
Alarmy dyskretne są wyłączone dla zmiennej alarmowanej
SomeIndirectTag = 0;
Wyłącza wstrzymywanie
Alarmy dyskretne mogą być generowane dla zmiennej alarmowanej
Pola zmiennych
65
Opis funkcji, pól i zmiennych systemowych
.AlarmDscUnAckCount
.AlarmEnabled
Śledzi całkowitą liczbę nie zatwierdzonych alarmów dyskretnych w danej
zmiennej lub grupie alarmowej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmDscUnAckCount
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete lub Grupa
Alarmowa.
Typ danych
Analog (tylko do odczytu)
Zakres wartości
Wszystkie liczby całkowite (Integer) i 0.
Przykład(y)
ADUC = Tag1.AlarmDscUnACKCount;
Gdzie Tag1 jest zmienną typu Analog, skonfigurowaną dla alarmów typu
Discrete. ADUC jest również zmienną typu Analog, pobierającą całkowitą
ilość nie zatwierdzonych alarmów dyskretnych istniejących w Tag1.
Patrz również
.AlarmDevCount, .AlarmDevUnAckCount, .AlarmDscCount,
.AlarmValueCount, .AlarmROCCount, .AlarmTotalCount,
.AlarmValueUnAckCount, .AlarmROCUnAckCount, .AlarmUnAckCount
Załącza i/lub wyłącza alarmy dla zmiennej lub grupy alarmowej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmEnabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
zmienna Indirect Discrete, Indirect Analog, lub
Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmEnabled jest ustawiona na 0, wszystkie zdarzenia i
alarmy są ignorowane. Nie są one zapisywane w buforze, ani też na dysku.
Aby uniknąć utraty danych, należy zawsze, gdy to jest możliwe, włączać
sygnalizację zdarzeń i alarmów.
Jeśli podana zmienna jest Grupą alarmową, wszystkie alarmy związane ze
zmiennymi wchodzącymi w skład określonej grupy są włączone.
Jest to pole identyczne z .AlarmDisabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy wyłączone
1 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Zamieszczone poniżej wyrażenie wyłącza alarmy zmiennej Tag1.
Tag1.AlarmEnabled=0;
Patrz również
.AlarmDisabled
66
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmGroup
Pole to zawiera aktualne zapytanie użyte do wyświetlenia obiektu
wyświetlania alarmów rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.GrupaAlarmowa",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu tekstowego (Message), w której
zapisywana jest wartość pola podczas wykonywania
funkcji.
Uwagi
Pole to przeznaczone jest tylko do odczytu i zawiera bieżące zapytanie
alarmowe wykorzystywane przez obiekt wyświetlania alarmu rozproszonego
o podanej nazwie. Zapytanie może być listą grup alarmowych lub listą
aplikacji, w których generowane są alarmy, i które uruchomione są na innych
komputerach.
Typ danych
Message (tylko odczyt)
Przykład(y)
Zamieszczone poniżej wyrażenie wpisuje do zmiennej CurrentQuery (typu
Message) nazwę aktualnego zapytania alarmowego używanego przez obiekt
alarmu rozproszonego "AlmObj_1”.
GetPropertyM("AlmObj_1.AlarmGroup",CurrentQuery);
Patrz również
GetPropertyM(), .AlarmGroupSel, .AlarmName
Pola zmiennych
67
Opis funkcji, pól i zmiennych systemowych
.AlarmGroupSel
.AlarmHiDisabled
Pole to zwraca nazwę grupy alarmu zmiennej związanej z wybranym
alarmem. Alarm musi być wybrany przez kliknięcie na bieżącym
wyświetlanym Obiekcie Alarmu Rozproszonego.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmGroupSel",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
GetPropertyM("AlmObj_1.AlarmGroupSel",almGroup);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almGroup jest
zmienną typu Memory Message zawierającą nazwę grupy alarmu zmiennej
powiązanej z wybranym alarmem. Przy wykorzystaniu w przycisku akcji, po
naciśnięciu przycisku przez operatora, instrukcja ta wpisze wartość do pola
almGroup, co można wykorzystać do wyświetlania komunikatów lub w
późniejszych operacjach. Pole almGroup będzie zawierało nazwę grupy
alarmu powiązanej z wybranym alarmem.
Patrz również
GetPropertyM(), .AlarmGroup, .AlarmName
Pole to umożliwia wyłączenie i/lub włączenie zdarzeń i alarmów z
przypisanym warunkiem High.
Kategoria
alarmy
Sposób użycia
Tagname
.
AlarmHiDisabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmHiDisabled jest ustawiona na 1, wszystkie
zdarzenia i alarmy z przypisanym warunkiem High są ignorowane. Nie są one
zapisywane w buforze, ani też na dysku. Aby uniknąć utraty danych, należy
zawsze, gdy to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmHiEnabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1 = Alarmy wyłączone
0 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Aby włączyć alarm z przypisanym warunkiem Hi:
Tag1.AlarmHiDisabled=0;
Patrz również
.AlarmHiEnabled, .AlarmDisabled
68
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmHiEnabled
.AlarmHiHiDisabled
Pole to umożliwia włączenie i/lub wyłączenie zdarzeń i alarmów z
przypisanym warunkiem High.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmHiEnabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmHiEnabled jest ustawiona na 0, wszystkie
zdarzenia i alarmy z przypisanym warunkiem High są ignorowane. Nie są one
zapisywane w buforze, ani też na dysku. Aby uniknąć utraty danych, należy
zawsze, gdy to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmHiDisabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy wyłączone
1 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Aby wyłączyć alarm z przypisanym warunkiem Hi:
Tag1.AlarmHiEnabled=0;
Patrz również
.AlarmHiDisabled, .AlarmEnabled
Pole to umożliwia wyłączenie i/lub włączenie zdarzeń i alarmów z
przypisanym warunkiem HiHi.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmHiHiDisabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmHiHiDisabled jest ustawiona na 1, wszystkie
zdarzenia i alarmy z przypisanym warunkiem HiHi są ignorowane. Nie są one
zapisywane w buforze, ani też na dysku. Aby uniknąć utraty danych, należy
zawsze, gdy to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmHiHiEnabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1 = Alarmy wyłączone
0 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Aby włączyć alarm z przypisanym warunkiem HiHi:
Tag1.AlarmHiHiDisabled=0;
Patrz również
.AlarmHiHiEnabled, .AlarmDisabled
Pola zmiennych
69
Opis funkcji, pól i zmiennych systemowych
.AlarmHiHiEnabled
Pole to umożliwia włączenie i/lub wyłączenie zdarzeń i alarmów z
przypisanym warunkiem HiHi.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmHiHiEnabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmHiHiEnabled jest ustawiona na 0, wszystkie
zdarzenia i alarmy z przypisanym warunkiem HiHi są ignorowane. Nie są
one zapisywane w buforze, ani też na dysku. Aby uniknąć utraty danych,
należy zawsze, gdy to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmHiHiDisabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy wyłączone
1 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Aby wyłączyć alarm z przypisanym warunkiem HiHi:
Tag1.AlarmHiHiEnabled=0;
Patrz również
.AlarmHiHiDisabled, .AlarmEnabled
70
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmHiHiInhibitor
Pole to zwraca łańcuch tekstowy zawierający nazwę zmiennej wstrzymującej
alarmy powiązanej ze stanem alarmu HiHi
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmHiHiInhibitor
Parametr
Opis
Zmienna
Analogowe zmienne z alarmami lub grupa
alarmowa.
Uwagi
Pole to jest konfigurowane w programie WindowMaker. Nie może być
modyfikowane w czasie pracy.
Typ danych
Message (tylko odczyt)
Przykład(y)
Pole .AlarmHiHiInhibitor jest używane przez ustawienie pola .Name
zmiennej pośredniej (typu Indirect) na wartość równą wartości pola
.AlarmHiHiInhibitor zmiennej alarmowej AlarmedTag, zmieniając tym
samym wartość zmiennej pośredniej. Zamieszczone poniżej wyrażenie
zwraca nazwę zmiennej wstrzymującej dla limitu alarmu HiHi (przy
założeniu, że SomeIndirectTag jest zmienną typu Analog Indirect)
SomeIndirectTag.Name = AlarmedTag.AlarmHiHiInhibitor;
Stan wstrzymania alarmów zmiennej alarmowej może być kontrolowany
przez ustawienie wartości zmiennej pośredniej w następujący sposób:
SomeIndirectTag = 1;
Włącza wstrzymywanie
Alarmy HiHi są wyłączone dla zmiennej alarmowanej
SomeIndirectTag = 0;
Wyłącza wstrzymywanie
Alarmy HiHi mogą być generowane dla zmiennej alarmowanej
Patrz również
.AlarmHiInhibitor, .AlarmLoInhibitor, .AlarmLoLoInhibitor
Pola zmiennych
71
Opis funkcji, pól i zmiennych systemowych
.AlarmHiInhibitor
Zwraca zmienną wstrzymującą alarm powiązany z warunkiem High.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmHiInhibitor
Parametr
Opis
Zmienna
Analogowe zmienne z alarmami lub grupa
alarmowa.
Uwagi
Pole to jest konfigurowane w programie WindowMaker. Nie może być
modyfikowane w czasie pracy.
Typ danych
Message (tylko odczyt)
Przykład(y)
Pole .AlarmHiInhibitor jest używane przez ustawienie pola .Name
zmiennej pośredniej (typu Indirect) na wartość równą wartości pola
.AlarmHiInhibitor zmiennej alarmowej AlarmedTag, zmieniając tym
samym wartość zmiennej pośredniej. Zamieszczone poniżej wyrażenie
zwraca nazwę zmiennej wstrzymującej dla limitu alarmu High (przy
założeniu, że SomeIndirectTag jest zmienną typu Analog Indirect)
SomeIndirectTag.Name = AlarmedTag.AlarmHiInhibitor;
Stan wstrzymania alarmów zmiennej alarmowej może być kontrolowany
przez ustawienie wartości zmiennej pośredniej w następujący sposób:
SomeIndirectTag = 1;
Włącza wstrzymywanie
Alarmy typu Hi są wyłączone dla zmiennej alarmowanej
SomeIndirectTag = 0;
Wyłącza wstrzymywanie
Alarmy typu Hi mogą być generowane dla zmiennej alarmowanej
Patrz również
.AlarmHiHiInhibitor, .AlarmLoInhibitor, .AlarmLoLoInhibitor
72
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmLimit
.AlarmLoDisabled
Zwraca limit dla zmiennej powiązanej z wybranym alarmem. Alarm musi
być wybrany przez kliknięcie na obiekcie alarmów rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.AlarmLimit",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna tekstowa (Message).
Typ danych
Message (tylko odczyt)
Przykład(y)
GetPropertyI("AlmObj_1.AlarmLimit", almLimit);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almLimit jest
zmienną typu Memory Message zawierającą limit alarmu zmiennej
powiązanej z wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wpisze wartość do pola almLimit, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole almLimit będzie zawierało limit alarmu powiązany z wybranym
alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmDate, .AlarmName, .AlarmOprName, .AlarmOprNode, .AlarmPri,
.AlarmProv, .AlarmState, .AlarmTime, .AlarmType, .AlarmValue
Pole to umożliwia wyłączenie i/lub włączenie zdarzeń i alarmów z
przypisanym warunkiem Lo.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmLoDisabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmLoDisabled jest ustawiona na 1, wszystkie
zdarzenia i alarmy z warunkiem Low są ignorowane. Nie są one zapisywane
w buforze, ani też na dysku. Aby uniknąć utraty danych, należy zawsze, gdy
to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmLoEnabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1 = Alarmy wyłączone
0 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Tag1.AlarmLoDisabled=0;
Patrz również
.AlarmDisabled, .AlarmEnabled, .AlarmLoEnabled
Pola zmiennych
73
Opis funkcji, pól i zmiennych systemowych
.AlarmLoEnabled
Pole to umożliwia włączenie i/lub wyłączenie zdarzeń i alarmów z
przypisanym warunkiem Lo.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmLoEnabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmLoEnabled jest ustawiona na 0, wszystkie
zdarzenia i alarmy z warunkiem Low są ignorowane. Nie są one zapisywane
w buforze, ani też na dysku. Aby uniknąć utraty danych, należy zawsze, gdy
to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmLoDisabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy wyłączone
1 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Tag1.AlarmLoEnabled=0;
Patrz również
.AlarmDisabled, .AlarmEnabled, .AlarmLoDisabled
74
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmLoInhibitor
Zwraca nazwę zmiennej wstrzymującej alarm powiązany z warunkiem Low
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmLoInhibitor
Parametr
Opis
Zmienna
Analogowe zmienne z alarmami lub grupa
alarmowa.
Uwagi
Pole to jest konfigurowane w programie WindowMaker. Nie może być
modyfikowane w czasie pracy.
Typ danych
Message (tylko odczyt)
Przykład(y)
Pole .AlarmLoInhibitor jest używane przez ustawienie pola .Name
zmiennej pośredniej (typu Indirect) na wartość równą wartości pola
.AlarmLoInhibitor zmiennej alarmowej AlarmedTag, zmieniając tym
samym wartość zmiennej pośredniej. Zamieszczone poniżej wyrażenie
zwraca nazwę zmiennej wstrzymującej dla limitu alarmu Low (przy
założeniu, że SomeIndirectTag jest zmienną typu Analog Indirect)
SomeIndirectTag.Name = AlarmedTag.AlarmLoInhibitor;
Stan wstrzymania alarmów zmiennej alarmowej może być kontrolowany
przez ustawienie wartości zmiennej pośredniej w następujący sposób:
SomeIndirectTag = 1;
Włącza wstrzymywanie
Alarmy typu Lo są wyłączone dla zmiennej alarmowanej
SomeIndirectTag = 0;
Wyłącza wstrzymywanie
Alarmy Lo mogą być generowane dla zmiennej alarmowanej
Patrz również
.AlarmHiInhibitor, .AlarmHiHiInhibitor, .AlarmLoLoInhibitor
Pola zmiennych
75
Opis funkcji, pól i zmiennych systemowych
.AlarmLoLoDisabled
.AlarmLoLoEnabled
Pole to umożliwia wyłączenie i/lub włączenie zdarzeń i alarmów z
przypisanym warunkiem LoLo.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmLoLoDisabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmLoLoDisabled jest ustawiona na 1, wszystkie
zdarzenia i alarmy z warunkiem LoLo są ignorowane. Nie są one zapisywane
w buforze, ani też na dysku. Aby uniknąć utraty danych, należy zawsze, gdy
to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmLoLoEnabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1 = Alarmy wyłączone
0 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Tag1.AlarmLoLoDisabled=0;
Patrz również
.AlarmDisabled, .AlarmEnabled, .AlarmLoLoEnabled
Pole to umożliwia włączenie i/lub wyłączenie zdarzeń i alarmów z
przypisanym warunkiem LoLo.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmLoLoEnabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmLoLoEnabled jest ustawiona na 0, wszystkie
zdarzenia i alarmy z warunkiem LoLo są ignorowane. Nie są one zapisywane
w buforze, ani też na dysku. Aby uniknąć utraty danych, należy zawsze, gdy
to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmLoLoDisabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy wyłączone
1 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Tag1.AlarmLoLoEnabled=0;
Patrz również
.AlarmDisabled, .AlarmEnabled, .AlarmLoLoDisabled
76
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmLoLoInhibitor
Zwraca zmienną wstrzymującą alarm powiązany z warunkiem LoLo.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmLoLoInhibitor
Parametr
Opis
Zmienna
Analogowe zmienne z alarmami lub grupa
alarmowa.
Uwagi
Pole to jest konfigurowane w programie WindowMaker. Nie może być
modyfikowane w czasie pracy.
Typ danych
Message (tylko odczyt)
Przykład(y)
Pole .AlarmLoLoInhibitor jest używane przez ustawienie pola .Name
zmiennej pośredniej (typu Indirect) na wartość równą wartości pola
.AlarmLoLoInhibitor zmiennej alarmowej AlarmedTag, zmieniając tym
samym wartość zmiennej pośredniej. Zamieszczone poniżej wyrażenie
zwraca nazwę zmiennej wstrzymującej dla limitu alarmu LoLo (przy
założeniu, że SomeIndirectTag jest zmienną typu Analog Indirect)
SomeIndirectTag.Name = AlarmedTag.AlarmLoLoInhibitor;
Stan wstrzymania alarmów zmiennej alarmowej może być kontrolowany
przez ustawienie wartości zmiennej pośredniej w następujący sposób:
SomeIndirectTag = 1;
Włącza wstrzymywanie
Alarmy typu LoLo są wyłączone dla zmiennej alarmowanej
SomeIndirectTag = 0;
Wyłącza wstrzymywanie
Alarmy LoLo mogą być generowane dla zmiennej alarmowanej
Patrz również
.AlarmHiInhibitor, .AlarmHiHiInhibitor, .AlarmLoInhibitor
Pola zmiennych
77
Opis funkcji, pól i zmiennych systemowych
.AlarmMajDevDisabled
.AlarmMajDevEnabled
Wyłącza i/lub włącza zdarzenia i alarmy typu Odchyleniowy Duży (Major
Deviation).
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmMajDevDisabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmMajDevDisabled jest ustawiona na 1, wszystkie
zdarzenia i alarmy typu Odchyleniowy Duży są ignorowane. Nie są one
zapisywane w buforze, ani też na dysku. Aby uniknąć utraty danych, należy
zawsze, gdy to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmMajDevEnabled, ale z przeciwną
polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1 = Alarmy wyłączone
0 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Tag1.AlarmMajDevDisabled=0;
Patrz również
.AlarmDisabled, .AlarmEnabled, .AlarmMajDevEnabled
Załącza i/lub wyłącza zdarzenia i alarmy typu Odchyleniowy Duży (Major
Deviation).
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmMajDevEnabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub Grupa Alarmowa.
Uwagi
Gdy wartość pola .AlarmMajDevEnabled jest ustawiona na 0, wszystkie
zdarzenia i alarmy typu Odchyleniowy Duży są ignorowane. Nie są one
zapisywane w buforze, ani też na dysku. Aby uniknąć utraty danych, należy
zawsze, gdy to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmMajDevDisabled, ale z przeciwną
polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy wyłączone
1 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Tag1.AlarmMajDevEnabled=0;
Patrz również
.AlarmDisabled, .AlarmEnabled, .AlarmMajDevDisabled
78
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmMajDevInhibitor
Zwraca nazwę zmiennej wstrzymującej alarm powiązany z warunkiem
Odchyleniowy Duży (Major Deviation).
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmMajDevInhibitor
Parametr
Opis
Zmienna
Analogowe zmienne z alarmami lub grupa
alarmowa.
Uwagi
Pole to jest konfigurowane w programie WindowMaker. Nie może być
modyfikowane w czasie pracy.
Typ danych
Message (tylko odczyt)
Przykład(y)
Pole .AlarmMajDevInhibitor jest używane przez ustawienie pola .Name
zmiennej pośredniej (typu Indirect) na wartość równą wartości pola
.AlarmMajDevInhibitor zmiennej alarmowej AlarmedTag, zmieniając tym
samym wartość zmiennej pośredniej. Zamieszczone poniżej wyrażenie
zwraca nazwę zmiennej wstrzymującej dla limitu alarmu typu Odchyleniowy
Duży (przy założeniu, że SomeIndirectTag jest zmienną typu Analog
Indirect)
SomeIndirectTag.Name = AlarmedTag.AlarmMajDevInhibitor;
Stan wstrzymania alarmów zmiennej alarmowej może być kontrolowany
przez ustawienie wartości zmiennej pośredniej w następujący sposób:
SomeIndirectTag = 1;
Włącza wstrzymywanie
Alarmy typu odchyleniowy duży są wyłączone dla zmiennej alarmowanej
SomeIndirectTag = 0;
Wyłącza wstrzymywanie
Alarmy typu odchyleniowy duży mogą być generowane dla zmiennej
alarmowanej
Patrz również
.AlarmMinDevInhibitor
Pola zmiennych
79
Opis funkcji, pól i zmiennych systemowych
.AlarmMinDevDisabled
.AlarmMinDevEnabled
Wyłącza i/lub włącza zdarzenia i alarmy typu odchyleniowy mały.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmMinDevDisabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub grupa alarmowa.
Uwagi
Gdy wartość pola .AlarmMinDevDisabled jest ustawiona na 1, wszystkie
zdarzenia i alarmy typu Odchyleniowy Mały są ignorowane. Nie są one
zapisywane w buforze, ani też na dysku. Aby uniknąć utraty danych, należy
zawsze, gdy to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmMinDevEnabled, ale z przeciwną
polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1 = Alarmy wyłączone
0 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Tag1.AlarmMinDevDisabled=0;
Patrz również
.AlarmDisabled, .AlarmEnabled, .AlarmMinDevEnabled
Załącza i/lub wyłącza zdarzenia i alarmy typu odchyleniowy mały.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmMinDevEnabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub grupa alarmowa.
Uwagi
Gdy wartość pola .AlarmMinDevEnabled jest ustawiona na 0, wszystkie
zdarzenia i alarmy typu Odchyleniowy Mały są ignorowane. Nie są one
zapisywane w buforze, ani też na dysku. Aby uniknąć utraty danych, należy
zawsze, gdy to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmMinDevDisabled, ale z przeciwną
polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy wyłączone
1 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Tag1.AlarmMinDevEnabled=0;
Patrz również
.AlarmDisabled, .AlarmEnabled, .AlarmMinDevDisabled
80
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmMinDevInhibitor
Zwraca nazwę zmiennej wstrzymującej alarm powiązany z warunkiem
Odchyleniowy Mały (Minor Deviation).
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmMinDevInhibitor
Parametr
Opis
Zmienna
Analogowe zmienne z alarmami lub grupa
alarmowa.
Uwagi
Pole to jest konfigurowane w programie WindowMaker. Nie może być
modyfikowane w czasie pracy.
Typ danych
Message (tylko odczyt)
Przykład(y)
Pole .AlarmMinDevInhibitor jest używane przez ustawienie pola .Name
zmiennej pośredniej (typu Indirect) na wartość równą wartości pola
.AlarmMinDevInhibitor zmiennej alarmowej AlarmedTag, zmieniając tym
samym wartość zmiennej pośredniej. Zamieszczone poniżej wyrażenie
zwraca nazwę zmiennej wstrzymującej dla limitu alarmu Odchyleniowy Mały
(przy założeniu, że SomeIndirectTag jest zmienną typu Analog Indirect).
SomeIndirectTag.Name = AlarmedTag.AlarmMinDevInhibitor;
Stan wstrzymania alarmów zmiennej alarmowej może być kontrolowany
przez ustawienie wartości zmiennej pośredniej w następujący sposób:
SomeIndirectTag = 1;
Włącza wstrzymywanie
Alarmy typu odchyleniowy mały są wyłączone dla zmiennej alarmowanej
SomeIndirectTag = 0;
Wyłącza wstrzymywanie
Alarmy typu odchyleniowy mały mogą być generowane dla zmiennej
alarmowanej
Patrz również
.AlarmMajDevInhibitor
Pola zmiennych
81
Opis funkcji, pól i zmiennych systemowych
.AlarmName
Zwraca nazwę alarmu dla zmiennej związanej z wybranym alarmem. Alarm
musi być wybrany przez kliknięcie na obiekcie alarmów rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmName",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
GetPropertyM("AlmObj_1.AlarmName", almName);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almName jest
zmienną typu Memory Message zawierającą nazwę limitu alarmu zmiennej
powiązanej z wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola almName, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole almName będzie zawierało nazwę alarmu powiązaną z wybranym
alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmDate, .AlarmLimit, .AlarmOprName, .AlarmOprNode, .AlarmPri,
.AlarmProv, .AlarmState, .AlarmTime, .AlarmType, .AlarmValue
82
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmOprName
Zwraca nazwę operatora dla zmiennej powiązanej z wybranym alarmem.
Alarm musi być wybrany przez kliknięcie na obiekcie alarmów
rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmOprName",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
GetPropertyM("AlmObj_1.AlarmOprName", almOprName);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almOprName jest
zmienną typu Memory Message zawierającą nazwę operatora dla zmiennej
powiązanej z wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola almOprName, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole almOprName będzie zawierało nazwę operatora alarmu powiązaną z
wybranym alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmDate, .AlarmLimit, .AlarmName, .AlarmOprNode, .AlarmPri,
.AlarmProv, .AlarmState, .AlarmTime, .AlarmType, .AlarmValue
Pola zmiennych
83
Opis funkcji, pól i zmiennych systemowych
.AlarmOprNode
Zwraca nazwę operatora stacji dla zmiennej powiązanej z wybranym
alarmem. Alarm musi być wybrany przez kliknięcie na obiekcie alarmów
rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmOprNode",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
GetPropertyM("AlmObj_1.AlarmOprNode", almOprNode);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almOprNode jest
zmienną typu Memory Message zawierającą nazwę operatora stacji dla
zmiennej powiązanej z wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola almOprNode, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole almOprNode będzie zawierało nazwę komputera operatora powiązaną z
wybranym alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmDate, .AlarmLimit, .AlarmName, .AlarmOprName, .AlarmPri,
.AlarmProv, .AlarmState, .AlarmTime, .AlarmType, .AlarmValue
84
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmPri
Zwraca wartość priorytetu (1-999) zmiennej związanej z wybranym alarmem.
Alarm musi być wybrany przez kliknięcie na obiekcie alarmów
rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmPri",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Analog
Typ danych
Memory Message (tylko do odczytu)
Zakres wartości
Integer (1-999) (tylko do odczytu)
Przykład(y)
GetPropertyI("AlmObj_1.AlarmPri", almPri);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almPri jest
zmienną typu Integer zawierającą poziom priorytetu dla zmiennej powiązanej
z wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola almPri, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole almPri będzie zawierało poziom priorytetu powiązanego z wybranym
alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmDate, .AlarmLimit, .AlarmName, .AlarmOprName, .AlarmOprNode,
.AlarmProv, .AlarmState, .AlarmTime, .AlarmType, .AlarmValue
Pola zmiennych
85
Opis funkcji, pól i zmiennych systemowych
.AlarmProv
Zwraca nazwę dostawcy dla zmiennej związanej z wybranym alarmem.
Alarm musi być wybrany przez kliknięcie na obiekcie alarmów
rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmProv",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
GetPropertyM("AlmObj_1.AlarmProv", almProv);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almProv jest
zmienną typu Memory Message zawierającą nazwę dostawcy dla zmiennej
powiązanej z wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola .almProv, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole .almProv będzie zawierało dostawcę alarmu powiązanego z wybranym
alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmDate, .AlarmLimit, .AlarmName, .AlarmOprName, .AlarmOprNode,
.AlarmPri, .AlarmState, .AlarmTime, .AlarmType, .AlarmValue
86
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmROC
Pole to przyjmuje wartość 1 w momencie wystąpienia stanu alarmu typu
szybkości zmiany dla danej zmiennej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmROC
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub grupa alarmowa.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0,a w przypadku wystąpienia alarmu typu szybkości zmiany dla danej
zmiennej zostaje zmieniona przez system na 1. Pole to ma wartość równą 1 do
czasu, gdy zniknie przyczyna alarmu typu szybkości zmiany. Jeśli dana
zmienna jest nazwą grupy alarmowej, polu .Alarm zostaje przypisana wartość
1 zawsze, gdy którakolwiek ze zmiennych należących do tej grupy znajdzie
się w alarmu typu szybkości zmiany.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 lub 1
Przykład(y)
Zamieszczone poniżej wyrażenie sprawdza, czy zmienna Tag1 jest w stanie
alarmu typu szybkości zmiany.
IF (Tag1.AlarmROC == 1) THEN
Wyrażenia zawarte w poniższej instrukcji IF-THEN będą wykonywane, jeżeli
w grupie alarmów PumpStation występują aktywne alarmy typu szybkości
zmiany.
IF (PumpStation.AlarmROC == 1) THEN
MyAlarmMessage="The pumping station currently has an
ALARM!";
ENDIF;
To pole nie jest związane z polami .Ack i .UnAck Z tego powodu, nawet
jeżeli aktywny alarm typu szybkości zmiany zostanie zatwierdzony, wartość
tego pola pozostaje równa 1.
Patrz również
.Ack, .AckROC, .Alarm, .AlarmROCEnabled, .AlarmROCDisabled
Pola zmiennych
87
Opis funkcji, pól i zmiennych systemowych
.AlarmROCCount
.AlarmROCDisabled
Śledzi całkowitą liczbę aktywnych alarmów typu szybkości zmiany w danej
zmiennej lub grupie alarmowej. Zawiera ilość zarówno alarmów
zatwierdzonych, jak i nie zatwierdzonych. Dla zmiennych alarmów innych
niż zmienne Rozszerzonych Alarmów Bieżących ta ilość będzie zawsze
równa 1. Jest to pole przeznaczone tylko do odczytu.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmROCCount
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer, Real lub Grupa
Alarmowa.
Uwagi
Typ danych
Integer (tylko odczyt)
Zakres wartości
0 lub dowolna, dodatnia liczba całkowita (Integer).
Przykład(y)
ARC = Tag1.AlarmROCCount
Gdzie Tag1 jest zmienną typu Analog, skonfigurowaną dla alarmów typu
szybkości zmiany. ARC jest również zmienną typu Analog, pobierającą
całkowitą ilość aktywnych alarmów typu szybkość zmiany (zarówno
niepotwierdzonych jak i potwierdzonych) istniejących dla zmiennej Tag1.
Patrz również
.AlarmDevCount, .AlarmDevUnAckCount, .AlarmDscCount,
.AlarmDscUnAckCount, .AlarmValueCount, .AlarmTotalCount,
.AlarmValueUnAckCount, .AlarmROCUnAckCount, .AlarmUnAckCount
Wyłącza i/lub włącza zdarzenia i alarmy typu szybkości zmiany.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmROCDisabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub grupa alarmowa.
Uwagi
Gdy wartość pola .AlarmROCDisabled jest ustawiona na 1, wszystkie
zdarzenia i alarmy typu Szybkości Zmiany są ignorowane. Nie są one
zapisywane w buforze, ani też na dysku. Aby uniknąć utraty danych, należy
zawsze, gdy to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmROCEnabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
1 = Alarmy wyłączone
0 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Tag1.AlarmROCDisabled=0;
Patrz również
.AlarmDisabled, .AlarmEnabled, .AlarmROCEnabled
88
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmROCEnabled
Załącza i/lub wyłącza zdarzenia i alarmy typu szybkości zmiany.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmROCEnabled
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, zmienna
Indirect Analog lub grupa alarmowa.
Uwagi
Gdy wartość pola .AlarmROCEnabled jest ustawiona na 0, wszystkie
zdarzenia i alarmy typu Szybkości Zmiany są ignorowane. Nie są one
zapisywane w buforze, ani też na dysku. Aby uniknąć utraty danych, należy
zawsze, gdy to jest możliwe, włączać sygnalizację zdarzeń i alarmów.
Jest to pole identyczne z .AlarmROCDisabled, ale z przeciwną polaryzacją.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Alarmy wyłączone
1 = Alarmy włączone (ustawienie domyślne)
Przykład(y)
Tag1.AlarmROCEnabled=0;
Patrz również
.AlarmDisabled, .AlarmEnabled, .AlarmROCDisabled
Pola zmiennych
89
Opis funkcji, pól i zmiennych systemowych
.AlarmROCInhibitor
Zwraca nazwę zmiennej wstrzymywania alarmu powiązanej z alarmem typu
Szybkości Zmiany (Rate-of-Change).
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmROCInhibitor
Parametr
Opis
Zmienna
Analogowe zmienne z alarmami lub grupa
alarmowa.
Uwagi
Pole to jest konfigurowane w programie WindowMaker. Nie może być
modyfikowane w czasie pracy.
Typ danych
Message (tylko odczyt)
Przykład(y)
Pole .AlarmROCInhibitor jest używane przez ustawienie pola .Name
zmiennej pośredniej (typu Indirect) na wartość równą wartości pola
.AlarmROCInhibitor zmiennej alarmowej AlarmedTag, zmieniając tym
samym wartość zmiennej pośredniej. Zamieszczone poniżej wyrażenie
zwraca nazwę zmiennej wstrzymującej dla limitu alarmu Szybkości Zmiany
(przy założeniu, że SomeIndirectTag jest zmienną typu Analog Indirect)
SomeIndirectTag.Name = AlarmedTag.AlarmROCInhibitor;
Stan wstrzymania alarmów zmiennej alarmowej może być kontrolowany
przez ustawienie wartości zmiennej pośredniej w następujący sposób:
SomeIndirectTag = 1;
Włącza wstrzymywanie
Alarmy szybkości zmiany są wyłączone dla zmiennej alarmowanej
SomeIndirectTag = 0;
Wyłącza wstrzymywanie
Alarmy szybkości zmiany mogą być generowane dla zmiennej alarmowanej
90
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmROCUnAckCount
.AlarmState
Śledzi całkowitą liczbę nie zatwierdzonych alarmów typu prędkość zmiany w
danej zmiennej lub grupie alarmowej.
Kategoria
Alarmy
Sposób użycia
Zmienna.AlarmROCUnAckCount
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer, Real lub Grupa
Alarmowa.
Typ danych
Integer (tylko odczyt)
Zakres wartości
0 lub dowolna, dodatnia liczba całkowita (Integer).
Przykład(y)
ARUC = Tag1.AlarmROCUnACKCount;
Gdzie Tag1 jest zmienną typu Analog, skonfigurowaną dla alarmów typu
prędkość zmiany. ARUC jest również zmienną typu Analog, pobierającą
całkowitą ilość nie zatwierdzonych alarmów typu prędkości zmiany
istniejących w Tag1.
Patrz również
.AlarmDevCount, .AlarmDevUnAckCount, .AlarmDscCount,
.AlarmDscUnAckCount, .AlarmValueCount, .AlarmTotalCount,
.AlarmValueUnAckCount, .AlarmROCCount, .AlarmUnAckCount
Zwraca stan zmiennej powiązanej z wybranym alarmem. Alarm musi być
wybrany przez kliknięcie na obiekcie alarmów rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmState",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
GetPropertyM("AlmObj_1.AlarmState", almState);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almState jest
zmienną typu Memory Message zawierającą stan alarmu zmiennej
powiązanej z wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola almState, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole .almState będzie zawierało stan alarmu powiązany z wybranym
alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmDate, .AlarmLimit, .AlarmName, .AlarmOprName, .AlarmOprNode,
.AlarmPri, .AlarmProv, .AlarmTime, .AlarmType, .AlarmValue
Pola zmiennych
91
Opis funkcji, pól i zmiennych systemowych
.AlarmTime
.AlarmTotalCount
Zwraca czas dla zmiennej powiązanej z wybranym alarmem. Alarm musi być
wybrany przez kliknięcie na obiekcie alarmów rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmTime",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
GetPropertyM("AlmObj_1.AlarmTime", almTime);
Gdzie AlmObj_1 jest nazwą obiektu alarmowego, almTime jest zmienną typu
Memory Message zawierającą czas zmiennej powiązanej z wybranym
alarmem. Przy wykorzystaniu w przycisku akcji, po naciśnięciu przez
operatora, instrukcja ta wprowadzi wartość do pola .almTime, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole .almTime będzie zawierało czas powiązany z wybranym alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmDate, .AlarmLimit, .AlarmName, .AlarmOprName, .AlarmOprNode,
.AlarmPri, .AlarmProv, .AlarmState, .AlarmType, .AlarmValue
Śledzi całkowitą liczbę aktywnych alarmów w danej zmiennej lub grupie
alarmowej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmTotalCount
Parametr
Opis
Zmienna
Wszystkie typy zmiennych.
Uwagi
Zawiera ilość alarmów typu dyskretnego (Discrete), prędkości zmiany (Rate
of Change), odchyleniowych (Deviation) i wartości (Value). Zawiera ilość
zarówno alarmów zatwierdzonych, jak i nie zatwierdzonych.
Typ danych
Integer (tylko odczyt)
Zakres wartości
0 lub dowolna, dodatnia liczba całkowita (Integer).
Przykład(y)
ATC = Tag1.AlarmTotalCount;
Gdzie Tag1 jest zmienną typu Analog, skonfigurowaną dla alarmów. ATC
jest również zmienną typu Analog, pobierającą całkowitą ilość aktywnych
alarmów (zarówno nie zatwierdzonych jak i zatwierdzonych) istniejących w
Tag1.
Patrz również
.AlarmDevCount, .AlarmDevUnAckCount, .AlarmDSCCount,
.AlarmDSCUnAckCount, .AlarmValueCount, .AlarmUnAckCount,
.AlarmValueUnAckCount, .AlarmROCCount, .AlarmROCUnACkCount
92
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmType
.AlarmUnAckCount
Zwraca typ zmiennej związanej z wybranym alarmem. Alarm musi być
wybrany przez kliknięcie na obiekcie alarmów rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmType",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna typu Memory Message.
Typ danych
Memory Message (tylko do odczytu)
Przykład(y)
GetPropertyM("AlmObj_1.AlarmType", almType);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almType jest
zmienną typu Memory Message zawierającą typ zmiennej powiązanej z
wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola almType, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole almType będzie zawierało typ alarmu powiązany z wybranym alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmDate, .AlarmLimit, .AlarmName, .AlarmOprName, .AlarmOprNode,
.AlarmPri, .AlarmProv, .AlarmState, .AlarmTime, .AlarmValue
Śledzi całkowitą liczbę nie zatwierdzonych alarmów w danej zmiennej lub
grupie alarmowej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmUnAckCount
Parametr
Opis
Zmienna
Wszystkie typy zmiennych.
Uwagi
Zawiera ilość alarmów typu dyskretnego (Discrete), prędkości zmiany (Rate
of Change), odchyleniowych (Deviation) i wartości (Value).
Typ danych
Integer (tylko odczyt)
Zakres wartości
0 lub dowolna, dodatnia liczba całkowita (Integer).
Przykład(y)
AUC = Tag1.AlarmUnAckCount;
Gdzie Tag1 jest zmienną Analog lub zmienną dyskretną, skonfigurowaną dla
alarmów. AUC jest również zmienną typu Analog, pobierającą całkowitą
ilość nie zatwierdzonych alarmów istniejących w Tag1.
Patrz również
.AlarmDevCount, .AlarmDevUnAckCount, .AlarmDscCount,
.AlarmDscUnAckCount, .AlarmValueCount, .AlarmTotalCount,
.AlarmValueUnAckCount, .AlarmROCCount, .AlarmROCUnACkCount
Pola zmiennych
93
Opis funkcji, pól i zmiennych systemowych
.AlarmUserDefNum1
Po ustawieniu przez użytkownika wartości tego pola, jest ono dołączane do
informacji zapisanych dla każdego alarmu przez Alarm DB Logger w bazie
danych. (.AlarmUserDefNum1 odpowiada polu User1 w bazie danych.)
Możliwe jest wykorzystanie kolumn definiowanych przez użytkownika
(„user – defined”) w instrukcji SELECT w celu wyboru poszczególnych
zbiorów alarmów do operacji w bazie danych. Przykładowo, jeśli polu
$System.AlarmUserDefNum1 zostanie przypisany numer szarży i jest ono
modyfikowane gdy szarża ulega zmianie, wybór umożliwia wykorzystanie
pola User1 w bazie danych do wyboru alarmów dla poszczególnych szarż.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmUserDefNum1
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
zmienna Indirect Discrete, Indirect Analog, lub
Grupa Alarmowa.
Uwagi
Te definiowane przez użytkownika pole umożliwia wykorzystanie szerokiego
zakresu zmiennych, a zwłaszcza zmiennych Discrete, Analog i Grup
Alarmowych (niezależnie od tego, czy mają czy nie zdefiniowane alarmy).
Można pozostawić te pola puste, ustawić wszystkie z nich lub ustawić tylko
niektóre z nich dla pojedynczej zmiennej, grupy, lub grupy nadrzędnej.
Typ danych
Analog (odczyt/zapis)
Zakres wartości
0.0 lub nie ustawione (domyślnie)
Przykład(y)
Wartość tego pola jest dołączona do alarmu, ale TYLKO w przypadku, jeśli
zmienna została ustawiona na przykład przez skrypt lub komendę POKE.
$System.AlarmUserDefNum1 = 4;
GroupA.AlarmUserDefNum1 = 27649;
Wszystkie przykłady podane powyżej korzystają ze stałych wartości.
Jednakże, możliwe jest użycie skryptów do skopiowania wartości innej
zmiennej do dowolnego z pól definiowanych przez użytkownika. Można
wykorzystać również PtAcc do ustawiania lub sprawdzania pól, lub
wykorzystać InTouch jako serwer I/O aby otrzymywać lub ustawiać wartości.
Kiedy zawiadomienie o alarmie jest przesyłane do Systemu Alarmowania
Rozproszonego, przeważają ustawienia najniższego poziomu. Oznacza to, że
jeżeli zmienna .AlarmUserDefNum1 ma przypisaną jakąś wartość, rekord
alarmu powinien być wyświetlany przy użyciu tego ustawienia. Jednakże,
jeżeli zmienna nie ma przypisanej wartości, program WindowViewer
sprawdzi, czy grupa zmiennych ma przypisaną wartość, sprawdzanie będzie
kontynuowane do momentu osiągnięcia grupy położonej najwyżej - $System.
Uwaga Hierarchiczne przeszukiwanie jest wykonywane niezależnie dla
każdego elementu. Dlatego też, jeśli zmienna posiada przypisanie dla
.AlarmUserDefNum2, ale nie posiada przypisania dla
.AlarmUserDefNum1, ale jej grupa nadrzędna posiada przypisanie dla
.AlarmUserDefNum1, zmienna odziedziczy ustawienie dla
.AlarmUserDefNum1 z jej grupy nadrzędnej.
Patrz również
.AlarmUserDefNum2, .AlarmUserDefStr
94
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmUserDefNum2
Po ustawieniu przez użytkownika wartości tego pola, jest ono dołączane do
informacji zapisanych dla każdego alarmu przez AlarmLogger w bazie
danych. (.AlarmUserDefNum2 odpowiada polu User2 w bazie danych.)
Możliwe jest wykorzystanie kolumn definiowanych przez użytkownika w
instrukcji SELECT w celu wyboru poszczególnych zbiorów alarmów do
operacji w bazie danych. Przykładowo, jeśli polu
$System.AlarmUserDefNum2 zostanie przypisana szarża i jest ono
modyfikowane gdy szarża ulega zmianie, wybór umożliwia wykorzystanie
pola User2 w bazie danych do wyboru alarmów dla poszczególnych szarż.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmUserDefNum2
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
zmienna Indirect Discrete, Indirect Analog, lub
Grupa Alarmowa.
Uwagi
Te definiowane przez użytkownika pole umożliwia wykorzystanie szerokiego
zakresu zmiennych, a zwłaszcza zmiennych Discrete, Analog i Grup
Alarmowych (niezależnie od tego, czy mają zdefiniowane alarmy). Można
pozostawić te pola puste, ustawić wszystkie z nich lub ustawić tylko niektóre
z nich dla pojedynczej zmiennej, grupy, lub grupy nadrzędnej.
Typ danych
Analog (odczyt/zapis)
Zakres wartości
0.0 lub nie ustawione (domyślnie)
Przykład(y)
Wartość tego pola jest dołączona do alarmu, ale TYLKO w przypadku, jeśli
zmienna została ustawiona na przykład przez skrypt lub komendę POKE.
$System.AlarmUserDefNum2 = 4;
GroupA.AlarmUserDefNum2 = 27649;
Wszystkie przykłady podane powyżej korzystają ze stałych wartości.
Jednakże, możliwe jest użycie skryptów QuickScript do skopiowania
wartości innej zmiennej do dowolnego z pól definiowanych przez
użytkownika. Można wykorzystać również PtAcc do ustawiania lub
sprawdzania pól, lub wykorzystać InTouch jako serwer I/O aby otrzymywać
lub ustawiać wartości. Kiedy zawiadomienie o alarmie jest przesyłane do
Systemu Alarmowania Rozproszonego, przeważają ustawienia najniższego
poziomu. Oznacza to, że jeżeli zmienna .AlarmUserDefNum2 ma
przypisaną jakąś wartość, rekord alarmu powinien być wyświetlany przy
użyciu tego ustawienia. Jednakże, jeżeli zmienna nie ma przypisanej
wartości, program WindowViewer sprawdzi, czy grupa zmiennych ma
przypisaną wartość, sprawdzanie będzie kontynuowane do momentu
osiągnięcia grupy położonej najwyżej - $System.
Uwaga Hierarchiczne przeszukiwanie jest wykonywane niezależnie dla
każdego elementu. Dlatego też, jeśli zmienna posiada przypisanie dla
.AlarmUserDefNum1, i nie posiada przypisania dla .AlarmUserDefNum2,
ale jej grupa nadrzędna posiada przypisanie dla .AlarmUserDefNum2,
zmienna odziedziczy ustawienie dla .AlarmUserDefNum2 z jej grupy
nadrzędnej.
Patrz również
.AlarmUserDefNum1, .AlarmUserDefStr
Pola zmiennych
95
Opis funkcji, pól i zmiennych systemowych
.AlarmUserDefStr
Po ustawieniu przez użytkownika wartości tego pola, jest ono dołączane do
informacji zapisanych dla każdego alarmu przez Alarm DB Logger w bazie
danych. (.AlarmUserDefStr odpowiada polu User3 w bazie danych.)
Możliwe jest wykorzystanie kolumn definiowanych przez użytkownika w
instrukcji SELECT w celu wyboru poszczególnych zbiorów alarmów z bazy
danych. Przykładowo, jeśli polu $System.AlarmUserDefStr zostanie
przypisana nazwa wsadu i jest ono modyfikowane zawsze, gdy wsad ulega
zmianie, można wykorzystać pole User3 w bazie danych do wyboru alarmów
dla poszczególnych wsadów.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmUserDefStr
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
zmienna Indirect Discrete, Indirect Analog, lub
Grupa Alarmowa.
Uwagi
Te definiowane przez użytkownika pole umożliwia wykorzystanie szerokiego
zakresu zmiennych, a zwłaszcza zmiennych typu Discrete, Analog i Grup
Alarmowych (niezależnie od tego, czy posiadają czy nie zdefiniowane
alarmy) Można pozostawić te pola puste, ustawić wszystkie z nich lub
ustawić tylko niektóre z nich dla pojedynczej zmiennej, grupy, lub grupy
nadrzędnej.
Typ danych
Message (odczyt/zapis)
Zakres wartości
NULL lub dowolny prawidłowy łańcuch.
Przykład(y)
Wartość tego pola jest dołączona do alarmu, ale TYLKO w przypadku, jeśli
zmienna została ustawiona na przykład przez skrypt lub komendę POKE.
Tag04.AlarmUserDefStr = "Joe";
Powyższy przykład korzysta ze stałej wartości. Jednakże, możliwe jest użycie
skryptów QuickScript do skopiowania wartości innej zmiennej do dowolnego
z pól definiowanych przez użytkownika. Można wykorzystać również PtAcc
do ustawiania lub sprawdzania pól, lub wykorzystać InTouch jako serwer I/O
aby otrzymywać lub ustawiać wartości. Kiedy zawiadomienie o alarmie jest
przesyłane do Systemu Alarmowania Rozproszonego, przeważają ustawienia
najniższego poziomu. Oznacza to, że jeżeli zmienna .AlarmUserDefStr ma
przypisaną jakąś wartość, rekord alarmu powinien być wyświetlany przy
użyciu tego ustawienia. Jednakże, jeżeli zmienna nie ma przypisanej
wartości, program WindowViewer sprawdzi, czy grupa zmiennych ma
przypisaną wartość, sprawdzanie będzie kontynuowane do momentu
osiągnięcia grupy położonej najwyżej - $System.
Należy zwrócić uwagę, że, hierarchiczne przeszukiwanie jest wykonywane
niezależnie dla każdego elementu. Dlatego też, jeśli zmienna posiada
przypisanie dla .AlarmUserDefNum1, ale nie posiada przypisania dla
.AlarmUserDefStr, ale jej grupa nadrzędna posiada przypisanie dla
.AlarmUserDefStr, te przypisanie będzie wykorzystane w rekordzie alarmu.
Patrz również
.AlarmUserDefNum1, .AlarmUserDefNum2
96
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.AlarmValDeadband
.AlarmValue
Pole to służy do zmiany i monitorowania procentowej strefy nieczułości dla
alarmu związanego z przekroczeniem progu wartości zmiennej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmValDeadband
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Zaznaczenie opcji Zachowaj param. na liście zmiennych powoduje
automatyczne zapisywanie zmian wartości tego pola za pomocą połączeń
animacyjnych lub skryptów programu WindowViewer.
Typ danych
Analog (odczyt/zapis)
Zakres wartości
Musi mieścić się w zdefiniowanym dla danej zmiennej zakresie wartości.
Przykład(y)
Poniższa instrukcja ustawia procentową strefę nieczułości dla zmiennej Tag1
na wartość 25:
Tag1.AlarmValDeadband=25;
Patrz również
.AlarmDevDeadband
Zwraca wartość alarmu dla zmiennej związanej z wybranym alarmem. Alarm
musi być wybrany przez kliknięcie na wyświetlanym Obiekcie Alarmu
Rozproszonego.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu.AlarmValue",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Dowolna zmienna tekstowa (Message).
Typ danych
Message (tylko odczyt)
Przykład(y)
GetPropertyM("AlmObj_1.AlarmValue", almValue);
Gdzie AlmObj_1 jest nazwą obiektu alarmu rozproszonego, almValue jest
zmienną typu Memory Message zawierającą wartość alarmu zmiennej
powiązanej z wybranym alarmem.
Przy wykorzystaniu w przycisku akcji, po naciśnięciu przycisku przez
operatora, instrukcja ta wprowadzi wartość do pola .almValue, co można
wykorzystać do wyświetlania komunikatów lub w późniejszych operacjach.
Pole .almValue będzie zawierało wartość alarmu powiązaną z wybranym
alarmem.
Patrz również
GetPropertyM(), .AlarmAccess, .AlarmClass, .AlarmComment,
.AlarmDate, .AlarmLimit, .AlarmName, .AlarmOprName, .AlarmOprNode,
.AlarmPri, .AlarmProv, .AlarmState, .AlarmTime, .AlarmType
Pola zmiennych
97
Opis funkcji, pól i zmiennych systemowych
.AlarmValueCount
.AlarmValueUnAckCount
Śledzi całkowitą liczbę wartości alarmów danej zmiennej lub grupy
alarmowej.
Kategoria
alarmy
Sposób użycia
Zmienna.AlarmValueCount
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer, Real lub Grupa
Alarmowa.
Uwagi
Zawiera ilość alarmów typy HiHi, Hi, Lo, LoLo. Zawiera ilość zarówno
alarmów zatwierdzonych, jak i nie zatwierdzonych. Dla zmiennych alarmów
innych niż alarmy rozszerzone ta ilość będzie zawsze równa 1. Jednakże,
ilość może się zmieniać wraz ze zmianą ilości grup alarmowych.
Typ danych
Integer (tylko odczyt)
Zakres wartości
0 lub dowolna, dodatnia liczba całkowita (Integer).
Przykład(y)
AVC = Tag1.AlarmValueCount;
Gdzie Tag1 jest zmienną typu Analog, skonfigurowaną dla alarmów Integer.
AVC jest również zmienną typu Analog, pobierającą całkowitą ilość
wszystkich alarmów wartości istniejących w Tag1.
Patrz również
.AlarmDevCount, .AlarmDevUnAckCount, .AlarmDscCount,
.AlarmDscUnAckCount, .AlarmROCCount, .AlarmTotalCount,
.AlarmValueUnAckCount, .AlarmROCUnAckCount, .AlarmUnAckCount
Śledzi całkowitą liczbę nie zatwierdzonych alarmów zmiany wartości w danej
zmiennej lub grupie alarmowej. Zawiera ilość alarmów typy HiHi, Hi, Lo,
LoLo.
Kategoria
alarmy
Sposób użycia
Zmienne.AlarmValueUnAckCount
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer, Real lub Grupa
Alarmowa.
Typ danych
Integer (tylko odczyt)
Zakres wartości
0 lub dowolna, dodatnia liczba całkowita (Integer).
Przykład(y)
AVUC = Tag1.AlarmValueUnAckCount;
Gdzie Tag1 jest zmienną typu Analog, skonfigurowaną dla alarmów Integer.
AVUC jest również zmienną typu Analog, pobierającą całkowitą ilość
wszystkich nie zatwierdzonych alarmów wartości istniejących w Tag1.
Patrz również
.AlarmDevCount, .AlarmDevUnAckCount, .AlarmDscCount,
.AlarmDscUnAckCount, .AlarmROCCount, .AlarmTotalCount,
.AlarmValueCount, .AlarmROCUnAckCount, .AlarmUnAckCount
98
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.Caption
Pole to definiuje informację, która ma zostać wyświetlona jako opis pola
wyboru.
Kategoria
obiekty sterujące Windows
Sposób użycia
[ErrorNumber=]GetPropertyM ("NazwaObiektu.Caption",
Zmienna);
[ErrorNumber=]GetPropertyM ("NazwaObiektu.Caption",
"Tekst");
Parametr
Opis
NazwaObiektu
Nazwa wizarda Na przykład, ChkBox_4.
Zmienna
Zmienna tekstowa do przechowywania żądanej
właściwości.
"Message"
Tekst komunikatu ujęty w cudzysłowy.
Uwagi
Pole to jest zapisywane/odczytywane zarówno w czasie edycji, jak i w czasie
pracy aplikacji.
Typ danych
Message (odczyt/zapis)
Zastosowanie
Pola wyboru.
Przykład
Zamieszczona poniżej instrukcja ustawia pole .Caption obiektu
"CheckBox_1" na wartość "Blue Paint Option".
SetPropertyM( "CheckBox_1.Caption","Blue Paint Option" );
Patrz również
GetPropertyM(), SetPropertyM()
Pola zmiennych
99
Opis funkcji, pól i zmiennych systemowych
.ChartLength
Pole to definiuje długość (w jednostkach czasu) wykresu trendu
historycznego.
Kategoria
dane historyczne
Sposób użycia
Zmienna.ChartLength
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Pole to, przeznaczone do odczytu i zapisu, jest używane do zmiany (lub
weryfikacji) długości okna wykresu trendu historycznego. Wartość tego
parametru jest wyrażona w sekundach. Długość definiowana jest jako okres
czasu wyświetlany na wykresie trendu historycznego. Dokładniej ujmując,
wzór na obliczenie długości wykresu trendu historycznego ma następującą
postać:
ChartLength=(Data/Czas prawego ko
ń
ca wykresu) -
(Data/Czas lewego ko
ń
ca wykresu);
Ponieważ parametry Data/ czas wyrażone są w sekundach które upłynęły od
1/1/70, wynikiem obliczeń jest "liczba sekund wyświetlanych pomiędzy lewą
a prawą krawędzią wykresu".
Zawsze przy dodawaniu lub odejmowaniu wartości od pola .ChartLength
należy pamiętać, że jego wartość wyrażona jest w sekundach. Zatem, jeżeli
należy odjąć "2 godziny" od bieżącej wartości pola .ChartLength, należy
wcześniej zamienić "2 godziny" na liczbę sekund. Przykładowo:
(2 godziny ) * (60 minut/ godzinę) * (60 sekund/ minutę) = 7200 sekund.
Typ danych
Integer (odczyt/zapis)
Zakres wartości
Dowolna dodatnia liczba całkowita.
Przykład(y)
Zamieszczone poniżej wyrażenie ustawia długość wykresu na 1 godzinę:
HtTagname.ChartLength=3600 {60 minut * 60 sekund/ minut
ę
};
Przedstawione poniżej wyrażenie powoduje przewinięcie wykresu w lewo o
połowę:
HtTagname.ChartStart=HtTagname.ChartStart -
HtTagname.ChartLength / 2;
To wyrażenie z kolei, powoduje przewinięcie wykresu w lewo o 10%:
HtTagname.ChartStart=HtTagname.ChartStart - (.10 *
HtTagname.ChartLength);
Patrz również
.ChartStart
100
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.ChartStart
.Comment
Pole to definiuje datę i czas początku wykresu trendu historycznego.
Kategoria
dane historyczne
Sposób użycia
Zmienna.ChartStart
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Pole to przeznaczone do odczytu i zapisu używane jest do zmiany (lub
weryfikacji) daty i czasu początku (lewej krawędzi) okna wykresu trendu
historycznego. Pole .ChartStart zawiera liczbę sekund od 0:00 1 stycznia
1970 i odpowiada prawemu krańcowi wykresu trendu historycznego.
Typ danych
Integer (odczyt/zapis)
Zakres wartości
Dowolna dodatnia liczba całkowita.
Przykład(y)
Poniższe wyrażenie przesuwa początek wykresu w prawo, o 1 minutę:
HtTagname.ChartStart=HtTagname.ChartStart + 60;
Patrz również
.ChartLength
Pole to zawiera komentarz zmiennej definiowany na liście zmiennych.
Kategoria
zmienna
Sposób użycia
Zmienna.Comment
Parametr
Opis
Zmienna
Dowolna zmienna.
Uwagi
Chociaż pole to w programie WindowMaker przeznaczone jest do odczytu,
jego wartość może zostać zmieniona w programie WindowViewer
(wyłącznie w pamięci). Po zamknięciu programu WindowViewer i
ponownym uruchomieniu, przywracana jest stara wartość pola komentarza
(Comment). Pole to jest używane przez system alarmowania rozproszonego
do odczytu komentarzy dla alarmów.
Typ danych
Message (tylko odczyt)
Zakres wartości
Dowolny łańcuch znaków zawierający od 1 do 50 znaków. Porównać z
zamieszczoną poniżej uwagą odnośnie dopuszczalnej liczby znaków.
Uwaga Pole Comment zmiennej, może zostać zmienione wyłącznie z
poziomu listy zmiennych. Wprowadzenie do pola .Comment nowej wartości
w trakcie działania aplikacji nie zmienia wartości na liście zmiennych.
Przykład(y)
W podanym poniżej wyrażeniu tworzony jest łańcuch znaków (wartość
zmiennej tekstowej) zawierający nazwę zmiennej, oraz wartość
wprowadzoną w polu .Comment tej zmiennej:
OperatorMessage=MyTag.Name+" komentarz: "+MyTag.Comment;
Uwaga Wartość tego pola zapisywana jest do bazy danych pamiętanej w
trakcie pracy aplikacji. Nie jest ona zapisywana do Listy zmiennych.
Pola zmiennych
101
Opis funkcji, pól i zmiennych systemowych
.DevTarget
.DisplayMode
Pole to służy do monitorowania i/lub zmiany wartości docelowej (od której
jest obliczane odchylenie) dla "małego" (Minor Deviation) i "dużego" (Major
Deviation) alarmu odchyleniowego.
Kategoria
alarmy
Sposób użycia
Zmienna.DevTarget
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Zaznaczenie opcji Zachowaj param. na liście zmiennych powoduje
automatyczne zapisywanie zmian wartości tego pola przez połączenia
animacyjne lub skrypty programu WindowViewer.
Typ danych
Analog (odczyt/zapis)
Zakres wartości
Musi mieścić się w zdefiniowanym dla danej zmiennej zakresie wartości.
Przykład(y)
Przykładowa instrukcja zamieszczona poniżej zmienia wartość pola
.DevTarget zmiennej MyTag na 500.
MyTag.DevTarget=500;
Patrz również
.AckDev, .AlarmDev, .AlarmMajDevDisabled, .AlarmMajDevEnabled,
.AlarmMajDevInhibitor, .MajorDevSet, .MajorDevStatus
Pole to określa sposób wyświetlania wartości na wykresie trendu
historycznego.
Kategoria
dane historyczne
Sposób użycia
Zmienna.DisplayMode
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Typ danych
Analog (odczyt/zapis)
Zakres wartości
1 = Wyświetlanie wartości min/max dla każdego okresu próbkowania (tryb
domyślny).
2 = Wyświetlanie wartości średniej dla każdego okresu próbkowania na tle
rozrzutu wartości.
3 = Wyświetlanie wartości średniej dla każdego okresu próbkowania na tle
wykresu słupkowego.
Przykład(y)
Zamieszczone poniżej wyrażenie powoduje wyświetlanie trendu
historycznego powiązanego ze zmienną MyHistTrendTag w formie
wykresu słupkowego.
MyHistTrendTag.DisplayMode=3;
Patrz również
.ChartLength, .ChartStart
102
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.Enabled
Pole to określa, czy obiekt sterujący może reagować na zdarzenia
wygenerowane przez użytkownika.
Kategoria
obiekty sterujące Windows
Sposób użycia
[ErrorNumber=] GetPropertyD("NazwaObiektu.Enabled",
Zmienna);
[ErrorNumber=] SetPropertyD("NazwaObiektu.Enabled",
Discrete);
Parametr
Opis
NazwaObiektu
Nazwa wizarda Na przykład, ChkBox_4.
Zmienna
Zmienna typu Discrete do przechowywania żądanej
właściwości.
Discrete
Wartość dyskretna.
0 = Obiekt sterujący jest nieaktywny
1 = Obiekt sterujący jest aktywny
lub,
Zmienna dyskretna przechowująca wartość do
zapisu w momencie wykonywania funkcji.
Uwagi
Pole to jest zapisywane/odczytywane zarówno w czasie edycji, jak i w czasie
pracy aplikacji.
Typ danych
Discrete (odczyt/zapis)
Zastosowanie
Pola tekstowe , pola list , listy rozwijane , pola wyboru i pola wyboru
wykluczającego .
Przykład(y)
Zamieszczona poniżej instrukcja dezaktywuje obiekt o nazwie: "ListBox_1."
SetPropertyD( "ListBox_1.Enabled",0 );
Patrz również
GetPropertyD(), SetPropertyD()
Pola zmiennych
103
Opis funkcji, pól i zmiennych systemowych
.EngUnits
.Freeze
Pole EngUnits umożliwia użytkownikowi dostęp do jednostek inżynierskich
zmiennych typu Analog, zgodnie z ich definicją wprowadzoną na liście
zmiennych.
Kategoria
zmienna
Sposób użycia
Zmienna.EngUnits
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Pole to przyjmuje wartości typu tekstowego i nie ma wpływu na skalowanie,
konwersję czy format wartości zmiennej.
Typ danych
Message (odczyt/zapis)
Uwaga Wartości wpisane do tego pola nie są trwale zachowywane.
Zakres wartości
Dowolny łańcuch znaków zawierający od 0 do 31 znaków.
Przykład(y)
IF Temperature.EngUnits == "Celsius" THEN
CALL TempConvert(Temperature);{Funkcja QuickFunction,
która mo
ż
e by
ć
u
ż
yta do konwersji stopni Celsjusza na
Fahrenheita}
ENDIF;
Patrz również
.MinEU, .MaxEU, .MaxRange, .MinRange, .MinRaw, .MaxRaw, .RawValue
Odczyt/zapis statusu zamrożenia wyświetlania w obiekcie alarmów
rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyD(“NazwaObiektu.Freeze”,Zmienna)
[ErrorNumber=]SetPropertyD(“NazwaObiektu.Freeze”,Zmienna)
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Discrete, w której zapisywana jest
wartość pola podczas wykonywania funkcji.
Uwagi
Pole to jest przeznaczone do zapisu i odczytu zawierające lub zmieniające
status zamrożenia wyświetlania Obiektu Alarmu Rozproszonego.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Zamrożenie wyłączone (OFF)
1 = Zamrożenie włączone (ON)
Przykład(y)
Instrukcja zamieszczona poniżej ustawia właściwość Freeze dla
“AlmObj_1” ze zmiennej typu Discrete AlmFreeze.
SetPropertyD(“AlmObj_1.Freeze”,AlmFreeze);
Patrz również
GetPropertyD(), SetPropertyD()
104
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.HiHiLimit
.HiHiSet
Pole to służy do monitorowania i/lub zmiany pierwszej górnej wartości
progowej HiHi dla alarmu przekroczenia wartości.
Kategoria
alarmy
Sposób użycia
Zmienna.HiHiLimit
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Zaznaczenie opcji Zachowaj param. na liście zmiennych powoduje
automatyczne zapisywanie zmian wartości tego pola przez połączenia
animacyjne lub skrypty programu WindowViewer.
Typ danych
Analog (odczyt/zapis)
Zakres wartości
Musi mieścić się w zdefiniowanym dla danej zmiennej zakresie wartości.
Przykład(y)
Przykładowa instrukcja zamieszczona poniżej zwiększa wartość pola
.HiHiLimit (wartość progowa alarmu) zmiennej MyTag o 5.
MyTag.HiHiLimit=MyTag.HiHiLimit + 5;
Patrz również
.Alarm, .AlarmValue, .Ack, .HiHiStatus, .HiHiSet, .AlarmDisabled,
.AlarmEnabled, .AlarmHiHiDisabled, .AlarmHiHiEnabled,
.AlarmHiHiInhibitor
Zwraca wartość 0 (false) lub 1 (true) w zależności od tego, czy limit HiHi dla
warunków alarmowania został ustawiony dla zmiennej typu Analog.
Kategoria
alarmy
Sposób użycia
Zmienna.HiHiSet
Parametr
Opis
Zmienna
Dowolna zmienna typu Analog
Uwagi
Pole to może być użyte dla zmiennych Integer lub Real.
Typ danych
Discrete
Zakres wartości
1 (true) lub 0 (false)
Przykład(y)
Przykładowa instrukcja zamieszczona poniżej może być wykorzystana w
analogowym połączeniu wyświetlającym do ustalenia, czy limit HiHi dla
alarmu jest przypisany do zmiennej MyTag:
MyTag.HiHiSet 5;
{Kiedy zwrócone zostanie 0, limit nie jest ustawiony ;
je
ż
eli zwrócone zostanie 1, limit jest ustawiony.}
Patrz również
.Alarm, .AlarmValue, .Ack, .HiHiStatus, .HiHiLimit, .AlarmDisabled,
.AlarmEnabled, .AlarmHiHiDisabled, .AlarmHiHiEnabled,
.AlarmHiHiInhibitor
Pola zmiennych
105
Opis funkcji, pól i zmiennych systemowych
.HiHiStatus
.HiLimit
Pole to określa, czy wystąpił alarm typu HiHi.
Kategoria
alarmy
Sposób użycia
Zmienna.HiHiStatus
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0, w przypadku wystąpienia alarmu progowego typu HiHi dla zmiennej z
którą pole to jest skojarzone, wartość pola zostaje zmieniona przez system na
1. Pole to ma wartość równą 1 do czasu, gdy zniknie przyczyna alarmu. Pole
to jest często używane w połączeniu z polami .Alarm oraz .Ack, w celu
określenia dokładnej przyczyny generowania alarmu dla danej zmiennej.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Stan alarmowy nie występuje
1 = Stan alarmowy występuje
Przykład(y)
Wyrażenia zawarte w poniższej instrukcji IF-THEN będą wykonywane, gdy
pole .HiHiStatus (alarm progowy HiHi) dla zmiennej MyTag będzie miało
wartość ustawioną na 1.
IF (MyTag.HiHiStatus == 1) THEN
OperatorMessage="MyTag has gone into HiHi Alarm";
ENDIF;
Patrz również
.Alarm, .AlarmValue, .Ack, .HiHiLimit, .HiHiSet, .AlarmDisabled,
.AlarmEnabled, .AlarmHiHiDisabled, .AlarmHiHiEnabled,
.AlarmHiHiInhibitor
Pole to służy do monitorowania i/lub zmiany pierwszej górnej wartości
progowej High dla alarmu przekroczenia wartości.
Kategoria
alarmy
Sposób użycia
Zmienna.HiLimit
Parametr
Opis
Zmienna
Dowolna zmienna typu Analog
Uwagi
Zaznaczenie opcji Zachowaj param. na liście zmiennych powoduje
automatyczne zapisywanie zmian wartości tego pola przez połączenia
animacyjne lub skrypty programu WindowViewer.
Typ danych
Analog (odczyt/zapis)
Zakres wartości
Musi mieścić się w zdefiniowanym dla danej zmiennej zakresie wartości.
Przykład(y)
Temperature.HiLimit = 212;
Patrz również
.Alarm, .AlarmValue, .Ack, .HiStatus, .HiSet, .AlarmDisabled,
.AlarmEnabled, .AlarmHiDisabled, .AlarmHiEnabled, .AlarmHiInhibitor
106
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.HiSet
.HiStatus
Zwraca wartość 0 (false) lub 1 (true) w zależności od tego, czy limit High
został ustawiony dla zmiennej typu Analog.
Kategoria
alarmy
Sposób użycia
Zmienna.HiSet
Parametr
Opis
Zmienna
Dowolna zmienna typu Analog
Uwagi
Pole to może być użyte dla zmiennych Integer lub Real.
Typ danych
Discrete
Zakres wartości
1 (true) lub 0 (false)
Przykład(y)
Przykładowa instrukcja zamieszczona poniżej może być wykorzystana w
analogowym połączeniu wyświetlającym do ustalenia, czy limit High dla
alarmu jest przypisany do zmiennej MyTag:
MyTag.HiSet;
{Kiedy zwrócone zostanie 0, limit nie jest ustawiony ;
je
ż
eli zwrócone zostanie 1, limit jest ustawiony.}
Patrz również
.Alarm, .AlarmValue, .Ack, .HiStatus, .HiLimit, .AlarmDisabled,
.AlarmEnabled, .AlarmHiDisabled, .AlarmHiEnabled, .AlarmHiInhibitor
Pole to określa, czy w systemie występuje alarm progowy High.
Kategoria
alarmy
Sposób użycia
Zmienna.HiStatus
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0, w przypadku wystąpienia alarmu progowego typu High dla zmiennej z
którą pole to jest skojarzone, wartość pola zostaje zmieniona przez system na
1. Pole to ma wartość równą 1 do czasu, gdy zniknie przyczyna alarmu. Pole
to jest często używane w połączeniu z polami .Alarm oraz .Ack, w celu
określenia dokładnej przyczyny generowania alarmu dla danej zmiennej.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Stan alarmowy nie występuje
1 = Stan alarmowy występuje
Przykład(y)
IF (MotorAmps.HiStatus == 1) THEN
CALL PumpShutdown( );
ENDIF;
{Funkcja QuickFunct która mo
ż
e zosta
ć
u
ż
yta do wył
ą
czenia
pompy}
Patrz również
.Alarm, .AlarmValue, .Ack, .HiLimit, .HiSet, .AlarmDisabled,
.AlarmEnabled, .AlarmHiDisabled, .AlarmHiEnabled, .AlarmHiInhibitor
Pola zmiennych
107
Opis funkcji, pól i zmiennych systemowych
.ListChanged
.ListCount
Wskazuje, czy występują jakieś nowe alarmy lub aktualizacje dla obiektu
alarmów rozproszonych
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyD(“NazwaObiektu.ListChanged”,Zmi
enna);
Parametr
Opis
NazwaObiektu
Nazwa Obiektu Alarmu Rozproszonego
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Discrete, w której zapisywana jest
wartość pola podczas wykonywania funkcji.
Uwagi
To pole tylko do odczytu zawiera informację o wystąpieniu dowolnej zmiany
i konieczności aktualizacji Obiektu Alarmu Rozproszonego. Wartość tej
właściwości jest automatycznie ustawiana w czasie jej odczytywania.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = brak nowych alarmów lub aktualizacji dla obiektu alarmu rozproszonego.
1 = konieczność aktualizacji obiektu wyświetlania
Przykład(y)
Instrukcja zamieszczona poniżej zwróci do zmiennej typu Discrete o nazwie
AlmDispStat informację, czy występują jakieś nowe alarmy lub
uaktualnienia dla Obiektu Alarmu Rozproszonego o nazwie “AlmObj_1”.
GetPropertyD(“AlmObj_1.ListChanged”,AlmDispStat);
Patrz również
Get PropertyD()
Pole to określa liczbę elementów w polu listy lub na liście rozwijalnej.
Kategoria
obiekty sterujące okien
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.ListCount",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa wizarda Na przykład ListBox_4.
Zmienna
Zdefiniowana zmienna zawierająca liczbę
elementów na liście.
Uwagi
Pole to jest dostępne tylko w czasie pracy aplikacji.
Typ danych
Integer (tylko odczyt)
Zastosowanie
Listy i listy rozwijalne.
Przykład(y)
Zamieszczona poniżej instrukcja odczytuje liczbę elementów listy o nazwie
"ListBox_1" i zapisuje tę wartość do zmiennej typu Memory Integer o nazwie
MyListBoxCount
GetPropertyI( "ListBox_1.ListCount",MyListBoxCount );
Patrz również
GetPropertyI(), .ListIndex
108
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.ListIndex
.LoLimit
Pole to zawiera odpowiedni indeks (zmienną lub liczbę) wybranego elementu
z listy. (Indeks jest liczbą definiującą pojedynczy element na liście). W
przypadku pola listy indeks równy -1 oznacza, że żaden element nie jest
wybrany. W przypadku listy rozwijalnej indeks równy -1 oznacza, że
użytkownik wprowadził nowy tekst w polu wprowadzania tekstu.
Kategoria
obiekty sterujące Windows
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.ListIndex",
Zmienna);
[ErrorNumber=]SetPropertyI("NazwaObiektu.ListIndex",
Liczba);
Parametr
Opis
NazwaObiektu
Nazwa wizarda Na przykład ListBox_4.
Zmienna
Zdefiniowana zmienna zawierająca liczbę
elementów na liście.
Liczba
Liczba definiująca konkretny element z listy.
Uwagi
Pole to jest dostępne tylko w czasie pracy aplikacji.
Typ danych
Integer (odczyt/zapis)
Zastosowanie
Listy i listy rozwijalne.
Przykład
Zamieszczona poniżej instrukcja odczytuje indeks elementu zaznaczonego na
liście o nazwie "ListBox_1" i zapisuje tę wartość do zmiennej typu Memory
Integer o nazwie MyListBoxIndex.
GetPropertyI( "ListBox_1.ListIndex",MyListBoxIndex );
Patrz również
GetPropertyI(), SetPropertyI(), .NewIndex, .TopIndex
Pole to służy do monitorowania i/lub zmiany pierwszej dolnej wartości
progowej Low dla alarmu progowego.
Kategoria
alarmy
Sposób użycia
Zmienna.LoLimit
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Zaznaczenie opcji Zachowaj param. na liście zmiennych powoduje
automatyczne zapisywanie zmian wartości tego pola przez połączenia
animacyjne lub skrypty programu WindowViewer.
Typ danych
Analog (odczyt/zapis)
Zakres wartości
Musi mieścić się w zdefiniowanym dla danej zmiennej zakresie wartości.
Przykład(y)
Zamieszczone poniżej wyrażenie powoduje zmniejszenie dolnej wartości
limitu alarmu progowego o 10 dla zmiennej o nazwie MyTag.
MyTag.LoLimit=MyTag.LoLimit - 10;
Patrz również
.Alarm, .AlarmValue, .Ack, .LoStatus, .LoSet, .AlarmDisabled,
.AlarmEnabled, .AlarmLoDisabled, .AlarmLoEnabled, .AlarmLoInhibitor
Pola zmiennych
109
Opis funkcji, pól i zmiennych systemowych
.LoLoLimit
.LoSet
Pole to służy do monitorowania i/lub zmiany drugiej dolnej wartości
progowej LoLo dla alarmu progowego.
Kategoria
alarmy
Sposób użycia
Zmienna.LoLoLimit
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Zaznaczenie opcji Zachowaj param. na liście zmiennych powoduje
automatyczne zapisywanie zmian wartości tego pola przez połączenia
animacyjne lub skrypty programu WindowViewer.
Typ danych
Analog (odczyt/zapis)
Zakres wartości
Musi mieścić się w zdefiniowanym dla danej zmiennej zakresie wartości.
Przykład(y)
Zamieszczone poniżej wyrażenie powoduje zmniejszenie dolnej wartości
limitu (LoLo limit) alarmu progowego o 10 dla zmiennej o nazwie MyTag.
MyTag.LoLoLimit=MyTag.LoLoLimit - 10;
Patrz również
.Alarm, .AlarmValue, .Ack, .LoLoStatus, .LoLoSet, .AlarmDisabled,
.AlarmEnabled, .AlarmLoLoDisabled, .AlarmLoLoEnabled,
.AlarmLoLoInhibitor
Zwraca wartość 0 (false) lub 1 (true) w zależności od tego, czy limit Low
został ustawiony dla zmiennej typu Analog.
Kategoria
alarmy
Sposób użycia
Zmienna.LoSet
Parametr
Opis
Zmienna
Dowolna zmienna typu Analog
Uwagi
Pole to może być użyte dla zmiennych Integer lub Real.
Typ danych
Discrete
Zakres wartości
1 (true) lub 0 (false)
Przykład(y)
Przykładowa instrukcja zamieszczona poniżej może być wykorzystana w
analogowym połączeniu wyświetlającym do ustalenia, czy limit Low dla
alarmu jest przypisany do zmiennej MyTag:
MyTag.LoSet;
{Kiedy zwrócone zostanie 0, limit nie jest ustawiony ;
je
ż
eli zwrócone zostanie 1, limit jest ustawiony.}
Patrz również
.Alarm, .AlarmValue, .Ack, .LoStatus, .LoLimit, .AlarmDisabled,
.AlarmEnabled, .AlarmLoDisabled, .AlarmLoEnabled, .AlarmLoInhibitor
110
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.LoLoSet
Zwraca wartość 0 (false) lub 1 (true) w zależności od tego, czy limit LoLo
został ustawiony dla zmiennej typu Analog.
Kategoria
alarmy
Sposób użycia
Zmienna.LoLoSet
Parametr
Opis
Zmienna
Dowolna zmienna typu Analog
Uwagi
Pole to może być użyte dla zmiennych Integer lub Real.
Typ danych
Discrete
Zakres wartości
1 (true) lub 0 (false)
Przykład(y)
Przykładowa instrukcja zamieszczona poniżej może być wykorzystana w
analogowym połączeniu wyświetlającym do ustalenia, czy limit LoLo dla
alarmu jest przypisany do zmiennej MyTag:
MyTag.LoLoSet;
{Kiedy zwrócone zostanie 0, limit nie jest ustawiony ;
je
ż
eli zwrócone zostanie 1, limit jest ustawiony.}
Patrz również
.Alarm, .AlarmValue, .Ack, .LoLoStatus, .LoLoLimit, .AlarmDisabled,
.AlarmEnabled, .AlarmLoLoDisabled, .AlarmLoLoEnabled,
.AlarmLoLoInhibitor
Pola zmiennych
111
Opis funkcji, pól i zmiennych systemowych
.LoLoStatus
Pole to określa, czy w systemie występuje drugi dolny alarm progowy
LoLoLimit.
Kategoria
alarmy
Sposób użycia
Zmienna.LoLoStatus
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0, w przypadku wystąpienia alarmu progowego typu LoLo dla zmiennej z
którą pole to jest skojarzone, wartość pola zostaje zmieniona przez system na
1. Pole to ma wartość równą 1 do czasu, gdy zniknie przyczyna alarmu. Pole
to jest często używane w połączeniu z polami .Alarm oraz .Ack, w celu
określenia dokładnej przyczyny generowania alarmu dla danej zmiennej.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Stan alarmowy nie występuje
1 = Stan alarmowy występuje
Przykład(y)
Wyrażenia zawarte w poniższej instrukcji IF-THEN będą wykonywane, gdy
pole .LoLoStatus (alarm progowy LoLo) dla zmiennej MyTag będzie miało
wartość ustawioną na 1.
IF (MyTag.LoLoStatus == 1) THEN
OperatorMessage="MyTag has gone into LoLo Alarm";
ENDIF;
Patrz również
.Alarm, .AlarmValue, .Ack, .LoLoLimit, .LoLoSet, .AlarmDisabled,
.AlarmEnabled, .AlarmLoLoDisabled, .AlarmLoLoEnabled,
.AlarmLoLoInhibitor
112
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.LoStatus
.MajorDevPct
Pole to określa, czy w systemie występuje alarm progowy Low.
Kategoria
alarmy
Sposób użycia
Zmienna.LoStatus
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0, w przypadku wystąpienia alarmu progowego typu Low dla zmiennej z
którą pole to jest skojarzone, wartość pola zostaje zmieniona przez system na
1. Pole to ma wartość równą 1 do czasu, gdy zniknie przyczyna alarmu. Pole
to jest często używane w połączeniu z polami .Alarm oraz .Ack, w celu
określenia dokładnej przyczyny generowania alarmu dla danej zmiennej.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Stan alarmowy nie występuje
1 = Stan alarmowy występuje
Przykład(y)
IF (WaterLevelTank1.LoStatus == 1) THEN
PumpShutdown = 1;
WaterFillValue = 1;
ENDIF;
Patrz również
.Alarm, .AlarmValue, .Ack, .LoLimit, .LoSet, .AlarmDisabled,
.AlarmEnabled, .AlarmLoDisabled, .AlarmLoEnabled, .AlarmLoInhibitor
Monitoruje i/lub zmienia wartość procentowego odchylenia dla alarmu.
Kategoria
alarmy
Sposób użycia
Zmienna.MajorDevPct
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Zaznaczenie opcji Zachowaj param. na liście zmiennych powoduje
automatyczne zapisywanie zmian wartości tego pola przez połączenia
animacyjne lub skrypty programu WindowViewer.
Typ danych
Real (odczyt/zapis)
Zakres wartości
Od 0 do 100%
Przykład(y)
Przykładowe wyrażenie zamieszczone poniżej zmienia wartość pola
.MajorDeviation zmiennej MyTag na 25%.
MyTag.MajorDevPct=25;
Patrz również
.AckDev, .AlarmDev, .AlarmMajDevDisabled, .AlarmMajDevEnabled,
.AlarmMajDevInhibitor, .MajorDevSet, .MajorDevStatus
Pola zmiennych
113
Opis funkcji, pól i zmiennych systemowych
.MajorDevSet
Zwraca wartość 0 (false) lub 1 (true) w zależności od tego, czy został
ustawiony limit procentowy dużego odchylenia dla zmiennej typu Analog.
Kategoria
alarmy
Sposób użycia
Zmienna.MajorDevSet
Parametr
Opis
Zmienna
Dowolna zmienna typu Analog
Uwagi
Pole to może być użyte dla zmiennych Integer lub Real.
Typ danych
Discrete
Zakres wartości
1 (true) lub 0 (false)
Przykład(y)
Przykładowa instrukcja zamieszczona poniżej może być wykorzystana w
analogowym połączeniu wyświetlającym do ustalenia, czy limit procentowy
dla alarmu typu odchyleniowy duży jest przypisany do zmiennej MyTag:
MyTag.MajorDevSet;
{Kiedy zwrócone zostanie 0, limit nie jest ustawiony ;
je
ż
eli zwrócone zostanie 1, limit jest ustawiony.}
Patrz również
.AckDev, .AlarmDev, .AlarmMajDevDisabled, .AlarmMajDevEnabled,
.AlarmMajDevInhibitor, .MajorDevPct, .MajorDevStatus
114
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.MajorDevStatus
Pole to określa, czy w systemie występuje alarm dużego odchylenia.
Kategoria
alarmy
Sposób użycia
Zmienna.MajorDevStatus
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0,a w przypadku wystąpienia alarmu dla zmiennej pole powiązane z tą
zmienną jest ustawiane przez system na wartość 1. Pole to ma wartość równą
1 do czasu, gdy zniknie przyczyna alarmu.
Pole to jest często używane w połączeniu z polami .Alarm oraz .Ack, w celu
określenia dokładnej przyczyny generowania alarmu dla danej zmiennej.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Stan alarmowy nie występuje
1 = Stan alarmowy występuje
Przykład(y)
Wyrażenia zawarte w poniższej instrukcji IF-THEN będą wykonywane, gdy
pole .MajorDevStatus (alarm odchyleniowy duży) dla zmiennej MyTag
będzie miało wartość ustawioną na 1.
IF (MyTag.MajorDevStatus == 1) THEN
OperatorMessage="MyTag has gone into a Major Deviation
Alarm";
ENDIF;
Patrz również
.AckDev, .AlarmDev, .AlarmMajDevDisabled, .AlarmMajDevEnabled,
.AlarmMajDevInhibitor, .MajorDevPct, .MajorDevSet
Pola zmiennych
115
Opis funkcji, pól i zmiennych systemowych
.MaxEU
Pole to zawiera maksymalną wartość w jednostkach inżynierskich (EU) dla
danej zmiennej.
Kategoria
zmienna
Sposób użycia
Zmienna.MaxEU
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Wartość odczytana z programu komunikacyjnego uważana jest za surową,
jeżeli została ona przysłana do programu WindowViewer po raz pierwszy.
Wartości surowe mogą wymagać skalowania. Do skalowania wartości
surowych przeznaczone są pola .MinEu i .MaxEu. Rozważmy typowy
przykład - załóżmy, że wskaźnik poziomu cieczy dostarcza informacje do
sterownika PLC. Czujnik dołączony do sterownika przesyła sygnał o wartości
od 4 do 20 mA. Sterownik PLC przekształca ten sygnał (za pomocą
przetwornika analogowo-cyfrowego) na wartość całkowitą z zakresu od 0 do
4096. Wartość ta zostaje przypisana do zmiennej TankTwoLevel.
Wyświetlenie wartości "surowej " (z zakresu od 0 do 4096) nie dostarcza
żadnej użytecznej informacji operatorowi. Konieczne jest zatem
przekształcenie tej wartości na jednostki inżynierskie. W tym celu należy
prawidłowo skonfigurować pola MaxEU i MinEU, określające granice
zakresu jednostek inżynierskich. W rozważanym przykładzie, wartość surowa
równa 0 (z pola odczytano 4 mA) zostanie przekształcona na "0 Galonów", a
wartość 4096 (z pola odczytano 20 mA) zostanie przekształcona na "100
Galonów". W celu wyświetlenia tych poprawnych wartości na ekranie należy
wprowadzić następujące instrukcje:
Minimum surowe=0, Maximum surowe = 4096
Minimum w jednostkach in
ż
.=0, Maximum w jednostkach
in
ż
.=100
Po wprowadzeniu tych instrukcji, jeżeli wartość surowa pola będzie równa
4096, na ekranie wyświetlona zostanie liczba 100.
Typ danych
Real – dla zmiennych rzeczywistych i Integer dla zmiennych całkowitych
(tylko do odczytu).
Zakres wartości
Zależy od typu rozważanej zmiennej.
Przykład(y)
Ponieważ pole to jest przeznaczone tylko do odczytu, nie można mu
przypisywać wartości. Wyświetlenie wartości .MinEU oraz .MaxEU lub
wykorzystanie ich w obliczeniach jest bardzo użyteczne i może ułatwić
zrozumienie operatorowi zasad konwersji wartości uzyskiwanych np. ze
sterowników lub innych urządzeń.
DialogValueEntry ("IO_Point_717", IO_Point_717.MinEU,
IO_Point_717.MaxEU, "Please Enter a New Value:");
Patrz również
.EngUnits, .MinEU, .MaxRange, .MinRange, .MinRaw, .MaxRaw,
.RawValue
116
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.MaxRange
Pole to określa procentową wartość zakresu jednostek inżynierskich
zmiennej, który powinien być wyświetlany na trendzie dla zmiennej.
Kategoria
dane historyczne
Sposób użycia
Zmienna.MaxRange
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Ponieważ wiele różnych zmiennych może być wyświetlanych na wykresach
trendów historycznych jednocześnie, podawanie dolnej i górnej granicy
zakresu wyświetlanych wartości (pola .MinRange oraz .MaxRange) w
jednostkach inżynierskich staje się niemożliwe, gdyż każda zmienna może
mieć (i zwykle ma) zupełnie inny zakres wartości wyrażony w takich
jednostkach. Dlatego też granice zakresu wyraża się jako procentową część
zakresu wartości każdej zmiennej, wyrażonego w jednostkach inżynierskich.
W ten sposób, niezależnie od wielkości całego zakresu dla każdej zmiennej,
na trendzie historycznym wyświetlana będzie tylko zadana procentowo część
zakresu wartości danej zmiennej.
Typ danych
Real (odczyt/zapis)
Zakres wartości
Wartości limitów w polach .MaxRange i .MinRange są wartościami z
zakresu od 0 do 100. Wartości w polach .MinRange i .MaxRange są
wyrażone w procentach. Wartość .MinRange musi być mniejsza od
.MaxRange. Jeśli wartość wprowadzona do któregoś z tych pól będzie
mniejsza niż 0, lub większa niż 100, zostanie automatycznie zmieniona na 0
lub 100. Jeżeli wartość w polu .MinRange jest większa lub równa wartości w
polu .MaxRange, na wykresie nie zostaną wyświetlone żadne dane.
Przykład(y)
Zamieszczone poniżej, przykładowe wyrażenie, zmienia maksymalny,
procentowy zakresu trendu historycznego związanego ze zmienną o nazwie
MyHistTrendTag na wartość równą 25%.
MyHistTrendTag.MaxRange=25;
Patrz również
.ChartStart, .ChartLength, .DisplayMode, .EngUnits, .MinEU, .MaxEU,
.MinRange, .MinRaw, .MaxRaw, .RawValue
Pola zmiennych
117
Opis funkcji, pól i zmiennych systemowych
.MaxRaw
Pole to zawiera górną wartość graniczną dla rzeczywistej wartości surowej
odczytywanej z programu komunikacyjnego przez program WindowViewer,
pracujący jako klient. Wartość pola .MaxRaw określana jest na podstawie
definicji maksymalnej wartości źródłowej zmiennej, podanej na liście
zmiennych dla określonej zmiennej I/O. Każda zmienna o większej wartości
zostaje zmniejszona do wartości tego pola.
Kategoria
zmienna
Sposób użycia
Zmienna.MaxRaw
Parametr
Opis
Zmienna
Dowolna zmienna typu I/O Discrete, Indirect
Discrete, I/O Integer, Memory Real, Indirect
Analog, I/O Message i Indirect Message.
Uwagi
Pole to przeznaczone wyłącznie do odczytu wykorzystywane jest do
wyświetlania górnej wartości granicznej dla zmiennej źródłowej.
Typ danych
Dowolna zmienna typu Integer lub Real (przeznaczona wyłącznie do
odczytu).
Zakres wartości
Dowolna zmienna analogowa.
Przykład(y)
Zamieszczone poniżej wyrażenie umożliwia sprawdzenie czy zmienna nie
wyszła poza zakres normalnych wartości, a więc czy jej wartość nie została
obcięta.
IF ((Temp01.RawValue > Temp01.MaxRaw) OR (Temp01.RawValue
Temp01.MinRaw))THEN
Show "Instrument Failure Window";
ENDIF;
Patrz również
.EngUnits, .MinEU, .MaxEU, .MaxRange, .MinRange, .MinRaw, .RawValue
118
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.MinEU
Pole to zawiera minimalną wartość w jednostkach inżynierskich (EU) dla
danej zmiennej.
Kategoria
zmienna
Sposób użycia
Zmienna.MinEU
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer i Real, lub zmienna
typu Indirect Analog.
Uwagi
Wartość odczytana z programu komunikacyjnego uważana jest za surową,
jeżeli została ona przysłana do programu WindowViewer po raz pierwszy.
Wartości surowe mogą wymagać skalowania. Do skalowania wartości
surowych przeznaczone są pola .MinEu i .MaxEu. Rozważmy typowy
przykład - załóżmy, że wskaźnik poziomu cieczy dostarcza informacje do
sterownika PLC. Czujnik dołączony do sterownika przesyła sygnał o wartości
od 4 do 20 mA. Sterownik PLC przekształca ten sygnał (za pomocą
przetwornika analogowo-cyfrowego) na wartość całkowitą z zakresu od 0 do
4096. Wartość ta zostaje przypisana do zmiennej TankTwoLevel.
Wyświetlenie wartości surowej (z zakresu od 0 do 4096) nie dostarcza żadnej
użytecznej informacji operatorowi. Konieczne jest zatem przekształcenie tej
wartości na jednostki inżynierskie. W tym celu należy prawidłowo
skonfigurować pola MaxEU i MinEU, określające granice zakresu jednostek
inżynierskich. W rozważanym przykładzie, wartość surowa równa 0 (z pola
odczytano 4 mA) zostanie przekształcona na "0 Galonów", a wartość 4096 (z
pola odczytano 20 mA) zostanie przekształcona na "100 Galonów". W celu
wyświetlenia tych poprawnych wartości na ekranie należy wprowadzić
następujące instrukcje:
Minimum surowe=0, Maximum surowe = 4096
Minimum w jednostkach in
ż
.=0, Maximum w jednostkach
in
ż
.=100
Po wprowadzeniu tych instrukcji, jeżeli wartość surowa pola będzie równa
4096, na ekranie wyświetlona zostanie liczba 100.
Typ danych
Real – dla zmiennych rzeczywistych i Integer dla zmiennych całkowitych
(tylko do odczytu).
Zakres wartości
Zależy od typu rozważanej zmiennej.
Przykład(y)
AbsoluteTagRange = (Tag.MaxEU - Tag.MinEU);
Patrz również .EngUnits,
.MaxEU,
.MaxRange,
.MinRange, .MinRaw, .MaxRaw,
.RawValue
Pola zmiennych
119
Opis funkcji, pól i zmiennych systemowych
.MinorDevPct
.MinorDevSet
Pole to służy do monitorowania i/lub zmieniania wartości małego alarmu
odchyleniowego (Minor Deviation).
Kategoria
alarmy
Sposób użycia
Zmienna.MinorDevPct
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Zaznaczenie opcji Zachowaj param. na liście zmiennych powoduje
automatyczne zapisywanie zmian wartości tego pola za pomocą połączeń
animacyjnych lub skryptów programu WindowViewer.
Typ danych
Real (odczyt/zapis)
Zakres wartości
Od 0 do 100%
Przykład(y)
Przykładowe wyrażenie zamieszczone poniżej zmienia wartość pola
.MinorDeviation zmiennej MyTag na 25%.
MyTag.MinorDevPct=25;
Patrz również
.AckDev, .AlarmDev, .AlarmMinDevDisabled, .AlarmMinDevEnabled,
.AlarmMinDevInhibitor, .MinorDevSet, .MinorDevStatus
Zwraca wartość 0 (false) lub 1 (true) w zależności od tego, czy został
ustawiony limit procentowy dla małego alarmu odchyleniowego dla
zmiennej typu Analog.
Kategoria
alarmy
Sposób użycia
Zmienna.MinorDevSet
Parametr
Opis
Zmienna
Dowolna zmienna typu Analog
Uwagi
Pole to może być użyte dla zmiennych Integer lub Real.
Typ danych
Discrete
Zakres wartości
1 (true) lub 0 (false)
Przykład(y)
Przykładowa instrukcja zamieszczona poniżej może być wykorzystana w
analogowym połączeniu wyświetlającym do ustalenia, czy limit procentowy
dla alarmu typu Odchyleniowy Mały jest przypisany do zmiennej MyTag:
MyTag.MinorDevSet;
{Kiedy zwrócone zostanie 0, limit nie jest ustawiony ;
je
ż
eli zwrócone zostanie 1, limit jest ustawiony.}
Patrz również
.AckDev, .AlarmDev, .AlarmMinDevDisabled, .AlarmMinDevEnabled,
.AlarmMinDevInhibitor, .MinorDevPct, .MinorDevStatus
120
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.MinorDevStatus
Pole to określa, czy w systemie występuje alarm małego odchylenia wartości.
Kategoria
alarmy
Sposób użycia
Zmienna.MinorDevStatus
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0,a w przypadku wystąpienia alarmu dla zmiennej pole powiązane z tą
zmienną jest ustawiane przez system na wartość 1. Pole to ma wartość równą
1 do czasu, gdy zniknie przyczyna alarmu.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Stan alarmowy nie występuje
1 = Stan alarmowy występuje
Przykład(y)
Wyrażenia zawarte w poniższej instrukcji IF-THEN będą wykonywane, gdy
pole .MinorDevStatus (alarm odchyleniowy mały) dla zmiennej MyTag
będzie miało wartość ustawioną na 1.
IF (MyTag.MinorDevStatus == 1) THEN
OperatorMessage="MyTag has gone into a Minor Deviation
Alarm";
ENDIF;
Uwagi
Pole to jest często używane w połączeniu z polami .Alarm oraz .Ack, w celu
określenia dokładnej przyczyny generowania alarmu dla danej zmiennej.
Patrz również
.AckDev, .AlarmDev, .AlarmMinDevDisabled, .AlarmMinDevEnabled,
.AlarmMinDevInhibitor, .MinorDevPct
Pola zmiennych
121
Opis funkcji, pól i zmiennych systemowych
.MinRange
Pole to podaje w procentach dolną granicę zakresu wartości zmiennej, która
ma być wyświetlona w oknie trendu historycznego.
Kategoria
dane historyczne
Sposób użycia
Zmienna.MinRange
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Ponieważ wiele różnych zmiennych może być wyświetlanych na wykresach
trendów historycznych jednocześnie, podawanie dolnej i górnej granicy
zakresu wyświetlanych wartości (pola .MinRange oraz .MaxRange) w
jednostkach inżynierskich staje się niemożliwe, gdyż każda zmienna może
mieć (i zwykle ma) zupełnie inny zakres wartości wyrażony w takich
jednostkach. Dlatego też granice zakresu wyraża się jako procentową część
zakresu wartości każdej zmiennej, wyrażonego w jednostkach inżynierskich.
W ten sposób, niezależnie od wielkości całego zakresu dla każdej zmiennej,
na trendzie historycznym wyświetlana będzie tylko zadana procentowo część
zakresu wartości danej zmiennej.
Typ danych
Real (odczyt/zapis)
Zakres wartości
Wartości limitów w polach .MaxRange i .MinRange są wartościami z
zakresu od 0 do 100. Wartości w polach .MinRange i .MaxRange są
wyrażone w procentach. Wartość .MinRange musi być mniejsza od
.MaxRange. Jeśli wartość wprowadzona do któregoś z tych pól będzie
mniejsza niż 0, lub większa niż 100, zostanie automatycznie zmieniona na 0
lub 100. Jeżeli wartość w polu .MinRange jest większa lub równa wartości w
polu .MaxRange, na wykresie nie zostaną wyświetlone żadne dane.
Przykład(y)
TotalChartHeight=MyHistTrendTag.MaxRange -
MyHistTrendTag.MinRange;
Patrz również
.ChartStart, .ChartLength, .DisplayMode, .EngUnits, .MinEU, .MaxEU,
.MaxRange, .MinRaw, .MaxRaw, .RawValue
122
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.MinRaw
.Name
Minimalna, surowa wartość zmiennej odczytywanej z programu
komunikacyjnego przez program WindowViewer pracujący jako klient.
Wartość pola .MinRaw jest wprowadzana na liście zmiennych w polu Min.
I/O, w czasie definiowania zmiennej typu I/O. Każdej zmienna o mniejszej
wartości przypisywana będzie wartość tego pola.
Kategoria
zmienna
Sposób użycia
Zmienna.MinRaw
Parametr
Opis
Zmienna
Dowolna zmienna typu I/O Discrete, Indirect
Discrete, I/O Integer, Memory Real, Indirect
Analog, I/O Message i Indirect Message.
Uwagi
Pole to przeznaczone wyłącznie do odczytu wykorzystywane jest do
wyświetlania dolnej,surowej wartości granicznej dla zmiennej.
Typ danych
Dowolna zmienna typu Integer lub Real (przeznaczona wyłącznie do
odczytu).
Zakres wartości
Dowolna zmienna analogowa.
Przykład(y)
Zamieszczone poniżej wyrażenie umożliwia sprawdzenie czy zmienna nie
wyszła poza zakres normalnych wartości, a więc czy jej wartość nie została
obcięta.
IF ((Temp01.RawValue > Temp01.MaxRaw) OR (Temp01.RawValue
<
Temp01.MinRaw)) THEN
Show "Instrument Failure Window";
ENDIF;
Patrz również
.EngUnits, .MinEU, .MaxEU, .MaxRange, .MinRange, .MaxRaw, .RawValue
Pole to zawiera nazwę zmiennej w postaci łańcucha znaków.
Kategoria
zmienna
Sposób użycia
Zmienna.Name
Parametr
Opis
Zmienna
Dowolny typ zmiennej.
Typ danych
Message (odczyt/zapis)
Zakres wartości
Wartość pola .Name może być zmieniana wyłącznie w przypadku zmiennych
typu pośredniego, a więc zmiennych typu Alarm Group i TagID. W czasie
przypisywania wartości do tego pola należy pamiętać o obowiązującej
konwencji nazewnictwa, włączając w to zakres dopuszczalnych znaków, oraz
fakt, że pierwszym znakiem musi być litera alfabetu.
Pola zmiennych
123
Opis funkcji, pól i zmiennych systemowych
Uwagi
Pole to przeznaczone jest wyłącznie do odczytu w przypadku następujących
typów zmiennych: Hist Trend, dowolne zmienne Memory, dowolne zmienne
I/O. Pole to przeznaczone jest do odczytu/ zapisu w przypadku następujących
typów zmiennych: Tag ID oraz dowolne zmienne typu pośredniego (Indirect).
Jeżeli dla danej zmiennej pole to przeznaczone jest wyłącznie do odczytu,
może być wykorzystane do podawania nazwy zmiennej, bez korzystania ze
znaków cudzysłowu np. wyrażenie MyTag.Name jest równoważne
wyrażeniu „MyTag” Jest to bardzo korzystne przy wyborze polecenia
Uaktualnij liczbę wystąpień zmiennych z menu Specjalne w programie
WindowMaker, lub przy wykonywaniu sprawdzania integralności dla użytych
zmiennych. Zmienne aktualnie używane, znajdujące się w cudzysłowie, nie są
„widoczne”. Z tego powodu, jeżeli nazwa zmiennej ujęta zostanie w
cudzysłów, a następnie wybrane zostaną polecenia Uaktualnij liczbę
wystąpień zmiennych i Usuń nieużywane zmienne z menu Specjalne,
zmienna zostanie usunięta, ponieważ nie znalezione zostaną miejsca jej
wykorzystywania. W celu "odwołania" uprzednio przypisanej wartości do
zmiennej typu pośredniego można wprowadzić "".
W przypadku zmiennych, dla których wartość tego pola może być zarówno
odczytywana jak i zmieniana, możliwości wykorzystania są jeszcze większe.
Pole to pozwala na zamianę zmiennych typu pośredniego. Jeżeli pole .Name
zmiennej typu pośredniego zostanie przypisane do nazwy innej zmiennej, oraz
jeżeli obydwie zmienne są tego samego typu, zmienna pośrednia w
rzeczywistości staje się inną zmienną, i może być używana we wszystkich
miejscach programu InTouch, w których wykorzystywana była oryginalna
zmienna.
Przykład(y)
Instrukcja zamieszczona poniżej wykorzystuje pole .Name przeznaczone
wyłącznie do odczytu i pole komentarza tej samej zmiennej w celu utworzenia
komunikatu dla operatora:
MyMessageTag="The tagnamenamed "+ MyTag.Name+ "has a
comment of "+ MyTag.Comment";
Opis zastosowania: Należy utworzyć okno graficzne do przedstawiania trzech
parametrów jednego ze 100 odwiertów naftowych. Zamieszczony poniżej
QuickScript związany ze zmianą wartości pozwala na uaktualnianie
informacji wyświetlanych w oknie graficznym, stosownie do odwiertu
naftowego wybranego przez operatora. W skrypcie związanym z przyciskiem
stosowana jest zmienna o nazwie OilWellNumber.
IndOilWellPump.Name="OilWellPump"+Text(OilWellNumber,"#");
IndOilWellTEP.Name="OilWellTemp"+Text(OilWellNumber, "#");
IndOilWellPressure.Name = "OilWellPressure" +
Text(OilWellNumber, "#");
W celu wykonania skryptu należy utworzyć przycisk z połączeniem
dotykowym do wprowadzania wartości analogowej ze zmienną
OilWellNumber. Wówczas, jeżeli w trakcie wykonywania aplikacji operator
kliknie ten przycisk a następnie wprowadzi numer odwiertu, wykonany
zostanie powyższy skrypt.
124
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.NewIndex
.NextPage
Zwraca liczbę całkowitą (zmienną) będącą indeksem elementu, ostatnio
dodanego do listy za pomocą funkcji wcAddItem() lub wcInsertItem().
Kategoria
obiekty sterujące Windows
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.NewIndex",Zmienn
a);
Parametr
Opis
NazwaObiektu
Nazwa wizarda Na przykład ListBox_4.
Zmienna
Zmienna typu całkowitego zawierająca indeks
elementu ostatnio dodanego do pola listy lub listy
rozwijalnej. W przypadku pustych list pole = -1.
Uwagi
Pole to jest dostępne tylko w czasie pracy aplikacji.
Typ danych
Integer (tylko odczyt)
Zastosowanie
Listy i listy rozwijalne.
Przykład
Zamieszczona poniżej instrukcja odczytuje indeks elementu ostatnio
dodanego do listy o nazwie "ListBox_1" i przypisuje tę wartość do zmiennej
typu Memory Integer o nazwie "NewItemIndex."
GetPropertyI("ListBox_1.NewIndex",NewItemIndex);
Patrz również
GetPropertyI(), wcAddItem(), wcInsertItem(), .ListIndex, .TopIndex
Pole to powoduje przewinięcie obiektu wyświetlania alarmu o jedną stronę
ekranu w dół, w momencie , gdy wartość pola ulega zmianie z 1 na 0.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyD(“NazwaObiektu.NextPage”,Zmienn
a);
[ErrorNumber=]SetPropertyD("NazwaObiektu.NextPage",Warto
ś
ć
);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Nazwa zmiennej dyskretnej wykorzystywanej do
pamiętania wartości właściwości w momencie gdy
funkcja jest realizowana, stosowana jako
„Tagname" lub Tagname.Name.
Wartość
Wartość dyskretna, lub zmienna typu Discrete
przechowująca wartość do zapisu w momencie
wykonywania funkcji.
Uwagi
Zawsze, gdy wartość tego pola ulega zmianie z 1 na 0, obiekt do
wyświetlania alarmów wyświetli następną stronę na ekranie. Po
wyświetleniu tej strony wartość zmiennej zostaje automatycznie ustawiona na
1, chyba że osiągnięty został początek listy. W tym przypadku wartość
wynosi 0.
Typ danych
Discrete (odczyt/zapis)
Patrz również
GetPropertyD(), SetPropertyD(), .PrevPage, .PageNum, .TotalPages
Pola zmiennych
125
Opis funkcji, pól i zmiennych systemowych
.Normal
Wartość pola .Normal jest równa 1, jeżeli zmienna nie jest w stanie
alarmowym.
Kategoria
alarmy
Sposób użycia
Zmienna.Normal
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
albo zmienna typu Indirect Analog.
Uwagi
Pole to używane jest w skryptach lub połączeniach animacyjnych do
zasygnalizowania, że dana zmienna znajduje się w stanie "normalnym", tzn.
nie jest aktywny żaden alarm dla tej zmiennej. Jeśli dla zmiennej tej aktywny
jest jeden lub więcej alarmów, wartość tego pola jest ustawiana na 0.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Aktywny jest jeden lub więcej alarmów dla zmiennej.
1 = Brak aktywnych alarmów dla danej zmiennej (wartość domyślna).
Przykład(y)
Wyrażenia zawarte w poniższej instrukcji IF-THEN będą wykonywane,
jeżeli nie są aktywne żadne alarmy powiązane ze zmienną o nazwie Tag1.
Jeżeli dla zmiennej o nazwie Tag1 aktywny będzie jeden lub więcej alarmów,
wykonywana będzie część "ELSE" instrukcji:
IF (Tag1.Normal==1) THEN
MyOperatorMessage="Tag1 is OK - No alarms associated
with it";
ELSE
MyOperatorMessage="Tag1 has one or more alarms active!";
ENDIF;
Patrz również
.Alarm, .AlarmDev, .AlarmROC, .AlarmValue
126
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.NumAlarms
.OffMsg
Pole to zawiera informację o ilości alarmów w Obiekcie Alarmu
Rozproszonego.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.NumAlarms",Zmien
na);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Uwagi
Pole to przeznaczone jest tylko do odczytu i zawiera bieżącą liczbę alarmów
zarejestrowanych w alarmowaniu rozproszonym przez obiekt alarmowy o
podanej nazwie. Liczba ta obejmuje nie tylko alarmy wyświetlane, ale
wszystkie alarmy zarejestrowane.
Typ danych
Integer (tylko odczyt)
Przykład(y)
Instrukcja podana poniżej zwraca aktualną ilość alarmów obiektu
alarmowego AlmObj_1 do zmiennej typu Integer AlarmCount.
GetPropertyI("AlmObj_1.NumAlarms",AlarmCount);
Patrz również
GetPropertyI()
Pole .OffMsg umożliwia użytkownikowi odwoływanie się do pola tekstu
wyświetlanego przy stanie 0 dla zmiennej dyskretnej.
Kategoria
zmienna
Sposób użycia
Zmienna.OffMsg
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete.
Typ danych
Message (odczyt/zapis) Wartości wpisane do tego pola nie są zachowywane.
Zakres wartości
Dowolny łańcuch znaków zawierający od 0 do 15 znaków.
Przykład(y)
Jeżeli zmienna MyDiscrete ma wartość 0, zamieszczona poniżej instrukcja
spowoduje przypisanie łańcucha znaków zawartego w polu OffMsg zmiennej
MyDiscrete na liście zmiennych do zmiennej StateMessage.
StateMessage=Dtext (MyDiscrete, MyDiscrete.OnMsg,
MyDiscrete.OffMsg);
Patrz również
.OnMsg
Pola zmiennych
127
Opis funkcji, pól i zmiennych systemowych
.OnMsg
.PageNum
Pole .OnMsg umożliwia użytkownikowi odwoływanie się do pola tekstu
wyświetlanego przy stanie 1 dla zmiennej dyskretnej.
Kategoria
zmienna
Sposób użycia
Zmienna.OnMsg
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete.
Typ danych
Message (odczyt/zapis) Wartości wpisane do tego pola nie są zachowywane.
Zakres wartości
Dowolny łańcuch znaków zawierający od 0 do 15 znaków.
Przykład(y)
IF IndAnalog.OnMsg == "Running" THEN
TypeOfTag = "IndAnalog was assigned a Motor Starter";
ENDIF;
Patrz również
.OffMsg
Pole to zawiera numer strony aktualnie wyświetlanej w obiekcie alarmowym.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.PageNum",Zmienna
);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Uwagi
Pole to przeznaczone jest tylko do odczytu i zawiera numer strony aktualnie
wyświetlanej w obiekcie wyświetlania alarmów rozproszonych o określonej
nazwie.
Typ danych
Integer (tylko odczyt)
Przykład(y)
Instrukcja podana poniżej zwraca aktualny numer strony wykorzystywanej
przez obiekt alarmu rozproszonego AlmObj_1 do zmiennej typu Integer
AlarmPage.
GetPropertyI("AlmObj_1.PageNum",AlarmPage);
Patrz również
GetPropertyI(), .NextPage, .PrevPage, .TotalPages
128
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.Pen1-.Pen8
Pola te określają przyporządkowanie zmiennych do poszczególnych pisaków
na wykresie trendów historycznych.
Kategoria
dane historyczne
Sposób użycia
Zmienna{.Pen1 | .Pen2 | .Pen3 | .Pen4 | .Pen5 | .Pen6 |
.Pen7 | .Pen8};
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Ze względu na skomplikowane zasady wykorzystania pola .PenX zaleca się,
o ile to jest możliwe, stosowanie funkcji HTSetPenName i
HTGetPenName.
Uwaga Do pola .PenX można przypisywać wyłącznie zmienne lokalne. Nie
można korzystać ze składni, w której określane jest źródło zmiennej.
Składnia, w której podawane jest źródło zmiennej, może być stosowana
wyłącznie w przypadku funkcji HTSetPenName.
Dobrą metodą nauki korzystania z funkcji operujących na tych polach jest
analiza umieszczonego na ekranie, a następnie rozdzielonego na elementy
składowe wizarda trendów historycznych. Analiza taka umożliwia
zrozumienie w jaki sposób pola te powinny być wykorzystywane.
Typ danych
TagID (odczyt/zapis)
Zakres wartości
Typem danych obowiązującym w tym polu jest typ TagID. Oznacza to, że do
tego pola można przypisać "adres" zmiennej. Do pola tego nie można
przypisać nazwy zmiennej. Musi być przypisane wyłącznie pole .TagID
zmiennej. Pełne zrozumienie tego opisu może wymagać skorzystania z
informacji o polu .TagID. Ogólnie ujmując, zmienna typu TagID może być
porównywana wyłącznie z inną zmienną typu TagID. Nie można korzystać z
niej w połączeniu ze zmienną innego typu, chyba że do zmiennej innego typu
dodane zostanie pole .TagID.
Chociaż pole to przeznaczone jest do odczytu/ zapisu, jego wartość nie może
być bezpośrednio wyświetlona na ekranie.
Przykład(y)
Zamieszczone poniżej, przykładowe wyrażenie, przypisuje nową zmienną do
pola Pen1 trendu historycznego związanego ze zmienną typu Hist Trend o
nazwie MyHistTrendTag. Zamieszczona poniżej instrukcja skryptu Pen1
trendu historycznego powiązanego ze zmienną MyHistTrendTag rozpocznie
wyświetlanie danych archiwalnych zarejestrowanych dla zmiennej o nazwie
MyLoggedTag. Należy zwrócić uwagę w jaki sposób pole .TagID łączone
jest z nazwą zmiennej MyLoggedTag w celu przypisania jej do Pen1. Jest to
konieczne, ponieważ pole .Pen1 jest typu TagID a operacja przypisania
wymaga zgodności typów (tj. DiscreteTag = DiscreteTag, natomiast błędne
jest wyrażenie DiscreteTag = MessageTag), należy więc przypisać temu
polu obiekt typu TagID.
MyHistTrendTag.Pen1=MyLoggedTag.TagID;
Pola zmiennych
129
Opis funkcji, pól i zmiennych systemowych
Opierając się na powyższym przykładzie, rozważmy w jaki sposób można
wyświetlić NAZWĘ zmiennej przypisanej do MyHistTrendTag.Pen1.
Informacja taka byłaby bardzo użyteczna dla operatora. Dodatkowo,
wyświetlanie nazwy zmiennej rysowanej na trendzie historycznym zwiększa
funkcjonalność aplikacji. Pozornie, najłatwiejszym sposobem wyświetlenia
wartości wspomnianego pola MyHistTrendTag.Pen1 jest skorzystanie z
połączenia wyświetlającego, ale operacja taka (o czym można się przekonać
samodzielnie) nie daje przewidywanego wyniku. Powodem takiej sytuacji
jest fakt, że rzeczywista wartość pola .Pen1 jest typu całkowitego i zapisana
jest w pewnym obszarze pamięci programu WindowViewer, w formacie nie
nadającym się do bezpośredniego wyświetlania na ekranie. Rozwiązanie
wymaga nieco więcej pracy. Najpierw należy utworzyć nową zmienną typu
TagID, na przykład o nazwie Pen01. Poniżej instrukcji z poprzedniego
przykładu należy umieścić następującą instrukcję:
Pen01=MyHistTrendTag.Pen1;
W pierwszym przykładzie, zmienna MyLoggedTag została przypisana do
pola Pen1 zmiennej MyHistTrendTag. W niniejszym przykładzie,
zrealizowana została bardziej zaawansowana operacja, polegająca na
przypisaniu wartości Pen1 zmiennej MyHistTrendTag, obecnie równej
TagID zmiennej MyLoggedTag do zmiennej Pen01. Powodem takiego
działania jest potrzeba dotarcia do pola .Name. Nie można w prosty sposób
wyświetlić na ekranie MyHistTrendTag.Name, ponieważ pokazywany
będzie zawsze tekst MyHistTrendTag. Próba wyświetlenia na ekranie
MyHistTrendTag.Pen1 zakończy się niepowodzeniem ponieważ edytor
połączeń nie zezwoli na wyświetlenie Pen1 typu TagID. Konieczne jest więc
stworzenie zmiennej pomocniczej, stanowiącej połączenie pomiędzy
systemem wyświetlania a systemem historycznym. Przypisując wartość
MyHistTrendTag.Pen1 do zmiennej typu TagID o nazwie Pen01, w
rzeczywistości do zmiennej Pen01 przypisana została zmienna
MyLoggedTag. Przedstawione powyżej zadanie można również zrealizować
za pomocą pojedynczej instrukcji przedstawionej poniżej. Obydwa
rozwiązania są funkcjonalnie identyczne.
Pen01=MyLoggedTag.TagID;
130
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
Preferowane jest pierwsze z przedstawionych rozwiązań. Jest ono bardziej
naturalne. Dodatkowo, można po prostu umieścić MyHistTrendTag.Pen1
jako "zmienną" w skrypcie zmiany wartości w miejscu: Pen01 =
MyHistTrendTag.Pen1 Dzięki temu, nie wiedząc jak zmienna została
przypisana do Pen1, można ją przypisać do zmiennej Pen01. Pozwala to na
ustawiczne wyświetlanie na ekranie nazwy zmiennej przypisanej do pola
Pen1 trendu historycznego, nawet jeżeli zmienna zostanie zmieniona przez
użytkownika (poprzez kliknięcie na trendzie w WindowViewer) lub też przez
QuickScript wykonywany przez system.
Analizując głębiej ten przykład, można zażądać wyświetlenia maksymalnej i
minimalnej wartości, wyrażonych w jednostkach inżynierskich, dla
rysowanej zmiennej. Z możliwości tej korzysta wizard trendu historycznego.
Zalecamy umieszczenie na ekranie wizarda trendu historycznego, a następnie
rozdzielenie go i analizę sposobu w jaki został on zaprojektowany. Jest to
dobry przykład sposobu korzystania z tych pól.
Ponieważ zmienne typu TagID, jak na przykład Pen01, nie mają pól
podających wartość w jednostkach inżynierskich, jak również innych pól
zwykle dostępnych w zmiennych, nie można wykorzystać ich do
wyświetlania wartości zmiennej w jednostkach inżynierskich. Przykładowo,
nie jest możliwe wyświetlenie Pen01.MaxEu ponieważ edytor połączeń
poinformuje, że nie można odwoływać się do pola .MaxEU w przypadku
zmiennej Pen01, typu TagID.
W celu rozwiązania tego problemu, wystarczy skorzystać ze zmiennej
pomocniczej, której zadaniem jest zapewnienie łączności pomiędzy typem
TagID a systemem wyświetlania. Najpierw należy utworzyć zmienną typu
Indirect Analog, np. IndirectAnalogPen1. W takim samym skrypcie zmiany
wartości jak np. w przykładzie nr 2, wprowadzić następującą instrukcję:
IndirectAnalogPen1.Name=Pen01.Name;
Nazwa zmiennej Pen01 (w tym momencie równej MyLoggedTag) jest
przypisana do zmiennej typu pośredniego IndirectAnalogPen1. Jeżeli
zrealizowane zostaną te czynności, można odwoływać się do wszystkich pól
zmiennych dostępnych dla zmiennych analogowych, w naszym przypadku,
dla zmiennej typu całkowitego o nazwie MyLoggedTag. W tym momencie,
w połączeniu wyświetlającym wartości analogowe można wprowadzić:
IndirectAnalogPen1.MaxEU
Spowoduje to wyświetlenie maksymalnej wartości wyrażonej w jednostkach
inżynierskich dla zmiennej przypisanej w danej chwili do zmiennej
IndirectAnalogPen1. Ponieważ zostało do niej przypisane w skrypcie
zmiany wartości zamieszczonym powyżej pole Pen01.Name, można z całą
pewnością stwierdzić, że maksymalna wartość wyrażona w jednostkach
inżynierskich zmiennej jest w tym momencie przypisana do pola Pen1
zmiennej MyHistTrendTag.
Patrz również
.TagID, HTGetPenName( ), HTSetPenName( )
Pola zmiennych
131
Opis funkcji, pól i zmiennych systemowych
.PendingUpdates
Wskazuje, czy występują jakiekolwiek nie zakończone aktualizacje dla
Obiektu Alarmu Rozproszonego.
Kategoria
alarmy
Sposób użycia
[ErrorMessage=]GetPropertyI(“NazwaObiektu.PendingUpdates”
, Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Uwagi
Pole to jest tylko do odczytu i zawiera informację o niezakończonych
aktualizacjach dla obiektu wyświetlania alarmu rozproszonego o podanej
nazwie. Każda wartość większa niż zero wskazuje, że obiekt alarmu
rozproszonego ma nowe dane alarmowe. Wartość ta jest zerowana za każdym
razem, gdy obiekt jest ponownie rysowany.
Typ danych
Integer (tylko odczyt)
Przykład(y)
Zamieszczone poniżej wyrażenie zwraca do zmiennej typu Integer o nazwie
AlarmPendingUpdates informację, czy występują jakiekolwiek nie
zakończone aktualizacje dla obiektu wyświetlania alarmu rozproszonego o
nazwie "AlmObj_1”.
GetPropertyI(“AlmObj_1.PendingUpdates”,AlarmPendingUpdate
s);
Patrz również
GetProperty
132
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.PrevPage
Pole to powoduje przewinięcie obiektu wyświetlania alarmu rozproszonego o
jedną stronę ekranu w górę, w momencie , gdy wartość pola ulega zmianie z 1
na 0.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyD("NazwaObiektu.PrevPage",Zmienn
a);
[ErrorNumber=]SetPropertyD("NazwaObiektu.PrevPage",Warto
ś
ć
);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zdefiniowana zmienna programu InTouch (takiego
samego typu jak typ zwracany), przechowująca
wartość właściwości w momencie realizacji funkcji.
Wartość
Wartość dyskretna, lub zmienna typu Discrete
przechowująca wartość do zapisu w momencie
wykonywania funkcji.
Uwagi
Zawsze, gdy wartość tego pola ulega zmianie z 1 na 0, obiekt do
wyświetlania alarmów wyświetli poprzednią stronę na ekranie. Po
wyświetleniu poprzedniej strony wartość zmiennej zostaje automatycznie
ustawiona na 1, chyba że osiągnięty został początek listy. W takim przypadku
wartość ta pozostaje równa 0.
Typ danych
Discrete (odczyt/zapis)
Patrz również
GetPropertyD(), SetPropertyD(), .NextPage, .PageNum, .TotalPages
Pola zmiennych
133
Opis funkcji, pól i zmiennych systemowych
.PriFrom
.PriTo
Pole to zawiera wartość niższego priorytetu używaną przez bieżące
zapytanie.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.PriFrom",Zmienna
);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Uwagi
Pole to, tylko do odczytu, zawiera wartość minimalnego priorytetu
wykorzystywaną do filtrowania alarmów w oknie obiektu wyświetlania
alarmów rozproszonych.
Typ danych
Integer (tylko odczyt)
Przykład(y)
Zamieszczone poniżej wyrażenie ustawia wartość zmiennej typu Integer
MinPri na minimalną wartość priorytetu, wykorzystywaną przez obiekt
alarmów rozproszonych AlmObj_1.
GetPropertyI("AlmObj_1.PriFrom",MinPri);
Patrz również
GetPropertyI(), .PriTo, .AlarmPri
Pole to zawiera wartość górnego priorytetu używaną przez bieżące zapytanie.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.PriTo",Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Uwagi
Pole to, tylko do odczytu, zawiera górną wartość priorytetu wykorzystywaną
do filtrowania alarmów na oknie obiektu do wyświetlania alarmów
rozproszonych.
Typ danych
Integer (tylko odczyt)
Przykład(y)
Zamieszczone poniżej wyrażenie ustawia wartość zmiennej typu Integer
MaxPri na maksymalną wartość priorytetu, wykorzystywaną przez obiekt
alarmów rozproszonych AlmObj_1.
GetPropertyI("AlmObj_1.PriTo",MaxPri);
Patrz również
GetPropertyI(), .PriFrom, .AlarmPri
134
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.ProviderReq
.ProviderRet
Pole to zawiera łączną liczbę aplikacji uruchomionych na innych
komputerach, aktualnie odpytywanych pod kątem występowania alarmów.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.ProviderReq",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Uwagi
Pole to przeznaczone jest tylko do odczytu i zawiera łączną liczbę aplikacji
uruchomionych na innych komputerach, aktualnie odpytywanych pod kątem
występowania alarmów w obiektach alarmowania rozproszonego.
Typ danych
Integer (tylko odczyt)
Przykład(y)
Zamieszczona poniżej instrukcja zwraca liczbę dostawców alarmów
wymaganą przez bieżące zapytanie, wykorzystywaną przez obiekt
AlmObj_1. Wartość ta jest przypisywana zmiennej typu Integer TotalProv:
GetPropertyI("AlmObj_1.ProviderReq",TotalProv);
Patrz również
GetPropertyI(), .ProviderRet
Pole to zawiera liczbę aplikacji uruchomionych na innych komputerach, które
udzieliły odpowiedzi na pytanie o występowanie alarmów.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.ProviderRet",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Uwagi
Pole to przeznaczone jest tylko do odczytu i zawiera łączną liczbę aplikacji
uruchomionych na innych komputerach, które udzieliły odpowiedzi na
pytanie o występowanie alarmów w obiektach alarmowania rozproszonego.
Typ danych
Integer (tylko odczyt)
Przykład(y)
Zamieszczona poniżej instrukcja zwraca do obiektu alarmu rozproszonego
AlmObj_1, liczbę dostawców alarmów którzy pomyślnie przesłali
informacje o alarmach. Wartość ta jest przypisywana zmiennej typu Integer
RetProv:
GetPropertyI("AlmObj_1.ProviderRet",RetProv);
Patrz również
GetPropertyI(), .ProviderReq
Pola zmiennych
135
Opis funkcji, pól i zmiennych systemowych
.Quality
W celu pełnego zrozumienia właściwości pola .Quality wykorzystywanego w
pakiecie Wonderware, poniżej podano krótką definicję normy jakości. Norma
jakości Wonderware oparta jest na standardzie OLE for Process Control,
(OPC), który z kolei bazuje na normie Fieldbus Data Quality Specifications.
Flagi jakości reprezentują jakość wartości danych. Takie rozwiązanie
umożliwia zarówno aplikacjom serwera jak i klienta wyznaczenie żądanego
zakresu funkcjonalności do implementowania.
8 mniej znaczących bitów flagi Jakości składa się obecnie z trzech pól
bitowych: Quality, Substatus i Limit, o następującym układzie:
QQSSSSLL
Pole Quality udostępnia użytkownikowi informację o jakości zmiennej typu
I/O, w postaci dostarczonej przez program komunikacyjny.
Uwaga: W przypadku zakłóceń pracy programu komunikacyjnego, pola
związane z jakością zmiennej są automatycznie ustawiane na wartość 0.
Równocześnie wartość 0 przypisywana jest do flagi .ReferenceComplete.
Kategoria
zmienna
Sposób użycia
Zmienna.Quality
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
albo zmienna typu Indirect Message.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Wartość może należeć do przedziału od 0 do 255.
Przykład(y)
IF I0Tag.Quality <> 192 THEN
LogMessage("Dane nie s
ą
prawidłowe!");
ENDIF;
Program komunikacyjny Wonderware może sygnalizować sześć (6) wzajemnie
wykluczających się statusów jakości danych przesyłanych do klientów. Statusy
te są następujące:
Bajty jakości OPC
Bity jakości OPC
.QualityStatus
MSByte
LSByte
.QualitySubstatus
Statusy jakości
War. heks.
xxxxxxxx
QQSSSSLL
.QualityLimit
1. Dobry
0x00C0
00000000
00000000
Q=3
S=0
L=0
2. Obcięcie od
góry
0x0056
00000000
00000000
Q=1
S=5
L=2
3. Obcięcie od
dołu
0x0055
00000000
00000000
Q=1
S=5
L=1
4. Brak
możliwości
konwersji
0x0040
00000000
00000000
Q=1
S=0
L=0
136
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
5. Brak dostępu
0x0004
00000000
00000000
Q=0
S=1
L=0
6. Przerwana
komunikacja
0x0018
00000000
00000000
Q=0
S=6
L=0
Jeżeli aplikacja klienta nie może nawiązać łączności z programem
komunikacyjnym, wartość QualityStatus jest równa 0.
0x0000
00000000
00000000
Q=0
S=0
L=0
Poszczególne statusy jakości sygnalizowane są po spełnieniu następujących
warunków:
1. Dobry
Połączenie komunikacyjne zostało zweryfikowane.
Żądanie dostarczenia danych zostało odebrane pomyślnie przez sterownik PLC,
który w odpowiedzi wysłał poprawny pakiet informacji.
W trakcie operacji zapisu, o ile taka była realizowana, nie wystąpił błąd.
Nie wystąpiły żadne zakłócenia w czasie konwersji danych zawartych w
zwrotnym pakiecie danych.
Przykład
Zwrócona została wartość 0x0000A z rejestru zawierającego 10 (w postaci
decymalnej).
2. Obcięcie od
góry
Połączenie komunikacyjne zostało zweryfikowane.
Żądanie dostarczenia danych zostało odebrane pomyślnie przez sterownik PLC,
który w odpowiedzi wysłał poprawny pakiet informacji.
Operacja zapisu lub odczytu rejestru została pomyślnie zrealizowana.
Konieczne było zmniejszenie wartości, ponieważ przekroczono maksymalną,
górną wartość graniczną.
W przypadku łańcucha znaków oznacza to usunięcie części znaków.
Przykład
16 bitowa liczba całkowita jest zmniejszana do wartości 65535.
3. Obcięcie od
dołu
Połączenie komunikacyjne zostało zweryfikowane.
Żądanie dostarczenia danych zostało odebrane pomyślnie przez sterownik PLC,
który w odpowiedzi wysłał poprawny pakiet informacji.
Operacja zapisu lub odczytu rejestru została pomyślnie zrealizowana.
Konieczne było zwiększenie wartości, ponieważ przekroczono minimalną,
dolną wartość graniczną.
Przykład
16 bitowa liczba całkowita jest zmniejszana do wartości 0.
Pola zmiennych
137
Opis funkcji, pól i zmiennych systemowych
4. Brak
możliwości
konwersji
Połączenie komunikacyjne zostało zweryfikowane.
Żądanie dostarczenia danych zostało odebrane pomyślnie przez sterownik PLC,
który w odpowiedzi wysłał poprawny pakiet informacji.
Dostarczone przez sterownik PLC dane nie mogą zostać przekonwertowane na
żądany format.
Przyczynami zakłóceń w konwersji mogą być przykładowo:
Wysłanie przez program komunikacyjny stałej zamiast danych, lub wysłanie
wyłącznie informacji o jakości.
Nieprzydatność danych.
Brak informacji czy wartość jest zbyt duża, czy też zbyt mała.
Dostarczenie przez sterownik PLC niewłaściwego typu danych.
Nadesłanie liczby zmiennoprzecinkowej, ale nie wartości (przykładowo:
Przykład
Z rejestru BCD przetwornika PLC jest zwrócona wartości 0x000A.
5. Brak dostępu
Połączenie komunikacyjne zostało zweryfikowane.
Żądanie dostarczenia danych zostało odebrane pomyślnie przez sterownik PLC,
który w odpowiedzi wysłał poprawny pakiet informacji.
Ze sterownika PLC został wysłany komunikat, o braku dostępu do żądanej
wartości.
Przyczynami braku dostępu mogą być przykładowo:
Brak elementu w pamięci sterownika PLC.
Zablokowanie w danym momencie dostępu do elementu (na przykład przez
mechanizm wspólnego korzystania z zasobów).
Niewłaściwy format/ typ danych.
Podjęcie próby zapisu do elementu przeznaczonego wyłącznie do odczytu.
W większości przypadków, wystąpienie zakłóceń w stosunku do jednego
elementu ma wpływ na całą grupę elementów. Jest to spowodowane przez
schemat odczytu blokowego stosowany przez program komunikacyjny.
Przykładowo, jeżeli jeden z elementów w bloku złożonym z 10 elementów
będzie niepoprawny, cały blok zostanie zaznaczony przez sterownik PLC jako
niepoprawny. Zasygnalizowanie przez program komunikacyjny niewłaściwej
liczby elementów w bloku.
Nieużyteczność danych.
Przykład
Próba odczytu R40001, jeżeli R40001 nie jest zdefiniowane w mapie pamięci
PLC.
138
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.QualityLimit
6. Przerwana
komunikacja
Dowolna kombinacja następujących przyczyn:
Przerwanie transmisji danych.
Temat w trybie wolnej wymiany danych (lub w równoważnym trybie).
Brak połączenia do sprawdzenia poprawności komunikatów.
Brak zasobów w programie komunikacyjnym. Przykładowo, brak możliwości
alokowania pamięci przez program TSR (lub sterownik).
Brak zasobów w połączeniu komunikacyjnym.
Wyłączenie połączenia komunikacyjnego.
Wszystkie kanały komunikacyjne zajęte.
Brak możliwość wysłania poprzez sieć komunikatu do sterownika PLC.
Przykład
Próba odczytu danych z wyłączonego sterownika PLC.
Patrz również
.QualityLimit, .QualityStatus, .QualitySubstatus
Liczba całkowita wykorzystywana do wyświetlania wartości granicznych
jakości zmiennej typu I/O, dostarczanej przez program komunikacyjny przy
poprawnie funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.QualityLimit
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
albo zmienna typu Indirect Message.
Typ danych
Integer (tylko odczyt)
Zakres wartości
(LL)
0
Bez ograniczenia
1
Ograniczenie od dołu
2
Ograniczenie od góry
3
Stała
Patrz również
.Quality
Pola zmiennych
139
Opis funkcji, pól i zmiennych systemowych
.QualityLimitString
.QualityStatus
.QualityStatusString
Pole wykorzystywane do wyświetlania tekstowej wartości granicznej jakości
wartości zmiennej I/O, dostarczonej przez program komunikacyjny przy
poprawnie funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.QualityLimitString
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
albo zmienna typu Indirect Message.
Typ danych
Message (tylko odczyt)
Patrz również
.QualityLimit, .Quality
Liczba całkowita wykorzystywana do wyświetlania statusu jakości wartości
zmiennej I/O, dostarczonej przez program komunikacyjny przy poprawnie
funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.QualityStatus
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Analog lub Indirect Message.
Uwagi
Wartość pola bitowego podstatusu (QQ) zależy od wartości pola jakości
(QQSSSSLL).
Typ danych
Integer (tylko odczyt)
Zakres wartości
(QQ)
0
Zły
1
Niepewny
3
Dobry
Patrz również
.QualitySubStatus, .Quality
Pole wykorzystywane do wyświetlania tekstowej wartości statusu jakości
wartości zmiennej I/O, dostarczonej przez program komunikacyjny przy
poprawnie funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.QualityStatusString
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Analog lub Indirect Message.
Typ danych
Message (tylko odczyt)
Patrz również
.QualityStatus, .QualitySubStatus, .Quality
140
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.QualitySubstatus
Liczba całkowita wykorzystywana do wyświetlania wartości podstatusu
jakości zmiennej typu I/O, dostarczanej przez program komunikacyjny przy
poprawnie funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.QualitySubstatus
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
albo zmienna typu Indirect Message.
Typ danych
Integer (tylko odczyt)
Zakres wartości
(SSSS) i (QQ)
Podstatus (SSSS) w przypadku gdy jakość jest zła (QQ=0):
0
Nie określona
1
Błąd w konfiguracji
2
Brak połączenia
3
Uszkodzenie sprzętowe
4
Uszkodzenie czujnika
5
Ostatnio odebrana
wartość
6
Uszkodzenie portu
7
Wyłączenie
Podstatus (SSSS) w przypadku gdy jakość jest niepewna (QQ=1):
0
Nie określona
1
Ostatnio odebrana
wartość
4
Czujnik nie dokładny
5
Przekroczenie
Jednostek inżynierskich
6
Sub-normalnaREFSub
normal
Podstatus (SSSS) w przypadku gdy jakość jest Dobra (QQ=2):
0
Nie określona
6
Lokalne przepisanie
Patrz również
.QualityStatus, .Quality
Pola zmiennych
141
Opis funkcji, pól i zmiennych systemowych
.QualitySubstatusString
.QueryState
Pole wykorzystywane do wyświetlania podstatusu jakości wartości zmiennej
I/O, dostarczonej przez program komunikacyjny przy poprawnie
funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.QualitySubstatusString
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
albo zmienna typu Indirect Message.
Typ danych
Message (tylko odczyt)
Patrz również
.QualityStatus, .QualitySubstatus, .Quality
Pole to zawiera aktualny filtr obowiązujący przy pytaniu o alarmy.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.QueryState",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Uwagi
Pole to przeznaczone jest tylko do odczytu i zawiera aktualny filtr stosowany
przy zapytaniu o alarmy przez obiekt wyświetlania alarmów w alarmowaniu
rozproszonym.
Typ danych
Integer (tylko odczyt)
Zakres wartości
0 = Wszystkie alarmy
1 = Alarmy niepotwierdzone
2 = Alarmy potwierdzone
Przykład(y)
Instrukcja podana poniżej zwraca wartość zmiennej typu Integer
AlmQueryState na filtr bieżącego zapytana obiektu alarmu rozproszonego
"AlmObj_1".
GetPropertyI("AlmObj_1.QueryState",AlmQueryState);
Patrz również
GetPropertyI(), .QueryType
142
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.QueryType
Pole to definiuje aktualnie obowiązujący sposób pytania o alarmy.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.QueryType",Zmien
na);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Uwagi
Pole to przeznaczone jest tylko do odczytu i określa aktualnie obowiązujący
sposób pytania o alarmy przez obiekt wyświetlania alarmów w alarmowaniu
rozproszonym.
Typ danych
Integer (tylko odczyt)
Zakres wartości
1 = Historia alarmów
2 = Alarmy bieżące (aktywne)
Przykład(y)
Instrukcja podana poniżej zwraca typ zapytania obiektu alarmowego
"AlmObj_1" i zapisuje go w zmiennej typu Integer AlmQueryType:
GetPropertyI("AlmObj_1.QueryType",AlmQueryType);
Patrz również
GetPropertyI(), .QueryState
Pola zmiennych
143
Opis funkcji, pól i zmiennych systemowych
.RawValue
.ReadOnly
Rzeczywista wartość odczytana z programu komunikacyjnego przez program
WindowViewer pracujący jako klient. Pole wartości surowej pozwala
użytkownikowi na odczytanie wartości zmiennej I/O przed wyskalowaniem.
Kategoria
zmienna
Sposób użycia
Zmienna.RawValue
Parametr
Opis
Zmienna
Dowolna zmienna typu I/O Discrete, Indirect
Discrete, I/O Integer, Memory Real, Indirect
Analog, I/O Message i Indirect Message.
Uwagi
Pole przeznaczone wyłącznie do odczytu, wykorzystywane do wyświetlania
aktualnej wartości zmiennej dyskretnej lub analogowej typu I/O, przed jej
skalowaniem w programie InTouch.
Typ danych
Dowolny typ danych. Na przykład, wartości rzeczywiste dla zmiennych typu
Real, dyskretne dla zmiennych typu Discrete, itd (pole tylko do odczytu)
Zakres wartości
Wszędzie tam gdzie mogą być stosowane wartości dyskretne lub analogowe.
Przykład(y)
Zamieszczone poniżej wyrażenie umożliwia sprawdzenie czy zmienna nie
wyszła poza zakres normalnych wartości.
IF ((IOtag.RawValue > IOtag.MaxRaw) OR (IOTag.RawValue
IOTag.MinRaw))THEN
AlarmMessage = "Czujnik rozkalibrowany";
ENDIF;
Patrz również
.EngUnits, .MinEU, .MaxEU, .MinRaw, .MaxRaw
Określa, czy zawartość obiektu sterującego w postaci pola tekstowego ma być
przeznaczona tylko do odczytu, czy może dopuszczać również zapis.
Kategoria
obiekty sterujące Windows
Sposób użycia
[ErrorNumber=]GetPropertyD("NazwaObiektu.ReadOnly",
Zmienna);
Parametr
Opis
ControlName
Nazwa wizarda Na przykład, Textbox_1
Zmienna
Zmienna typu Discrete, w której zapisywana jest
wartość pola podczas wykonywania funkcji.
Uwagi
Pole to jest dostępne zarówno w czasie pracy aplikacji, jak i w czasie edycji
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Zawartość pola tekstowego umożliwia odczyt i zapis.
1 = Zawartość pola tekstowego jest przeznaczona tylko do odczytu.
Zastosowanie
Pola tekstu.
Przykład(y)
Poniższa instrukcja odczytuje status pola .ReadOnly obiektu "TextBox_1".
GetPropertyD( "TextBox_1.ReadOnly",A_Tagname );
Patrz również
GetPropertyD(), SetPropertyD()
144
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.Reference
.ReferenceComplete
Pole to pozwala operatorowi na dynamiczną zmianę nazwy dostępu i/lub
nazwy elementu w czasie pracy aplikacji.
Kategoria
zmienna
Sposób użycia
Zmienna.Reference
Parametr
Opis
Zmienna
Dowolna zmienna I/O lub zmienna pośrednia
(Indirect) przypisana do zmiennej I/O.
Uwagi
Pole to zapewnia łatwą metodę dynamicznej zmiany nazwy dostępu i/lub
nazwy elementu.
Typ danych
Message (odczyt/zapis)
Zakres wartości
Dowolny łańcuch znaków zawierający nazwę dostępu i/lub nazwę elementu.
Przykład(y)
Instrukcja podana poniżej przypisuje do pola z nazwą elementu zmiennej I/O
nazwę elementu wygenerowaną przez funkcję tekstową w zależności od
wartości zmiennej pamięciowej typu całkowitego. Instrukcja ta zastosowana
zostanie w skrypcie warunkowym, do wykonywania operacji na sekwencji
zmiennych, z wykorzystaniem do tego celu pola .ReferenceComplete.
MyIOTag.Reference="R" + Text( MyIndex, "#" );
{ If MyIndex=40001,w efekcie element b
ę
dzie miał warto
ść
:
R40001 }
ExcelTag.Reference="R"+Text(RowNum,"#")+"C"+Text
(ColNum, "#");
Zwraca potwierdzenie w przypadku zmiany pola .Reference gdy zmienna
odebrała wartość w polu .Value wynikającą z nowego adresu .Item.
Kategoria
zmienna
Sposób użycia
Zmienna.ReferenceComplete;
Parametr
Opis
Zmienna
Dowolna zmienna I/O lub zmienna pośrednia
(Indirect) przypisana do zmiennej I/O.
Uwagi
Pole to jest bardzo użyteczne w połączeniu z polem .Reference. Pole
.ReferenceComplete wskazuje, że nastąpiła modyfikacja nazwy elementu
lub nazwy dostępu, i co ważniejsze, że nowe wartości zostały uzyskane z
nowego źródła danych. Nawet jeżeli nowe źródło danych jest identyczne z
poprzednio wykorzystywanym źródłem danych, w momencie pierwszego
uaktualnienia wartości przez nowe źródło danych, pole to ustawiane jest
przez system na wartość 1.
W czasie procesu uaktualniania, od momentu zmodyfikowania pola
.Reference do momentu pierwszego uaktualnienia wartości przez nowe
źródło danych, system ustawia wartość tego pola na 0.
Typ danych
Discrete (tylko odczyt)
Pola zmiennych
145
Opis funkcji, pól i zmiennych systemowych
.ROCPct
.ROCSet
Pole to służy do monitorowania i/lub zmiany maksymalnej, dopuszczalnej
zmiany wartości zmiennej w jednostce czasu.
Kategoria
Alarmy
Sposób użycia
Zmienna.ROCPct
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Pole to zawiera wartość wyrażoną w procentach. Jego wartość jest równa
wartości odpowiedniego parametru, wprowadzonego w czasie definiowania
zmiennej na liście zmiennych. Użytkownik może wyświetlić wartość tego
pola lub wykorzystać ją w skrypcie. Ponadto wartość ta może zostać
zmieniona w czasie pracy aplikacji.
Typ danych
Integer (odczyt/zapis)
Zakres wartości
Od 0 do 100 %
Przykład(y)
Wyrażenie podane poniżej ustawia wartość pola Rate-of-Change dla
zmiennej MyTag na 25%.
MyTag.ROCPct=25;
Patrz również
.ROCStatus, .ROCSet
Zwraca wartość 0 (false) lub 1 (true) w zależności od tego, czy limit alarmu
szybkości zmiany dla zmiennej typu Analog został ustawiony w liście
zmiennych.
Kategoria
alarmy
Sposób użycia
Zmienna.ROCSet
Parametr
Opis
Zmienna
Dowolna zmienna typu Analog
Uwagi
Pole to może być użyte dla zmiennych Integer lub Real.
Typ danych
Discrete
Zakres wartości
1 (true) lub 0 (false)
Przykład
Przykładowa instrukcja zamieszczona poniżej może być wykorzystana w
analogowym połączeniu wyświetlającym do ustalenia, czy limit Szybkości
zmiany dla alarmu jest przypisany do zmiennej MyTag:
MyTag.ROCSet;
{Kiedy zwrócone zostanie 0, limit nie jest ustawiony ;
je
ż
eli zwrócone zostanie 1, limit jest ustawiony.}
Patrz również
.Alarm, .Ack, .LoLimit, .LoLoLimit, .HiHiLimit, .HiLimit, .HiSet, .LoSet,
.LoLoSet, .HiStatus, .HiHiStatus, .ROCPct, .ROCStatus
146
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.ROCStatus
Pole to określa, czy w systemie występuje alarm związany z szybkością zmian
wartości danej zmiennej (Rate of Change).
Kategoria
alarmy
Sposób użycia
Zmienna.ROCStatus
Parametr
Opis
Zmienna
Dowolna zmienna typu Integer lub Real, lub
zmienna typu Indirect Analog.
Uwagi
Wartość tego pola przeznaczonego wyłącznie do odczytu jest zwykle równa
0,a w przypadku wystąpienia alarmu typu prędkości zmiany dla danej
zmiennej zostaje zmieniona przez system na 1. Pole to ma wartość równą 1 do
czasu, gdy zniknie przyczyna alarmu.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Stan alarmowy nie występuje
1 = Stan alarmowy występuje
Przykład(y)
Wyrażenia zawarte w poniższej instrukcji IF-THEN będą wykonywane, gdy
pole .ROCStatus (alarm typu Prędkości Zmiany) dla zmiennej MyTag
będzie miało wartość ustawioną na 1.
IF (MyTag.ROCStatus == 1) THEN
OperatorMessage="MyTag has gone into a Rate-Of-Change-
Alarm";
ENDIF;
Uwagi
Pole to jest często używane w połączeniu z polami .Alarm oraz .Ack, w celu
określenia dokładnej przyczyny generowania alarmu dla danej zmiennej.
Patrz również
.ROCPct, .ROCSet
Pola zmiennych
147
Opis funkcji, pól i zmiennych systemowych
.ScooterLockLeft
.ScooterLockRight
Przypisanie do tego pola wartości 1 (True) uniemożliwi przesunięcie prawego
suwaka na trendzie historycznym poza aktualne położenie lewego suwaka.
Kategoria
dane historyczne
Sposób użycia
Zmienna.ScooterLockLeft
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Ogólnie ujmując, należy zapobiegać temu, aby operator miał możliwość
przesunięcia prawego suwaka w lewo, poza pozycję zajmowaną przez lewy
suwak. Jeżeli lewy suwak nie jest zablokowany, w momencie gdy prawy
suwak zostanie przesunięty w lewo poza pozycję zajmowaną przez lewy
suwak, ich pozycje będą równe.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = False = prawy suwak może zostać przesunięty poza lewy suwak.
1 = True = prawy suwak nie może zostać przesunięty poza lewy suwak.
Przykład(y)
Po wykonaniu zamieszczonej poniżej instrukcji, prawy suwak związany ze
zmienną typu HistTrendTag o nazwie MyHistTrendTag nie będzie mógł
być przesunięty za pozycję zajmowaną przez lewy suwak.
MyHistTrendTag.ScooterLockLeft=1;
Patrz również
.ScooterPosRight, .ScooterPosLeft, .ScooterLockRight
Przypisanie do tego pola wartości 1 (True) uniemożliwi przesunięcie lewego
suwaka na wykresie trendu historycznego poza aktualne położenie prawego
suwaka.
Kategoria
dane historyczne
Sposób użycia
Zmienna.ScooterLockRight
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Ogólnie ujmując, należy zapobiegać temu, aby operator miał możliwość
przesunięcia lewego suwaka w prawo, poza pozycję zajmowaną przez prawy
suwak. Jeżeli prawy suwak nie jest zablokowany, w momencie gdy lewy
suwak zostanie przesunięty w prawo poza pozycję zajmowaną przez prawy
suwak, ich pozycje będą równe.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = False = lewy suwak może zostać przesunięty poza prawy suwak
1 = True = lewy suwak nie może zostać przesunięty poza prawy suwak
Przykład(y)
Po wykonaniu zamieszczonej poniżej instrukcji, lewy suwak związany ze
zmienną typu HistTrendTag o nazwie MyHistTrendTag nie będzie mógł
być przesunięty za pozycję zajmowaną przez prawy suwak.
MyHistTrendTag.ScooterLockRight=1;
Patrz również
.ScooterPosRight, .ScooterPosLeft, .ScooterLockLeft
148
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.ScooterPosLeft
Pole to umożliwia odczyt i/lub zmianę położenia lewego suwaka na wykresie
trendu historycznego.
Kategoria
dane historyczne
Sposób użycia
Zmienna.ScooterPosLeft
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Pole to, przeznaczone do odczytu i zapisu, dynamicznie steruje położeniem
lewego suwaka na wykresie trendu historycznego. Pole to można
wykorzystać w funkcji QuickScript do odczytania bieżącej pozycji lewego
suwaka, albo też do przestawienia suwaka w inne położenie na wykresie,
poprzez wpisanie zadanej wartości do tego pola.
Pole to jest wykorzystywane najczęściej w połączeniu z funkcją
HTGetValue(). W przypadku korzystania z tego typu funkcji należy określić
do którego trendu historycznego mają być wysyłane zapytania, jak również
należy podać bieżące pozycje suwaków.
Typ danych
Real (odczyt/zapis)
Zakres wartości
0.0
do 1.0; gdzie 0.0 odpowiada lewemu krańcowi wykresu trendu
historycznego, natomiast 1.0 odpowiada prawemu krańcowi tego wykresu.
Przykład(y)
Podana poniżej instrukcja dokonuje przesunięcia lewego suwaka do nowej
lokacji. Lewy suwak zostanie przesunięty o 34% całkowitej długości
wykresu związanego ze zmienną typu HistTrendTag o nazwie
MyHistTrendTag, licząc od lewej strony.
MyHistTrendTag.ScooterPosLeft=.34;
W zamieszczonym poniżej QuickScript, funkcja HtGetValueAtScooter()
została wykorzystana do odczytu wartości wskazywanej przez pisak Pen1 w
miejscu, w którym znajduje się lewy suwak. Ponieważ zmiana każdego z
parametrów funkcji powoduje ponowne wyznaczenie wartości funkcji,
instrukcja ta wykonywana jest po każdej zmianie pozycji lewego suwaka.
MyRealTag=HTGetValueAtScooter
(MyHistTrendTag,MyHistTrendTag.UpdateCount,1,
MyHistTrendTag.ScooterPosLeft,1,"PenValue");
Patrz również
.ScooterPosRight, .ScooterLockLeft, .ScooterLockRight
Pola zmiennych
149
Opis funkcji, pól i zmiennych systemowych
.ScooterPosRight
Pole to umożliwia odczyt i/lub zmianę położenia prawego suwaka na
wykresie trendu historycznego.
Kategoria
dane historyczne
Sposób użycia
Zmienna.ScooterPosRight
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Pole to, przeznaczone do odczytu i zapisu, dynamicznie steruje położeniem
prawego suwaka na wykresie trendu historycznego. Pole to można
wykorzystać w funkcji QuickScript do odczytania bieżącej pozycji prawego
suwaka, albo też do przestawienia suwaka w inne położenie na wykresie,
poprzez wpisanie zadanej wartości do tego pola.
Pole to jest wykorzystywane najczęściej w połączeniu z funkcją
HTGetValue(). W przypadku korzystania z tego typu funkcji należy określić
do którego trendu historycznego mają być wysyłane zapytania, jak również
należy podać bieżące pozycje suwaków. Patrz przykład poniżej.
Typ danych
Real (odczyt/zapis)
Zakres wartości
0.0
do 1.0; gdzie 0.0 odpowiada prawemu krańcowi wykresu trendu
historycznego, natomiast 1.0 odpowiada lewemu krańcowi tego wykresu.
Przykład(y)
Podana poniżej instrukcja dokonuje przesunięcia prawego suwaka do nowej
lokacji. Prawy suwak zostanie przesunięty o 34% całkowitej długości
wykresu związanego ze zmienną typu HistTrendTag o nazwie
MyHistTrendTag, licząc od prawej strony.
MyHistTrendTag.ScooterPosRight=.34;
W zamieszczonym poniżej QuickScript, funkcja HtGetValueAtScooter()
została wykorzystana do odczytu wartości wskazywanej przez pisak Pen1 w
miejscu, w którym znajduje się prawy suwak. Ponieważ zmiana każdego z
parametrów funkcji powoduje ponowne wyznaczenie wartości funkcji,
instrukcja ta będzie wykonywana po każdej zmianie pozycji prawego suwaka.
MyRealTag=HTGetValueAtScooter
(MyHistTrendTag,MyHistTrendTag.UpdateCount,2,
MyHistTrendTag.ScooterPosRight,1,"PenValue");
Patrz również
.ScooterPosLeft, .ScooterLockLeft, .ScooterLockRight
150
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.Successful
.SuppressRetain
Pole to dostarcza informacji na temat przebiegu zapytania o alarmy.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyD("NazwaObiektu.Successful",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Discrete, w której zapisywana jest
wartość pola podczas wykonywania funkcji.
Uwagi
Pole to przeznaczone jest tylko do odczytu i dostarcza informacji na temat
przebiegu zapytania o alarmy wysłanego przez obiekt wyświetlania alarmów
rozproszonych o określonej nazwie.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Błąd
1 = Odpytywanie wykonane
Przykład(y)
Zamieszona poniżej instrukcja zwraca wartość statusu wykonania ostatniego
zapytania obiektu "AlmObj_1" i umieszcza ją w zmiennej AlmFlag:
GetPropertyD("AlmObj_1.Successful",AlmFlag);
Patrz również
GetPropertyD()
Pole umożliwia odczyt/zapis statusu wstrzymywania wyświetlania alarmów
obiektu alarmów rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyD(“NazwaObiektu.SuppressRetain”,
Zmienna”);
[ErrorNumber=]SetPropertyD(“NazwaObiektu.SuppressRetain”,
Zmienna”);
Parametr
Opis
NazwaObiektu
Nazwa Obiektu Alarmu Rozproszonego
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Discrete, w której zapisywana jest
wartość pola podczas wykonywania funkcji.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Wstrzymanie wyłączone (OFF)
1 = Wstrzymanie włączone (ON)
Przykład(y)
Zamieszczona poniżej instrukcja ustawia status wstrzymywania wyświetlania
alarmów dla obiektu “AlmObj_1” dla zmiennej typu Discrete o nazwie
SupRtn:
SetPropertyD(“AlmObj_1.SuppressRetain”, SupRtn);
Patrz również
GetPropertyD(), SetProperty()
Pola zmiennych
151
Opis funkcji, pól i zmiennych systemowych
.TagID
.TimeDate
.TimeDateString
Pole jest używane w połączeniu ze polami .Pen1-.Pen8 zmiennych trendu
historycznego do monitorowania i kontrolowania zmiennych, których
przebiegi są rysowane przez pisaki na wykresie trendu historycznego.
Kategoria
zmienna
Sposób użycia
Zmienna.TagID
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Intege, Real,
Indirect Discrete lub Indirect Analog.
Uwagi
Pole .TagID zawiera adres zmiennej, wykorzystywane jest głównie w
kontekście przypisywania zmiennych do pisaków w trakcie rysowania trendu
historycznego.
Typ danych
TagID (tylko odczyt)
Przykład(y)
MyHistTrendTag.Pen6=SomeAnalogTag.TagID;
Patrz również
.Pen1-.Pen8
Pole typu całkowitego, zawierające liczbę dni, które upłynęły od momentu
dostarczenia wartości typu I/O przez program komunikacyjny, przy
poprawnie funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeDate
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Message lub Indirect Analog.
Typ danych
Integer (tylko odczyt)
Patrz również
.TimeDateString, .TimeDay, .TimeDateTime, .TimeHour, .TimeMinute,
.TimeMsec, .TimeMonth, .TimeSecond, .TimeTime, .TimeTimeString,
.TimeYear
Zmienna tekstowa zawierająca datę w formacie określonym w rejestrze.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeDateString
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Message lub Indirect Analog.
Typ danych
Message (tylko odczyt)
Patrz również
.TimeDate, .TimeDay, .TimeDateTime, .TimeHour, .TimeMinute,
.TimeMsec, .TimeMonth, .TimeSecond, .TimeTime, .TimeTimeString,
.TimeYear
152
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.TimeDateTime
.TimeDay
.TimeHour
Pole typu liczba zmiennoprzecinkowa, zawierające resztę ułamkową z liczby
dni, które upłynęły od momentu dostarczenia wartości typu I/O przez
program komunikacyjny, przy poprawnie funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeDateTime
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Message lub Indirect Analog.
Typ danych
Real (tylko odczyt)
Patrz również
.TimeDate, .TimeDateString, .TimeDay, .TimeHour, .TimeMinute,
.TimeMsec, .TimeMonth, .TimeSecond, .TimeTime, .TimeTimeString,
.TimeYear
Pole typu całkowitego, zawierające dzień, w którym wartość I/O została dos-
tarczona przez program komunikacyjny, przy poprawnym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeDay
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Message lub Indirect Analog.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Z przedziału 1 - 31.
Patrz również
.TimeDate, .TimeDateString, .TimeDateTime, .TimeHour, .TimeMinute,
.TimeMsec, .TimeMonth, .TimeSecond, .TimeTime, .TimeTimeString,
.TimeYear
Pole typu całkowitego, zawierające liczbę godzin, które upłynęły od
momentu dostarczenia wartości typu I/O przez program komunikacyjny, przy
poprawnie funkcjonującym połączeniu I/O.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeHour
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Message lub Indirect Analog.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Z przedziału 0 -23.
Patrz również
.TimeDate, .TimeDateString, .TimeDay, .TimeDateTime, .TimeMinute,
.TimeMsec, .TimeMonth, .TimeSecond, .TimeTime, .TimeTimeString,
.TimeYear
Pola zmiennych
153
Opis funkcji, pól i zmiennych systemowych
.TimeMinute
.TimeMonth
.TimeMsec
Pole typu całkowitego, zawierające minutę, w której wartość typu I/O została
dostarczona przez program komunikacyjny, przy poprawnym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeMinute
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Message lub Indirect Analog.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Z przedziału 0 -59.
Patrz również
.TimeDate, .TimeDateString, .TimeDay, .TimeDateTime, .TimeHour,
.TimeMsec, .TimeMonth, .TimeSecond, .TimeTime, .TimeTimeString,
.TimeYear
Pole typu całkowitego, zawierające miesiąc, w którym wartość typu I/O
została dostarczona przez program komunikacyjny, przy poprawnie
funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeMonth
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Message lub Indirect Analog.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Z przedziału 1 -12.
Patrz również
.TimeDate, .TimeDateString, .TimeDay, .TimeDateTime, .TimeHour,
.TimeMinute, .TimeMsec, .TimeSecond, .TimeTime, .TimeTimeString,
.TimeYear
Pole typu całkowitego, zawierające liczbę milisekund, w momencie gdy
wartość typu I/O została dostarczona przez program komunikacyjny, przy
poprawnie funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeMsec
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Message lub Indirect Analog.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Z przedziału 0 -999.
Patrz również
.TimeDate, .TimeDateString, .TimeDay, .TimeDateTime, .TimeHour,
.TimeMinute, .TimeMonth, .TimeSecond, .TimeTime, .TimeTimeString,
.TimeYear
154
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.TimeSecond
.TimeTime
.TimeTimeString
Pole typu całkowitego, zawierające liczbę sekund, w momencie gdy wartość
typu I/O została dostarczona przez program komunikacyjny, przy poprawnie
funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeSecond
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer, Real,
Indirect Message lub Indirect Analog.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Z przedziału 0 -59.
Patrz również
.TimeDate, .TimeDateString, .TimeDay, .TimeDateTime, .TimeHour,
.TimeMinute, .TimeMsec, .TimeMonth, .TimeTime, .TimeTimeString,
.TimeYear
Pole typu całkowitego, zawierające liczbę milisekund (od północy), w
momencie gdy wartość typu I/O została dostarczona przez program
komunikacyjny, przy poprawnie funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeTime
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
albo zmienna typu Indirect Message.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Z przedziału 0 -86399999.
Patrz również
.TimeDate, .TimeDateString, .TimeDay, .TimeDateTime, .TimeHour,
.TimeMinute, .TimeMsec, .TimeMonth, .TimeSecond, .TimeTimeString,
.TimeYear
Pole typu tekstowego zawierające godzinę i datę dostarczania przez program
komunikacyjny wartości zmiennej typu I/O, przy poprawnym połączeniu.
Kategoria
Zmienna
Sposób użycia
Zmienna.TimeTimeString
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
albo zmienna typu Indirect Message.
Typ danych
Message (tylko odczyt)
Patrz również
.TimeDate, .TimeDateString, .TimeDay, .TimeDateTime, .TimeHour,
.TimeMinute, .TimeMsec, .TimeMonth, .TimeSecond, .TimeTime,
.TimeYear
Pola zmiennych
155
Opis funkcji, pól i zmiennych systemowych
.TimeYear
.TopIndex
Pole typu całkowitego, zawierające rok zapisany w postaci czterech cyfr, w
którym wartość zmiennej typu I/O została dostarczona przez program
komunikacyjny, przy poprawnie funkcjonującym połączeniu.
Kategoria
zmienna
Sposób użycia
Zmienna.TimeTime
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
albo zmienna typu Indirect Message.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Dowolny rok w formacie ####. Przykładowo 1998.
Patrz również
.TimeDate, .TimeDateString, .TimeDay, .TimeDateTime, .TimeHour,
.TimeMinute, .TimeMsec, .TimeMonth, .TimeSecond, .TimeTime,
.TimeTimeString
Pole to zawiera odpowiedni indeks (zmienną lub liczbę całkowitą)
pierwszego od góry elementu w polu listy.
Kategoria
obiekty sterujące Windows
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.TopIndex",
Zmienna);
[ErrorNumber=]SetPropertyI("NazwaObiektu.TopIndex",
Warto
ść
);
Parametr
Opis
NazwaObiektu
Nazwa wizarda Na przykład ListBox_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Wartość
Liczba definiująca pierwszy od góry element w
polu listy.
Uwagi
Pole to jest dostępne tylko w czasie pracy aplikacji.
Typ danych
Integer (odczyt/zapis)
Zastosowanie
Pola listy.
Przykład(y)
Zamieszczona poniżej instrukcja ustawia wartość pola .TopIndex obiektu o
nazwie "ListBox_1" na wartość 14:
SetPropertyI( "ListBox_1.TopIndex",14 );
Patrz również
GetPropertyI(), SetPropertyI(), .ListIndex, .NewIndex
156
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.TotalPages
Pole to zawiera łączną liczbę stron (wypełnionych alarmami) w obiekcie
alarmów rozproszonych.
Kategoria
alarmy
Sposób użycia
[ErrorNumber=]GetPropertyI("NazwaObiektu.TotalPages",
Zmienna);
Parametr
Opis
NazwaObiektu
Nazwa obiektu alarmów rozproszonych
Przykładowo, AlmObj_1.
Zmienna
Zmienna typu Integer, przechowująca wartość
właściwości w momencie realizacji funkcji.
Uwagi
Pole to przeznaczone jest tylko do odczytu i zawiera całkowitą liczbę stron z
alarmami w obiekcie wyświetlania alarmów rozproszonych o podanej
nazwie.
Typ danych
Integer (tylko odczyt)
Przykład(y)
Pole to ustawia wartość zmiennej typu Integer AlmTotalPage na sumaryczną
liczbę stron w obiekcie alarmu rozproszonego "AlmObj_1".
GetPropertyI("AlmObj_1.TotalPages",AlmTotalPages);
Patrz również
GetPropertyI(), .NextPage, .PrevPage, .PageNum
Pola zmiennych
157
Opis funkcji, pól i zmiennych systemowych
.UnAck
Pole to umożliwia potwierdzanie alarmów lokalnych.
Kategoria
alarmy
Sposób użycia
Zmienna.UnAck=0
Parametr
Opis
Zmienna
Dowolna zmienna typu Discrete, Integer lub Real,
zmienna Indirect Analog lub Grupa Alarmowa.
Uwagi
Przypisanie temu polu zmiennej wartości 0 powoduje zatwierdzenie
wszystkich aktywnych alarmów, związanych z daną zmienną lub grupą. Jeśli
podana zmienna jest grupą alarmową, wszystkie nie potwierdzone alarmy
związane ze zmiennymi wchodzącymi w skład określonej grupy zostają
potwierdzone. W przypadku gdy zmienna jest innego typu, zatwierdzony
zostanie tylko niezatwierdzony alarm związany ze zmienną. Ustawienie tego
pola na wartość inną niż 0 nie ma żadnego znaczenia, a wynik takiej operacji
jest nieokreślony.
Typ danych
Discrete (tylko do odczytu/zerowania)
Zakres wartości
0
Przykład(y)
Podane poniżej wyrażenie powoduje zatwierdzenie dowolnego alarmu
związanego ze zmienną o nazwie Tag1.
Tag1.Unack=0;
Podane poniżej polecenie służy do zatwierdzenia wszystkich nie
zatwierdzonych alarmów w obrębie grupy alarmowej o nazwie
PumpStation.
PumpStation.UnAck = 0;
Uwaga: Polem o wartości przeciwnej do .Ack jest pole .UnAck. Kiedy
alarm zostanie zatwierdzony, pole .Ack ustawiane jest na wartość 1.
Patrz również
.Ack, Ack(), .Alarm, .AlarmAckModel
158
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.UpdateCount
Wartość tego pola jest zwiększana o 1 każdorazowo, gdy następuje
aktualizacja trendu historycznego związanego z daną zmienną.
Kategoria
dane historyczne
Sposób użycia
Zmienna.UpdateCount
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Pole to jest powiązane bezpośrednio z systemem odczytu danych
historycznych. Każdorazowo, gdy program InTouch zażąda danych dla
trendu historycznego związanego z określoną zmienną typu Hist Trend,
żądane dane zostają odczytane z dysku przez system odczytu danych
historycznych. Po zakończeniu procesu odczytu danych, wartość tego pola
jest zwiększana o 1. Pole .UpdateCount jest używane w wielu wywołaniach
funkcji związanych z trendami historycznymi do rozpoczęcia uaktualniania
wyników przeprowadzonych wcześniej obliczeń.
Typ danych
Integer (tylko odczyt)
Zakres wartości
Dowolna dodatnia liczba całkowita.
Przykład(y)
W zamieszczonym poniżej skrypcie, funkcja HtGetValueAtScooter()
została wykorzystana do odczytu wartości wskazywanej przez pisak Pen1 w
miejscu, w którym znajduje się prawy suwak. Ponieważ zmiana jednego z
parametrów funkcji powoduje ponowne wyznaczenie wartości funkcji,
każdorazowo po aktualizacji danych (po odczycie tych danych z dysku) i
zwiększeniu wartości pola .UpdateCount o 1, wartość poniższej funkcji jest
wyznaczana na nowo.
MyRealTag=HTGetValueAtScooter
(MyHistTrendTag,MyHistTrendTag.UpdateCount,2,
MyHistTrendTag.ScooterPosRight,1,"PenValue");
Patrz również
.UpdateInProgress, .UpdateTrend
Pola zmiennych
159
Opis funkcji, pól i zmiennych systemowych
.UpdateInProgress
Wartość tego pola jest równa 1 podczas odczytu danych historycznych; jeżeli
operacja ta nie jest realizowana, wartość jest równa 0.
Kategoria
dane historyczne
Sposób użycia
Zmienna.UpdateInProgress
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Pole to jest powiązane bezpośrednio z systemem odczytu danych
historycznych. Każdorazowo, gdy program InTouch zażąda danych dla
trendu historycznego związanego z określoną zmienną typu Hist Trend,
żądane dane zostają odczytane z dysku przez system odczytu danych
historycznych. W czasie procesu odczytywania danych z dysku, wartość tego
pola zostaje ustawiona na 1. Po zakończeniu odczytu danych, pole
.UpdateInProgress jest ustawiane na 0. Pole .UpdateInProgress jest
używane w wielu funkcjach związanych z danymi trendów historycznych.
Większość trendów historycznych wyświetlanych na ekranie jest wyposażona
w mechanizm, używany przez operatora do przewijania wyświetlanych
danych. Podczas przeglądania trendu przez operatora system odczytu
danych historycznych sprawdza, czy dane wyświetlane na ekranie są
aktualne. Jeśli operator przewinie trend na fragment, który nie jest
wyświetlany na ekranie w danej chwili, ani nie znajduje się w pamięci,
system odczytu danych historycznych pobiera żądane dane z dysku.
Ponieważ proces ten wymaga pewnego czasu, system umożliwia
projektantowi obiektu trendu historycznego poinformowanie operatora o
trwającym odczycie danych z dysku. Bez tego typu informacji operator może
nie być świadomy tego, że system wykonuje wydane polecenie.
Typ danych
Discrete (tylko odczyt)
Zakres wartości
0 = Operacja aktualizacji nie jest w tym momencie realizowana.
1 = Operacja aktualizacji jest w trakcie realizacji.
Przykład(y)
Instrukcja zamieszczona poniżej jest powszechnie używana jako wyrażenie w
połączeniu animacyjnym dla obiektu tekstowego, lub na przycisku
przewijania wykresu trendu historycznego. W momencie gdy moduł
prezentacji danych historycznych odczytuje wymagane dane, wyrażenie to
ma wartość 1. W momencie, gdy trend historyczny zostanie zaktualizowany,
wyrażeniu zostanie przypisana wartość 0.
MyHistTrendTag.UpdateInProgress
Patrz również
.UpdateCount, .UpdateTrend
160
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.UpdateTrend
.Value
Pole to umożliwia aktualizację wykresu trendu historycznego.
Kategoria
dane historyczne
Sposób użycia
Zmienna.UpdateTrend
Parametr
Opis
Zmienna
Dowolna zmienna typu Hist Trend.
Uwagi
Trendy historyczne nie są uaktualniane automatycznie. Aby uaktualnić i
wyświetlić wartości określonych zmiennych, musi zostać zmieniony punkt
początkowy wykresu lub jego długość. Jeżeli pole to zostanie przypisane do
przycisku skryptu typu QuickScript, operator może uaktualnić wykres w
dowolnym momencie w czasie pracy. Pole to można również zastosować w
skrypcie, jeśli inne pola związane ze zmienną trendu historycznego ulegają
zmianom. Zapewni to wyświetlenie zaktualizowanego trendu. Przypisanie
omawianemu polu wartości różnej od 1 nie ma żadnego znaczenia, a wynik
takiej operacji jest nieokreślony. Ustawienie tego pola na wartość inną niż 1
nie ma żadnego znaczenia, a wynik takiej operacji jest nieokreślony.
Typ danych
Discrete (tylko zapis)
Zakres wartości
1
Przykład(y)
Instrukcja zamieszczona poniżej powoduje uaktualnienie trendu
historycznego związanego ze zmienną typu HistTrendTag o nazwie
MyHistTrendTag.
MyHistTrendTag.UpdateTrend=1;
Pole to zawiera wartość danej zmiennej. Jest to również domyślne pole dla
każdej zmiennej programu InTouch. Jeśli nie jest użyte inne pole, zakłada się,
że użytkownik posługuje się tym polem.
Kategoria
zmienna
Sposób użycia
Zmienna.Value
Parametr
Opis
Zmienna
Dowolna zmienna za wyjątkiem zmiennych typu
HistTrend.
Uwagi
Jest to domyślne pole dla każdej zmiennej programu InTouch. Jeśli nie jest
użyte inne pole, zakłada się, że użytkownik posługuje się tym polem. Rzadko
występuje konieczność korzystania z tego pola. Jednakże, w niektórych
przypadkach pole to umożliwia jaśniejszy zapis wyników obliczeń lub
parametrów.
Typ danych
Zależy od typu zmiennej (odczyt/ zapis).
Przykład(y)
Instrukcja zamieszczona poniżej ustawia wartość zmiennej typu Memory
Integer o nazwie MyTag na wartość 100:
Tagname.Value=100;
Wyrażenie to jest funkcjonalnie identyczne z:
Tagname=100;
Pola zmiennych
161
Opis funkcji, pól i zmiennych systemowych
.Value
Domyślna właściwość dla wszystkich wizardów obiektów sterujących
Windows. Zmiany tej właściwości zsynchronizowane są z zmiennymi
InTouch, oraz z wizardami obiektów sterujących Windows.
Kategoria
obiekty sterujące Windows
Sposób użycia
[ErrorNumber=]GetPropertyM("NazwaObiektu[.Value]",Zmienna
);
[ErrorNumber=]SetPropertyM("NazwaObiektu[.Value]",
Warto
ść
);
[ErrorNumber=]GetPropertyI("NazwaObiektu[.Value]",Zmienna
);
[ErrorNumber=]SetPropertyI("NazwaObiektu[.Value]",Warto
ść
);
[ErrorNumber=]GetPropertyD("NazwaObiektu[.Value]",Zmienna
);
[ErrorNumber=]SetPropertyD("NazwaObiektu[.Value]",Warto
ść
);
Uwaga Wartość początkowa zmiennej powiązanej z polami listy, lub listą
rozwijalną nie może być wykorzystana do inicjalizowania wartości tych pól
listy lub listy rozwijalnej.
Parametr
Opis
NazwaObiektu
Nazwa obiektu sterującego okna, np. ChkBox_4.
Zmienna
Zdefiniowana zmienna zawierająca liczbę
elementów na liście.
[.Value]
Właściwość ta jest opcjonalna. Jeżeli jej wartość nie
zostanie określona, funkcja będzie domyślnie
przyjmować, że wykorzystywane jest pole .Value.
Wartość
Aktualna wartość do zapisania lub zdefiniowana
zmienna (takiego samego typu jak właściwość do
zapisania), przechowująca wartość właściwości do
zapisania w momencie wykonywania funkcji.
Uwagi
Pole to umożliwia zapis i odczyt zarówno w czasie pracy aplikacji, jak i w
czasie jej edycji. Jeśli pole .Value jest wykorzystywane w związku z polem
listy (List box) lub listą rozwijalną (Combo box), umożliwia tylko odczyt.
Jeśli pole .Value jest wykorzystywane w połączeniu z polem wyboru, polem
wyboru wykluczającego lub polem tekstowym, można zarówno odczytywać
jak również zmieniać jego wartość. Wartość wprowadzona w trakcie edycji
aplikacji, przyjmowana jest jako wartość domyślna w trakcie pracy aplikacji.
Typ danych
Message (zapis/ odczyt) dla pól tekstowych, pól listy i list rozwijalnych.
Integer (zapis/ odczyt) dla pól wyboru wykluczającego.
Discrete (zapis/ odczyt) dla pól wyboru.
Zastosowanie
Pola tekstowe , pola list , listy rozwijane , pola wyboru i pola wyboru
wykluczającego .
Przykład(y)
Zamieszczona poniżej instrukcja ustawia wartość pola .Value obiektu pole
wyboru wykluczającego o nazwie "RadioButton_1" na wartość 4.
SetPropertyI( "RadioButton_1.Value",4 );
Patrz również
GetPropertyM(), SetPropertyM(), GetPropertyI(), SetPropertyI(),
GetPropertyD(), SetPropertyD()
162
Rozdział 2
Opis funkcji, pól i zmiennych systemowych
.Visible
Właściwość ta określa, czy obiekt jest widoczny w oknie.
Kategoria
obiekty sterujące Windows
Sposób użycia
[ErrorNumber=]GetPropertyD("NazwaObiektu.Visible",Zmienna
);
[ErrorNumber=]SetPropertyD("NazwaObiektu.Visible",Warto
ść
);
Parametr
Opis
NazwaObiektu
Nazwa wizarda Na przykład ListBox_1.
Zmienna
Zdefiniowana zmienna programu InTouch (takiego
samego typu jak typ zwracany), przechowująca
wartość właściwości w momencie realizacji
funkcji.
Number
Wartość dyskretna, lub zmienna typu Discrete
przechowująca wartość do zapisu w momencie
wykonywania funkcji.
Uwagi
Pole to przeznaczone jest do zapisu/ odczytu zarówno w trakcie edycji
aplikacji jak również w momencie wykonywania aplikacji.
Typ danych
Discrete (odczyt/zapis)
Zakres wartości
0 = Obiekt jest niewidoczny
1 = Obiekt jest widoczny
Zastosowanie
Pola tekstowe , pola list , listy rozwijane , pola wyboru i pola wyboru
wykluczającego .
Przykład(y)
Instrukcja zamieszczona poniżej ukrywa pole tekstowe o nazwie
"TextBox_1".
SetPropertyD( "TextBox_1.Visible",0 );
Patrz również
GetPropertyD(), SetPropertyD()
Funkcje skryptowe
163
Opis funkcji, pól i zmiennych systemowych
R O Z D Z I A Ł 3
Funkcje skryptowe
Jednym z najbardziej istotnych elementów funkcjonalności aplikacji InTouch
jest możliwość korzystania ze skryptów QuickScript. Skrypty dają możliwość
wykonywania poleceń, oraz operacji logicznych, w zależności od spełnienia
określonych kryteriów. Przykładowo, wciśnięcie klawisza może powodować
otwarcie okna, zmianę wartości zmiennej, itd.
Funkcje QuickFunction są skryptami InTouch QuickScript wywoływanymi z
innych skryptów QuickScript i wyrażeń połączeń animacyjnych. Kod
źródłowy takiej funkcji zapisany jest w jednym miejscu, tak więc jej edycja
umożliwia wprowadzenie zmian we wszystkich aplikacjach, w których funkcja
taka jest wywoływana.
Uwaga: Aby wymusić uaktualnienie połączenia animacyjnego, jako parametr
funkcji QuickFunction należy użyć zmiennej, pełniącej rolę wyzwalacza.
Przykładowo, użycie jako parametru funkcji QuickFunction zmiennej $Second
spowoduje, że wyrażenie przypisane do połączenia animacyjnego będzie
sprawdzane każdorazowo przy zmianie wartości zmiennej $Second, dzięki
czemu funkcja będzie wywoływana co 1 sekundę.
Skrypty QuickScript umożliwiają utworzenie szeregu zautomatyzowanych
funkcji systemowych, dostosowanych do potrzeb użytkownika.
164
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
Abs()
Ack()
Zwraca wartość bezwzględną danej liczby.
Kategoria
funkcje matematyczne
Składnia
Result=Abs(Number);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Uwagi
Obliczana jest wartość absolutna z Number i zwracana do zmiennej Result.
Przykład(y)
Abs(14) daje w wyniku 14
Abs(-7.5) daje w wyniku 7.5
Funkcja ta służy do zatwierdzania lokalnych alarmów programu InTouch.
Kategoria
alarmy
Składnia
Ack Tagname;
Parametr
Opis
Zmienna
Dowolna zmienna, grupa alarmowa (Alarm
Group) lub zmienna grupowa (Group Var).
Uwagi
Funkcja ta może być użyta w odniesieniu do zmiennej, grupy alarmowej
lub zmiennej grupowej. (Zmienna grupowa jest zmienną, której wartości są
nazwami grup alarmowych).
Przykład(y)
Poniższe instrukcje można zastosować w powiązaniu z przyciskiem, w celu
zatwierdzenia dowolnego, nie potwierdzonego alarmu:
Ack $System; (zatwierdzenie wszystkich alarmów)
Ack Tagname;
Ack GroupName;
Ack GroupVariable;
Patrz również
almAckAll(), almAckGroup() almAckTag(), almAckDisplay(),
almAckRecent(), almAckPriority(). almAckSelect(),
almAckSelectedGroup(), almAckSelectedPriority(),
almAckSelectedTag()
Funkcje skryptowe
165
Opis funkcji, pól i zmiennych systemowych
ActivateApp()
AddPermission()
Funkcja ta służy do uaktywnienia innej uruchomionej aplikacji Windows.
Kategoria
system
Składnia
ActivateApp TaskName;
Parametr
Opis
TaskName
Nazwa aplikacji, która ma zostać uaktywniona za
pomocą funkcji.
Uwagi
TaskName jest ciągiem znaków (włącznie ze spacjami), który jest
wyświetlany na Pasku Zadań lub w Menadżerze Zadań (uruchamianym w
Windows NT poprzez kliknięcie prawym klawiszem myszy na Pasku
Zadań i wybraniu Menadżera Zadań, lub przez wciśnięcie kombinacji
klawiszy Ctrl+Alt+Delete).
Przykład(y)
Poniżej podano przykład sprawdzenia, czy linia poleceń jest aktywna.
Jeżeli jest aktywna, jest przenoszona na pierwszy plan i aktywowana. W
przeciwnym wypadku, linia poleceń jest uruchamiana, wraz z
automatycznym wywoływaniem programu systemu DOS edit.com.
IF InfoAppActive( InfoAppTitle("cmd")) == 1 THEN
ActivateApp InfoAppTitle("cmd");
ELSE
StartApp "cmd /c edit";
ENDIF;
Patrz również
StartApp(), InfoAppTitle()
Próbuje uzyskać dostęp do konta znajdującego się w domenie Domain.
Kategoria
bezpieczeństwo
Składnia
DiscreteTag=AddPermission( "Domena", "Grupa",
AccessLevel);
Parametr
Opis
Domena
Nazwa domeny lub lokalnego komputera gdzie
znajduje się grupa.
Grupa
Grupa użytkowników Windows.
AccessLevel
Poziom dostępu programu InTouch, który jest
związany z podaną grupą
Uwagi
Właściwy dla systemu bezpieczeństwa opartego na systemie operacyjnym.
Próbuje uzyskać dostęp do konta znajdującego się w domenie Domain.
Jeżeli wywołanie zakończy się sukcesem, zwracana jest wartość
PRAWDA a poziom dostępu AccessLevel zostaje przypisany do konta i
wykorzystany gdy użytkownik zaloguje się. We wszystkich innych
wypadkach zwracana jest wartość FAŁSZ.
Przykład(y)
DiscreteTag=AddPermission( "wonderware_hq",
"InTouchAdmins", 9000);DiscreteTag=AddPermission(
"ravih01", "InTouchUsers", 5000);
Patrz również
PostLogonDialog(), InvisibleVerifyCredentials(), IsAssignedRole(),
AttemptInvisibleLogon(), QueryGroupMembership().
166
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
almAckAll()
almAckDisplay()
Funkcja ta służy do potwierdzenia wszystkich alarmów z aktualnej kolejki
alarmów, włącznie z tymi, które nie są aktualnie wyświetlane w oknie
obiektu alarmowego.
Kategoria
alarmy
Składnia
[Result=]almAckAll(ObjectName,Comment);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Comment
Komentarz do zatwierdzania alarmu.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
MessageTag = “Acknowledge All by” + $Operator;
almAckAll(“AlmObj_1”, MessageTag);
Patrz również
Ack(), almAckGroup(), almAckTag(), almAckDisplay(),
almAckRecent(), almAckSelect(), almAckSelectedGroup(),
almAckSelectedPriority(), almAckSelectedTag()
Zatwierdzenie tylko tych alarmów, które aktualnie są widoczne na ekranie.
Kategoria
alarmy
Składnia
[Result=]almAckDisplay(ObjectName,Comment);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Comment
Komentarz do zatwierdzania alarmu.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
almAckDisplay(“AlmObj_1”, “Display Acknowledgement”);
Patrz również
Ack(), almAckAll(), almAckGroup(), almAckTag(), almAckRecent(),
almAckSelect(), almAckSelectedGroup(), almAckSelectedPriority(),
almAckSelectedTag()
Funkcje skryptowe
167
Opis funkcji, pól i zmiennych systemowych
almAckGroup()
Funkcja ta służy do zatwierdzania wszystkich alarmów zawartych w
Instancji obiektu alarmów rozproszonych o określonej nazwie jako wynik
ostatniego zapytania i gdzie powstały alarm zawiera tą samą nazwę grupy
alarmu i dostawcy.
Kategoria
alarmy
Składnia
[Result=]almAckGroup(ObjectName, ApplicationName,
GroupName, Comment);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
ApplicationName
Nazwa aplikacji wraz ze ścieżką dostępu,
przykładowo \\node1\Intouch
GroupName
Nazwa grupy alarmowej, przykładowo $System
Comment
Komentarz do zatwierdzania alarmu.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
MessageTag = “Acknowledge group, Turbines, by” +
$Operator; almAckGroup(“AlmObj_1”, “\Intouch”,
“Turbine”, MessageTag);
Patrz również
Ack(), almAckAll(), almAckDisplay(), almAckTag(), almAckRecent(),
almAckPriority(), almAckSelect(), almAckSelectedGroup(),
almAckSelectedPriority(), almAckSelectedTag()
168
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
almAckPriority()
almAckRecent()
Funkcja ta służy do zatwierdzania wszystkich alarmów wszystkich
alarmów zawartych w instancji obiektu alarmów rozproszonych o
określonej nazwie jako wynik wyświetlania ostatniego zapytania i gdzie
powstałe alarmy są alarmami z określonego zakresu priorytetów, mających
tą samą nazwę dostawcy i grupy.
Kategoria
alarmy
Składnia
[Result=]almAckPriority(ObjectName, ApplicationName,
GroupName, FromPri, ToPri, Comment);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
ApplicationName
Nazwa aplikacji wraz ze ścieżką dostępu,
przykładowo \\node1\Intouch
GroupName
Nazwa grupy alarmowej, przykładowo $System
FromPri
Dolna wartość priorytetu alarmów. Przykładowo
100.
ToPri
Górna wartość priorytetu alarmów. Przykładowo
900.
Comment
Komentarz do zatwierdzania alarmu.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
almAckPriority(“AlmObj_1”,“\\node1\Intouch”,
“Turbines”, 10, 100, “almAckPriorityComment”);
Patrz również
Ack(), almAckAll(), almAckGroup(), almAckTag(), almAckDisplay(),
almAckSelect(), almAckSelectedGroup(), almAckSelectedPriority(),
almAckSelectedTag()
Funkcja ta służy do zatwierdzania najnowszych alarmów.
Kategoria
alarmy
Składnia
[Result=]almAckRecent(ObjectName,Comment);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Comment
Komentarz do zatwierdzania alarmu.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
almAckRecent(“AlmObj_1”, $DateString);
Patrz również
Ack(), almAckAll(), almAckGroup(), almAckTag(), almAckDisplay(),
almAckSelect(), almAckSelectedGroup(), almAckSelectedPriority(),
almAckSelectedTag()
Funkcje skryptowe
169
Opis funkcji, pól i zmiennych systemowych
almAckSelect()
almAckSelectedGroup()
Funkcja ta służy do zatwierdzania tylko alarmów zaznaczonych w oknie
aktualnie aktywnego obiektu alarmowego.
Kategoria
alarmy
Składnia
[Result=]almAckSelect(ObjectName,Comment);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Comment
Komentarz do zatwierdzania alarmu.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
IF ($Hour > 0 and $Hour < 8) THEN
AckTag = “NightShift”;
ELSE
AckTag = “Day Shift”;
ENDIF;
almAckSelect (“AlmObj_1”,AckTag);
Patrz również
Ack(), almAckAll(), almAckGroup(), almAckTag(), almAckDisplay(),
almAckRecent(), almAckSelectedGroup(), almAckSelectedPriority(),
almAckSelectedTag()
Funkcja ta służy do zatwierdzenia wszystkich alarmów z tymi samymi
nazwami dostawcy i grupy, mających tą samą nazwę grupy jak jeden lub
więcej alarmów wybranych w instancji obiektu alarmów rozproszonych o
określonej nazwie.
Kategoria
alarmy
Składnia
[Result=]almAckSelectedGroup(ObjectName,Comment);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Comment
Komentarz do zatwierdzania alarmu.
Uwagi
Przykład(y)
MessageTag = “Acknowledge selected groups by” +
$Operator;
almAckSelectedGroup (“AlmObj_1”, MessageTag);
Patrz również
Ack(), almAckAll(), almAckGroup(), almAckTag(), almAckDisplay(),
almAckRecent(), almAckSelect(), almAckSelectedPriority(),
almAckSelectedTag()
170
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
almAckSelectedPriority()
almAckSelectedTag()
Funkcja ta służy do zatwierdzenia wszystkich alarmów z tymi samymi
nazwami dostawcy i grupy, mających tą samą wartość priorytetu jak jeden
lub więcej alarmów wybranych w instancji obiektu alarmów
rozproszonych o określonej nazwie.
Kategoria
alarmy
Składnia
[Result=]almAckSelectedPriority(ObjectName, Comment);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Comment
Komentarz do zatwierdzania alarmu.
Uwagi
Wartości priorytetów są obliczane na podstawie danych pobranych z
wybranych rekordów alarmów. Pod uwagę brane są minimalne (Min) i
maksymalne (Max) wartości priorytetów.
Przykład(y)
MessageTag = “Acknowledge selected priorities by” +
$Operator;
almAckSelectedPriority (“AlmObj_1”, MessageTag);
Patrz również
Ack(), almAckAll(), almAckGroup(), almAckTag(), almAckDisplay(),
almAckRecent(), almAckSelect(), almAckSelectedGroup(),
almAckSelectedTag()
Funkcja ta służy do zatwierdzania wszystkich alarmów przypisanych do tej
samej zmiennej, o tej samej nazwie dostawcy i grupy, mających tą samą
wartość priorytetu jak jeden lub więcej alarmów wybranych w Instancji
obiektu alarmów rozproszonych o określonej nazwie.
Kategoria
alarmy
Składnia
[Result=]almAckSelectedTag(ObjectName,Comment);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Comment
Komentarz do zatwierdzania alarmu.
Uwagi
Przykład(y)
MessageTag = “Acknowledge selected tagnames by” +
$Operator;
almAckSelectedTag (“AlmObj_1”, MessageTag);
Patrz również
Ack(), almAckAll(), almAckGroup(), almAckTag(), almAckDisplay(),
almAckRecent(), almAckSelect(), almAckSelectedGroup(),
almAckSelectedPriority()
Funkcje skryptowe
171
Opis funkcji, pól i zmiennych systemowych
almAckTag()
Funkcja ta służy do zatwierdzania wszystkich alarmów powstałych w
instancji obiektu alarmów rozproszonych o określonej nazwie jako rezultat
wyświetlania ostatniego zapytania i zmiennej.
Kategoria
alarmy
Składnia
[Result=]almAckTag(ObjectName, ApplicationName,
GroupName, Tagname, FromPri, ToPri, Comment);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
ApplicationName
Nazwa aplikacji wraz ze ścieżką dostępu.
Przykładowo, \\node1\Intouch.
GroupName
Nazwa grupy. Przykładowo może to być $System.
Tagname
Nazwa zmiennej alarmu.
FromPri
Dolna wartość priorytetu alarmów. Przykładowo 100.
ToPri
Górna wartość priorytetu alarmów. Przykładowo
900.
Comment
Komentarz do zatwierdzania alarmu.
Uwagi
Przykład(y)
almAckTag(“AlmObj_1”, “\\node1\Intouch”, “Turbines”,
“Valve1”, 10, 100,
“Value”, “LoLo”, “almAckTagComment”);
Patrz również
Ack(), almAckAll(), almAckGroup(), almAckDisplay(),
almAckRecent(), almAckSelect(), almAckSelectedGroup(),
almAckSelectedPriority(), almAckSelectedTag()
172
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
almDefQuery()
almMoveWindow()
Funkcja ta powoduje wykonanie zapytania w celu zaktualizowania
instancji obiektu alarmów rozproszonych o określonej nazwie przy użyciu
domyślnych parametrów.
Kategoria
alarmy
Składnia
[Result=]almDefQuery(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego, np. AlmObj_1.
Uwagi
Domyślne parametry zapytania o alarmy są podawane w czasie edycji
aplikacji. Kody błędów dla funkcji tego typu można znaleźć w rozdziale
Załącznik A.
Przykład(y)
almDefQuery(“AlmObj_1”);
Patrz również
almQuery(), almSetQueryByName()
Funkcja ta powoduje przewinięcie okna instancji obiektu alarmów
rozproszonych o określonej nazwie.
Kategoria
alarmy
Składnia
[Result=]almMoveWindow(ObjectName,Options,Repeat);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Option
Rodzaj przewijania alarmówPAGEtype of alarm
acknowledge to perform.
Typ
Opis
LineDn
O jedną linię w dół.
LineUp
O jedną linię w górę.
PageDn
O jedną stronę w dół.
PageUp
O jedną stronę w górę.
Up
Do początku listy.
Bottom
Do końca listy.
PageRt
O jedna stronę w prawo.
PageLf
O jedna stronę w lewo.
Right
Do końca listy w prawą stronę.
Left
Do końca listy w lewą stronę.
Repeat
Liczba powtórzeń operacji.
Uwagi
Kody błędów dla tych funkcji można znaleźć w rozdziale Załącznik A.
Przykład(y)
almMoveWindow(“AlmObj_1”, ”Bottom”, 0);
almMoveWindow(“AlmObj_1”, ”LineDn”, 3);
almMoveWindow(“AlmObj_1”, ”PageUp”, 0);
Funkcje skryptowe
173
Opis funkcji, pól i zmiennych systemowych
almQuery()
Funkcja ta powoduje wysłanie zapytania w celu zaktualizowania instancji
obiektu alarmów rozproszonych o określonej nazwie.
Kategoria
alarmy
Składnia
[Result=]almDefQuery(ObjectName,AlarmList,FromPri,
ToPri,State,Type);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
AlarmList
Definiuje alias Alarm Query/Name Manager do
wykonania zapytania w oparciu np. o
"\intouch!$System" lub o zmienną typu Message
(tekstową).
FromPri
Dolna wartość priorytetu alarmów do
wyświetlania. Przykładowo, 100, lub zmienna
typu integer.
ToPri
Górna wartość priorytetu alarmów do
wyświetlania. Przykładowo, 900, lub zmienna
typu integer.
State
Rodzaj alarmów, które mają być wyświetlone.
Przykładowo, "UnAck" lub zmienna tekstowa.
Dopuszczalnymi statusami są All, UnAck, oraz
Ack.
Typ
Określa typ zapytania, przykładowo, "Hist"
(Alarmy historyczne"), lub "Summ" (Alarmy
bieżące).PAGECzy Alarm Summary ===
Alarmy bieżące
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
Poniższa instrukcja powoduje wyświetlenie wszystkich alarmów
historycznych określonych w grupie MyAlarmListGroup o priorytecie
zawartym pomiędzy 500 i 600. Alarmy będą wyświetlane przez obiekt o
nazwie "AlmObj_1."
almQuery("AlmObj_1","MyAlarmListGroup",500,600,"All",
"Hist");
Poniżej podano przykłady prawidłowej składni parametrów AlarmList.
MyAlarmList
Gdzie MyAlarmList jest listą alarmów konfigurowaną z poziomu
Manager nazw.
\intouch!GroupA
Gdzie GroupA oznacza grupę alarmową zdefiniowaną na stacji lokalnej.
\\NodeXInTouch!GroupB
Gdzie GroupB oznacza grupę alarmową definiowaną na stacji X.
Patrz również
almDefQuery(), almSetQueryByName()
174
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
almSelectAll()
almSelectGroup()
Funkcja ta zaznacza (podświetla) wszystkie alarmy w instancji obiektu
alarmów rozproszonych o określonej nazwie.
Kategoria
alarmy
Składnia
[Result=]almSelectAll(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
If $AccessLevel > 8000 THEN
almSelectAll(“AlmObj_1”);
almAckSelect(“AlmObj_1”, “Ack Selected by a Manager”);
ENDIF;
Patrz również
almSelectItem(), almSelectGroup(), almSelectPriority(),
almSelectTag(), almUnSelectAll()
Zaznacza (podświetla) wszystkie alarmy zawarte w instancji obiektu
alarmów rozproszonych o określonej nazwie jako wynik wyświetlania
ostatniego zapytania i gdzie powstały alarm zawiera tą samą nazwę grupy.
Kategoria
alarmy
Składnia
[Result=]almSelectGroup(ObjectName, ApplicationName,
GroupName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
ApplicationName
Nazwa aplikacji wraz ze ścieżką dostępu.
Przykładowo, \\node1\Intouch.
GroupName
Nazwa grupy. Przykładowo może to być $System.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
almSelectGroup(“AlmObj_1”, “\InTouch”, “Turbine”);
Patrz również
almSelectAll(), almSelectItem(), almSelectPriority(), almSelectTag(),
almUnSelectAll()
Funkcje skryptowe
175
Opis funkcji, pól i zmiennych systemowych
almSelectionCount()
almSelectItem()
almSelectPriority()
Zwraca liczbę zaznaczonych w obiekcie alarmów.
Składnia
[Result=]almSelectionCount(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego, np. AlmObj_1.
Przykład(y)
Tag1 = almSelectionCount(“AlmObj_1”);
Odwraca zaznaczenie podświetlonego elementu w obiekcie alarmowym.
Kategoria
alarmy
Składnia
[Result=]almSelectItem(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Uwagi
Kody błędów dla tych funkcji można znaleźć w rozdziale Załącznik A.
Przykład(y)
almSelectItem(“AlmObj_1”);
Patrz również
almSelectAll(), almSelectGroup(), almSelectPriority(), almSelectTag(),
almUnSelectAll()
Funkcja ta zaznacza wszystkie alarmy zawarte w instancji obiektu alarmów
rozproszonych o określonej nazwie jako wynik wyświetlania ostatniego
zapytania i gdzie powstałe alarmy są alarmami o priorytecie z podanego
zakresu.
Kategoria
alarmy
Składnia
[Result=]almSelectPriority (ObjectName,
ApplicationName, GroupName, FromPri, ToPri);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
ApplicationName
Nazwa aplikacji wraz ze ścieżką dostępu.
Przykładowo, \\node1\Intouch.
GroupName
Nazwa grupy. Przykładowo może to być $System.
FromPri
Dolna wartość priorytetu alarmów. Przykładowo,
100, lub zmienna typu integer.
ToPri
Górna wartość priorytetu alarmów. Przykładowo,
900, lub zmienna typu integer.
Przykład(y)
almSelectPriority(“AlmObj_1”, “\\node1\Intouch”,
“Turbines”, 10, 100);
Patrz również
almSelectAll(), almSelectItem(), almSelectGroup(), almSelectTag(),
almUnSelectAll()
176
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
almSelectTag()
almSetQueryByName()
Funkcja ta zaznacza wszystkie alarmy zawarte w obiekcie alarmów
rozproszonych o określonej nazwie jako wynik wyświetlania ostatniego
zapytania i danej zmiennej.
Kategoria
alarmy
Składnia
[Result=]almSelectTag (ObjectName, ApplicationName,
GroupName, Tagname, FromPri, ToPri);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
ApplicationName
Nazwa aplikacji wraz ze ścieżką dostępu.
Przykładowo, \\node1\Intouch.
GroupName
Nazwa grupy. Przykładowo może to być $System.
Tagname
Nazwa zmiennej alarmu.
FromPri
Dolna wartość priorytetu alarmów. Przykładowo,
100, lub zmienna typu integer.
ToPri
Górna wartość priorytetu alarmów. Przykładowo,
900, lub zmienna typu integer.
Uwagi
Przykład(y)
almSelectTag(“AlmObj_1”, “\\node1\Intouch”, “Turbines”,
“Valve1”, 10, 100);
Patrz również
almSelectAll(), almSelectItem(), almSelectGroup(),
almSelectPriority(), almUnSelectAll()
Funkcja ta powoduje rozpoczęcie nowego zapytania alarmowego dla
obiektu alarmów rozproszonych o określonej nazwie z wykorzystaniem
parametrów zapytania związanych z nazwą zapytania (wykorzystywanego
najczęściej) zdefiniowanego przez użytkownika.
Kategoria
alarmy
Składnia
[Result=]almSetQueryByName(ObjectName, QueryName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
QueryName
Nazwa zapytania stworzona przy pomocy
"Ulubione".
Uwagi
Zapytanie to dotyczy określonego obiektu alarmów rozproszonych. Na
ekranie może być wyświetlane kilka obiektów, każdy z osobnym, własnym
zapytaniem.
Przykład(y)
almSetQueryByName(“AlmObj_1”, “Turbine Queries”);
Patrz również
almQuery(), almDefQuery()
Funkcje skryptowe
177
Opis funkcji, pól i zmiennych systemowych
almShowStats()
almSuppressAll()
Wyświetla ekran z informacjami statystycznymi obiektu alarmowego.
Kategoria
alarmy
Składnia
[Result=]almShowStats(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
almShowStats(“AlmObj_1”);
Funkcja ta wstrzymuje wyświetlanie wszystkich aktualnych i przyszłych
alarmów w bieżącym zapytaniu, łącznie z tymi, które aktualnie nie są
wyświetlane w oknie aktywnego obiektu wyświetlania alarmów.
Kategoria
alarmy
Składnia
[Result=] almSuppressAll(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Uwagi
Funkcja ta działa identycznie jak almAckAll(), identyfikując alarmy do
wstrzymania poprzez identyfikację wszystkich alarmów które byłyby
widoczne na ekranie podczas przewijania.
Przykład(y)
almSuppressAll(“AlmObj_1”);
Patrz również
almSuppressGroup(), almSuppressTag(), almSuppressDisplay(),
almSuppressPriority(), almSuppressRetain(), almSuppressSelected(),
almSuppressSelectedGroup(), almSuppressSelectedPriority(),
almSuppressSelectedTag(), almUnSuppressAll()
178
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
almSuppressGroup()
almSuppressDisplay()
Funkcja ta wstrzymuje wyświetlanie bieżących i przyszłych zdarzeń
alarmów należących do grupy alarmów o danej nazwie.
Kategoria
alarmy
Składnia
[Result=]almSuppressGroup(ObjectName, ApplicationName,
GroupName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
ApplicationName
Nazwa aplikacji wraz ze ścieżką dostępu.
Przykładowo, \\node1\InTouch.
GroupName
Nazwa grupy. Przykładowo $System.
Przykład(y)
almSuppressGroup(“AlmObj_1”, “\InTouch”, “Turbines”);
Patrz również
almSuppressAll(), almSuppressTag(), almSuppressDisplay(),
almSuppressPriority(), almSuppressRetain(), almSuppressSelected(),
almSuppressSelectedGroup(), almSuppressSelectedPriority(),
almSuppressSelectedTag(), almUnSuppressAll()
Funkcja ta wstrzymuje wyświetlanie bieżących i przyszłych zdarzeń
alarmów widocznych w oknie aktualnie aktywnego obiektu alarmowego.
Kategoria
alarmy
Składnia
[Result=]almSuppressDisplay(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Uwagi
Funkcja ta działa identycznie jak odpowiadająca jej funkcja
almAckDisplay() identyfikując alarmy do wstrzymania poprzez
identyfikację wszystkich aktualnie wyświetlanych alarmów.
Przykład(y)
almSuppressDisplay(“AlmObj_1”);
Patrz również
almSuppressAll(), almSuppressGroup(), almSuppressTag(),
almSuppressPriority(), almSuppressRetain(), almSuppressSelected(),
almSuppressSelectedGroup(), almSuppressSelectedPriority(),
almSuppressSelectedTag(), almUnSuppressAll()
Funkcje skryptowe
179
Opis funkcji, pól i zmiennych systemowych
almSuppressPriority()
almSuppressRetain()
Funkcja ta wstrzymuje wyświetlanie bieżących i przyszłych zdarzeń
dowolnego alarmu z podanego zakresu priorytetu, mających tę samą nazwę
dostawcy i nazwę grupy.
Kategoria
alarmy
Składnia
[Result=]almSuppressPriority(ObjectName,
ApplicationName, GroupName, FromPri, ToPri);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego, np. AlmObj_1.
ApplicationName
Nazwa aplikacji wraz ze ścieżką dostępu.
Przykładowo, \\node1\Intouch.
GroupName
Nazwa grupy. Przykładowo może to być $System.
FromPri
Dolna wartość priorytetu alarmów. Przykładowo,
100, lub zmienna typu integer.
ToPri
Górna wartość priorytetu alarmów. Przykładowo,
900, lub zmienna typu integer.
Przykład(y)
almSuppressPriority(“AlmObj_1”, “\\node1\Intouch”,
“Turbines”, 10, 100);
Patrz również
almSuppressAll(), almSuppressGroup(), almSuppressTag(),
almSuppressDisplay(), almSuppressRetain(), almSuppressSelected(),
almSuppressSelectedGroup(), almSuppressSelectedPriority(),
almSuppressSelectedTag(), almUnSuppressAll()
Funkcja ta powstrzymuje wstrzymywanie wyświetlanie alarmu dla
wszystkich nadchodzących zapytań alarmowych.
Kategoria
alarmy
Składnia
[Result=]almSuppressRetain (ObjectName,
SuppressionRetainFlag);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego, np. AlmObj_1.
SuppressionRetainFlag Dowolna zmienna typu Discrete lub Analog, 0
lub wartość różna od zera. Flaga przyjmuje
wartość TRUE w przypadku gdy informacja o
likwidacji jest powstrzymywana dla wszystkich
nadchodzących zapytań, w przeciwnym wypadku
przyjmuje wartość FALSE.
Uwagi
Jeśli wartość flagi wynosi 0 i zapytanie alarmowe zmienia się, filtry
wstrzymywania wyświetlania alarmów zostają odrzucone.
Przykład(y)
almSuppressRetain(“AlmObj_1”, TRUE);
Patrz również
almSuppressAll(), almSuppressGroup(), almSuppressTag(),
almSuppressDisplay(), almSuppressPriority(), almSuppressSelected(),
almSuppressSelectedGroup(), almSuppressSelectedPriority(),
almSuppressSelectedTag(), almUnSuppressAll()
180
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
almSuppressSelected()
almSuppressTag()
Funkcja ta wstrzymuje wyświetlanie przyszłych zdarzeń alarmów
wybranych w oknie aktualnie aktywnego obiektu alarmowego.
Kategoria
alarmy
Składnia
[Result=]almSuppressSelected (ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Uwagi
Funkcja ta działa tak samo jak funkcja almAckSelect(), identyfikując
alarmy poprzez alarmy wybrane w obiekcie wyświetlania.
Przykład(y)
almSuppressSelected(“AlmObj_1”);
Patrz również
almSuppressAll(), almSuppressGroup(), almSuppressTag(),
almSuppressDisplay(), almSuppressPriority(),
almSuppressSelectedGroup(), almSuppressSelectedPriority(),
almSuppressSelectedTag(), almUnSuppressAll()
Funkcja ta wyłącza wyświetlanie bieżących i przyszłych zdarzeń dla
dowolnego alarmu emitowanego przez daną nazwę zmiennej, mających
tego samego dostawcę, nazwę grupy i zakres priorytetów.
Kategoria
alarmy
Składnia
[Result=]almSuppressTag(ObjectName, ApplicationName,
GroupName, TagName, FromPri, ToPri, AlarmClass,
AlarmType);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego, np. AlmObj_1.
ApplicationName
Nazwa aplikacji wraz ze ścieżką dostępu.
Przykładowo, \\node1\Intouch.
GroupName
Nazwa grupy. Przykładowo może to być $System.
TagName
Nazwa zmiennej alarmu.
FromPri
Dolna wartość priorytetu alarmów. Przykładowo,
100, lub zmienna typu integer.
ToPri
Górna wartość priorytetu alarmów. Przykładowo,
900, lub zmienna typu integer.
AlarmClass
Klasa alarmu. Przykładowo, “Value.”
AlarmType
Typ alarmu. Przykładowo, “HiHi.”
Uwagi
Przykład(y)
almSuppressTag(“AlmObj_1”, “\\node1\Intouch”,
“Turbines”, “Valve1”, 10, 100, “Value”, “LoLo”);
Patrz również
almSuppressAll(), almSuppressGroup(), almSuppressDisplay(),
almSuppressPriority(), almSuppressRetain(), almSuppressSelected(),
almSuppressSelectedGroup(), almSuppressSelectedPriority(),
almSuppressSelectedTag(), almUnSuppressAll()
Funkcje skryptowe
181
Opis funkcji, pól i zmiennych systemowych
almSuppressSelectedGroup()
almSuppressSelectedPriority()
Funkcja ta wstrzymuje wyświetlanie bieżących i przyszłych zdarzeń
alarmów należących do tych samych grup jednego lub więcej wybranych
alarmów mających tą samą nazwę dostawcy w Obiekcie Wyświetlania
Alarmu Rozproszonego o określonej nazwie.
Kategoria
alarmy
Składnia
[Result=]almSuppressSelectedGroup(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Uwagi
Funkcja ta działa tak samo jak funkcja almAckSelectedGroup(),
identyfikując wybrane alarmy, następnie identyfikując grupy do których
należą i zawieszając przyszłe zdarzenia alarmów z tych grup.
Przykład(y)
almSuppressSelectedGroup(“AlmObj_1”);
Patrz również
almSuppressAll(), almSuppressGroup(), almSuppressTag(),
almSuppressDisplay(), almSuppressSelected(),
almSuppressSelectedPriority(), almSuppressSelectedTag()
Funkcja ta wstrzymuje wyświetlanie bieżących i przyszłych zdarzeń
alarmów należących do tego samego priorytetu jednego lub więcej
wybranych alarmów mających tą samą nazwę dostawcy w Obiekcie
Wyświetlania Alarmu Rozproszonego o określonej nazwie.
Kategoria
alarmy
Składnia
[Result=]almSuppressSelectedPriority(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Uwagi
Wartości priorytetów są obliczane na podstawie danych pobranych z
wybranych rekordów alarmów. Pod uwagę brane są minimalne (Min) i
maksymalne (Max) wartości priorytetów.
Funkcja ta działa tak samo jak funkcja almAckSelectedPriority(),
identyfikując alarmy zaznaczone na ekranie, następnie identyfikując
priorytety odpowiadające tym alarmom i likwidując przyszłe zdarzenia
alarmów z tymi samymi priorytetami.
Przykład(y)
almSuppressSelectedPriority(“AlmObj_1”);
Patrz również
almSuppressAll(), almSuppressGroup(), almSuppressTagName(),
almSuppressDisplay(), almSuppressSelected(),
almSuppressSelectedGroup(), almSuppressSelectedTag(),
almAckSelectedPriority()
182
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
almSuppressSelectedTag()
almUnSelectAll()
Funkcja ta wyłącza wyświetlanie bieżących i przyszłych zdarzeń
dowolnego alarmu, który należy do tej samej nazwy zmiennych jednego
lub więcej wybranych alarmów mających tą samą nazwę dostawcy, grupy i
zakres priorytetu.
Kategoria
alarmy
Składnia
[Result=]almSuppressSelectedTag(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Uwagi
Przykład(y)
almSuppressSelectedTag(“AlmObj_1”);
Patrz również
almSuppressAll(), almSuppressGroup(), almSuppressTag(),
almSuppressDisplay(), almSuppressSelectedAlarm(),
almSuppressSelectedGroup(), almSuppressSelectedPriority(),
almAckSelectedTag(), almUnSuppressAll()
Funkcja ta odznacza wszystkie zaznaczone alarmy w obiekcie alarmów
rozproszonych o określonej nazwie.
Kategoria
alarmy
Składnia
[Result=]almUnSelectAll(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w Dodatku A:
"Komunikaty o błędach dla obiektów sterujących Windows i funkcji
związanych z alarmowaniem rozproszonym".
Przykład(y)
If $AccessLevel == 9999 THEN
almAckSelect(“AlmObj_1”, “Comment”);{Ten alarm mo¿e byæ
potwierdzony tylko przez administratora}
ELSE
almUnSelectAll(“AlmObj_1”);
ENDIF;
Patrz również
almSelectAll(), almSelectItem(), almSelectGroup(),
almSelectPriority(), almSelectTag()
Funkcje skryptowe
183
Opis funkcji, pól i zmiennych systemowych
almUnSuppressAll()
ArcCos()
Funkcja ta zeruje wszystkie wstrzymane alarmy.
Kategoria
alarmy
Składnia
[Result=] almUnSupressAll(ObjectName);
Parametr
Opis
ObjectName
Nazwa obiektu alarmowego. Przykładowo,
AlmObj_1.
Przykład(y)
almUnSupressAll(“AlmObj_1”);
Patrz również
almSuppressAll(), almSuppressGroup(), almSuppressTag(),
almSuppressDisplay(), almSuppressPriority(), almSuppressRetain(),
almSuppressSelected(), almSuppressSelectedGroup(),
almSuppressSelectedPriority(), almSuppressSelectedTag()
Dla liczby z przedziału domkniętego [-1,1] funkcja ta oblicza wartość kąta
(z zakresu od 0 do 180 stopni), którego cosinus jest równy tej liczbie.
Kategoria
funkcje matematyczne
Składnia
Result=ArcCos(Number);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Uwagi
Obliczana jest wartość arc cosinus z Number i zwracana do zmiennej
Result.
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
ArcCos(1) daje w wyniku 0
ArcCos(-1) daje w wyniku 180
Patrz również
Cos(), Sin(), Tan(), ArcSin(), ArcTan()
184
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
ArcSin()
ArcTan()
Dla liczby z przedziału domkniętego [-1,1] funkcja ta oblicza wartość kąta
(z zakresu od -90 do 90 stopni), którego sinus jest równy tej liczbie.
Kategoria
funkcje matematyczne
Składnia
Result=ArcSin(Number);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Uwagi
Obliczana jest wartość arc sinus z Number i zwracana do zmiennej Result.
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
ArcSin(1) daje w wyniku 90
ArcSin(-1) daje w wyniku -90
Patrz również
Cos(), Sin(), Tan(), ArcCos(), ArcTan()
Dla danej liczby funkcja ta oblicza wartość kąta (z zakresu od -90 st. do 90
st.), którego tangens jest równy tej liczbie.
Kategoria
funkcje matematyczne
Składnia
Result=ArcTan(Number);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Uwagi
Obliczana jest wartość arc tangens z Number i zwracana do zmiennej
Result.
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
ArcTan(1) daje w wyniku 45
ArcTan(0) daje w wyniku 0
Patrz również
Cos(), Sin(), Tan(), ArcCos(), ArcSin()
Funkcje skryptowe
185
Opis funkcji, pól i zmiennych systemowych
AttemptInvisibleLogon()
ChangePassword()
Próbuje zalogować użytkownika używając podanych parametrów.
Kategoria
bezpieczeństwo
Składnia
DiscreteTag=AttemptInvisibleLogon( "UserId",
"Password", "Domain" );
Parametr
Opis
UserId
Prawidłowa nazwa użytkownika.
Password
Hasło użytkownika.
Domain
Nazwa komputera, grupy roboczej lub domeny
do której należy użytkownik. Ta kolumna ma
znaczenie wtedy gdy system bezpieczeństwa
oparty jest na systemie operacyjnym.
DiscreteTag
Zwracana wartość: zwraca PRAWDA jeżeli
autentykacja powiodła się. W przeciwnym
wypadku zwracana jest wartość FAŁSZ.
Uwagi
Następuje próba zalogowania użytkownika używając podanych
parametrów (domena jest ignorowana gdy system bezpieczeństwa nie jest
oparty na systemie operacyjnym). Jeżeli logowanie powiedzie się,
zwracana jest wartość PRAWDA i są uaktualnione zmienne
$OperatorDomain, $OperatorName, $AccessLevel oraz $Operator. Jeżeli
logowanie nie powiedzie się zwracana jest wartość FAŁSZ a użytkownik
zalogowany wcześniej pozostaje dalej zalogowany.
Przykład(y)
AnalogTag=InvisibleVerifyCredentials( "ravi",
"Password", "wonderware_hq" ); \\ bezp. oparte na
Syst.Op. AnalogTag=InvisibleVerifyCredentials( "ravi",
"Password", "" ); \\ bezp. oparte na systemie InTouch
lub AppServer
Patrz również
PostLogonDialog(), InvisibleVerifyCredentials(), IsAssignedRole(),
QueryGroupMembership(), AddPermission().
Wyświetla okno dialogowe Zmiana hasła dostępu pozwalające
operatorowi na zmianę swojego hasła.
Kategoria
bezpieczeństwo
Składnia
[Result=]ChangePassword();
Parametr
Opis
[Result]
Przyjmuje jedną z następujących wartości:
0 = Naciśnięty został przycisk Anuluj
1 = Naciśnięty został przycisk OK.
Uwagi
W aplikacji z ekranem dotykowym można użyć klawiatury numercznej.
Przykład(y)
Errmsg=ChangePassword();
Jeśli taka instrukcja zostanie użyta w skrypcie związanym z przyciskiem, w
skrypcie warunkowym lub wywoływanym wskutek zmiany wartości
danych, spowoduje to otworzenie okna dialogowego umożliwiającego
użytkownikowi wprowadzenie nowego hasła dostępu.
186
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
Cos()
DialogStringEntry()
Zwraca cosinus kąta podanego w stopniach.
Kategoria
funkcje matematyczne
Składnia
Result=Cos(Number);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Uwagi
Obliczana jest wartość cosinus z Number i zwracana do zmiennej Result.
Przykład(y)
Cos(90) daje w wyniku 0
Cos(0) daje w wyniku 1
Wave = 50 * Cos(6 * $Second);
Patrz również
Sin(), Tan(), ArcCos(), ArcSin(), ArcTan()
Wyświetla na ekranie klawiaturę alfanumeryczną umożliwiając
użytkownikowi zmianę aktualnej wartości zmiennej tekstowej
zdefiniowanej na liście zmiennych.
Kategoria
różne
Składnia
[Result=]DialogStringEntry(MessageTag_Text,
UserPrompt_Text);
Parametr
Opis
[Result]
Przyjmuje jedną z następujących wartości:
0 = Naciśnięty został przycisk Anuluj
1 = Naciśnięty został przycisk OK.
-1=Błąd wewnętrzny.
-2 = Brak możliwości inicjacji.
-3 = Zmienna nie jest zdefiniowana.
-4 = Zmienna nie jest zmienną typu Message
-5 = Brak możliwości zapisu.
MessageTag_Text
Podaje nazwę zmiennej typu Message, która ma
zostać zmodyfikowana. Ten parametr funkcji musi
zostać podany jako łańcuch znaków, dlatego nazwa
zmiennej musi zostać podana w cudzysłowie albo
przy użyciu pola .Name (wtedy bez cudzysłowu).
Dopuszczalne jest również stosowanie jako wskaźnik
zmiennej tekstowej. Porównać z zamieszczonym w
dalszej części przykładem.
UserPrompt_Text
Tekst użytkownika, który ma być wyświetlony w
górnej części klawiatury.
Uwagi
Funkcja jest stosowana głównie w aplikacjach z ekranem dotykowym.
Funkcje skryptowe
187
Opis funkcji, pól i zmiennych systemowych
Przykład
Errmsg=DialogStringEntry(MyMessageTag.Name, "Enter a
new string...");
Errmsg=DialogStringEntry("MyMessageTag","Enter a new
string...");
Parametry mogą również działać jako wskaźniki, wskazujące na inne
zmienne, co umożliwia dynamiczną zmianę parametrów w czasie pracy
aplikacji.
Errmsg=DialogStringEntry(MessageTagX, MessageDisplay);
W przykładzie powyżej użytkownik może przed wykonaniem funkcji
modyfikować jej parametry poprzez wykorzystanie zmiennych
wskazujących w połączeniach do wprowadzania danych.
Skrypt zamieszczony poniżej spowoduje wyświetlenie klawiatury
alfanumerycznej, pozwalającą na zmodyfikowanie zmiennej
MyMessageTag, wyświetlając jednocześnie komunikat "Enter a new
string..." w górnej części klawiatury.
MessageTagX="MyMessageTag"; {przypisanie zmiennej
MyMessageTagX ci¹gu znaków stanowiacego nazwê zmiennej,
która ma zostaæ zmodyfikowana}
MessageDisplay="Enter a new string..."; {przypisanie
nowego ci¹gu znaków do zmiennej typu Memory Message o
nazwie MessageDisplay}
Errmsg=DialogStringEntry(MessageTagX, MessageDisplay);
{cudzys³ów nie jest wymagany, poniewa¿ zmienna
MessageTagX zosta³a zdefiniowana jako zmienna typu
Message}
Patrz również
DialogValueEntry()
188
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
DialogValueEntry()
Funkcja ta wyświetla na ekranie klawiaturę alfanumeryczną umożliwiając
użytkownikowi zmianę aktualnej wartości zmiennej typu Discrete, Integer
lub Real na liście zmiennych.
Kategoria
różne
Składnia
[Result=]DialogValueEntry(ValueTag_Text,
LowLimit,HighLimit,UserPrompt_Text);
Parametr
Opis
[Result]
Przyjmuje jedną z następujących wartości:
0 = Naciśnięty został przycisk Anuluj
1 = Naciśnięty został przycisk OK.
-1 = Highlimit<=Lowlimit.
-2 = Brak możliwości inicjacji.
-3 = Zmienna nie jest zdefiniowana.
-4 = Zmienna nie jest zmienną typu Discrete,
Integer lub Real.
-5 = Błąd zapisu.
ValueTag_Text
Nazwa zmiennej typu Discrete, Integer lub Real,
która ma zostać zmodyfikowana. Ten parametr
funkcji musi zostać podany jako łańcuch znaków,
dlatego nazwa zmiennej musi zostać podana w
cudzysłowie albo przy użyciu pola .Name (wtedy
bez cudzysłowu), lub przy użyciu zmiennej typu
Message jako wskaźnika. Porównać z
zamieszczonym w dalszej części przykładem.
LowLimit
Określa minimalną dopuszczalną wartość
zmiennej. (Powinna ona być >= od wartości
podanych w czasie definiowania zmiennej
wartości w polach Wartość minimalna, Min. I/O,
oraz Min. inż, o ile są wprowadzane wartości do
tych pól).
HighLimit
Określa maksymalną dopuszczalną wartość
zmiennej. (Powinna ona być <= od podanych w
czasie definiowania zmiennej wartości w polach
Wartość maksymalna, Maks. I/O, oraz Maks. inż,
o ile są wprowadzane wartości do tych pól).
UserPrompt_Text
Tekst (wprowadzony przez użytkownika), który
ma zostać wyświetlony w górnej części
klawiatury.
Uwagi
Funkcja jest stosowana głównie w aplikacjach z ekranem dotykowym.
Przykład(y)
Errmsg=DialogValueEntry(MyIntegerTag.Name,
MyIntegerTag.MinEU, MyIntegerTag.MaxEU, "Enter a new
value...");
Errmsg=DialogValueEntry("MyIntegerTag", -100, 100,
"Enter a new value...");
Funkcje skryptowe
189
Opis funkcji, pól i zmiennych systemowych
Parametry mogą również działać jako wskaźniki, wskazujące na inne
zmienne, co umożliwia dynamiczną zmianę parametrów w czasie pracy
aplikacji.
Errmsg=DialogValueEntry(TagnameX, Min, Max,
MessageDisplay);
W przykładzie powyżej użytkownik może przed wykonaniem funkcji
modyfikować jej parametry poprzez wykorzystanie zmiennych
wskazujących w połączeniach do wprowadzania danych.
Skrypt zamieszczony poniżej spowoduje wyświetlenie klawiatury
alfanumerycznej, pozwalającej na wprowadzenie nowej wartości zmiennej
MyIntegerTag, mieszczącej się w granicach wyznaczonych przez Min i
Max, wynoszących odpowiednio -100 i 100, wyświetlając jednocześnie
komunikat "Enter a new value..." w górnej części klawiatury.
TagnameX="MyIntegerTag"; {przypisanie zmiennej
MyIntegerTag (zmienna, której warto
ść
ma by
ć
zmieniona)
do zmiennej typu MemoryMessage o nazwie TagnameX}
Min=-100; {minimalna, dopuszczalna warto
ść
modyfikowanej
zmiennej typu Integer/Real}
Max=100; {maksymalna, dopuszczalna warto
ść
modyfikowanej
zmiennej typu Integer/Real}
MessageDisplay="Enter a new value..."; {przypisanie
nowego ci
ą
gu znaków do zmiennej typu Memory Message o
nazwie MessageDisplay}
Errmsg=DialogValueEntry(TagnameX, Min, Max,
MessageDisplay); {cudzysłów nie jest wymagany, poniewa
ż
zmienna TagnameX została zdefiniowana jako zmienna typu
tekstowego. Je
ż
eli do zmiennej TagnameX przypisana
zostanie inna zmienna typu Discrete, Integer lub Real,
funkcja zmodyfikuje warto
ść
przypisanej zmiennej}
Patrz również
DialogStringEntry()
190
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
DText()
EnableDisableKeys()
Funkcja ta dynamicznie zmienia zawartość zmiennej tekstowej w
zależności od wartości innej zmiennej dyskretnej (typu Discrete).
Kategoria
funkcje tekstowe
Składnia
MsgTag=DText(Discrete_Tag,OnMsg,OffMsg);
Parametr
Opis
MsgTag
Zmienna tekstowa.
Discrete_Tag
Zmienna dyskretna (typu Discrete).
OnMsg
Komunikat tekstowy, który będzie wyświetlany,
gdy wartość zmiennej Discrete_Tag wynosi 1
(Prawda, Wł, Tak).
OffMsg
Komunikat tekstowy, który będzie wyświetlany,
gdy wartość zmiennej Discrete_Tag wynosi 0
(Fałsz, Wył, Nie).
Przykład(y)
MessageTag=Dtext(DiscreteTag, DiscreteTag.OnMsg,
DiscreteTag.OffMsg);
If Dtext(D_Tag, “True”, “False”) == “True” THEN
Message="D_Tag zawiera warto
ść
1";
ELSE
Message="D_Tag zawiera warto
ść
0";
ENDIF;
Włącza/wyłącza blokadę klawiatury dla klawiszy Alt,Escape oraz klawiszy
systemu Windows
Kategoria
View
Składnia
EnableDisableKeys(int AltKey,int EscKey,int WinKey);
Parametr
Opis
AltKey
Liczba, która określa czy włączyć czy wyłączyć
blokadę klawisza Alt, 0=wyłącza, 1=włącza
EscKey
Liczba, która określa czy włączyć czy wyłączyć
blokadę klawisza Escape, 0=wyłącza, 1=włącza
WinKey
Liczba, która określa czy włączyć czy wyłączyć
blokadę klawisza Win, 0=wyłącza, 1=włącza
Uwagi
Włącza/wyłącza klawisze Alt,Escape oraz Windows
Przykład(y)
EnableDisableKeys(0,0,0); // wł
ą
cza wszystkie trzy
klawisze EnableDisableKeys(1,1,1); // wył
ą
cza wszystkie
trzy klawisze EnableDisableKeys(0,0,1); // wł
ą
cza Alt
oraz Escape, wył
ą
cza klawisze Windows.
Funkcje skryptowe
191
Opis funkcji, pól i zmiennych systemowych
Exp()
FileCopy()
Zwraca wartość e podniesioną do potęgi.
Kategoria
funkcje matematyczne
Składnia
Result=Exp(Number);
Parametr
Opis
Number
Dowolna liczba lub zmienna rzeczywista (Real)
albo całkowita (Integer) programu InTouch.
Uwagi
Liczba e jest podnoszona do potęgi Number, a wynik jest zapisywany jako
Result.
Przykład(y)
Exp(1) daje w wyniku 2.718...
Zakres argumentów dla tej funkcji: od -88.72 do 88.72.
Kopiuje plik SourceFile do DestFile, podobnie jak polecenie copy systemu
DOS czy funkcja copy systemu Windows.
Kategoria
system
Składnia
[Result=]FileCopy(SourceFile,DestFile,DoneTag);
Parametr
Opis
SourceFile
Nazwa pliku źródłowego (do przeniesienia),
włącznie z pełną ścieżką dostępu.
DestFile
Nazwa pliku wynikowego, włącznie z pełną
ścieżką dostępu, lub nazwa katalogu (patrz
przykład poniżej).
DoneTag
Nazwa zmiennej używanej przez funkcję
FileCopy() do poinformowania o trwaniu
procedury kopiowania. Parametr ten musi być
łańcuchem znaków zawierającym nazwę
zmiennej (a nie samą zmienną). Dlatego więc,
jeśli zmienną służącą do komunikowania o
przebiegu operacji jest zmienna Monitor, jako
parametr należy podać "Monitor" lub
Monitor.name, a nie Monitor.
Uwagi
Funkcja FileCopy() zwraca natychmiast wartość 1, jeśli procedura
kopiowania została pomyślnie zainicjowana. Funkcja zwraca 0, jeśli inna
procedura znajduje się w trakcie realizacji (nowa procedura nie może
zostać zainicjowana), oraz zwraca -1 w przypadku błędu. Wartość ta
pozwala na monitorowania inicjalizacji funkcji FileCopy().
Status=FileCopy("C:\*.TXT", "C:\BACKUP", "Monitor");
192
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
Status jest zmienną typu Integer, o wartościach 1, -1 lub 0. Funkcja
FileCopy() jest wykonywana w tle, dlatego też nie zakłóca innych operacji
realizowanych prze program InTouch. Zmienna DoneTag umożliwia
natomiast monitorowanie postępu operacji kopiowania, przez aplikację lub
użytkownika. W ten sposób użytkownik może zostać ostrzeżony o
wszelkich błędach, które mogą wystąpić po zainicjowaniu procedury. Nie
jest ona równoważna zmiennej Status zastosowanej w przykładzie
powyżej, która wskazuje tylko, czy procedura kopiowania została
pomyślnie zainicjowana.
Po pomyślnym zainicjowaniu procedury kopiowania ustawiana jest
wartość zmiennej DoneTag. Wartość ta jest ustawiona na 0, gdy procedura
trwa. Wartość tej zmiennej ustawiona jest na 1 gdy procedura zostanie
pomyślnie zakończona lub
-1 gdy w trakcie wykonywania wystąpił błąd.
Zwykle nazwami plików są SourceFile i DestFile. Jeśli jednak za pomocą
funkcji FileCopy() kopiowany jest pojedynczy plik, zamiast nazwy pliku
wynikowego można użyć nazwy katalogu:
FileCopy("C:\DATA.TXT", "C:\BACKUP", "Monitor");
Instrukcja ta spowoduje skopiowanie pliku DATA.TXT do katalogu o
nazwie BACKUP na dysku "C:\”. Po zakończeniu tej operacji zmienna
Monitor przyjmie wartość 1.
Jeżeli jednak nazwa SourceFile zawiera znaki wzorca, DestFile MUSI być
kartoteką (nie plikiem), bowiem w przeciwnym wypadku zwrócony
zostanie błąd:
FileCopy("C:\*.TXT", "C:\BACKUP", "Monitor");
Instrukcja ta spowoduje skopiowanie wszystkich plików o rozszerzeniu
.TXT do katalogu C:\BACKUP. Po zakończeniu tej operacji zmienna
Monitor przyjmie wartość 1.
FileCopy() nie funkcjonuje z asynchronicznymi funkcjami QuickFunction.
Z funkcji FileCopy() należy korzystać jedynie w funkcjach
synchronicznych.
Patrz również
FileDelete(), FileMove(), FileReadFields(), FileReadMessage(),
FileWriteFields(), FileWriteMessage()
Funkcje skryptowe
193
Opis funkcji, pól i zmiennych systemowych
FileDelete()
Usuwa niepotrzebne pliki.
Kategoria
system
Składnia
[Result=]FileDelete(Filename);
Parametr
Opis
Filename
Nazwa pliku do
usunięcia.
Uwagi
Jeśli podany plik zostanie znaleziony i pomyślnie usunięty, funkcja zwraca
wartość 1. W przeciwnym wypadku zwracana jest wartość 0.
Funkcja FileDelete() nie akceptuje znaków wieloznacznych. Przykładowo
* i ?. Użycie znaków wieloznacznych spowoduje zwrócenie błędu (0) )
“Could not find file.”
FileDelete() nie funkcjonuje z asynchronicznymi funkcjami
QuickFunction. Z funkcji FileDelete() należy korzystać jedynie w
funkcjach synchronicznych.
Przykład(y)
Status=FileDelete("C:\DATA.TXT");
Zmienna Status przyjmuje wartość 1, jeśli plik o nazwie "DATA.TXT”
został znaleziony w katalogu głównym dysku C:, lub też 0, w wypadku
przeciwnym.
Patrz również
FileCopy(), FileMove(), FileReadFields(), FileReadMessage(),
FileWriteFields(), FileWriteMessage()
194
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
FileMove()
Funkcja ta jest podobna do funkcji FileCopy() z tą różnicą, że powoduje
ona przesunięcie pliku SourceFile.
Kategoria
system
Składnia
[Result=]FileMove(SourceFile,DestFile,DoneTag);
Parametr
Opis
SourceFile
Nazwa pliku źródłowego (do przeniesienia), włącznie
z pełną ścieżką dostępu.
DestFile
Nazwa pliku wynikowego, włącznie z pełną ścieżką
dostępu.
DoneTag
Nazwa zmiennej, która zostanie użyta przez funkcję
FileMove() do powiadamiania o postępie
przenoszenia. Parametr ten musi być łańcuchem
znaków zawierającym nazwę zmiennej (a nie samą
zmienną). Dlatego więc, jeśli zmienną służącą do
komunikowania o przebiegu operacji jest zmienna
Monitor, jako parametr należy podać "Monitor" lub
Monitor.name, a nie Monitor.
Uwagi
Funkcja FileMove() zwraca wartość 1, jeśli procedura przesunięcia została
pomyślnie zainicjowana. Funkcja zwraca 0, jeśli inna procedura jest
aktualnie realizowana (i nowa procedura nie może zostać zainicjowana)
oraz zwraca -1 w przypadku błędu. Używając tej wartości można
monitorować inicjowanie funkcji FileMove():
Status=FileMove("C:\DATA.TXT", "D:\DATA.TXT",
"Monitor");
Status jest zmienną typu Integer, o wartościach 1, -1 lub 0. Funkcja
FileMove() jest wykonywana w tle, dlatego też nie zakłóca
funkcjonowania programu InTouch. Zmienna DoneTag umożliwia
natomiast monitorowanie postępu operacji przenoszenia pliku, przez
aplikację lub użytkownika. W ten sposób użytkownik może zostać
ostrzeżony o wszelkich błędach, które mogą wystąpić po zainicjowaniu
procedury. Nie jest ona równoważna zmiennej Status zastosowanej w
przykładzie powyżej, która wskazuje tylko, czy procedura przenoszenia
została pomyślnie zainicjowana.
FileMove() nie funkcjonuje z asynchronicznymi funkcjami
QuickFunction. Z funkcji FileMove() należy korzystać jedynie w
funkcjach synchronicznych.
Po pomyślnym zainicjowaniu procedury przesuwania pliku ustawiana jest
wartość zmiennej DoneTag Wartość ta jest ustawiona na 0, gdy procedura
trwa. Wartość tej zmiennej ustawiona jest na 1 gdy procedura zostanie
pomyślnie zakończona lub
-1 gdy w trakcie wykonywania wystąpił błąd.
Funkcje skryptowe
195
Opis funkcji, pól i zmiennych systemowych
Uwaga: Funkcja Filemove() ma flagę DONE. Nie należy wywoływać innej
funkcji Filemove zanim nie zakończy się poprzednia.
Jeśli SourceFile i DestFile znajdują się na tym samym dysku, funkcja
zmienia tylko adres miejsca w pamięci, gdzie przechowywane są dane o
pliku, bez faktycznego przemieszczania danych. W takim przypadku
procedura jest wykonywana bardzo szybko, niezależnie od rozmiarów
pliku. Jeżeli pliki SourceFile i DestFile umieszczone są na różnych
dyskach, czas potrzebny na zrealizowanie operacji przesunięcia zależy od
rozmiaru pliku. Jest to powodowane przez fakt, że dane muszą być
przesunięte z jednego dysku fizycznego na drugi
Przykład(y)
FileMove
("C:\DATA.TXT","C:\BACKUP\DATA.TXT","Monitor");
Instrukcja ta spowoduje przesunięcie pliku "DATA.TXT” z katalogu
głównego dysku "C" do podkatalogu o nazwie BACKUP na tym dysku: Po
zakończeniu tej operacji zmienna Monitor przyjmie wartość 1.
Jeżeli w SourceFile i Destfile podano tę samą kartotekę ale różne nazwy
plików, funkcja ta spowoduje zmianę nazwy plików.
FileMove ("C:\DATA.TXT","C:\DATA.BAK","Monitor");
Patrz również
FileCopy(), FileDelete(), FileReadFields(), FileReadMessage().
FileWriteMessage(),FileWriteFields()
196
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
FileReadFields()
Odczytuje rekord z zadanego pliku w formacie CSV (Comma Separated
Variable - zmienne oddzielone przecinkami).
Kategoria
system
Składnia
[Result=]FileReadFields(Filename,FileOffset,StartTag,
NumberOfFields);
Parametr
Opis
Filename
Nazwa pliku źródłowego do odczytu.
FileOffset
Miejsce rozpoczęcia odczytu (w pliku).
StartTag
Nazwa zmiennej zdefiniowanej w programie
InTouch, w której zostanie zapisany pierwszy
element odczytany z pliku. Nazwa tej zmiennej
musi kończyć się liczbą (np. MyTag1). Parametr
ten musi być łańcuchem znaków zawierającym
nazwę zmiennej (a nie samą zmienną). Dlatego
więc, jeśli rozważaną zmienną ma być zmienna
MyTag1, jako parametr należy podać "MyTag1"
lub MyTag1.name, a nie MyTag1.
NumberOfFields
Jest to liczba elementów do odczytu (liczba pól
oddzielonych przecinkami w każdym rekordzie
pliku).
Uwagi
Jeśli parametrem StartTag jest zmienna MyTag1, a parametrem
NumberOfFields jest 3, z pliku odczytane zostaną trzy elementy i zostaną
zapisane jako wartości zmiennych MyTag1, MyTag2 i MyTag3. Zmienne
te (o kolejnych numerach w nazwie) muszą zostać wcześniej utworzone w
programie InTouch i mogą być różnych typów (Integer, Message, itp).
Przykład(y)
Je
ś
li pierwsza linia pliku C:\DATA\FILE.CSV ma posta
ć
:
To jest tekst, 3.1416, 5
to instrukcja ta zamieszczona w skrypcie QuickScript poniżej odczyta tę
linię i zapisze "To jest tekst" jako zmienną MyTag1, 3.1416 jako zmienną
MyTag2, a liczbę 5 jako zmienną MyTag3:
BytePosition=FileReadFields ("C:\DATA\FILE.CSV", 0,
"MyTag1", 3);
Funkcja ta po zakończeniu odczytu zwraca nową pozycję bajtu. Można
użyć tej wartości jako parametru FileOffset do następnego odczytu.
FileReadFields
("C:\DATA\FILE.CSV",BytePosition,"MyTag1",3);
Długość zmiennych tekstowych w programie InTouch nie może
przekraczać 131 znaków.
Patrz również
FileCopy(), FileMove(), FileDelete(), FileReadMessage(),
FileWriteMessage(), FileWriteFields()
Funkcje skryptowe
197
Opis funkcji, pól i zmiennych systemowych
FileReadMessage()
Odczytuje podaną liczbę bajtów, lub całą linię z podanego pliku.
Kategoria
system
Składnia
[Result=]FileReadMessage(Filename,FileOffset,
Message_Tag, CharsToRead);
Parametr
Opis
Filename
Nazwa pliku źródłowego do odczytu.
FileOffset
Miejsce rozpoczęcia odczytu (w pliku).
Message_Tag
Nazwa zmiennej programu InTouch, w której
zostanie zapisany pierwszy element odczytany z
pliku. Maksymalnie można zapamiętać 131 znaków.
CharsToRead
Jest to liczba bajtów do odczytu z pliku. Przy
wykorzystaniu z tej funkcji dla plików tekstowych,
CharsToRead może być ustawione na 0. Spowoduje
to odczyt ciągu znaków do rozpoczęcia kolejnej linii
(znak LF), lub odczyt do 131 pierwszych znaków.
Przykład(y)
FileReadMessage ("C:\DATA\FILE.TXT", 0, MsgTag, 0);
Powyższa instrukcja spowoduje odczyt pierwszej linii z pliku
"C:\data\fileTXT" i przypisanie jej do zmiennej o nazwie MsgTag.
Funkcja ta po zakończeniu odczytu zwraca nową pozycję bajtu. Można
użyć tej wartości jako parametru FileOffset do następnego odczytu.
Patrz również
FileCopy(), FileMove(), FileDelete(), FileReadFields(),
FileWriteFields(), FileWriteMessage()
198
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
FileWriteFields()
Zapisuje rekord do zadanego pliku w formacie CSV (Comma Separated
Variable - zmienne oddzielone przecinkami).
Kategoria
system
Składnia
[Result=]FileWriteFields(Filename,FileOffset,StartTag,
NumberOfFields);
Parametr
Opis
Filename
Nazwa pliku źródłowego, w którym ma zostać
zapisany rekord. Jeśli plik o nazwie FileName
nie istnieje, zostanie utworzony.
FileOffset
Miejsce rozpoczęcia zapisu (w pliku). Jeśli
wartość parametru FileOffset wynosi -1, funkcja
dopisze rekord na końcu pliku.
StartTag
Nazwa zmiennej programu InTouch, z której
zostanie wzięty pierwszy element zapisany w
pliku. Nazwa tej zmiennej musi kończyć się
liczbą (np. MyTag1). Parametr ten musi być
łańcuchem znaków zawierającym nazwę
zmiennej (a nie samą zmienną). Dlatego więc,
jeśli rozważaną zmienną ma być zmienna
MyTag1, jako parametr należy podać "MyTag1"
lub MyTag1.name, a nie MyTag1.
NumberOfFields
Liczba elementów do zapisu (liczba pól
oddzielonych przecinkami w każdym rekordzie
pliku).
Uwagi
Jeśli parametrem StartTag jest zmienna MyTag1, a parametrem
NumberOfFields jest 3, w pliku zapisane zostaną trzy elementy
przechowywane jako MyTag1, MyTag2 i MyTag3. Zmienne te (o
kolejnych numerach w nazwie) muszą zostać wcześniej utworzone w
programie InTouch i mogą być różnych typów (Integer, Message).
Przykład(y)
Zamieszczony poniżej skrypt zapisuje linie "This is text, 3.1416,5" do
pierwszej linii pliku C:\data\file.csv. "This is text" jest aktualną wartością
zmiennej MyTag1, liczba 3.1416 jest wartością zmiennej MyTag2, a
liczba 5 jest wartością zmiennej MyTag3:
FileWriteFields ("C:\DATA\FILE.CSV", 0, "MyTag1", 3);
Po zapisie funkcja zwraca nową pozycję położenia bajtu w pliku. Można
użyć tej wartości jako parametru FileOffset do następnego zapisu.
Zamieszczony poniżej skrypt zapisuje linię "This is text, 3.1416, 5" do
ostatniej linii pliku C:\data\file.csv. "This is text" jest aktualną wartością
zmiennej MyTag1, liczba 3.1416 jest wartością zmiennej MyTag2, a
liczba 5 jest wartością zmiennej MyTag3:
FileWriteFields ("C:\DATA\FILE.CSV", -1, "MyTag1", 3);
Patrz również
FileCopy(), FileDelete(), FileMove(), FileReadFields(),
FileReadMessage(). FileWriteMessage()
Funkcje skryptowe
199
Opis funkcji, pól i zmiennych systemowych
FileWriteMessage()
GetNodeName()
Zapisuje podaną liczbę bajtów (lub całą linię) do podanego pliku.
Kategoria
system
Składnia
[Result=]FileWriteMessage(Filename,FileOffset,
Message_Tag,LineFeed);
Parametr
Opis
Filename
Nazwa pliku, w którym ma zostać zapisany ciąg
znaków. Jeśli plik o nazwie FileName nie
istnieje, zostanie utworzony.
FileOffset
Miejsce rozpoczęcia zapisu (w pliku). Jeśli
wartość parametru FileOffset wynosi -1, funkcja
dopisze rekord na końcu pliku.
Message_Tag
Ciąg znaków, który ma zostać zapisany w pliku.
LineFeed
Parametr ten określa, czy po operacji zapisu
przejść do następnej linii (znak LF). W
przypadku zapisu do pliku tekstowego parametr
LineFeed powinien mieć wartość 1.
Uwagi
Po zapisie funkcja zwraca nową pozycję położenia bajtu w pliku. Można
użyć tej wartości jako parametru FileOffset() do następnego zapisu.
Przykład(y)
Poniższa instrukcja zapisuje zawartość zmiennej MsgTag na końcu pliku
C:\data\file.txt:
FileWriteMessage ("C:\DATA\FILE.TXT", -1, MsgTag, 1);
Patrz również
FileCopy(), FileDelete(), FileMove(), FileReadFields(),
FileReadMessage(), FileWriteFields()
Zwraca za pomocą zmiennej tekstowej nazwę stacji NetDDE.
Kategoria
system
Składnia
GetNodeName(Tagname,NodeNum);
Parametr
Opis
Zmienna
Nazwa zmiennej tekstowej programu InTouch,
w której zapisana zostanie nazwa komputera.
NodeNum
Zmienna całkowita, określająca długość
zmiennej tekstowej w znakach.
Uwagi
Funkcja GetNodeName() zastosowana w skrypcie QuickScript odczytuje
nazwę lokalnej stacji i zapisuje ją jako zmienną Tagname. (Parametr
NodeNum podaje długość zmiennej w znakach).
Przykład(y)
GetNodeName("MyNodeTag",131);
If MyNodeTag == “Master” THEN
MessageTag = “This is the Primary Machine!”;
ENDIF;
200
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
GetPropertyD()
GetPropertyI()
Odczytuje wartość dyskretną określonej właściwości.
Kategoria
GOT
Składnia
[ErrorNumber=]GetPropertyD("ControlName[.Property]",Tag
name);
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ChkBox_1 lub nazwa obiektu do wyświetlania
alarmów. Przykładowo, AlmObj_1.
.Property
Właściwość obiektu sterującego okna, lub obiektu do
wyświetlania alarmów.
Aby dowiedzieć się więcej na temat tych
właściwości, zobacz Rozdział 2, "Pola zmiennych."
Tagname
Zdefiniowana zmienna programu InTouch, w której
zostaje zapisana odczytana wartość pola (zmienna
tego samego typu, co odczytana wartość).
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Patrz również
GetPropertyI(), GetPropertyM(), SetPropertyD(), SetPropertyI(),
SetPropertyM()
Odczytuje wartość całkowitą określonej właściwości.
Kategoria
GOT
Składnia
[ErrorNumber=]GetPropertyI("ControlName.[Property]",Tag
name);
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ChkBox_1 lub nazwa obiektu do wyświetlania
alarmów. Przykładowo, AlmObj_1.
.Property
Właściwość obiektu sterującego okna, lub obiektu do
wyświetlania alarmów.
Aby dowiedzieć się więcej na temat tych
właściwości, zobacz Rozdział 2, "Pola zmiennych."
Tagname
Zdefiniowana zmienna programu InTouch, w której
zostaje zapisana odczytana wartość pola (zmienna
tego samego typu, co odczytana wartość).
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Patrz również
GetPropertyD(), GetPropertyM(), SetPropertyD(), SetPropertyI(),
SetPropertyM()
Funkcje skryptowe
201
Opis funkcji, pól i zmiennych systemowych
GetPropertyM()
Odczytuje wartość tekstową określonej właściwości.
Kategoria
GOT
Składnia
[ErrorNumber=]GetPropertyM("ControlName.[Property]",Tag
name);
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ChkBox_1 lub nazwa obiektu do wyświetlania
alarmów. Przykładowo, AlmObj_1.
.Property
Właściwość obiektu sterującego okna, lub obiektu do
wyświetlania alarmów.
Aby dowiedzieć się więcej na temat tych
właściwości, zobacz Rozdział 2, "Pola zmiennych."
Tagname
Zdefiniowana zmienna programu InTouch, w której
zostaje zapisana odczytana wartość pola (zmienna
tego samego typu, co odczytana wartość).
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Patrz również
GetPropertyD(), GetPropertyI(), SetPropertyD(), SetPropertyI(),
SetPropertyM()
202
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
Hide
HideSelf
Funkcja ta pozwala na ukrycie okna z poziomu skryptu QuickScript.
Funkcja Hide() musi poprzedzać nazwę każdego okna, które ma być
ukryte.
Kategoria
różne
Składnia
Hide Window;
Parametr
Opis
Okno
Nazwa okna lub zmienna tekstowa zawierająca
nazwę okna.
Uwagi
W czasie pracy aplikacji, jeśli okno o podanej nazwie nie istnieje,
instrukcja jest ignorowana. Jeśli celem skryptu QuickScript jest wyłącznie
ukrycie lub wyświetlenia okna, najlepszym rozwiązaniem jest
wykorzystanie połączenia animacyjnego otwierania okna lub zamykania
okna, związanego z przyciskiem.
Jeżeli jako parametr do ukrycia okna użyta zostanie zmienna lokalna typu
Message, wyświetlony zostanie następujący komunikat o błędzie:
Spodziewana jest nazwa okna (wyrażenie tekstowe)
Aby tego uniknąć, zmienną typu Message należy poprzedzić znakiem plus
(+).
Przykładowo:
DIM Test AS message;
Test = "MyWindow1";
Hide ""+Test;
Przykład(y)
Hide "My Popup Alarm Window";
Patrz również
Hideself, Show, ShowAt(), ShowTopLeftAt(), ShowHome
Ukrywa aktywne okno.
Kategoria
różne
Składnia
HideSelf;
Uwagi
Funkcja ta może zostać użyta tylko w skrypcie QuickScript związanym z
przyciskiem.
Patrz również
Hide, Show
Funkcje skryptowe
203
Opis funkcji, pól i zmiennych systemowych
HTGetLastError()
Określa, czy podczas ostatniego odczytu danych dla określonego pisaka
trendu historycznego wystąpił błąd.
Kategoria
dane historyczne
Składnia
[Result=]HTGetLastError(Hist_Tag,UpdateCount,PenNum);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
UpdateCount Liczba
całkowita reprezentująca wartość pola
.UpdateCount zmiennej reprezentującej trend.
PenNum
Zmienna typu Integer lub liczba całkowita
określająca numer pisaka (od 1 do 8).
[Result=]
Funkcja zwraca następujące wyniki:
Result
Opis
0
Brak błędu.
1
Generalny błąd serwera.
2
Moduł trendów historycznych realizuje
poprzednie zapytanie.
3
Błąd pliku.
4
Serwer nie jest załadowany.
5
Trend lub pisak podany jako parametr
funkcji nie istnieje.
6
Nazwa zmiennej reprezentującej trend
nie występuje na liście zmiennych
programu InTouch.
7
Numer pisaka podany jako parametr
funkcji nie mieści się w dopuszczalnym
zakresie (od 1 do 8).
8
Dla podanego numeru pisaka nie
istnieje zmienna/zmienna nie jest
zarejestrowana.
Przykład(y)
Poniższa instrukcja powoduje odczytanie kodu błędu, który wystąpił
podczas ostatniego odczytu danych historycznych dla pisaka Pen3 trendu
związanego ze zmienną Trend1 i zapisanie tego kodu jako zmiennej
całkowitej ResultCode:
[ResultCode=]HTGetLastError("Trend1",Trend1.UpdateCount
,3);
Poniższą instrukcję można wykorzystać w wyrażeniu połączenia
animacyjnego do wyświetlania wartości analogowych:
HTGetLastError("Trend1",Trend1.UpdateCount,3);
204
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
HTGetPenName()
HTGetTimeAtScooter()
Odczytuje nazwę zmiennej aktualnie przypisanej do określonego pisaka
danego trendu historycznego.
Kategoria
dane historyczne
Składnia
MessageResult=HTGetPenName(Hist_Tag,UpdateCount,PenNum)
;
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
UpdateCount
Liczba całkowita reprezentująca wartość pola
.UpdateCount zmiennej reprezentującej trend.
PenNum
Zmienna typu Integer lub liczba całkowita
określająca numer pisaka (od 1 do 8). Funkcja zwraca
nazwę zmiennej związanej z tym pisakiem w postaci
zmiennej tekstowej (Message).
Przykład(y)
Poniższa instrukcja powoduje odczytanie nazwy zmiennej przypisanej do
pisaka Pen2 trendu związanego ze zmienną Trend1, a następnie zapisuje
nazwę do zmiennej tekstowej TrendPen:
TrendPen=HTGetPenName("Trend1",Trend1.UpdateCount,2);
Podaje w sekundach czas, jaki upłynął od godziny 00:00:00, 1 stycznia
1970 czasu GMT, dla podanej pozycji suwaka określonej przez ScootNum i
ScootLoc.
Kategoria
dane historyczne
Składnia
IntegerResult=HTGetTimeAtScooter(Hist_Tag,UpdateCount,
ScootNum,ScootLoc);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
UpdateCount
Liczba całkowita reprezentująca wartość pola
.UpdateCount zmiennej reprezentującej trend.
ScootNum
Zmienna typu Integer lub liczba całkowita
określająca prawy lub lewy suwak.
1=lewy suwak
2=prawy suwak
ScootLoc
Liczba rzeczywista oznaczająca wartość pola
.ScooterPosRight lub .ScooterPosLeft zmiennej
reprezentującej trend.
Uwagi
W przypadku gdy parametry UpdateCount, ScootNum, i ScootLoc ulegną
zmianie, wymuszane jest uaktualnienie wartości wyrażenia. Zapewnia to
obliczanie wartości wyrażenia po znalezieniu nowych danych, lub po
przemieszczeniu suwaka.
Funkcje skryptowe
205
Opis funkcji, pól i zmiennych systemowych
HTGetTimeStringAtScooter
(
)
Przykład(y)
Poniższa instrukcja powoduje odczytanie czasu (w sekundach) dla
aktualnej pozycji lewego suwaka trendu reprezentowanego przez zmienną
Trend1:
HTGetTimeAtScooter("Trend1",Trend1.UpdateCount,1,
Trend1.ScooterPosLeft);
Zwraca ciąg znaków zawierający czas/datę próbki w pozycji suwaka
określonej przez ScootNum i ScootLoc.
Kategoria
dane historyczne
Składnia
MessageResult=HTGetTimeStringAtScooter(Hist_Tag,
UpdateCount,ScootNum,ScootLoc,Format_Text);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
UpdateCount
Liczba całkowita reprezentująca wartość pola
.UpdateCount zmiennej reprezentującej trend.
ScootNum
Zmienna typu Integer lub liczba całkowita
określająca prawy lub lewy suwak.
1=lewy suwak
2=prawy suwak
ScootLoc
Liczba rzeczywista oznaczająca wartość pola
.ScooterPosRight lub .ScooterPosLeft zmiennej
reprezentującej trend.
Format_Text
Łańcuch znaków określający format czasu/daty,
który ma zostać użyty. Dopuszczalne są następujące
wartości Format_Text:
"Date" , "Time" , "DateTime" , "DOWShort" (dzień
tygodnia w skrócie, np. Wed - środa), "DOWLong"
(dzień tygodnia w całości, np. Wednesday - środa).
Uwagi
W przypadku gdy parametry UpdateCount, ScootNum, i ScootLoc ulegną
zmianie, wymuszane jest uaktualnienie wartości wyrażenia. Zapewnia to
zaktualizowanie wartości po znalezieniu nowych danych, lub po
przemieszczeniu suwaka. Format tekstu określa zawartość wartości
zwracanej.
Przykład(y)
Poniższa instrukcja powoduje odczytanie daty i czasu dla aktualnej pozycji
prawego suwaka trendu reprezentowanego przez zmienną Trend1. Data i
czas są zapisywane jako zmienna tekstowa o nazwie NewRightTimeString
w formacie "Time":
NewRightTimeString=HTGetTimeStringAtScooter
("Trend1",Trend1.UpdateCount,2,Trend1.ScooterPosRight,
"Time");
206
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
HTGetValue()
Funkcja ta zwraca wartość określonego typu (np. maksymalna, minimalna,
średnia, itp.) dla wykresu trendu historycznego dla danego pisaka.
Parametr UpdateCount wymusza obliczanie wartości wyrażenia po
odczytaniu danych.
Kategoria
dane historyczne
Składnia
RealResult=HTGetValue(Hist_Tag,UpdateCount,PenNum,
ValType_Text);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
UpdateCount
Liczba całkowita reprezentująca wartość pola
.UpdateCount zmiennej reprezentującej trend.
PenNum
Zmienna typu Integer lub liczba całkowita
określająca numer pisaka (od 1 do 8).
ValType_Text
Łańcuch znaków określający rodzaj wskaźnika, który
ma być obliczony przez funkcję:
Typ
Opis
"PenAverageValue"
Wartość średnia dla całego
trendu.
"PenMaxValue"
Wartość maksymalna dla
całego trendu.
"PenMinValue"
Wartość minimalna dla
całego trendu.
"PenMaxEU"
Wartość maksymalna w
jednostkach inżynierskich
dla całego trendu.
"PenMinEU"
Wartość minimalna w
jednostkach inżynierskich
dla całego trendu.
"PenStdDev"
Wartość odchylenia
standardowego dla całego
trendu.
W przypadku korzystania z parametru ValType_Text
w połączeniu z funkcją HTGetValue, należy
upewnić się, że wykorzystywany jest jeden z
dopuszczalnych typów, wymienionych powyżej.
Uwagi
Wynikiem obliczeń jest wartość rzeczywista obliczonego wskaźnika, którą
można zapisać jako zmienną pamięciową typu Real.
Przykład(y)
Następujące wyrażenie odczytuje odchylenie standardowe dla danych z
trendu, Trend1, Pen2. Wartość zostaje zapisana w zmiennej Memory Real
LeftHemisphereSD:
LeftHemisphereSD=HTGetValue("Trend1",
Trend1.UpdateCount,
2, "PenStdDev");
Funkcje skryptowe
207
Opis funkcji, pól i zmiennych systemowych
HTGetValueAtScooter()
Funkcja ta zwraca wartość odpowiedniego typu dla próbki wyznaczonej
przez pozycje suwaka na trendzie oraz numer pisaka. Parametr
UpdateCount wymusza obliczanie wartości wyrażenia po odczytaniu
danych.
Kategoria
dane historyczne
Składnia
RealResult=HTGetValueAtScooter(Hist_Tag,UpdateCount,
ScootNum,ScootLoc,PenNum,ValType_Text);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
UpdateCount
Liczba całkowita reprezentująca wartość pola
.UpdateCount zmiennej reprezentującej trend.
ScootNum
Zmienna typu Integer lub liczba całkowita
określająca prawy lub lewy suwak.
1=lewy suwak
2=prawy suwak
ScootLoc
Liczba rzeczywista oznaczająca wartość pola
.ScooterPosRight lub .ScooterPosLeft zmiennej
reprezentującej trend.
PenNum
Zmienna typu Integer lub liczba całkowita
określająca numer pisaka (od 1 do 8).
ValType_Text
Łańcuch znaków określający rodzaj wartości, która
ma być obliczona przez funkcję:
Typ
Opis
"PenValue" Wartość na wykresie w pozycji
suwaka.
"PenValid" 0 - jeśli wartości nie można wyznaczyć,
W przypadku korzystania z parametru ValType_Text
w połączeniu z funkcją HTGetValueAtScooter
należy upewnić się, że wykorzystywany jest jeden z
dopuszczalnych typów, wymienionych powyżej.
Uwagi
Zwracana jest zmienna typu Memory Real, reprezentująca wartość
obliczoną dla "PenValue". Zwracana jest zmienna typu Discrete,
reprezentująca wartość obliczoną dla "PenValid".
Przykład(y)
Poniższa instrukcja powoduje zapisanie pod zmienną dyskretną o nazwie
ValidFlag wartości 1, jeśli wartość próbki odpowiadającej bieżącej pozycji
prawego suwaka dla pisaka Pen3 na wykresie trendu związanego ze
zmienną Trend1 można wyznaczyć lub wartości 0, jeśli wartości próbki nie
można wyznaczyć:
ValidFlag=HTGetValueAtScooter("Trend1",Trend1.UpdateCou
nt,
2, Trend1.ScooterPosRight,3,"PenValid");
208
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
HTGetValueAtZone()
Funkcja ta zwraca wartość określonego typu (np. maksymalna, minimalna,
średnia, itp.) dla danych zawartych pomiędzy lewym i prawym suwakiem
na wykresie trendu historycznego, dla danego pisaka. Parametr
UpdateCount wymusza obliczanie wartości wyrażenia po odczytaniu
danych.
Kategoria
dane historyczne
Składnia
RealResult=HTGetValueAtZone(Hist_Tag,UpdateCount,
Scoot1Loc,Scoot2Loc,PenNum,ValType_Text);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
UpdateCount
Liczba całkowita reprezentująca wartość pola
.UpdateCount zmiennej reprezentującej trend.
Scoot1Loc
Liczba rzeczywista oznaczająca wartość pola
.ScooterPosLeft (pozycja lewego suwaka)
zmiennej reprezentującej trend.
Scoot2Loc
Liczba rzeczywista równa wartości pola
.ScooterPosRight (pozycja prawego suwaka)
zmiennej reprezentującej trend.
PenNum
Zmienna typu Integer lub liczba całkowita
określająca numer pisaka (od 1 do 8).
ValType_Text
Łańcuch znaków określający rodzaj wskaźnika,
który ma być obliczony przez funkcję:
Typ
Opis
"PenAverageValue" Wartość średnia dla
obszaru pomiędzy lewym a
prawym suwakiem.
"PenMaxValue"
Wartość maksymalna dla
obszaru pomiędzy lewym a
prawym suwakiem.
"PenMinValue"
Wartość minimalna dla
obszaru pomiędzy lewym a
prawym suwakiem.
"PenMaxEU"
Wartość maksymalna w
jednostkach inżynierskich
dla obszaru pomiędzy
lewym a prawym
suwakiem.
"PenMinEU"
Wartość minimalna w
jednostkach inżynierskich
dla obszaru pomiędzy
lewym a prawym
suwakiem.
Funkcje skryptowe
209
Opis funkcji, pól i zmiennych systemowych
"PenStdDev"
Wartość odchylenia
standardowego dla obszaru
pomiędzy lewym a prawym
suwakiem.
W przypadku korzystania z parametru
ValType_Text w połączeniu z funkcją
HTGetValueAtZone należy upewnić się, że
wykorzystywany jest jeden z dopuszczalnych
typów, wymienionych powyżej.
Uwagi
Wynikiem obliczeń jest wartość rzeczywista obliczonego wskaźnika, którą
można zapisać jako zmienną pamięciową typu Real. Podanie stałych
wartości dla parametrów Scoot1Loc i Scoot2Loc nie daje żadnego rezultatu,
i może być stosowane wyłącznie aby wywołać funkcję w celu uaktualnienia
wyświetlanych linii. Funkcja ta, w celu wyznaczenia granic, korzysta
bezpośrednio z pól trendu .ScooterPosLeft i .ScooterPosRight,
przechowywanych w roboczej bazie danych.
Przykład(y)
Zamieszczona poniżej instrukcja oblicza wartość średnią danych pomiędzy
lewym a prawym suwakiem trendu "Trend1", dla pisaka Pen1. Wartość ta
jest zapamiętywana w zmiennej typu Memory Real o nazwie AvgValue.
AvgValue=HTGetValueAtZone("Trend1",Trend1.UpdateCount,
Trend1.ScooterPosLeft,Trend1.ScooterPosRight,1,
"PenAverageValue");
210
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
HTScrollLeft()
HTScrollRight()
Funkcja ta przesuwa punkt początkowy wykresu trendu do tyłu, w
stosunku do aktualnego punktu początkowego o czas stanowiący
procentową część długości wykresu trendu. Powoduje to przewinięcie
wykresu w lewo o określoną procentowo wartość.
Kategoria
dane historyczne
Składnia
HTScrollLeft(Hist_Tag,Percent);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
Percent
Liczba rzeczywista oznaczająca wartość przesunięcia
w procentach długości wykresu. (wartość zawiera się
w zakresie od 0.0 do 100.0)
Przykład(y)
Poniższa instrukcja powoduje przesunięcie wykresu trendu związanego ze
zmienną Trend1 o 10% w prawo:
HTScrollLeft("Trend1",10.0);
Jeśli aktualny wykres rozpoczyna się o 12:00:00, a długość wykresu w
jednostkach czasu wynosi 60 sekund, to po wykonaniu tej operacji nowy
wykres będzie zaczynał się o 11:59:54.
Funkcja ta przesuwa punkt początkowy wykresu trendu do przodu, w
stosunku do aktualnego momentu początkowego o czas stanowiący
procentową część długości wykresu trendu. Powoduje to przewinięcie
wykresu w prawo o określoną procentowo wartość.
Kategoria
dane historyczne
Składnia
HTScrollRight(Hist_Tag,Percent);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
Percent
Liczba rzeczywista oznaczająca wartość przesunięcia
w procentach długości wykresu. (wartość zawiera się
w zakresie od 0.0 do 100.0)
Przykład(y)
Poniższa instrukcja powoduje przesunięcie wykresu trendu związanego ze
zmienną Trend1 o 20% w prawo:
HTScrollRight("Trend1",20.0);
Jeśli aktualny wykres rozpoczyna się o 12:00:00, a długość wykresu w
jednostkach czasu wynosi 60 sekund, to po wykonaniu tej operacji nowy
wykres będzie zaczynał się o 12:00:12.
Funkcje skryptowe
211
Opis funkcji, pól i zmiennych systemowych
HTSelectTag()
HTSetPenName()
Funkcja ta wyświetla okno dialogowe Wybierz zmienną, za pomocą
którego operator może przypisać inną zmienną do danego pisaka. (W oknie
tym wyświetlane są wyłącznie zmienne, które zostały włączone do
logowania historycznego (zaznaczona została opcja Loguj dane)).
Kategoria
dane historyczne
Składnia
HTSelectTag();
Uwagi
Funkcja HTSelectTag() wyświetla wszystkie zmienne, dla których
ustawiono opcję Loguj dane. Można jednak za pomocą filtra,
zdefiniowanego w przeglądarce zmiennych, ograniczyć liczbę
wyświetlanych zmiennych. Na przykład wszystkie zmienne, których nazwa
rozpoczyna się na "A." Nie można używać funkcji HTSelectTag()
wszystkich zmiennych a jedynie zmiennych z włączoną opcją logowania
historycznego.
Przykład(y)
Skrypt QuickScript związany z przyciskiem może zawierać przedstawioną
poniżej instrukcję. Powoduje ona wyświetlenie przeglądarki zmiennych w
programie WindowViewer. Użytkownik może zaznaczyć jedną ze
zmiennych, wyświetlanych na liście. Zmienna ta zostanie następnie
przypisana do pisaka Pen1, trendu historycznego o nazwie HistTrend.
HTSetPenName( "HistTrend", 1, HTSelectTag( ) );
Patrz również
HTSetPenName()
Przypisanie innej zmiennej do pisaka trendu.
Kategoria
dane historyczne
Składnia
HTSetPenName(Hist_Tag,PenNum,Tagname);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
PenNum
Zmienna typu Integer lub liczba całkowita równa
numerowi pisaka (od 1 do 8), który ma zostać
związany z zmienną Tagname.
Zmienna
Zmienna tekstowa oznaczająca nazwę zmiennej
przypisanej danemu pisakowi.
Uwagi
Jedyną metodą dodawania zmiennych, od dostawcy danych historycznych
w czasie pracy aplikacji, jest korzystanie z funkcji skryptowych.
Przykład(y)
Zamieszczona poniżej instrukcja powoduje przypisanie zmiennej
OutletPressure do pola Pen3 trendu Trend1.
HTSetPenName("Trend1",3,"OutletPressure");
Zamieszczona poniżej instrukcja powoduje przypisanie zmiennej
rozproszonej HistPrv1.Tag1 do TrendPen4 trendu Trend1.
HTSetPenName("Trend1",TrendPen4,"HistPrv1.Tag1");
Patrz również
HTSelectTag();
212
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
HTUpdateToCurrentTime()
HTZoomIn()
Funkcja ta odczytuje i wyświetla dane historyczne dla okresu kończącego
się w bieżącej chwili. Punkt początkowy wykresu trendu historycznego
będzie równy różnicy punktu końcowego i długości wykresu.
Kategoria
dane historyczne
Składnia
HTUpdateToCurrentTime(Hist_Tag);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
Przykład(y)
Poniższa instrukcja powoduje odczytanie i zaktualizowanie, aż do
bieżącego momentu, danych dla wykresu trendu historycznego związanego
ze zmienną "Trend1"
HTUpdateToCurrentTime("Trend1");
Jeśli wykres rozpoczyna się o 16:04, a długość wykresu w jednostkach
czasu wynosi 60 sekund, to po wykonaniu tej instrukcji wykres będzie
kończył się dla danych zebranych o godzinie 16.04. Nową godziną
początkową będzie 16.03.LockString
Funkcja ta oblicza nową szerokość wykresu oraz punkt początkowy. Jeżeli
wartość .ScooterPosLeft jest równa 0.0, a wartość ScooterPosRight jest
równa 1.0, to nowa szerokość wykresu jest równa szerokości starego
wykresu podzielonej przez dwa. Nowy punkt początkowy zostanie
obliczony na podstawie wartości LockString.LockString
Kategoria
dane historyczne
Składnia
HTZoomIn(Hist_Tag,LockString);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
LockString
Łańcuch znaków określający sposób zmiany skali
wykresu.
Typ
Opis
"StartTime" Punkt początkowy wykresu pozostaje
bez zmian.
"Center"
Centralny punkt wykresu pozostaje bez
zmian.
"EndTime" Punkt końcowy wykresu pozostaje bez
zmian.
Uwagi
Jeśli pozycje suwaków nie odpowiadają krawędziom wykresu, nowa
długość okna wykresu będzie odpowiadała odległości pomiędzy suwakami
(.ScooterPosLeft a .ScooterPosRight). W takim przypadku parametr
LockString nie jest używany. Minimalna długość okna wykresu wynosi 1
sekundę. Po zmianie skali wykresu, suwaki przyjmą następujące pozycje:
.ScooterPosLeft=0.0 oraz .ScooterPosRight=1.0.
Funkcje skryptowe
213
Opis funkcji, pól i zmiennych systemowych
HTZoomOut()
Przykład(y)
Zamieszczona poniżej instrukcja powoduje dwukrotne powiększenie
wyświetlanego wykresu, z zachowaniem tego punktu początkowego
wykresu dla zmiennej "Trend1". Pole Trend1.ScooterPosRight jest równe
1.0, a pole Trend1.ScooterPosLeft jest równe 0.0. Jeśli punkt początkowy
wykresu przypadał na godz. 13:25:00, długość wykresu w jednostkach
czasu wynosiła 30 sekund, to po wykonaniu operacji powiększenia, nowy
wykres będzie zaczynał się nadal o godz. 13:25:00, a jego długość wynosić
będzie 15 sekund.
HTZoomIn("Trend1","StartTime");
Funkcja ta oblicza nową szerokość wykresu oraz punkt początkowy. Nowa
szerokość wykresu jest równa szerokości starego wykresu pomnożonej
przez dwa. Nowy punkt początkowy zostanie obliczony na podstawie
wartości LockString.
Kategoria
dane historyczne
Składnia
HTZoomOut(Hist_Tag,LockString);
Parametr
Opis
Hist_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny.
LockString
Łańcuch znaków określający sposób zmiany skali
wykresu.
Typ
Opis
"StartTime" Punkt początkowy wykresu pozostaje
bez zmian.
"Center"
Centralny punkt wykresu pozostaje bez
zmian.
"EndTime" Punkt końcowy wykresu pozostaje bez
zmian.
Uwagi
Pozycje suwaków nie mają wpływu na działanie funkcji HTZoomOut, ale
po wykonaniu operacji zmiany skali wykresu przyjmą one następujące
wartości: .ScooterPosLeft=0.0 oraz .ScooterPosRight=1.0.
Przykład(y)
Zamieszczona poniżej instrukcja powoduje dwukrotne powiększenie
wyświetlanego wykresu, z zachowaniem tego samego punktu centralnego
dla zmiennej trendu historycznego "Volume". If the start time before
zooming was 2:15:00 PM and the chart width was 30 seconds, the start
time after zooming will still be 2:14:45. The chart width will be 60 seconds
and the center of the trend will remain at 2:15:15.
HTZoomOut("Volume","Center");
214
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
InfoAppActive()
InfoAppTitle()
Sprawdza czy podana aplikacja jest uruchomiona.
Kategoria
system
Składnia
DiscreteResult=InfoAppActive(AppTitle);
Parametr
Opis
AppTitle
Nazwa sprawdzanej aplikacji podana jako
łańcuch znaków.
Przykład(y)
InfoAppActive("Calculator") zwróci 0
{o ile nie jest on uruchomiony}
Nazwę danej aplikacji można uzyskać stosując funkcję InfoAppTitle().
Zamieszczony poniżej skrypt QuickScript korzysta z funkcji
InoAppActive do sprawdzenia listy zadań uruchomionych w systemie.
Jeżeli jest uruchomione zadanie o nazwie Notatnik, zwracana jest wartość
1. Pozwala to na uniknięcie ponownego uruchomienia zadania o nazwie
Notatnik. Jeżeli funkcja InfoAppActive zwraca wartość 0 (Notatnik nie
jest uruchomiony), następuje jego uruchomienie.
IF InfoAppActive( InfoAppTitle( "Notepad" ) ) == 1 THEN
ActivateApp InfoAppTitle( "Notepad" );
ELSE
StartApp "Notepad";
ENDIF;
Funkcja ta zwraca nazwę uruchomionej aplikacji (znajdującą się na pasku
tytułowym).
Kategoria
system
Składnia
MessageResult=InfoAppTitle(“ProgramEXEName”);
Parametr
Opis
ProgramEXEName Łańcuch znaków zawierający nazwę pliku z
rozszerzeniem .EXE.
Przykład(y)
Zamieszczona poniżej przykładowa instrukcja z parametrem
ProgramEXEName równym "calc" zwróci wartość "Kalkulator". Nazwą
programu jest calc.exe. W nazwie programu nie podawać rozszerzenia exe.
InfoAppTitle("calc") zwróci tekst "Calculator"
InfoAppTitle("excel") zwróci tekst "Microsoft Excel"
Funkcje skryptowe
215
Opis funkcji, pól i zmiennych systemowych
InfoDisk()
Zwraca informacje na temat lokalnego lub sieciowego napędu.
Kategoria
system
Składnia
IntegerResult=InfoDisk(“Drive”,InfoType,Trigger);
Parametr
Opis
Drive
Łańcuch znaków lub zmienna tekstowa z nazwą
dysku.
InfoType
Liczba całkowita określająca rodzaj informacji:
Typ
Opis
1
Całkowita pojemności dysku (bajty).
2
Dostępny wolny obszaru na dysku
(bajty).
3
Całkowita pojemność dysku (w
kilobajtach).
4
Ilość wolnego obszaru na dysku (w
kilobajtach).
Trigger
Funkcja InfoDisk jest wykonywana po każdej
zmianie parametru Trigger. Parametr ten może być
dowolną zmienną (bez ograniczenia do zmiennych
systemowych). Parametr ten wykorzystywany jest
wyłącznie w polach wyrażeń połączeń animacyjnych,
można użyć dowolnej wartości w przypadku, gdy
funkcja InfoDisk() wykorzystywana jest w skrypcie
QuickScript, ponieważ parametr ten nie ma żadnego
wpływu na wykonywanie skryptu.
Uwagi
Informacje o dysku określonym parametrem Drive są zwracane jako
wartość całkowita.
Przykład(y)
Zamieszczona poniżej instrukcja jest wykonywana co minutę, zwracając
bieżącą wartość. Po umieszczeniu w połączeniu wyświetlającym wartości
analogowych, wartość będzie uaktualniana co minutę.
InfoDisk("C", 1, $Minute) zwróci 233869345
{rozmiar całkowity w bajtach}
InfoDisk("C", 2, $Minute) zwróci 3238935
{wolna przestrze
ń
w bajtach}
InfoDisk("C", 3, $Minute) zwróci 228388
{rozmiar całkowity w kilobajtach}
InfoDisk("C", 4, $Minute) zwróci 3163
{wolna przestrze
ń
w kilobajtach}
Komentarz
1 kilobajt = 1024 bajtów
Podobnie jak w przypadku innych funkcji, które wykorzystują pojedyncze
znaki, jeśli badany łańcuch znaków (lub zmienna tekstowa) użyty jako
nazwa dysku w funkcji InfoDisk() zawiera więcej niż jeden znak,
testowany jest tylko pierwszy znak tego łańcucha. Ponieważ funkcja ta
korzysta z informacji dostarczanych przez system operacyjny, może
zwracać błędne wartości w przypadku zainstalowania w komputerze
pracującym w systemie operacyjnym Windows 95 dysku o pojemności
większej niż 2 gigabajty.
216
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
InfoFile()
Zwraca informacje o określonym pliku lub kartotece.
Kategoria
system
Składnia
IntegerResult=InfoFile(“Filename”,”InfoType”,Trigger);
Parametr
Opis
Filename
Łańcuch znaków zawierający nazwę pliku lub
zmienna typu Message.
InfoType
Liczba całkowita określająca rodzaj informacji:
Typ
Opis
1
Sprawdza czy zadany plik istnieje.
Jeżeli parametr Filename jest plikiem,
zwracana jest wartość 1. Jeżeli
parametr Filename jest podkartoteką,
zwracana jest wartość 2. W przypadku
gdy funkcja nie może znaleźć pliku,
zwracana jest wartość 0.
2
Rozmiar pliku (w bajtach).
3
Data i czas zapisu pliku (w sekundach
od 1 stycznia 1970).
4
Liczba plików odpowiadających
opisowi. Wartości większe od 1 zostaną
zwrócone tylko w przypadku szukania
z zastosowaniem znaków * lub ?, gdy
znalezionych może zostać więcej
plików odpowiadających opisowi.
Trigger
Dowolna zmienna. Funkcja InfoFile jest
wykonywana po każdej zmianie parametru Trigger.
Parametr ten jest wyłącznie w polach wyrażeń
animacyjnych. Można użyć dowolnej wartości w
przypadku, gdy funkcja InfoFile() wykorzystywana
jest w skrypcie QuickScript, ponieważ parametr ten
nie ma żadnego wpływu na wykonywanie skryptu.
Uwagi
Informacje o pliku określonym parametrem FileName są zwracane jako
wartość całkowita. Parametr Filename musi zawierać pełną ścieżkę
dostępu do pliku i może zawierać znaki * oraz ?.
Przykład(y)
Zamieszczone poniżej przykładowe instrukcje zwracają co minutę
następujące informacje:
InfoFile("c:\IT56\view.exe", 1, $Minute) zwróci
1 {plik odnaleziony}
InfoFile("c:\InTouch\view.exe", 2, $Minute) zwróci
634960 {rozmiar pliku}
InfoFile("c:\InTouch\view.exe", 3, $Minute) zwróci
736701852 {liczba sekund od 1-1-70}
InfoFile("c:\InTouch\*.exe", 4, $Minute) zwróci
17 {odnaleziono 17 plików EXE}
Funkcje skryptowe
217
Opis funkcji, pól i zmiennych systemowych
InfoInTouchAppDir()
InfoResources()
Zwraca kartotekę aktualnej aplikacji InTouch.
Kategoria
system
Składnia
MessageResult=InfoInTouchAppDir();
Uwagi
Nazwa katalogu aktualnie uruchomionej aplikacji InTouch'a jest
zapisywana jako zmienna tekstowa MessageResult.
Przykład(y)
InfoInTouchAppDir();
zwróci
"c:\ProgramFiles\FactorySuite\InTouch\DemoApp1\1024"
Funkcja ta dostarcza różnych informacji o zasobach systemu.
Kategoria
funkcje matematyczne
Składnia
IntegerResult=InfoResources(ResourceType,Trigger);
Parametr
Opis
ResourceType
Liczba całkowita określająca rodzaj informacji.
Uwagi
Ten zasób systemowy określony przez
liczbę całkowitą jest zapisany w zmiennej całkowitej.
Przykład(y)
Nast
ę
puj
ą
ce wyra
ż
enie jest wywoływane co minut
ę
i zwraca bie
żą
c
ą
warto
ść
:
InfoResources(1, $Minute) zwróci warto
ść
54 {%
wolnych zasobów}
InfoResources(2, $Minute) zwróci warto
ść
36 {%
wolnych zasobów}
InfoResources(3, $Minute) zwróci warto
ść
11524093
{bajtów}
InfoResources(4, $Minute) zwróci warto
ść
14 {liczba
aktywnych aplikacji}
Informacje o zasobach systemu:
Warto
ść
1&Warto
ść
2 Pami
ę
ci GDI i U
ż
ytkownika
zakodowane s
ą
na zwracanie 50% w systemach Windows NT i
Windows 2000.
Warto
ść
3) W systemie Windows NT i Windows 2000
zwracana jest "liczba wolnych bajtów pliku
stronicowania".
Warto
ść
4) W systemie Windows NT i Windows 2000
zwracany jest wynik przeszukiwania wszystkich okien
umieszczonych na samej górze. Zliczane s
ą
wył
ą
cznie okna
widoczne, nie nale
żą
ce do innych okien. Nie jest to w
rzeczywisto
ś
ci "liczba zada
ń
uruchomionych w danej
chwili" w systemie. Najlepszym przybli
ż
eniem tej liczby
jest liczba elementów na zakładce Aplikacje dost
ę
pnej po
uruchomieniu Menad
ż
era zada
ń
w systemie Windows NT, lub
liczba pozycji wy
ś
wietlana na li
ś
cie po wci
ś
ni
ę
ciu
klawiszy ctrl+alt+del w systemie Windows 2000.
218
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
Int()
InvisibleVerifyCredentials()
IOGetApplication()
Zwraca najbliższą liczbę całkowitą, mniejszą lub równą podanej liczbie.
Kategoria
funkcje matematyczne
Składnia
IntegerResult=Int(Number);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Uwagi
W przypadku podanej liczby ujemnej wynikiem działania funkcji jest
największa liczba całkowita mniejsza lub równa argumentowi funkcji.
Przykład(y)
Int(4.7) daje w wyniku 4
Int(-4.7) daje w wyniku –5
Sprawdza nazwę i hasło bez logowania go do aplikacji.
Kategoria
bezpieczeństwo
Składnia
AnalogTag=InvisibleVerifyCredentials( "UserId",
"Password", "Domain" );
Parametr
Opis
UserId
Nazwa konta użytkownika systemu Windows
Uwagi
Jeżeli nazwa użytkownika, hasło i domena są prawidłowe zwrócony
zostanie poziom dostępu powiązany z użytkownikiem, w innym wypadku
zwrócona zostanie wartość -1. To wywołanie nie zmienia bieżąco
zalogowanego użytkownika.
Przykład(y)
AnalogTag=InvisibleVerifyCredentials( "john",
"Password", "corporate_hq" );
Patrz również
PostLogonDialog(), AttemptInvisibleLogon(), IsAssignedRole(),
QueryGroupMembership(), AddPermission().
Funkcja ta zwraca nazwę aplikacji zdefiniowaną dla podanej nazwy
dostępu do określonej zmiennej.
Kategoria
różne
Składnia
IOGetApplication(“AccessName”);
Parametr
Opis
AccessName
Istniejąca nazwa dostępu.
Uwagi
Nazwa dostępu może być łańcuchem znaków, wartością innej zmiennej
programu InTouch lub wartością funkcji. Zamieszczona poniżej
przykładowa instrukcja przypisze do zmiennej MyTag1 nazwę aplikacji
zdefiniowaną dla nazwy dostępu MyAccess1.
Przykład(y)
MyTag1 = IOGetApplication("MyAccess1");
Funkcje skryptowe
219
Opis funkcji, pól i zmiennych systemowych
IOGetNode()
IOGetTopic()
IOReinitialize()
Funkcja ta zwraca informację o stacji (adres) zdefiniowanym dla podanej
nazwy dostępu do określonej zmiennej.
Kategoria
różne
Składnia
IOGetNode(“AccessName”);
Parametr
Opis
AccessName
Istniejąca nazwa dostępu dla której zwracana jest
informacja.
Uwagi
Nazwa dostępu może być łańcuchem znaków, wartością innej zmiennej
programu InTouch lub wartością funkcji. Zamieszczona poniżej
przykładowa instrukcja przypisze do zmiennej MyTag1 adres stacji
zdefiniowany dla nazwy dostępu MyAccess1.
Przykład(y)
MyTag1 = IOGetNode("MyAccess1");
Funkcja ta zwraca nazwę tematu zdefiniowanego dla podanej nazwy
dostępu do określonej zmiennej.
Kategoria
różne
Składnia
IOGetTopic(“AccessName”);
Parametr
Opis
AccessName
Istniejąca nazwa dostępu dla której będzie zwrócona
nazwa tematu.
Uwagi
Nazwa dostępu może być łańcuchem znaków, wartością innej zmiennej
programu InTouch lub wartością funkcji. Zamieszczona poniżej
przykładowa instrukcja przypisze do zmiennej MyTag1 nazwę tematu
zdefiniowaną dla nazwy dostępu MyAccess1.
Przykład(y)
MyTag1 = IOGetTopic("MyAccess1");
Funkcja ta powoduje zamknięcie wymiany danych z wszystkimi
istniejącymi programami komunikacyjnymi, a następnie ponowne
wznowienie całego procesu przygotowywania do pracy z programami
komunikacyjnymi. Funkcja ta dotyczy wszystkich programów
komunikacyjnych.
Kategoria
różne
Składnia
IOReinitialize();
Uwagi
Działanie tej funkcji powoduje wykonanie tej samej operacji, co polecenie
Reinicjalizuj komunikację z menu Specjalne programu WindowViewer.
220
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
IOSetAccessName()
Zmodyfikowanie części application lub topic Nazwy dostępu w czasie
wykonywania aplikacji, co pozwala na zaimplementowanie strategii hot-
backup (rezerwacji komunikacji).
Kategoria
różne
Składnia
IOSetAccessName(“AccessName”, “NodeName”, “AppName”,
“TopicName”);
Parametr
Opis
AccessName
Istniejąca nazwa dostępu, dla której mają być
przypisane nowe wartości parametrów AppName i
TopicName. Łańcuch znaków lub zmienna tekstowa.
NodeName
Nowa wartość parametru NodeName. Łańcuch
znaków lub zmienna tekstowa.
Aby użyć istniejącej nazwy stacji, należy użyć "" bez
łańcuch a znaków. Aby użyć istniejącej stacji
lokalnej, należy użyć " ". (puste miejsce)
AppName
Nowa wartość parametru AppName. Łańcuch
znaków lub zmienna tekstowa.
TopicName
Nowa wartość parametru TopicName. Łańcuch
znaków lub zmienna tekstowa.
Uwagi
Parametry AccessName, NodeName, AppName i TopicName mogą być
łańcuchami znaków, wartościami innych zmiennych programu InTouch,
lub wartościami funkcji. Przykładowo, nazwa dostępu MyAccess1 może
zostać zmieniona tak, aby wskazywać na aplikację "EXCEL", oraz temat
"Sheet1" przy pomocy polecenia:
Przykład(y)
IOSetAccessName("MyAccess1","MyComputer1","EXCEL",
"[Book1.xls]Sheet1");
lub,
Number = 1;
AccNameString = “MyAccess” + Text(Number, "#");
IOSetAccessName(AccNameString, "", "EXCEL",
"[Book1.xls]Sheet1");
W przypadku gdy jako temat wprowadzony zostanie pusty łańcuch
znaków, nazwa tematu nie ulegnie zmianie, a nazwa aplikacji zostanie
zaktualizowana. Zamieszczona poniżej instrukcja zmienia wartość
aplikacji dla nazwy dostępu MyAccess2 na "excel", bez wprowadzania
zmian w bieżącej wartości tematu.
IOSetAccessName("MyAccess2", "", "excel", "");
Podobnie, jeżeli dla nazwy aplikacji wprowadzony zostanie pusty łańcuch
znaków , bieżąca wartość aplikacji nie ulegnie zmianie, a parametr temat
zostanie zaktualizowany. Zamieszczona poniżej instrukcja zmienia wartość
tematu TopicName zmiennej MyAccess3 na "Sheet2", bez zmiany
wartości aplikacji AppName.
Funkcje skryptowe
221
Opis funkcji, pól i zmiennych systemowych
IOSetItem()
IOSetAccessName("MyAccess3", "","",
"[Book1.xls]Sheet2");
Wykonywaniu funkcji IOSetAccessName() towarzyszy krótka zwłoka
czasowa, wymagana na przerwanie bieżącej konwersacji oraz
zainicjowanie nowej. W czasie tej zwłoki, wszystkie próby odczytu lub
zapisu wartości do nowego tematu kończą się niepowodzeniem.PAGEwill
be lost
Funkcja ta zmienia nazwę dostępu i/lub nazwę pozycji w polu .Reference
zmiennej typu I/O.
Kategoria
różne
Składnia
IOSetItem(“Tagname”,”AccessName”,”Item”);
Parametr
Opis
Zmienna
Dowolna zmienna typu I/O ujęta w cudzysłowy.
AccessName
Nowa nazwa dostępu
Element
Nowa nazwa pozycji
Przykład(y)
IOSetItem(TagName, AccessName, Item)
Tagname, AccessName, and Item tematu mogą być łańcuchami znaków,
wartościami innych zmiennych programu InTouch, lub wartościami
funkcji. Przykładowo, instrukcja zamieszczona poniżej zmienia pole
.Reference zmiennej MyTag1 na nazwę dostępu "excel" i pozycję
"R1C1":
IOSetItem("MyTag1", "[Book1.xls]excel", "R1C1");
lub poprzez
Number = 1;
TagNameString = "MyTag" + Text(Number, "#");
IOSetItem(TagNameString, "[Book1.xls]excel", "R1C1");
Jeżeli jako wartość parametrów AccessName i Item podany będzie pusty
łańcuch znaków (""), zmienna zostanie dezaktywowana. Przykładowo, w
celu dezaktywacji zmiennej MyTag2należy wpisać:
IOSetItem("MyTag2", "", "");
Podobnie, jeżeli jako wartość parametry Item wprowadzony zostanie pusty
łańcuch znaków, bieżąca wartość pozycji nie ulegnie zmianie, a parametr
AccessName zostanie zaktualizowana. Zmiana nazwy dostępu dla
zmiennej MyTag3 na "excel2", tak jak to przedstawiono poniżej, nie
spowoduje zmiany bieżącej wartości pozycji:
IOSetItem("MyTag3", "[Book1.xls]excel2", "");
Podobnie, jeżeli jako parametr AccessName wprowadzony zostanie pusty
łańcuch znaków , bieżąca wartość nazwy dostępu nie ulegnie zmianie, a
parametr element zostanie zaktualizowany. Zmiana nazwy elementu dla
zmiennej MyTag3 na "R1C2", tak jak to przedstawiono poniżej, nie
spowoduje zmiany bieżącej wartości nazwy dostępu:
IOSetItem("MyTag4", "", "R1C2");
222
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
IOStartUninitConversations()
IsAnyAsynchFunctionBusy()
Po uruchomieniu programu WindowViewer funkcja ta automatycznie
próbuje zainicjować wymianę danych z programami komunikacyjnymi.
Jeżeli program komunikacyjny nie odpowiada, można ponownie wydać
polecenie zainicjowania wymiany danych przez program WindowViewer z
programami komunikacyjnymi poprzez użycie tej funkcji w skrypcie
QuickScript.
Kategoria
różne
Składnia
IOStartUninitConversations();
Uwagi
Działanie tej funkcji powoduje wykonanie tej samej operacji, co polecenie
Wznów niezainicjalizowane konwersacje z menu Specjalne programu
WindowViewer.
Zadaniem tej funkcji jest sprawdzenie, czy w danej chwili uruchomiona
jest jakakolwiek funkcja asynchroniczna. Funkcja ta może zostać użyta do
wstrzymywania uruchamiania kolejnych funkcji asynchronicznych, aż do
momentu zakończenia wykonywania już uruchomionych. Pozwala to na
synchronizację pracy tych funkcji.
Kategoria
system
Składnia
DiscreteTag=IsAnyAsynchFunctionBusy(timeout);
Parametr
Opis
DiscreteTag
Zmienna typu dyskretnego której wartość ustalana
jest w następujący sposób:
Jeżeli przekroczony został czas oczekiwania na
zakończenie wykonywania wszystkich funkcji
QuickFunction, wartość zmiennej DiscreteTag
ustawiana jest na 1
Jeżeli nie jest wykonywana żadna funkcja
asynchroniczna, wartość tej zmiennej ustawiana jest
natychmiast na 0, lub też funkcja QuickFunction
będzie czekać przez okres czasu, podany w
parametrze timeout. Jeżeli po upływie okresu czasu
określonego parametrem timeout, żadna funkcja
QuickFunction nie będzie w trakcie wykonywania,
wartość tej zmiennej zostanie ustawiona na 0.
timeout
Wartość całkowita podająca w sekundach okres
czasu, w ciągu którego będzie sprawdzane, czy jest
uruchomiona funkcja asynchroniczna.
Wartość zero (0) oznacza brak oczekiwania.
Przykład(y)
Załóżmy, że zachodzi potrzeba połączenia szeregu baz danych SQL za
pomocą asynchronicznych funkcji QuickFunction, oraz , że operacja ta
będzie wymagać 2 minut. Najpierw należy wywołać funkcję
asynchroniczną QuickFunction w celu połączenia się z bazą danych SQL.
Następnie, należy wywołać funkcję IsAnyAsynchFunctionBusy(120) w
celu zapewnienia odpowiedniej ilości czasu na realizację funkcji.
Funkcje skryptowe
223
Opis funkcji, pól i zmiennych systemowych
IsAssignedRole()
Log()
Jeżeli jednakże po upływie dwóch minut połączenie nie zostanie
nawiązane, a asynchroniczna funkcja QuickFunction nadal podejmuje
próby realizacji połączenia, funkcja IsAnyAsynchFunctionBusy()
zwracać będzie wartość 1 (true). Można w tym momencie wyświetlić
komunikat informujący, że próba połączenia SQL nie powiodła się.
Można skorzystać z następującego skryptu On Show związanego z oknem.
IF IsAnyAsynchFunctionBusy(120) == 1 THEN
SHOW "Okno dialogowe - B³¹d w po³¹czeniu SQL";
ENDIF;
Funkcja służy do sprawdzania czy bieżąco zalogowany użytkownik
posiada przypisaną rolę.
Kategoria
bezpieczeństwo
Składnia
DiscreteTag=IsAssignedRole( "RoleName" );
Parametr
Opis
RoleName
Rola przypisana użytkownikowi AppServer'a.
Uwagi
Właściwa dla trybu zabezpieczeń zgodnym z Application Server'em i
dotyczy bieżąco zalogowanego użytkownika. Jeżeli użytkownik jest
zalogowany oraz jeżeli ma przypisaną w środowisku Galaxy IDE rolę
lpszRoleName, zwracana jest wartość PRAWDA. We wszystkich innych
wypadkach zwracana jest wartość FAŁSZ.
Przykład(y)
DiscreteTag=IsAssignedRole( "Administrator" );
Patrz również
AttemptInvisibleLogon(), PostLogonDialog(),
InvisibleVerifyCredentials(), QueryGroupMembership(),
AddPermission().
Funkcja ta oblicza wartość logarytmu naturalnego z podanej liczby.
Kategoria
funkcje matematyczne
Składnia
RealResult=Log(Number);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Uwagi
Logarytm naturalny z liczby Number jest obliczany i zapisywany jako
RealResult. Wartość logarytmu naturalnego z liczby 0 jest nie określona.
Przykład(y)
Log(100) daje w wyniku 4.605...
Log(1) daje w wyniku 0
224
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
LogMessage()
LogN()
Zapisuje komunikat zdefiniowany przez użytkownika w programie
Wonderware Logger.
Kategoria
różne
Składnia
LogMessage(“Message_Tag”);
Parametr
Opis
Message_Tag
Łańcuch znaków, który ma zostać zapisany w oknie
programu WWLogger. Łańcuch znaków lub zmienna
tekstowa.
Uwagi
Funkcja ta jest bardzo użytecznym narzędziem do szukania przyczyn
niepoprawnego wykonywania skryptów. Umieszczenie funkcji
LogMessage() w odpowiednim miejscu w skrypcie, pozwala na
wyznaczenie kolejności wykonywania, ocenę pracy skryptów QuickScript,
oraz identyfikację wartości zmiennych, przed ich zmianą, a po przekazaniu
ich do skryptu. Każdy komunikat wysyłany do programu Wonderware
Logger ma określoną dokładnie godzinę i datę.
Przykład(y)
LogMessage("Report Script is Running");
Powyższa instrukcja powoduje zapisanie następującego komunikatu w
oknie programu WWLogger:
94/01/14 15:21:14 WWSCRIPT Message:Report Script is
Running.
LogMessage(“The Value of MyTag is “ + Text(MyTag, “#”));
MyTag+MyTag + 10;
LogMessage(“The Value of MyTag is “ + Text(MyTag, “#”));
Więcej informacji na temat programu Wonderware Logger podano w
podręczniku FactorySuite System Administrator's User Guide.
Zwraca logarytm x o podstawie n.
Kategoria
funkcje matematyczne
Składnia
Result=LogN(Number,Base);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Base
Podstawa logarytmu (liczba rzeczywista). Liczba
lub zmienna całkowita.
Uwagi
Wartość podstawy nie może być równa 1.
Przykład(y)
LogN(8, 3) daje w wyniku 1.89279
LogN(NumberTag, BaseTag) daje w wyniku 0.564 Jeœli
wartoœci¹ NumberTag jest 3, a BaseTag 7.
Funkcje skryptowe
225
Opis funkcji, pól i zmiennych systemowych
Logoff()
Pi()
PlaySound()
Wylogowuje użytkownika aplikacji InTouch.
Kategoria
bezpieczeństwo
Składnia
DiscreteTag = LogOff();
Parametr
Opis
N/A
Uwagi
Wylogowuje bieżąco zalogowanego użytkownika i ustawia użytkownika
na domyślną wartość none.
Przykład(y)
DiscreteTag = LogOff();
Patrz również
PostLogonDialog(), InvisibleVerifyCredentials(), IsAssignedRole(),
AttemptInvisibleLogon(), QueryGroupMembership(),
AddPermission().
Zwraca wartość liczby Pi.
Kategoria
funkcje matematyczne
Składnia
RealResult=Pi();
Przykład(y)
Pi() daje w wyniku 3.1415926
Odtwarza dźwięk zapisany w pliku .wav.
Kategoria
różne
Składnia
PlaySound(“SoundName”,Flags);
Parametr
Opis
SoundName
Łańcuch znaków lub zmienna tekstowa, zawierająca
nazwę pliku dźwiękowego do odtworzenia.
Flags
Parametr Flags może mieć jedną z następujących
wartości:
Typ
Opis
0
Synchroniczne odtworzenie dźwięku
(opcja domyślna).
1
Asynchroniczne odtworzenie dźwięku.
2
Nie zostanie odtworzony dźwięk
domyślny. Jako SoundName można
podać nazwę dowolnego pliku typu
.wav. Może to być również dowolna
nazwa z sekcji [Sounds] pliku win.ini.
Przykładowo, jeśli w pliku znajduje się
następujący wpis:
MouseClick=C:\Sounds\Click.wav
226
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
PostLogonDialog()
Można użyć pliku MouseClick jako
SoundName.
3
Wartość ta nie jest używana!
4
Wartość ta nie jest używana!
5-7
Wartość ta nie jest używana!
8
Powtarzanie dźwięku do momentu
ponownego wywołania funkcji
PlaySound(). Wartość dostępna dla
systemu Windows 2000.
9
Wywoływane jest PlaySound().
Wartość dostępna dla systemu
Windows NT.
16
Aktualnie odtwarzany dźwięk nie
będzie zatrzymany.
Przykład(y)
PlaySound ("c:\horns.wav",1);
Uwaga: Dźwięk musi fizycznie zmieścić się w dostępnym obszarze
pamięci i musi istnieć możliwość jego odtworzenia na zainstalowanym
urządzeniu do odtwarzania. W celu znalezienia plików z dźwiękami,
kartoteki przeszukiwane są w następującej kolejności: kartoteka bieżąca,
kartoteka systemu Windows, podkartoteka System systemu Windows, oraz
kartoteki podane w instrukcji PATH. Jeśli nie można znaleźć podanego
pliku dźwiękowego (.WAV), należy wskazać Start, Ustawienia, Panel
sterowania i podwójnie kliknąć na ikonie Dźwięki i skonfigurować
domyślny dźwięk. Jeśli jednak pliku tego nie można znaleźć, żaden dźwięk
nie zostanie odtworzony.
Wyświetla okno dialogowe logowania oraz zwraca wartość PRAWDA.
Kategoria
bezpieczeństwo
Składnia
DiscreteTag=PostLogonDialog();
Uwagi
Wyświetla okno dialogowe logowania oraz zwraca wartość PRAWDA.
Przykład(y)
DiscreteTag=PostLogonDialog();
Patrz również
InvisibleVerifyCredentials(), AttemptInvisibleLogon(),
IsAssignedRole(), QueryGroupMembership(), AddPermission().
Funkcje skryptowe
227
Opis funkcji, pól i zmiennych systemowych
PrintHT()
Funkcja ta może być wykorzystana do drukowania wykresu trendu
historycznego powiązanego z określoną zmienną typu Hist Trend. W
czasie korzystania z tej funkcji, trend historyczny musi być widoczny na
ekranie.
Kategoria
dane historyczne
Składnia
PrintHT("Trend_Tag");
Parametr
Opis
Trend_Tag
Nazwa zmiennej typu HistTrend reprezentującej
trend historyczny. Łańcuch znaków lub zmienna
tekstowa.
Uwagi
-
Przykład(y)
PrintHT("HistTrend1");
228
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
PrintScreen()
Drukuje określony ekran.
Kategoria
różne
Składnia
PrintScreen(ScreenOption, PrintOption );
Parametr
Opis
ScreenOption
1 – Obszar okna (bez menu)
2 – Obszar okna (zwartość okna WindowViewer,
łącznie z menu).
Uwaga. Niewłaściwe opcje (włączając w to 0)
powodują domyślnie wydruk obszaru okna (bez
menu).
PrintOption
1 – Best Fit - dopasowanie do rozmiarów drukowanej
strony (dopasowanie zarówno w kierunku pionowym
jak i poziomym, z zachowaniem proporcji obrazu).
2 – Vert Fit - dopasowanie w kierunku pionowym
(dopasowuje wydruk w kierunku pionowym do
rozmiarów drukowanej strony z zachowaniem
proporcji obrazu).
3 – Horz Fit - dopasowanie w kierunku poziomym
(dopasowuje wydruk w kierunku poziomym do
rozmiarów drukowanej strony z zachowaniem
proporcji obrazu).
4 - Stretch to Page – rozciągnięcie obrazu do pełnej
strony – proporcje obrazu mogą być zniekształcone.
Uwaga. Niewłaściwe opcje (włączając w to 0)
powodują domyślne ustawienie tego parametru na
wartość 1 (Best Fit).
Uwagi
Rozwijalne okna z poza widocznego obszaru w każdym trybie są
niewidoczne. Dodatkowo, inne aplikacje przykrywające normalnie inne
okna, jak np. Debugger, będą drukowane, jeśli ich okna nachodzą na okno
WindowViewer.
Ta funkcja skryptowa QuickScript zachowuje się identycznie jak funkcja
PrintWindow(), jedyną różnicą jest ilość okien, które są drukowane. Okres
oczekiwania można zmienić poprzez dodanie następującej linii w pliku
InTouch.ini:
PrintScreenWait=10000
gdzie 10000 jest czasem oczekiwania w milisekundach.
Funkcje skryptowe
229
Opis funkcji, pól i zmiennych systemowych
Czcionki są drukowane jako czcionki, obiekty jako mapy bitowe. Okna z
białym tłem, zawierające tylko teksty są drukowane bardzo szybko. Okna z
kolorowym tłem, zawierające wiele obiektów są drukowane znacznie
wolniej.
Aby zapewnić prawidłowy wydruk tekstu w oknach, zaleca się stosowanie
czcionek "TrueType" we wszystkich polach tekstowych w oknach
przeznaczonych do drukowania.
Przy drukowaniu przycisków może okazać się, że tekst na przyciskach
zostanie obcięty, ponieważ czcionka zastosowana w tekście na przycisku
jest czcionką systemową, nie będącą czcionką "TrueType". Czcionki
systemowe na drukarce wyglądają nieco inaczej niż na ekranie. Jeśli
sytuacja taka będzie miała miejsce, należy spróbować zwiększyć rozmiar
przycisku.
Jeśli drukarka służy do drukowania alarmów, aby móc wykorzystywać
funkcję PrintScreen() konieczna jest druga drukarka.
Funkcja PrinScreen() nie może drukować poprawnie, jeżeli jakiekolwiek
okno nałożone jest na obiekt wyświetlania alarmu rozproszonego, listę
rozwijalną, pole tekstowe, pole wyboru wykluczającego, pole wyboru, itd.
230
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
PrintWindow()
Drukuje określone okno.
Kategoria
różne
Składnia
PrintWindow("Window",Left,Top,Width,Height,Options);
Parametr
Opis
Okno
Nazwa okna przeznaczonego do wydruku.
Łańcuch znaków lub zmienna tekstowa.
Lewo
Liczba zmiennoprzecinkowa oznaczająca
wielkość lewego marginesu w calach. Liczba lub
zmienna typu rzeczywistego.
Góra
Liczba zmiennoprzecinkowa oznaczająca
wielkość górnego marginesu w calach. Liczba
lub zmienna typu rzeczywistego.
Szerokość
Liczba zmiennoprzecinkowa oznaczająca
szerokość wydruku w calach. Może być ona
równa 0 (co oznacza największą możliwą
wielkość wydruku) lub może podawać konkretną
szerokość. Liczba lub zmienna typu
rzeczywistego.
Wysokość
Liczba zmiennoprzecinkowa oznaczająca
wysokość wydruku w calach. Może być ona
równa 0 (co oznacza największą możliwą
wielkość wydruku) lub może podawać konkretną
wysokość. Liczba lub zmienna typu
rzeczywistego.
Options
Wartość dyskretna, przyjmująca wartość 0 lub 1,
wykorzystywana jedynie gdy parametry Width i
Height są równe 0. Jeśli wartość parametru
Options wynosi 1, okno jest drukowane w
powiększeniu stanowiącym całkowitą
wielokrotność rozmiarów okna (przy zachowaniu
stosunku długości boków). Wartość 0, 1, lub
zmienna typu dyskretnego.
Jeśli wartość parametru Options wynosi 0, okno
jest drukowane w największym możliwym
powiększeniu, tak, aby zmieściło się na stronie.
Jeśli okno zawiera mapę bitową, parametr
Options należy ustawić na 1, aby zapobiec
"rozciągnięciu" mapy bitowej.
Uwagi
Można przytoczyć wiele przykładów użycia tej funkcji. W przypadku
konieczności wydruku nie tylko wykresu trendu historycznego, ale całego
ekranu w trybie Runtime, zamiast funkcji PrintHT() i wydruku
inicjowanego przez operatora z poziomu okna dialogu trendu
historycznego zaleca się używanie funkcji PrintWindow().
Funkcje skryptowe
231
Opis funkcji, pól i zmiennych systemowych
W czasie wykonywania tej funkcji, okno zapisywane jest poza obszarem
pamięci ekranu. Kolejny etap to odczekanie 10 sekund w celu
umożliwienia uaktualnienia wartości wszystkich zmiennych DDE.
Następnie okno jest wysyłane do drukarki. W celu wydrukowania okna, nie
musi ono być otwarte czy widoczne.. Okres oczekiwania można zmienić
poprzez dodanie następującej linii w pliku InTouch.ini:
PrintWindowWait=10000
gdzie 10000 jest czasem oczekiwania w milisekundach.
Czcionki są drukowane jako czcionki, obiekty jako mapy bitowe. Okna z
białym tłem, zawierające tylko teksty są drukowane bardzo szybko. Okna z
kolorowym tłem, zawierające wiele obiektów są drukowane znacznie
wolniej.
Aby zapewnić prawidłowy wydruk tekstu w oknach, zaleca się stosowanie
czcionek "TrueType" we wszystkich polach tekstowych w oknach
przeznaczonych do drukowania.Przy drukowaniu przycisków może okazać
się, że tekst na przyciskach zostanie obcięty, ponieważ czcionka
zastosowana w tekście na przycisku jest czcionką systemową, nie będącą
czcionką "TrueType" a czcionka systemowa drukarki może się od niej
różnić. Jeśli sytuacja taka będzie miała miejsce, należy spróbować
zwiększyć rozmiar przycisku.
Jeśli drukarka służy do drukowania alarmów, aby móc wykorzystywać
funkcję PrintWindow() konieczna jest druga drukarka.
Funkcja PrintWindow() nie może drukować poprawnie, jeżeli
jakiekolwiek okno nałożone jest na obiekt wyświetlania alarmu
rozproszonego, listę rozwijalną, pole tekstowe, pole wyboru
wykluczającego, pole wyboru, itd.
Jeśli drukowane okno nie znajduje się na pierwszym planie, listy
rozwijalne i inne widoczne obiekty Windows/ActiveX (takie jak np. Active
TagBrowser) nie zostaną wydrukowane. Jeżeli drukowane okno znajduje
się na pierwszym planie, obiekty te nie będą widoczne na wydruku.
Inaczej ujmując, przycisk drukowania musi znajdować się w tym samym
oknie, które będzie drukowane. Jeżeli przycisk drukowania znajduje się w
innym oknie niż drukowane okno, Listy, Listy Rozwijalne i inne obiekty
ActiveX, nie będą wydrukowane.
Aby uniknąć tego problemu, przed skorzystaniem z funkcji PrintWindow()
należy wywołać funkcje Show(), ShowAt() lub almMoveWindow().
Przykład(y)
Zamieszczony poniżej przykładowy skrypt warunkowy typu "gdy prawda"
codziennie o godzinie 8:30 drukuje trzystronicowy raport:
Warunkowy
$Hour == 8 AND $Minute == 30
Skrypt:
PrintWindow("1st Shift Summary",1,1,0,0,0);
PrintWindow("2nd Shift Summary",1,1,0,0,0);
PrintWindow("3rd Shift Summary",1,1,0,0,0);
Funkcja PrintWindow() zwraca wartość 1, jeśli okno o podanej nazwie
istnieje i może zostać wydrukowane. W przeciwnym wypadku zwróci
wartość 0. W ten sposób można monitorować wykonanie funkcji.
Status=PrintWindow("Shift Summary",1,1,0,0,0);
Status jest zmienną dyskretną i może przyjmować wartości 0 lub 1.
232
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
QueryGroupMembership()
RecipeDelete()
Kategoria
bezpieczeństwo
Składnia
DiscreteTag=QueryGroupMembership( "Domain", "Group" );
Parametr
Opis
Domena
Nazwa domeny lub lokalnego komputera gdzie
znajduje się grupa.
Grupa
Nazwa domeny lub lokalnego komputera gdzie
znajduje się grupa.
Uwagi
Właściwa dla trybu zabezpieczeń zgodnym z systemem operacyjnym i
dotyczy bieżąco zalogowanego użytkownika. Jeżeli użytkownik jest
zalogowany i jeżeli jest członkiem grupy lpszGroup, która jest
zdefiniowana w domenie lpszDomain, zwrócona zostanie wartość
PRAWDA natomiast w innych wypadkach wartość FAŁSZ.
Przykład(y)
DiscreteTag=QueryGroupMembership( "corporate_hq",
"InTouchAdmins" ); DiscreteTag=QueryGroupMembership(
"JohnS01", "InTouchUsers" );
Patrz również
BOOL PostLogonDialog(), InvisibleVerifyCredentials(), BOOL
IsAssignedRole(), AttemptInvisibleLogon(), AddPermission().
Funkcja ta powoduje usunięcie receptury z zadanego pliku.
Kategoria
receptury
Składnia
RecipeDelete("Filename","RecipeName");
Parametr
Opis
FileName
Nazwa pliku z recepturami, których dotyczą
operacje wykonywane przez funkcję. Łańcuch
znaków lub zmienna tekstowa.
RecipeName
Nazwa receptury w pliku o podanej nazwie,
którego dotyczą operacje wykonywane przez
funkcję. Funkcje RecipeLoad(), RecipeSave() i
RecipeDelete() wymagają od użytkownika
podania parametru RecipeName. Funkcja
RecipeSelectRecipe() natomiast zwraca wartość
tego parametru. Łańcuch znaków lub zmienna
tekstowa.
Przykład(y)
Instrukcja zamieszczona poniżej powoduje usunięcie receptury "Recipe1"
z pliku RECFILE.CSV.
RecipeDelete("c:\recipe\recfile.csv", "Recipe1");
Funkcje skryptowe
233
Opis funkcji, pól i zmiennych systemowych
RecipeGetMessage()
Funkcja ta zapisuje kod błędu zwrócony przez funkcję jako zmienną
analogową, a związany z kodem komunikat jako zmienną tekstową.
Kategoria
receptury
Składnia
RecipeGetMessage(Analog_Tag,Message_Tag,Number);
Parametr
Opis
Analog_Tag
Zmienna analogowa zawierająca kod błędu.
Message_Tag
Zmienna tekstowa zawierająca komunikat związany
z kodem błędu.
Number
Parametr ten określa maksymalną długość łańcucha
znaków przypisywanego do zmiennej
Message_Tag.. Zmienne tekstowe w programie
InTouch mogą przyjmować maksymalną długość 131
znaków. Jeśli maksymalna długość zmiennej
tekstowej nie jest ograniczona z innych względów,
należy przyjmować wartość tego parametru równą
131. Parametr Number może być wartością stałą lub
zmienną programu InTouch.
Przykład(y)
Zastosowanie funkcji RecipeGetMessage() w skrypcie QuickScript
związanym ze zmianą danych umożliwia zapisanie kodu błędu do
zmiennej analogowej, a związanego z kodem komunikat może być
przypisany do zmiennej tekstowej:
Skrypt Zmiany Danych Zmienna[.pole]:ErrorCode
Skrypt: RecipeGetMessage(ErrorCode, ErrorMessage,131);
Skrypt ten będzie wykonywany po każdorazowej zmianie wartości
zmiennej analogowej ErrorCode. Spowoduje on odczytanie przez funkcję
RecipeGetMessage() aktualnej wartości zmiennej ErrorCode, oraz
przypisanie komunikatu towarzyszącego tej wartości do zmiennej
ErrorMessage.
ErrorCode = RecipeLoad
("c:\App\recipe.csv","Unit1","cookies");
RecipeGetMessage(ErrorCode, ErrorMessageTag, 131);
234
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
RecipeLoad()
Funkcja ta powoduje załadowanie receptury (Recipe) dla podanego
zestawu zmiennych (Unit).
Kategoria
receptury
Składnia
RecipeLoad("Filename","UnitName","RecipeName");
Parametr
Opis
FileName
Nazwa pliku z recepturami, których dotyczą
operacje wykonywane przez funkcję.
Parametrem FileName może być stałą tekstową,
lub zmienną tekstową zawierająca nazwę pliku z
szablonami receptur.
UnitName
Nazwa zestawu zmiennych w pliku receptur,
którego dotyczą operacje wykonywane przez
funkcję. Argument UnitName wymagany jest
przy wywoływaniu funkcji RecipeLoad().
Funkcja RecipeSelectUnit() zwraca wartość tego
parametru. Parametrem UnitName może być
stała tekstowa lub zmienna tekstowa zawierająca
nazwę modułu.
RecipeName
Nazwa określonej receptury w pliku receptur,
którego dotyczą operacje wykonywane przez
funkcję. Funkcje RecipeLoad(), RecipeSave() i
RecipeDelete() wymagają od użytkownika
podania parametru RecipeName. Funkcja
RecipeSelectRecipe() natomiast zwraca wartość
tego parametru. Parametr RecipeName może być
zadany jako łańcuch znaków lub jako zmienna
InTouch'a (pamięciowa lub DDE).
Przykład(y)
Instrukcja zamieszczona poniżej powoduje załadowanie zestawu wartości
zdefiniowanych jako receptura Recipe1 (w pliku recfile.csv) do zestawu
zmiennych Unit.
RecipeLoad("c:\recipe\recfile.csv", "Unit1",
"Recipe1");
Funkcje skryptowe
235
Opis funkcji, pól i zmiennych systemowych
RecipeSave()
Funkcja ta powoduje zapisanie nowo utworzonej lub zmodyfikowanej
receptury (Recipe) w pliku receptur o podanej nazwie.
Kategoria
receptury
Składnia
RecipeSave("Filename","UnitName","RecipeName");
Parametr
Opis
FileName
Nazwa pliku z recepturami, których dotyczą operacje
wykonywane przez funkcję. Parametrem FileName
może być stałą tekstową, lub zmienną tekstową
zawierająca nazwę pliku z szablonami receptur.
UnitName
Nazwa zestawu zmiennych w pliku receptur, którego
dotyczą operacje wykonywane przez funkcję.
Argument UnitName wymagany jest przy
wywoływaniu funkcji RecipeLoad(). Funkcja
RecipeSelectUnit() zwraca wartość tego parametru.
Parametrem UnitName może być stała tekstowa lub
zmienna tekstowa zawierająca nazwę modułu.
RecipeName
Nazwa określonej receptury w pliku receptur, którego
dotyczą operacje wykonywane przez funkcję.
Funkcje RecipeLoad(), RecipeSave() i
RecipeDelete() wymagają od użytkownika podania
parametru RecipeName. Funkcja
RecipeSelectRecipe() natomiast zwraca wartość tego
parametru. Parametr RecipeName może być zadany
jako łańcuch znaków lub jako zmienna InTouch'a
(pamięciowa lub DDE).
Przykład(y)
Instrukcja zamieszczona poniżej powoduje zapisanie zmian dokonanych w
recepturze o nazwie Recipe3 w pliku o nazwie RECFILE.CSV. Jeżeli w
pliku recfile.csv nie ma receptury Recipe3, zostanie ona utworzona.
Wartości zostaną przypisane zmiennym zdefiniowanym dla zestawu Unit2:
RecipeSave("c:\recipe\recfile.csv", "Unit2",
"Recipe3");
236
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
RecipeSelectNextRecipe()
Funkcja ta powoduje wybranie z pliku receptur receptury o kolejnej
zdefiniowanej nazwie.
Kategoria
receptury
Składnia
RecipeSelectNextRecipe("Filename", RecipeName, Number);
Parametr
Opis
FileName
Nazwa pliku z recepturami, których dotyczą operacje
wykonywane przez funkcję. Aktualna zmienna
tekstowa.
RecipeName
Nazwa określonej receptury w pliku receptur, którego
dotyczą operacje wykonywane przez funkcję.
Funkcje RecipeLoad(), RecipeSave() i
RecipeDelete() wymagają od użytkownika podania
parametru RecipeName. Funkcja
RecipeSelectRecipe() natomiast zwraca wartość tego
parametru. Parametr RecipeName może być zadany
jako łańcuch znaków lub jako zmienna programu
InTouch (pamięciowa lub DDE).
Number
Jeśli zadaniem funkcji jest wypełnienie zmiennej
tekstowej znakami, pole to służy do zadawania
maksymalnej długości zapisywanego łańcucha
znaków. Zmienne tekstowe w programie InTouch
mogą przyjmować maksymalną długość 131 znaków.
Jeśli maksymalna długość zmiennych nie jest
ograniczona z innych względów, należy przyjmować
wartość tego parametru równą 131. Liczba lub
zmienna całkowita.
Przykład(y)
Instrukcja zamieszczona poniżej powoduje odczytanie aktualnej wartości
zmiennej tekstowej RecipeName i wybranie z pliku następnej receptury.
Jeśli zmienna RecipeName nie ma żadnej przypisanej wartości lub nie
może zostać znaleziona, funkcja zwraca nazwę pierwszej receptury w
pliku. Jeśli zmienna RecipeName zawiera aktualnie nazwę ostatniej
receptury w pliku, jej wartość pozostaje bez zmian. (Receptury są
zapisywane w pliku w kolejności ich tworzenia.)
RecipeSelectNextRecipe("c:\recipe\recfile.csv",
RecipeName, 131);
Funkcje skryptowe
237
Opis funkcji, pól i zmiennych systemowych
RecipeSelectPreviousRecipe()
Funkcja ta powoduje wybranie z pliku receptur poprzedniej receptury.
Kategoria
receptury
Składnia
RecipeSelectPreviousRecipe("Filename",RecipeName,
Number);
Parametr
Opis
FileName
Nazwa pliku z recepturami, których dotyczą operacje
wykonywane przez funkcję. Aktualna zmienna
tekstowa.
RecipeName
Nazwa określonej receptury w pliku receptur, którego
dotyczą operacje wykonywane przez funkcję.
Funkcje RecipeLoad(), RecipeSave() i
RecipeDelete() wymagają od użytkownika podania
parametru RecipeName. Funkcja
RecipeSelectRecipe() natomiast zwraca wartość tego
parametru. Parametr RecipeName może być zadany
jako łańcuch znaków lub jako zmienna programu
InTouch (pamięciowa lub DDE).
Number
Jeśli zadaniem funkcji jest wypełnienie zmiennej
tekstowej znakami, pole to służy do zadawania
maksymalnej długości zapisywanego łańcucha
znaków. Zmienne tekstowe w programie InTouch
mogą przyjmować maksymalną długość 131 znaków.
Jeśli maksymalna długość zmiennych nie jest
ograniczona z innych względów, należy przyjmować
wartość tego parametru równą 131. Liczba lub
zmienna całkowita.
Przykład(y)
Instrukcja zamieszczona poniżej powoduje odczytanie aktualnej wartości
zmiennej tekstowej RecipeName i wybranie z pliku poprzedniej receptury.
Wrócona wartość zostanie zapamiętana w RecipeName, zastępując
poprzednią wartość. Jeśli zmienna RecipeName nie ma żadnej przypisanej
wartości lub nie może zostać znaleziona, funkcja zwraca nazwę ostatniej
receptury w pliku. Jeśli zmienna RecipeName zawiera aktualnie nazwę
ostatniej receptury w pliku, jej wartość pozostaje bez zmian. (Receptury są
zapisywane w pliku w kolejności ich tworzenia.)
RecipeSelectPreviousRecipe("c:\recipe\recfile.csv",
RecipeName, 131);
238
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
RecipeSelectRecipe()
Funkcja ta powoduje wybranie z pliku receptur receptury o podanej
nazwie.
Kategoria
receptury
Składnia
RecipeSelectRecipe("Filename",RecipeName,Number);
Parametr
Opis
FileName
Nazwa pliku z recepturami, których dotyczą operacje
wykonywane przez funkcję. Aktualna zmienna
tekstowa.
RecipeName
Nazwa określonej receptury w pliku receptur, którego
dotyczą operacje wykonywane przez funkcję.
Funkcje RecipeLoad(), RecipeSave() i
RecipeDelete() wymagają od użytkownika podania
parametru RecipeName. Funkcja
RecipeSelectRecipe() natomiast zwraca wartość tego
parametru. Parametr RecipeName może być zadany
jako łańcuch znaków lub jako zmienna programu
InTouch (pamięciowa lub DDE).
Number
Jeśli zadaniem funkcji jest wypełnienie zmiennej
tekstowej znakami, pole to służy do zadawania
maksymalnej długości zapisywanego łańcucha
znaków. Zmienne tekstowe w programie InTouch
mogą przyjmować maksymalną długość 131 znaków.
Jeśli maksymalna długość zmiennych nie jest
ograniczona z innych względów, należy przyjmować
wartość tego parametru równą 131. Liczba lub
zmienna całkowita.
Przykład(y)
Zamieszczona poniżej instrukcja powoduje otwarcie okna dialogowego
Wybierz recepturę:
RecipeSelectRecipe("c:\recipe\recfile.csv", RecipeName,
131);
Po wybraniu pożądanej receptury, jej nazwa jest zapisywana jako wartosć
zmiennej RecipeName.
Funkcje skryptowe
239
Opis funkcji, pól i zmiennych systemowych
RecipeSelectUnit()
Funkcja ta powoduje wybranie z pliku receptur zestawu zmiennych, do
którego zostanie załadowana bieżąca receptura.
Kategoria
receptury
Składnia
RecipeSelectUnit("Filename", UnitName,Number);
Parametr
Opis
FileName
Nazwa pliku z recepturami, których dotyczą operacje
wykonywane przez funkcję. Aktualna zmienna
tekstowa.
UnitName
Nazwa zestawu zmiennych w pliku receptur, którego
dotyczą operacje wykonywane przez funkcję.
Argument UnitName wymagany jest przy
wywoływaniu funkcji RecipeLoad(). Funkcja
RecipeSelectUnit() zwraca wartość tego parametru.
Parametr RecipeName może być zadany jako łańcuch
znaków lub jako zmienna programu InTouch
(pamięciowa lub DDE).
Number
Jeśli zadaniem funkcji jest wypełnienie zmiennej
tekstowej znakami, pole to służy do zadawania
maksymalnej długości zapisywanego łańcucha
znaków. Zmienne tekstowe w programie InTouch
mogą przyjmować maksymalną długość 131 znaków.
Jeśli maksymalna długość zmiennych nie jest
ograniczona z innych względów, należy przyjmować
wartość tego parametru równą 131. Liczba lub
zmienna całkowita.
Przykład(y)
Zamieszczona poniżej instrukcja powoduje otwarcie okna dialogowego
Wybierz jednostkę:
RecipeSelectUnit("c:\recipe\recfile.csv", UnitName,
131);
Po wybraniu z okna dialogowego zestawu, jego nazwa jest zwracana za
pomocą zmiennej UnitName.
Zarówno funkcja RecipeSelectRecipe() jak i funkcja RecipeSelectUnit()
są używane w połączeniu z funkcją RecipeLoad().
Więcej informacji na temat stosowania kombinacji funkcji można znaleźć
w odpowiednim rozdziale podręcznika Podręcznik użytkownika - Menedżer
receptur w wersji elektronicznej.
240
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
ReloadWindowViewer()
RestartWindowViewer()
Funkcja ta pozwala użytkownikowi na przejęcie kontroli nad ponownym
uruchomieniem programu WindowViewer.
Kategoria
system
Składnia
ReloadWindowViewer();
Uwagi
Funkcja ta powoduje automatyczne uaktualnienie programu
WindowViewer. Pozwala to na uaktualnianie aplikacji w przypadku nie
korzystania z funkcji automatycznego uaktualniania w architekturze NAD
(Network Application Development). Funkcja ta może zostać
wykorzystana wraz ze zmienną $ApplicationChanged do sprawdzenia czy
aplikacja została uaktualniona i umożliwia uaktualnienie stacji bez
przerywania ich pracy. Użycie polecenie Notify clients umożliwia
operatorowi dokonanie uaktualnienia w późniejszym czasie. Funkcja ta
może zostać użyta w skrypcie QuickScript związanym z przyciskiem.
Pozwala to operatorowi na wykonanie dynamicznego uaktualniania
programu WindowViewer w dogodnym momencie. Funkcja ta zastępuje
funkcję RestartWindowViewer().
Patrz również
$ApplicationChanged
Pozwala użytkownikowi na sterowane zamknięcie i ponowne
uruchomienie programu WindowViewer.
Kategoria
system
Składnia
RestartWindowViewer();
Uwagi
Funkcja ta powoduje zamknięcie, a potem ponowne otwarcie programu
WindowViewer. Pozwala to na uaktualnianie aplikacji w przypadku nie
korzystania z funkcji automatycznego uaktualniania w architekturze NAD
(Network Application Development). Funkcja ta może zostać
wykorzystana wraz ze zmienną $ApplicationChanged do sprawdzenia czy
aplikacja została uaktualniona i umożliwia uaktualnienie stacji poprzez
zamknięcie i ponowne uruchomienie programu WindowViewer. Użycie
polecenia powiadamiania o zmianach umożliwia operatorowi dokonanie
uaktualnienia w późniejszym czasie. Funkcja ta może zostać użyta w
skrypcie QuickScript związanym z przyciskiem. Pozwala to operatorowi
na automatyczne zamknięcie i ponowne uruchomienie programu
WindowViewer w dogodnym momencie. Funkcja ta generalnie została
zastąpiona funkcją ReloadWindowViewer(), która umożliwia
uaktualnienie oprogramowania na stacjach bez zamykania programu
WindowViewer.
Patrz również
$ApplicationChanged; ReloadWindowViewer()
Funkcje skryptowe
241
Opis funkcji, pól i zmiennych systemowych
Round()
Zaokrągla liczbę rzeczywistą z podaną dokładnością.
Kategoria
funkcje matematyczne
Składnia
RealResult=Round(Number,Precision);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Precision
Dokładność, z jaką podana liczba ma zostać
zaokrąglona. Liczba, zmienna rzeczywista lub
całkowita.
Uwagi
Parametr Precision określa do jakiej dokładności przybliżona zostanie
wartość Number.
Przykład(y)
Round(4.3, 1) daje w wyniku 4
Round(4.3, 0.01) daje w wyniku 4.30
Round(4.5, 1) daje w wyniku 5
Round(-4.5, 1) daje w wyniku -4
Round(106, 5) daje w wyniku 105
Round(43.7, .5) daje w wyniku 43.5
Patrz również
Trunc()
242
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SendKeys
Funkcja ta wysyła sekwencję klawiszy do aplikacji. Może symulować
naciśnięcie większości klawiszy. Mechanizm ten pozwala na
wprowadzanie danych do aplikacji, lub też wywoływanie jej poleceń. Za
pomocą instrukcji SendKeys można wysłać większość klawiszy. Każdy
klawisz jest reprezentowany przez jeden lub więcej znaków, np. litera A -
przez A, klawisz Enter - przez ENTER.
Kategoria
różne
Składnia
SendKeys KeySequence;
Parametr
Opis
KeySequence
Dowolna sekwencja klawiszy lub zmienna tekstowa
InToucha.
Uwagi
Aby zasymulować naciśnięcie kilku klawiszy, należy uszeregować kody
wprowadzanych znaków. Przykładowo, w celu wysłania symbolu dolara
($) i znaku (b), należy wprowadzić $b. Poniżej zamieszczono listę kodów
różnych klawiszy klawiatury komputera:
Klawisze
Kod
Klawisze
Kod
BACKSPACE
{BACKSPACE}
lub {BS}
HOME
{HOME}
BREAK
{BREAK}
INSERT
{INSERT}
CAPSLOCK
{CAPSLOCK}
LEFT
{LEFT}
DELETE
{DELETE} or
{DEL}
NUMLOCK
{NUMLOCK}
DOWN
{DOWN}
PAGE DOWN
{PGDN}
END
{END}
PAGE UP
{PGUP}
ENTER
{ENTER} lub ~
(tilde)
PRTSC
{PRTSC}
ESCAPE
{ESCAPE} lub
{ESC}
RIGHT
{RIGHT}
F1
{F1}*
TAB
{TAB}
UP
{UP}
* W ten sposób budowane są nazwy dla pozostałych klawiszy
funkcyjnych.
Klawisze specjalne (SHIFT, CTRL oraz ALT) posiadają własne kody:
Klawisze
Kod
SHIFT
+
CTRL
^
ALT
%
Przykład(y)
Jeśli dwa klawisze mają zostać wciśnięto jednocześnie, wymagany jest
nawias przy kodzie drugiego klawisza. Instrukcja zamieszczona poniżej
zastępuje przytrzymanie naciśniętego klawisza CTRL, naciśnięcie
klawisza ALT, a po nim wprowadzenie litery p:
SendKeys "^(%(p))";
Funkcje skryptowe
243
Opis funkcji, pól i zmiennych systemowych
SetPropertyD()
Powyższe polecenie może poprzedzać instrukcja zawierająca funkcję
ActivateApp w celu skierowania kodów klawiszy do odpowiedniej
aplikacji.
Instrukcja zamieszczona poniżej uaktywnia arkusz kalkulacyjny Excel i
wysyła do niego kombinację klawiszy CTRL+P (która może uruchamiać
zdefiniowaną wcześniej makroinstrukcję drukowania, ze zdefiniowanym
skrótem klawiszowym CTRL+P):
ActivateApp "Microsoft Excel";
SendKeys "^(p)";
W celu wyświetlenia okna dialogowego logowania w programie
WindowViewer można skorzystać z następującej instrukcji:
SendKeys "%(SYL)";
Z przyciskiem o nazwie HELP można związać następujący skrypt:
SendKeys "{F1}";
Rozszerzenia firmy Microsoft w zakresie sposobu obsługi sprzętu w
systemie Windows mogą powodować że ta funkcja nie będzie działać na
niektórych komputerach.
Funkcja ta nadaje właściwości wartość dyskretną w czasie wykonywania
aplikacji.
Kategoria
GOT
Składnia
[ErrorNumber=]SetPropertyD("ControlName.Property",
DiscreteTag);
Parametr
Opis
ControlName
Nazwa obiektu sterującego okien, np. ChkBox_1, lub
nazwa obiektu do wyświetlania alarmów, np.
AlmObj_1.
.Property
Właściwość obiektu sterującego okna, lub obiektu do
wyświetlania alarmów.
Aby dowiedzieć się więcej na temat tych
właściwości, zobacz Rozdział 2, "Pola zmiennych."
DiscreteTag
Wartość dyskretna (0 lub 1) lub zmienna dyskretna
programu InTouch, której wartość zostanie zapisana
jako wartość odpowiedniego pola wskutek
wykonania funkcji. Typowe zastosowanie:
0 = Obiekt sterujący jest nieaktywny
1 = Obiekt sterujący jest aktywny
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Patrz również
GetPropertyD(), GetPropertyI(), GetPropertyM(), SetPropertyI(),
SetPropertyM()
244
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SetPropertyI()
SetPropertyM()
Funkcja ta nadaje właściwości wartość całkowitą w czasie wykonywania
aplikacji.
Kategoria
GOT
Składnia
[ErrorNumber=]SetPropertyI("ControlName.Property",
Integer);
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ChkBox_1 lub nazwa obiektu do wyświetlania
alarmów. Przykładowo, AlmObj_1.
Property
Właściwość obiektu sterującego okna, lub obiektu do
wyświetlania alarmów.
Aby dowiedzieć się więcej na temat tych
właściwości, zobacz Rozdział 2, "Pola zmiennych."
Integer
Liczba lub zmienna całkowita.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Patrz również
GetPropertyD(), GetPropertyI(), GetPropertyM(), SetPropertyD(),
SetPropertyM()
Funkcja ta nadaje właściwości wartość tekstową w czasie wykonywania
aplikacji.
Kategoria
GOT
Składnia
[ErrorNumber=]SetPropertyM("ControlName.Property",
"MessageTag");
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ChkBox_1 lub nazwa obiektu do wyświetlania
alarmów. Przykładowo, AlmObj_1.
.Property
Właściwość obiektu sterującego okna, lub obiektu do
wyświetlania alarmów.
Aby dowiedzieć się więcej na temat tych
właściwości, zobacz Rozdział 2, "Pola zmiennych."
MessageTag
Łańcuch znaków, który zostanie przypisany do
właściwości obiektu o nazwie ControlName.
Łańcuch znaków lub zmienna tekstowa.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Patrz również
GetPropertyD(), GetPropertyI(), GetPropertyM(), SetPropertyI(),
SetPropertyI()
Funkcje skryptowe
245
Opis funkcji, pól i zmiennych systemowych
Sgn()
Show
Określa znak podanej wartości (+,-,0).
Kategoria
funkcje matematyczne
Składnia
IntegerResult=Sgn(Number);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Uwagi
Jeżeli liczba wejściowa jest liczbą dodatnią, zwrócona zostanie wartość 1.
Dla liczby ujemnej zwrócone zostanie –1, zaś dla 0 – 0 (zero).
Przykład(y)
Sgn(425) daje w wyniku 1
Sgn(0) daje w wyniku 0
Sgn(-37.3) daje w wyniku –1
Funkcja ta umożliwia wyświetlenie określonego okna. (Nazwa okna musi
być ujęta w cudzysłów.)
Kategoria
różne
Składnia
Show "Window";
Parametr
Opis
Window
Nazwa okna, które ma zostać wyświetlone. Łańcuch
znaków lub zmienna tekstowa.
Uwagi
Window musi być nazwą istniejącego okna lub okna, które zostanie
utworzone. W czasie pracy aplikacji, jeśli okno o podanej nazwie nie
istnieje, instrukcja jest ignorowana. Jeśli nazwa okna zmieni się, musi ona
zostać zmieniona również w skrypcie QuickScript.
Uwaga. Jeżeli jako parametr do wyświetlenia okna użyta zostanie zmienna
lokalna typu Message, wyświetlony zostanie następujący komunikat o
błędzie:
"Spodziewana jest nazwa okna (wyrażenie tekstowe)"
Aby tego uniknąć, zmienną typu Message należy poprzedzić znakiem plus
(+). Przykładowo:
DIM Test AS message;
Test - "MyWindow1";
Show ""+Test;
Przykład(y)
Show "Alarm Summary Window";
Jeśli celem skryptu QuickScript jest tylko ukrywanie lub wyświetlanie
okna, zaleca się wykorzystanie połączenia animacyjnego Show Window
lub Hide Window. W przypadku używania tych połączeń, jeśli nazwa okna
ulegnie zmianie, InTouch automatycznie dokona zmian.
Patrz również
Hide, Hideself, ShowAt(), ShowHome, ShowTopLeftAt()
246
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
ShowAt()
ShowHome
Określa w pikselach położenie okna w kierunku poziomym i pionowym w
momencie jego wyświetlania.
Kategoria
różne
Składnia
ShowAt("Window",Horiz,Vert);
Parametr
Opis
Window
Nazwa okna. Łańcuch znaków lub zmienna tekstowa.
Horiz
Współrzędna pozioma Dowolna liczba lub zmienna
całkowita.
Vert
Współrzędna pionowa Dowolna liczba lub zmienna
całkowita.
Uwagi
Po otwarciu okna, jest ono ustawiane na środku względem współrzędnych
położenia poziomego i pionowego. Okno nie zostanie wycentrowane, jeśli
jedna z jego krawędzi wykracza poza obszar ekranu. W takiej sytuacji
zostanie ono wyrównane do krawędzi ekranu.
Przykład(y)
W zamieszczonej poniżej instrukcji, 100 oznacza położenie piksela w
kierunku poziomym, a 200 w kierunku pionowym:
ShowAt("Window Name",100,200);
Aby móc zmieniać dynamicznie pozycję okna w trybie Runtime, ze
zmiennymi pamięciowymi zastosowanymi jako parametry funkcji, np.
TagHoriz i TagVert można powiązać obiekty służące do wprowadzania
danych (połączenia animacyjne Touch Links, grupa User Inputs, Analog).
W takim przypadku omawiana funkcja przyjmie postać:
ShowAt("Boiler Room 7 Details",TagHoriz,TagVert);
Zamieszczona poniżej instrukcja umożliwia określenie położenia w
pikselach, zmienne wewnętrzne $ObjHor i $ObjVer mogą zostać
przypisane do analogowego połączenia wyświetlającego, dzięki czemu na
ekranie wyświetlane będą współrzędne aktualnie zaznaczonego obiektu.
Zastosowanie zmiennych $ObjHor i $ObjVer w skrypcie QuickScript lub
przycisku pozwala na wyświetlenie okna w pozycji środkowej względem
obiektu lub przycisku.
ShowAt("Window Name",$ObjHor,$ObjVer);
Patrz również
$ObjHor, $ObjVer, ShowTopLeftAt(), Show, ShowHome, Hide,
Hideself
Funkcja ta umożliwia wyświetlenie okna (-okien) "startowych". Okna
startowe to okna automatycznie otwierane po uruchomieniu programu
WindowViewer. (Okna startowe ustawiane są za pomocą zakładki
Właściwości WindowViewer - okna startowe.)
Kategoria
różne
Składnia
ShowHome;
Patrz również
Show, ShowAt(), ShowTopLeftAt(), ShowHome, Hide, Hideself
Funkcje skryptowe
247
Opis funkcji, pól i zmiennych systemowych
ShowTopLeftAt()
Sin()
Określa w pikselach współrzędną poziomą i pionową lewego, górnego
rogu okna, w momencie jego wyświetlania.
Kategoria
różne
Składnia
ShowTopLeftAt("Window",Horiz,Vert);
Parametr
Opis
Window
Nazwa okna. Łańcuch znaków lub zmienna
tekstowa.
Horiz
Współrzędna pozioma Dowolna liczba lub
zmienna całkowita.
Vert
Współrzędna pionowa Dowolna liczba lub
zmienna całkowita.
Uwagi
Po otwarciu okna, jego lewy, górny róg umieszczany jest w miejscu
wskazywanym przez współrzędną poziomą i pionową. (Współrzędne
lewego, górnego narożnika ekranu wynoszą 0,0.) Działanie tej funkcji jest
takie same jak funkcji ShowAt(), za wyjątkiem faktu, że steruje ona
położeniem lewego, górnego okna.
Uwaga. Funkcja ta ładuje okno w pamięci, a następnie umieszcza na nowej
lokalizacji. Lokalizacja początkowa (ta, na której okno zostało zapisane w
programie WindowMaker) pozostaje niezmieniona niezależnie od miejsca,
w które okno zostało przeniesione.
Patrz również
Show, ShowAt(), ShowHome(), Hide, Hideself
Zwraca sinus kąta podanego w stopniach.
Kategoria
funkcje matematyczne
Składnia
Result=Sin(AngleNumber);
Parametr
Opis
AngleNumber
Wartość kąta w stopniach. Dowolna liczba,
zmienna rzeczywista (Real) lub całkowita
(Integer) programu InTouch.
Uwagi
Obliczana jest wartość sinus z Number i zwracana do zmiennej Result.
Przykład(y)
Sin(90) daje w wyniku 1
Sin(0) daje w wyniku 0
wave = 100 * Sin (6 * $second);
Patrz również
Cos(), Tan(), ArcCos(), ArcSin(), ArcTan()
248
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SPCConnect()
SPCDatasetDlg()
Funkcja ta jest używana w połączeniu z automatycznym zbieraniem
zestawów danych. Przed rozpoczęciem automatycznego zbierania
zestawów danych, należy wywołać tę funkcję w celu określenia, jaki
użytkownik jest przy stanowisku.
Kategoria
SPC
Składnia
SPCConnect(“User”,”Password”);
Parametr
Opis
User
Nazwa użytkownika bazy danych użytkownika.
Łańcuch znaków lub zmienna tekstowa.
Password
Hasło użytkownika. Łańcuch znaków lub zmienna
tekstowa.
Uwagi
Wykonanie tej funkcji spowoduje połączenie użytkownika z baza danych,
oraz rozpoczęcie automatycznego odczytywania zestawów danych, w
oparciu o wprowadzony przez użytkownika identyfikator. Jeżeli w bazie
danych nie zostało zdefiniowane hasło, można wprowadzić następujący
skrypt QuickScript:
Przykład(y)
SPCConnect(“User1”, “”);
Patrz również
SPCDisconnect()
Funkcja ta umożliwia wyświetlenie pola dialogowego Konfiguracja
zestawu danych SPC w programie WindowViewer. Za jego pomocą
można dodać lub usunąć zestaw danych. Nie są wymagane żadne
parametry, nie są zwracane żadne wartości. W czasie pracy programu
WindowViewer, aktualnie używany zestaw danych będzie wyświetlany w
kolorze szarym, niektóre pola nie mogą być modyfikowane.
W czasie pracy programu WindowViewer można dodać nowe zestawy
danych i produkty: jeżeli dodawane lub zapisywane są nowe zestawy
danych i produkty, jeżeli praca odbywa się w trybie automatycznego
zbierania danych (Autocollection), cykl automatycznego zbierania danych
zostanie rozpoczęty ponownie, możliwa jest utrata danych w czasie fazy
inicjowania zestawu danych.
Wskazane jest, aby dodawać nowe produkty poprzez element SPC DDE o
nazwie NewProduct a nie poprzez funkcję SPCDatasetDlg() ponieważ to
nie będzie wymagało włączenia trybu autozbierania danych.
Kategoria
SPC
Składnia
SPCDatasetDlg();
Uwagi
Wykonanie tej funkcji spowoduje wyświetlenie okna dialogowego
Konfiguracja zestawu danych SPC w programie WindowViewer.
Przykład(y)
SPCDatasetDlg();
Patrz również
SPCSelectDataset()
Funkcje skryptowe
249
Opis funkcji, pól i zmiennych systemowych
SPCDisconnect()
SPCDisplayData()
Funkcja ta służy do odłączania użytkownika od bazy danych SPC Pro.
Wykonanie tej funkcji spowoduje przerwanie zbierania danych z
wszystkich zestawów danych przypisanych do użytkownika.
Kategoria
SPC
Składnia
SPCDisconnect();
Uwagi
Wykonanie tej funkcji spowoduje odłączenie użytkownika od bazy danych,
oraz zatrzymanie automatycznego zbierania danych.
Przykład(y)
SPCDisconnect();
Patrz również
SPCConnect()
Funkcja ta zapewnia mechanizm wygodnego przewijania wykresu w celu
wyświetlenia odpowiedniej daty lub godziny. Status przeszukiwania
danych SPC można monitorować za pomocą zmiennej. Jeżeli SPC odszuka
dane, zwracana jest wartość 0, jeżeli natomiast w ciągu określonego czasu
dane nie zostaną znalezione, zwracana jest wartość 1.
Kategoria
SPC
Składnia
[Status=]SPCDisplayData("Dataset", "DateString",
"TimeString", RangeInHours );
Parametr
Opis
Dataset
Nazwa bieżącego zestawu danych. Łańcuch znaków
lub zmienna tekstowa.
DateString
Data w formacie mm/dd/rr. Łańcuch znaków lub
zmienna tekstowa.
TimeString
Godzina w formacie gg:mm:ss. Łańcuch znaków lub
zmienna tekstowa.
RangeInHours
Okres czasu, dla którego dane będą wyświetlane.
Dowolna liczba lub zmienna całkowita.
Przykład(y)
StatusTag = SPCDisplayData("Dataset", "DateString",
"TimeString" , RangeInHours);
250
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SPCLocateScooter()
SPCMoveScooter()
Funkcja ta zapewnia mechanizm wygodnego przewijania suwaka w celu
wyświetlenia odpowiedniej próbki. Wartość zmiennej suwaka zostanie
zaktualizowana, przypisana zostanie jej wartość próbki X-Bar. Przypisanie
parametrowi SampleNumber wartości 0 powoduje ukrycie/ deaktywację
suwaka.
Kategoria
SPC
Składnia
SPCLocateScooter( "Dataset", SampleNumber );
Parametr
Opis
Dataset
Nazwa bieżącego zestawu danych. Łańcuch znaków
lub zmienna tekstowa.
SampleNumber
Numer dowolnej, nie zawierającej błędów próbki.
Dowolna liczba lub zmienna całkowita.
Patrz również
SPCMoveScooter()
Funkcja ta zapewnia mechanizm wygodnego przewijania suwaka w celu
wyświetlenia odpowiedniej próbki. Wartość zmiennej suwaka zostanie
zaktualizowana, przypisana zostanie jej wartość próbki X-Bar.
Kategoria
SPC
Składnia
SPCMoveScooter( "Dataset", IncrementValue );
Parametr
Opis
Dataset
Nazwa bieżącego zestawu danych. Łańcuch znaków
lub zmienna tekstowa.
IncrementValue
Dowolny numer. W celu przewinięcia do przodu
należy wprowadzić wartość dodatnią, natomiast w
celu przewinięcia do tyłu należ wyprowadzić wartość
ujemną. Dowolna liczba lub zmienna całkowita.
Patrz również
SPCLocateScooter()
Funkcje skryptowe
251
Opis funkcji, pól i zmiennych systemowych
SPCSaveSample()
SPCSelectDataset()
SPCSelectProduct()
Funkcja ta służy do ręcznego zapisu próbki wejściowej. Jest ona używana
w połączeniu z funkcją SPCSetMeasurement().
Kategoria
SPC
Składnia
SPCSaveSample("Dataset");
Parametr
Opis
Dataset
Nazwa bieżącego zestawu danych. Łańcuch znaków
lub zmienna tekstowa.
Uwagi
Wykonanie instrukcji zawierającej tę funkcję spowoduje zapisanie próbki
jako zestawu danych (Dataset) o określonej nazwie. Funkcja ta korzysta z
ręcznie wprowadzonych wartości pomiarów próbki. Wartości ustawiane są
zarówno za pomocą zmiennych DDE MI_Mx (gdzie x numer pomiaru z
przedziału od 1 do 25), jak i za pomocą funkcji SPCSetMeasurement()
(pomiary 1 do 300). Koniecznym jest ponowne zainicjowanie konwersacji
DDE aby uaktualnić wartości zmiennych MI_Mx.
Patrz również
SPCSetMeasurement()
Funkcja ta wyświetla okno dialogowe pozwalające użytkownikowi na
wybranie żądanego zestawu danych.
Kategoria
SPC
Składnia
DatasetName=SPCSelectDataset()
Uwagi
Wykonanie tego skryptu QuickScript powoduje otwarcie okna
dialogowego Wybierz zestaw.
Po wybraniu nazwy zestawu danych, funkcja przypisuje go do zmiennej
DatasetName. Funkcja ta może również służyć do zmiany nazwy zestawu
danych opisanego zmienną pośrednią.
Patrz również
SPCSelectProduct(), SPCDatasetDlg()
Funkcja ta wyświetla okno dialogowe pozwalające użytkownikowi na
wybranie produktu w danym zestawie danych.
Kategoria
SPC
Składnia
ProductName=SPCSelectProduct(Dataset);
Uwagi
Funkcja ta zastosowana w skrypcie QuickScript pozwala na otwarcie okna
dialogowego Wybierz produkt.
Po wybraniu nazwy wyrobu funkcja zapisuje ją pod zmienną
ProductName. Funkcja ta może również służyć do zmiany nazwy produktu
w zestawie danych Dataset.
Patrz również
SPCSelectDataset(), SPCSetProductDisplayed(),
SPCSetProductCollected()
252
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SPCSetControlLimits()
SPCSetMeasurement()
Funkcja ta umożliwia wygodne wprowadzenie (ręcznie lub w sposób
automatyczny, w wyniku zaistnienia określonych zdarzeń) wartości
granicznych dla wykresu kontrolnego (Control Chart).
Kategoria
SPC
Składnia
SPCSetControlLimits("Dataset",XUCL,XLCL);
Parametr
Opis
Dataset
Nazwa bieżącego zestawu danych. Łańcuch znaków
lub zmienna tekstowa.
XUCL
Wartość, która ma zostać wykorzystana jako górny
limit kontrolny (UCL) dla wykresu kontrolnego.
Liczba lub zmienna typu rzeczywistego.
XLCL
Wartość, która ma zostać wykorzystana jako dolny
limit kontrolny (LCL) dla wykresu kontrolnego.
Liczba lub zmienna typu rzeczywistego.
Uwagi
Wyniki pomiarów są zapisywane w próbce za pomocą funkcji
SPCSaveSample().
Patrz również
SPCSaveSample(), SPCSetRangeLimits(), SPCSetSpecLimits(),
SPCSetMeasurement()
Funkcja ta umożliwia wygodne wprowadzenie (ręcznie lub w sposób
automatyczny, w wyniku zaistnienia określonych zdarzeń) analogowych
wartości z pomiaru poprzez wykonanie skryptu.
Kategoria
SPC
Składnia
SPCSetMeasurement("Dataset",Measurement,Value);
Parametr
Opis
Dataset
Nazwa bieżącego zestawu danych. Łańcuch
znaków lub zmienna tekstowa.
Measurement
Numer pomiaru (od 1 do 300). Dowolna liczba
lub zmienna całkowita.
Wartość
Wartość która ma być zapisana do określonego
numeru pomiarów. Dowolna liczba lub zmienna
rzeczywista (Real).
Uwagi
Z funkcji SPCSaveSample() należy korzystać po uprzednim ustawieniu
wszystkich pomiarów na zapisywanie danych w bazie danych.
Koniecznym jest ponowne zainicjowanie konwersacji DDE aby uaktualnić
wartości zmiennych MI_Mx.
Patrz również
SPCSaveSample()
Funkcje skryptowe
253
Opis funkcji, pól i zmiennych systemowych
SPCSetProductCollected()
SPCSetProductDisplayed()
Funkcja ta umożliwia zmianę wyrobu (Product), dla którego zbierane są
dane w obrębie danego zestawu danych (Dataset).
Kategoria
SPC
Składnia
SPCSetProductCollected("Dataset","Product");
Parametr
Opis
Dataset
Nazwa bieżącego zestawu danych. Łańcuch
znaków lub zmienna tekstowa.
Product
Nazwa Produktu, dla którego mają być zbierane
dane. Łańcuch znaków lub zmienna tekstowa.
Uwagi
Funkcja ta nie zmienia wyrobu, dla którego wyświetlane są dane. Możliwe
jest gromadzenie danych jednego produktu i wyświetlanie danych dla
innego produktu, używając tej funkcji do gromadzenia a funkcji
SPCSetProductDisplayed() do wyświetlania:
Przykład(y)
SPCSetProductCollected("Data5838", "Widgets");
Patrz również
SPCSelectProduct(), SPCSetProductDisplayed()
Funkcja ta umożliwia zmianę wyrobu (Product), dla którego wyświetlane
są dane w obrębie danego zestawu zmiennych (Dataset).
Kategoria
SPC
Składnia
SPCSetProductDisplayed("Dataset","Product");
Parametr
Opis
Dataset
Nazwa bieżącego zestawu danych. Łańcuch
znaków lub zmienna tekstowa.
Product
Nazwa wyrobu, dla którego mają być
wyświetlane dane. Łańcuch znaków lub zmienna
tekstowa.
Przykład(y)
SPCSetProductDisplayed("ADataSetName", "AProductName");
Patrz również
SPCSelectProductt(), SPCSetProductCollected()
254
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SPCSetRangeLimits()
SPCSetSpecLimits()
Funkcja ta umożliwia wygodne wprowadzenie (ręcznie lub w sposób
automatyczny, w wyniku zaistnienia określonych zdarzeń) wartości
granicznych dla wykresu rozpiętościowego (Range Chart).
Kategoria
SPC
Składnia
SPCSetRangeLimits("Dataset",RUCL,RLCL);
Parametr
Opis
Dataset
Nazwa bieżącego zestawu danych. Łańcuch znaków
lub zmienna tekstowa.
RUCL
Wartość, która ma zostać wykorzystana jako górny
limit kontrolny (UCL) dla wykresu
rozpiętościowego. Liczba lub zmienna typu
rzeczywistego.
RLCL
Wartość, która ma zostać wykorzystana jako dolny
limit kontrolny (LCL) dla wykresu rozpiętościowego.
Liczba lub zmienna typu rzeczywistego.
Patrz również
SPCSetControlLimits(), SPCSetSpecLimits()
Funkcja ta umożliwia wygodne wprowadzenie (ręcznie lub w sposób
automatyczny, w wyniku zaistnienia określonych zdarzeń) wartości
granicznych specyfikacyjnych (dla wykresu kontrolnego (Control Chart).
Kategoria
SPC
Składnia
SPCSetSpecLimits("Dataset",XUSL,XLSL);
Parametr
Opis
Dataset
Nazwa bieżącego zestawu danych. Łańcuch
znaków lub zmienna tekstowa.
XUSL
Wartość, która ma zostać wykorzystana jako
górny limit specyfikacyjny (USL) dla wykresu
rozpiętościowego. Liczba lub zmienna typu
rzeczywistego.
XLSL
Wartość, która ma zostać wykorzystana jako
dolny limit specyfikacyjny (LSL) dla wykresu
rozpiętościowego. Liczba lub zmienna typu
rzeczywistego.
Patrz również
SPCSetControlLimits(), SPCSetRangeLimits()
Funkcje skryptowe
255
Opis funkcji, pól i zmiennych systemowych
SQLAppendStatement()
SQLClearParam()
SQLClearStatement()
Dalsza część instrukcji SQL zawarta w zmiennej tekstowej. Funkcja ta
zwraca kody błędów.
Kategoria
SQL
Składnia
[ResultCode=]SQLAppendStatement(ConnectionID,
"SQLStatement");
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
SQLStatement
Łańcuch znaków, który ma zostać dołączony do
instrukcji.
Przykład(y)
ResultCode=SQLAppendStatement(ConnectionID,
"where tablename.columnname=(dowolna warto
ść
lub
ła
ń
cuch znaków)");
Patrz również
SQLConnect(), SQLClearStatement()
Funkcja ta powoduje usunięcie wartości danego parametru. Przed
wykonaniem funkcji SQLExecute() musi zostać wywołana ponownie
funkcja SQLSetParam().
Kategoria
SQL
Składnia
[ResultCode=]SQLClearParam(SQLHandle,ParameterNumber);
Parametr
Opis
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
ParameterNumber
Parametr do zmodyfikowania w instrukcji SQL.
Patrz również
SQLPrepareStatement(),SQLExecute()
Funkcja ta zwalnia zasoby związane z instrukcją określoną w SQLHandle.
Kategoria
SQL
Składnia
[ResultCode=]SQLClearStatement(ConnectionID,SQLHandle);
256
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLClearTable()
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
Patrz również
SQLConnect(),SQLPrepareStatement()
Funkcja ta usuwa wszystkie rekordy z tablicy w bazie danych, ale nie
usuwa samej tablicy.
Kategoria
SQL
Składnia
[ResultCode=]SQLClearTable(ConnectionID,"TableName");
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
TableName
Nazwa tablicy w bazie danych, której dotyczy
operacja usuwania rekordów.
Przykład(y)
Aby usunąć wszystkie rekordy z tablicy BATCH1, można użyć
następującej instrukcji:
ResultCode=SQLClearTable(ConnectionID,"BATCH1");
Patrz również
SQLConnect(), SQLClearStatement()
Funkcje skryptowe
257
Opis funkcji, pól i zmiennych systemowych
SQLCommit()
Funkcja SQLCommit() definiuje koniec zestawu transakcji. Grupa
poleceń zawierających się pomiędzy funkcjami SQLTransact() i
SQLCommit() nosi nazwę zestawu transakcji. Zestaw transakcji jest
traktowany jak pojedyncza transakcja. Po wykonaniu polecenia
SQLTransact(), wszystkie kolejne operacje nie będą kierowane do bazy
danych, aż do momentu kolejnego wywołania polecenia SQLCommit().
Kategoria
SQL
Składnia
[ResultCode=]SQLCommit(ConnectionID);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Uwaga: Przy tworzeniu skryptów QuickScript zawierających funkcję
SQLCommit() należy zachować dużą ostrożność. Ponieważ czas
wykonania skryptu jest mnożony przez liczbę transakcji w zestawie
transakcji, włączanie wielu poleceń do zestawu transakcji istotnie zwalnia
działanie aplikacji.
Przykład
ResultCode =SQLTransact( ConnectionID);
ResultCode = SQLInsertPrepare( ConnectionID, TableName,
BindList, SQLHandle );
ResultCode = SQLInsertExecute( ConnectionID, BindList,
SQLHandle );
ResultCode = SQLInsertExecute( ConnectionID, BindList,
SQLHandle );
ResultCode = SQLInsertExecute( ConnectionID, BindList,
SQLHandle );
ResultCode = SQLInsertEnd( ConnectionID, SQLHandle );
ResultCode = SQLCommit( ConnectionID);
{Baza danych zapisze 3 komendy Insert }
Patrz również
SQLRollback(), SQLTransact(), SQLCommit()
258
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLConnect()
Funkcja ta nawiązuje połączenie programu InTouch z bazą danych określoną
w ConnectString.
Kategoria
SQL
Składnia
[ResultCode=]SQLConnect(ConnectionID,"ConnectString");
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona
przez użytkownika do pamiętania numeru
(ID) przypisywanego przez funkcję
SQLConnect do każdego połączenia z bazą
danych.
ConnectString
Nazwa bazy danych oraz dodatkowe
informacje potrzebne do ustanowienia
połączenia przy użyciu funkcji
SQLConnect().
Przykład(y)
Instrukcja zamieszczona poniżej łączy program InTouch z programem IBM
OS/2 Database Manager, z bazą danych o nazwie SAMPLE:
[ResultCode=]SQLConnect(ConnectionID,"DSN=OS2DM;
DB=SAMPLE");
Funkcja ta zwraca wartość zmiennej ConnectionID, wykorzystywanej jako
parametr we wszystkich, następujących w dalszej kolejności, wywołaniach
funkcji z grupy SQL.
Parametr ConnectString identyfikuje bazę danych i zawiera dodatkowe
informacje potrzebne do ustanowienia połączenia z tą bazą. Posiada on
następujący format:
"DSN=nazwa
ż
ródła danych[;atrybut=warto
ść
[;atrybut=warto
ść
]...]"
Funkcje skryptowe
259
Opis funkcji, pól i zmiennych systemowych
Każda z baz danych może wymagać podania innych atrybutów. QUELIB
rozpoznaje następujące atrybuty:
Atrybut
WartoϾ
DSN
Nazwa źródła danych (Data Source Name)
skonfigurowana w programie Microsoft
ODBC Administrator.
DLG
Jeżeli DLG=1, wyświetlane jest okno
dialogowe pozwalające na wpisanie
informacji potrzebnych do ustanowienia
połączenia.
DRV
W celu zachowania zgodności z SQL Access
w programie InTouch v. 4.11, wartość ta jest
wykorzystywana jeżeli nazwa źródła danych
(DSN) nie została podana w łańcuchu znaków
połączenia. QELIB zmienia ten atrybut na
nazwę źródła danych.
UID
Nazwa identyfikacyjna do logowania.
PWD
Hasło.
MODIFYSQL
Atrybut wykorzystywany przez QELIB w
celu zapewnienia kompatybilności języka
SQL używanego w aplikacji i języka SQL
używanego w bazie danych. Gdy wartość
tego atrybutu jest ustawiona na 1 (wartość
domyślna), sterownik bazy danych oczekuje
składni instrukcji zgodnej z ODBC, którą
zmodyfikuje w razie potrzeby w celu
dostosowania jej do bazy danych. Gdy
wartość tego atrybutu jest ustawiona na 0,
sterownik bazy danych oczekuje składni
instrukcji zgodnej ze składnią bazy danych.
Mechanizm ten pozwala na używanie
aplikacji opracowanych z zastosowaniem
SQL opartego na sterownikach QELIB 1.0.
REREADAFTERUPDATE
Jeżeli wartość tego atrybutu jest ustawiona na
1, QELIB ponownie odczytuje rekord z bazy
danych po jego aktualizacji. Mechanizm ten
jest użyteczny w przypadku pobierania
właściwej wartości z aktualizowanych
kolumn, zawierających np. czas.
REREADAFTERINSERT
Jeżeli wartość tego atrybutu jest ustawiona na
1, QELIB ponownie odczytuje rekord z bazy
danych po jego wstawieniu. Mechanizm ten
jest użyteczny w przypadku pobierania
właściwej wartości z aktualizowanych
kolumn, zawierających np. czas.
Więcej informacji na temat atrybutów obsługiwanych przez określone bazy
danych podano w elektronicznej wersji podręcznika SQL Access Manager
User's Guide.
Patrz również
SQLDisconnect()
260
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLCreateTable()
Funkcja ta tworzy tablicę w bazie danych przy wykorzystaniu parametrów
z szablonu tabeli (Table Template) o określonej nazwie. Wzorce tablic,
zdefiniowane w pliku SQL.DEF, określają strukturę tablic.
Kategoria
SQL
Składnia
[ResultCode=]SQLCreateTable(ConnectionID,TableName,
TemplateName);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
TableName
Nazwa tablicy w bazie danych, której dotyczy
operacja.
TemplateName
Nazwa zdefiniowanego wzorca tablicy, który ma
zostać użyty przez funkcję.
Przykład(y)
Instrukcja zamieszczona poniżej powoduje utworzenie tablicy o nazwie
BATCH1, dla której nazwy i typy kolumn zdefiniowane są we wzorcu o
nazwie TEMPLATE.
ResultCode=SQLCreateTable(ConnectionID,"BATCH1",
"TEMPLATE");
Jeżeli parametr wprowadzony w skrypcie QuickScript ujęty jest w
cudzysłów, np. "Parametr1", jako parametr użyty zostanie wprowadzony
łańcuch znaków. Jeżeli znaki cudzysłowów nie są używane, system
przyjmuje, ze Parameter1 jest zmienną, po czym przeszukuje bazę danych
programu InTouch w celu znalezienia wartości zmiennej Parameter1.
Przykładowo:
"c:\main\file" vs. location
Gdzie location jest zmienną tekstowa programu InTouch.
"c:\main\file" jest ła
ń
cuchem znaków
Patrz również
SQLConnect()
Funkcje skryptowe
261
Opis funkcji, pól i zmiennych systemowych
SQLDelete()
Funkcja ta usuwa rekord lub kilka rekordów.
Kategoria
SQL
Składnia
[ResultCode=]SQLDelete(ConnectionID,TableName,
WhereExpr);
Uwaga: Funkcja SQLDelete() nie może zawierać pustego argumentu
WhereExpression.
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
TableName
Nazwa tablicy w bazie danych, której dotyczy
operacja.
WhereExpression
Warunek, który może być spełniony lub
niespełniony dla każdego wiersza tablicy. Funkcja
aktualizuje tylko te wiersze w tablicy, dla których
warunek jest spełniony. Warunek musi mieć
następujący format:
Nazwa_kolumny operator_porównania
wyrażenie.
Uwaga Jeśli w kolumnie znajdują się dane typu
tekstowego, wyrażenie musi zostać wpisane w
apostrofach.
Przykład(y)
Poniższy przykład służy do wybrania wszystkich wierszy, w których w
kolumnie name występuje ciąg znaków EmployeeID:
name='EmployeeID'
Kolejny przykład służy do wybrania wszystkich wierszy, w których w
kolumnie partno występuje liczba od 100 do 199:
partno>=100 and partno<200
Następny przykład służy do wybrania wszystkich wierszy, w których w
kolumnie temperature występuje liczba większa od 350:
temperature>350
Instrukcja zamieszczona poniżej powoduje usunięcie z tablicy o nazwie
BATCH1 wszystkich rekordów, w których w kolumnie lotno występuje
liczba równa 65:
ResultCode=SQLDelete(ConnectionID,"BATCH1","lotno=65");
Patrz również
SQLConnect()
262
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLDisconnect()
SQLDropTable()
SQLEnd()
Funkcja ta służy do odłączenia użytkownika od bazy danych.
Kategoria
SQL
Składnia
[ResultCode=]SQLDisconnect(ConnectionID);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Patrz również
SQLConnect()
Funkcja ta usuwa tablicę z bazy danych.
Kategoria
SQL
Składnia
[ResultCode=]SQLDropTable(ConnectionID,TableName);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
TableName
Nazwa tablicy w bazie danych, której dotyczy
operacja.
Przykład(y)
Zamieszczona poniżej instrukcja usuwa tablicę BATCH1, po wykonaniu
jej tablica ta nie będzie dostępna i nie będzie reagować na żadne polecenia.
ResultCode=SQLDropTable(ConnectionID,"BATCH1");
Patrz również
SQLConnect()
Funkcja ta jest wykorzystywana po funkcji SQLSelect() w celu zwolnienia
zasobów, które były użyte do zapamiętania tablicy wynikowej.
Kategoria
SQL
Składnia
[ResultCode=]SQLEnd(ConnectionID);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Patrz również
SQLConnect(), SQLSelect()
Funkcje skryptowe
263
Opis funkcji, pól i zmiennych systemowych
SQLErrorMsg()
SQLExecute()
Funkcja ta odczytuje tekst komunikatu o błędzie związanym z zadanym
kodem błędu ResultCode. ErrorMsg jest zmienną typu Memory Message
(maksymalnie 131 znaków), powiązaną z parametrem ResultCode.
Kategoria
SQL
Składnia
SQLErrorMsg(ResultCode);
Parametr
Opis
ResultCode
Zmienna całkowita zwracana przez większość
funkcji SQL. Jej wartość wynosi 0, jeśli funkcja
została wykonana pomyślnie oraz jest liczbą
ujemną, jeśli funkcja nie została wykonana.
Aby dowiedzieć się więcej na temat tych kodów,
zobacz Załącznik A,"Usuwanie problemów przy
korzystaniu z funkcji skryptowych."
Przykład(y)
ErrorMsg=SQLErrorMsg(ResultCode);
Patrz również
SQLConnect()
Funkcja ta wykonuje instrukcję SQL. Jeśli instrukcja służy do wyboru
danych z bazy, parametr BindList określa nazwę listy powiązań między
kolumnami bazy danych, a zmiennymi programu InTouch. Jeśli lista
powiązań jest pusta, żadne zmienne nie zostaną powiązane z kolumnami w
bazie danych. Na przykład: instrukcja SQL mogłaby być Utworzona,
Wyświetlona, Wklejona, itd.. Błędy są zwracane w wartości funkcji. Jeśli
instrukcja została przygotowana za funkcją SQLPepareStatement(), jako
parametru SQLHandle należy użyć wartości zwróconej przez tę funkcję.
Jeśli instrukcja nie została "przygotowana", wartość parametru
SQLHandle powinna wynosić zero.
Kategoria
SQL
Składnia
[ResultCode=]SQLExecute(ConnectionID,BindList,
SQLHandle);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
BindList
Lista powiązań między kolumnami bazy danych i
zmiennymi programu InTouch
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
Patrz również
SQLConnect(),SQLPrepareStatement()
Uwaga Funkcja SQLExecute() może być wywołana jeden raz dla
instrukcji, która nie została przygotowana. Jeśli instrukcja została
przygotowana, może być wywoływana wiele razy.
264
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLFirst()
SQLGetRecord()
Funkcja ta wybiera pierwszy rekord z tablicy wynikowej utworzonej
poprzez wykonanie ostatniej funkcji SQLSelect(). Przed wykonaniem
tego polecenia musi być wywołana funkcja SQLSelect().
Kategoria
SQL
Składnia
[ResultCode=]SQLFirst(ConnectionID);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Patrz również
SQLConnect(), SQLSelect()
Funkcja ta odczytuje z bufora rekord określony przez parametr
RecordNumber.
Kategoria
SQL
Składnia
[ResultCode=]SQLGetRecord(ConnectionID,Record Number);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
RecordNumber
Numer rekordu, który ma zostać odczytany.
Przykład(y)
ResultCode=SQLGetRecord(ConnectionID,3);
Patrz również
SQLConnect()
Funkcje skryptowe
265
Opis funkcji, pól i zmiennych systemowych
SQLInsert()
SQLInsertEnd()
Funkcja ta wstawia nowy rekord do tablicy o podanej nazwie,
wykorzystując wartości zmiennych z podanej listy powiązań. Parametr
BindList definiuje wykorzystywane zmienne programu InTouch, oraz
powiązania pomiędzy nimi, a kolumnami bazy danych.
Kategoria
SQL
Składnia
[ResultCode=]SQLInsert(ConnectionID,TableName,
BindList);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
TableName
Nazwa tablicy w bazie danych, której dotyczy
operacja.
BindList
Lista powiązań między kolumnami bazy danych i
zmiennymi programu InTouch
Przykład(y)
Instrukcja zamieszczona poniżej powoduje wstawienie nowego rekordu do
tablicy o nazwie ORG przy wykorzystaniu wartości zmiennych z listy o
nazwie List1.
ResultCode=SQLInsert(ConnectionID,"ORG","List1");
Uwaga Do szybkiego wstawiania rekordów do tablicy zamiast funkcji
SQLInsert() można użyć trzech innych funkcji. Funkcja SQLInsert() w
jednej operacji przygotowuje instrukcję wstawienia, wykonuje ją i zwalnia
wykorzystywane zasoby. Przy ponownym wywołaniu funkcji
SQLInsert() wszystkie te operacje są wykonywane ponownie. Zabiera to
znacznie więcej czasu, niż wykorzystanie trzech funkcji wymienionych
poniżej, które realizują poszczególne etapy omawianego zadania. Po
wykonaniu funkcji SQLInsertPrepare() (przygotowanie) można
wykonać dowolną liczbę razy funkcję SQLInsertExecute() (wstawienie
rekordu), a następnie zakończyć wstawianie wywołując SQLInsertEnd().
Zakończenie tworzenia wyrażenia
Kategoria
SQL
Składnia
[ResultCode=]SQLInsertEnd(ConnectionID,SQLHandle);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
Patrz również
SQLConnect(),SQLPrepareStatement()
266
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLInsertExecute()
SQLInsertPrepare()
Funkcja ta wykonuje przygotowaną instrukcję wstawiania rekordów do
tablicy.
Kategoria
SQL
Składnia
[ResultCode=]SQLInsertExecute(ConnectionID,BindList,
SQLHandle);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
BindList
Lista powiązań między kolumnami bazy danych i
zmiennymi programu InTouch
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
Patrz również
SQLConnect(),SQLPrepareStatement()
Funkcja ta tworzy i przygotowuje instrukcję wstawiania rekordów do
tablicy. Instrukcja wstawiania nie jest wykonywana. Parametr SQLHandle
jest zmienną całkowitą, której wartość jest ustalana po wykonaniu
instrukcji.
Kategoria
SQL
Składnia
[ResultCode=]SQLInsertPrepare
(ConnectionID,TableName,BindList,SQLHandle);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
TableName
Nazwa tablicy w bazie danych, której dotyczy
operacja.
BindList
Lista powiązań między kolumnami bazy danych i
zmiennymi programu InTouch
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
Patrz również
SQLConnect(),SQLPrepareStatement()
Funkcje skryptowe
267
Opis funkcji, pól i zmiennych systemowych
SQLLast()
SQLLoadStatement()
Funkcja ta wybiera ostatni rekord z tablicy wynikowej utworzonej poprzez
wykonanie ostatniej funkcji SQLSelect(). Przed wykonaniem tego
polecenia musi być wywołana funkcja SQLSelect().
Kategoria
SQL
Składnia
[ResultCode=]SQLLast(ConnectionID);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Przykład(y)
ResultCode=SQLLast(ConnectionID);
Patrz również
SQLConnect(), SQLSelect()
Funkcja ta odczytuje instrukcję zapisaną w pliku FileName. W tym
momencie funkcja ta wykazuje podobieństwo do instrukcji utworzonej za
pomocą funkcji SQLSetStatement(), oraz może być dołączana za pomocą
funkcji SQLAppendStatement(), lub wykonywana za pomocą funkcji
SQLExecute(). W jednym pliku może znajdować się wyłącznie jedna
instrukcja. funkcja SQLAppendStatement() może być jednak
wykorzystana do dołączania do instrukcji, jeżeli nie były wywoływane
funkcje SQLPrepareStatement() lub SQLExecute().
Kategoria
SQL
Składnia
[ResultCode=]SQLLoadStatement(ConnectionID,FileName);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
FileName
Nazwa pliku zawierającego odczytywaną
instrukcję.
Uwagi
Przygotowuje instrukcję SQL utworzoną za pomocą funkcji:
SQLSetStatement lub SQLLoadStatement. Funkcja zwraca parametr
SQLHandle.
Przykład(y)
ResultCode=SQLLoadStatement(ConnectionID,
”C:\InTouchAppname\SQL.txt”)
SQL.txt = Select ColumnName from TableName where
ColumnName>100;
Patrz również
SQLConnect(), SQLAppendStatement(), SQLExecute(),
SQLPrepareStatement
268
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLManageDSN()
SQLNext()
SQLNumRows()
Funkcja ta uruchamia program Microsoft ODBC Manager. Można go
wykorzystać do dodawania, usuwania i modyfikacji nazw źródeł danych.
Kategoria
SQL
Składnia
SQLManageDSN(ConnectionID);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Funkcja ta wybiera następny rekord z tablicy wynikowej utworzonej
poprzez wykonanie ostatniej funkcji SQLSelect() Przed wykonaniem tego
polecenia musi być wywołana funkcja SQLSelect().
Kategoria
SQL
Składnia
[ResultCode=]SQLNext(ConnectionID);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Przykład(y)
ResultCode=SQLNext(ConnectionID);
Patrz również
SQLConnect(), SQLSelect()
Funkcja ta oblicza, ile wierszy spełnia kryteria podane w ostatnio użytej
funkcji SQLSelect(). Przykładowo, warunek WhereExpression może
zostać wykorzystany do zaznaczenia wszystkich wierszy z kolumnami o
nazwie AGE, gdzie AGE jest równe 45, ilość zwróconych rekordów może
wynosić 40 lub 4000. Może to być wykorzystane do określenia, która
funkcja będzie wykonywana jako następna.
Kategoria
SQL
Składnia
SQLNumRows(ConnectionID);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Przykład(y)
Instrukcja zamieszczona poniżej powoduje przypisanie liczby wybranych
wierszy do zmiennej całkowitej NumRows:
NumRows=SQLNumRows(ConnectionID);
Patrz również
SQLConnect()
Funkcje skryptowe
269
Opis funkcji, pól i zmiennych systemowych
SQLPrepareStatement()
SQLPrev()
Funkcja SQLPrepareStatement() przygotowuje istniejącą instrukcję SQL
do wykorzystania jej przez funkcję SQLSetParam(). Instrukcja może
zostać utworzona zarówno za pomocą SQLSetStatement(), jak i
SQLLoadStatement(). Funkcja zwraca parametr SQLHandle.
Kategoria
SQL
Składnia
[ResultCode=]SQLPrepareStatement(ConnectionID,
SQLHandle);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
Uwagi
Aby zwolnić zasoby systemowe należy użyć odpowiedniej funkcji
SQLClearStatement().
Aby prawidłowo wywołać procedurę zachowaną należy użyć
następującego przypisania:
ResultCode = SQLSetStatement(ConnectionID,
"exec sp_MyStoredProc");
Przykład(y)
ResultCode=SQLPrepareStatement(ConnectionID,SQLHandle);
Patrz również
SQLConnect(), SQLSelect(), SQLSetStatement(), SQLLoadStatement()
Funkcja ta wybiera poprzedni rekord z tablicy wynikowej utworzonej
poprzez wykonanie ostatniej funkcji SQLSelect().
Kategoria
SQL
Składnia
[ResultCode=]SQLPrev(ConnectionID);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Uwagi
Przed wykonaniem tego polecenia musi być wywołana funkcja
SQLSelect()
Przykład(y)
ResultCode=SQLPrev(ConnectionID);
Patrz również
SQLConnect(), SQLSelect()
270
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLRollback()
Funkcja SQLRollback() cofa ostatnio wykonany zestaw transakcji. Grupa
poleceń zawartych pomiędzy funkcjami SQLTransact() i SQLCommit()
lub SQLRollback() nosi nazwę zestawu transakcji. Zestaw transakcji jest
traktowany jak pojedyncza transakcja. Po wykonaniu polecenia
SQLTransact(), wszystkie kolejne operacje nie będą kierowane do bazy
danych, aż do momentu kolejnego wywołania polecenia SQLCommit().
Kategoria
SQL
Składnia
[ResultCode=]SQLRollback(ConnectionID,);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Przykład(y)
ResultCode =SQLTransact( ConnectionID);
ResultCode = SQLInsertPrepare( ConnectionID, TableName,
BindList, SQLHandle );
ResultCode = SQLInsertExecute( ConnectionID, BindList,
SQLHandle );
ResultCode = SQLInsertEnd( ConnectionID, SQLHandle );
ResultCode =SQLRollback( ConnectionID);
{Ignoruje wszystkie polecenia po funkcji Transact()
Baza danych pozostaje nie zmieniona}
Patrz również
SQLCommit(), SQLTransact()
Funkcje skryptowe
271
Opis funkcji, pól i zmiennych systemowych
SQLSelect()
Funkcja ta wybiera informacje z wyszczególnionej tablicy w bazie danych.
Podczas wykonywania funkcji SQLSelect() w pamięci tworzona jest
tymczasowa tablica wynikowa, zawierająca rekordy, które można
przeszukiwać używając funkcji SQLFirst(), SQLLast(), SQLNext() i
SQLPrev().
Uwaga Po wykonaniu funkcji SQLSelect() zawsze należy użyć funkcji
SQLEnd() w celu zwolnienia zasobów, które były użyte do zapamiętania
tablicy wynikowej.
Kategoria
SQL
Składnia
[ResultCode=]SQLSelect(ConnectionID,TableName,BindList,
WhereExpr,OrderByExpr);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
TableName
Nazwa tablicy w bazie danych, której dotyczy
operacja.
BindList
Lista powiązań między kolumnami bazy danych i
zmiennymi programu InTouch
WhereExpression
Warunek, który może być spełniony lub
niespełniony dla każdego wiersza tablicy. Funkcja
wybiera z tablicy tylko te wiersze, dla których
warunek jest spełniony. Warunek musi mieć
następujący format:
Nazwa_kolumny operator_porównania wyrażenie.
Uwaga Jeśli w kolumnie znajdują się dane typu
tekstowego, wyrażenie musi zostać wpisane w
apostrofach.
Poniższy przykład służy do wybrania wszystkich
wierszy, w których w kolumnie name występuje ciąg
znaków EmployeeID:
name='EmployeeID'
Kolejny przykład służy do wybrania wszystkich
wierszy, w których w kolumnie partno występuje
liczba od 100 do 199:
partno>=100 and partno<200
Następny przykład służy do wybrania wszystkich
wierszy, w których w kolumnie temperature
występuje liczba większa od 350:
temperature>350
272
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
Przyklady
warunku
WhereExpression
WhereExpr - zmienna typu Memory Message.
OrderByExpr - zmienna typu Memory Message.
Speed_Input - Memory Real - liczba wprowadzana
przez użytkownika
Serial_Input - Memory Message - Tekst
wprowadzony przez użytkownika
Przykład dla
danych typu
analogowego
WhereExpr = "Speed = " + text
(Speed_Input,"#.##");
Porada Ponieważ Speed_Input jest liczbą, musi ona
zostać przekonwertowana na tekst, co pozwoli na
dołączenie jej do wyrażenia tekstowego.
Przykład dla
danych typu
tekstowego
WhereExpr = "Ser_No = ‘" +
Serial_input + "’";
Porada Ponieważ Serial_Input jest łańcuchem
znaków, wartość ujęta musi być w apostrofy,
np:WhereExpr = “Ser_No=’125gh’”;
Przykłady dla
danych typu
tekstowego z
wykorzystaniem
instrukcji like
WhereExpr = "Ser_No like ‘" + "125%’"
Porada W przypadku korzystania z słowa Like
można stosować znak % jako filtr.
Przykłady dla
danych typu
tekstowego i
analogowego,
stosowanych z
operatorem And:
WhereExpr = "Ser_No = ‘" + Serial_input
+ "’" + " and " + "Speed = " +
text(Speed_Input,"#.##");
OrderByExpr = "";
Porada Jeżeli kolejność nie odgrywa żadnej roli,
wpisać pusty łańcuch znaków, tak jak w przykładzie
powyżej.
SQLSelect z
zastosowaniem
zmiennej
WhereExpr
ResultCode =
SQLSelect(Connect_Id,TableName,
BindList,
WhereExpr,OrderByExpr);
Error_msg = SQLErrorMsg( ResultCode );
SQLSelect,
WhereExpr
wbudowane w
funkcję
ResultCode =
SQLSelect(Connect_Id,TableName,
BindList,
“Ser_No = ‘" + Serial_input + "’",
OrderByExpr);
Error_msg = SQLErrorMsg( ResultCode );
Po zakończeniu SQLSelect() należy zawsze wywoływać funkcję
SQLEnd(Connect_Id). Jeżeli funkcja SQLEnd() nie zostanie wywołana,
zasoby nie zostaną zwolnione, co może spowodować brak wolnej pamięci
w czasie wykonywania aplikacji.
Funkcje skryptowe
273
Opis funkcji, pól i zmiennych systemowych
OrderByExpression Definiuje kolumnę i kierunek sortowania. Do
sortowania można korzystać wyłącznie z nazw
kolumn, a wyrażenie musi mieć postać:
Nazwa_kolumny [ASC|DESC]
Poniższe wyrażenie spowoduje uporządkowanie
wybranej tablicy względem kolumny manager, w
porządku rosnącym:
"manager ASC"
W celu posortowania kilku kolumn, wyrażenie musi
mieć postać:
Nazwa_kolumny [ASC|DESC],
Nazwa_kolumny [ASC|DESC]
Kolejne wyrażenie spowoduje uporządkowanie
wybranej tablicy względem kolumny temperature w
porządku rosnącym i względem kolumny time w
porządku malejącym:
" temperature ASC, time DESC"
Przykład(y)
Instrukcja zamieszczona poniżej powoduje wybranie z tablicy o nazwie
BATCH (przy wykorzystaniu listy powiązań o nazwie List1) wszystkich
rekordów, w których w kolumnie type znajduje się słowo cookie.
Odczytana tablica zostanie uporządkowana rosnąco względem kolumny
amount i malejąco względem kolumny sugar:
ResultCode=SQLSelect(ConnectionID,"BATCH","List1",
"type='cookie'","amount ASC, sugar DESC");
Kolejna przykładowa instrukcja powoduje wybranie wszystkich danych z
bazy danych, bez określania warunków WhereExpression i
OrderByExpression:
ResultCode=SQLSelect(ConnectionID,"BATCH","List1",
"","");
Patrz również
SQLFirst(), SQLConnect(), SQLLast(), SQLNext(), SQLPrev(),
SQLEnd(), SQLSelect()
274
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLSetParamChar()
SQLSetParamDate()
Funkcja ta powoduje przypisanie łańcucha znaków określonemu
parametrowi tekstowemu. Funkcja SQLSetParamChar() może być
wywoływana wiele razy przed wykonaniem instrukcji SQL, w wyniku
czego parametr może być złożeniem kolejno przypisywanych łańcuchów
znaków. Puste łańcuchy znaków są ignorowane.
Kategoria
SQL
Składnia
[ResultCode=]SQLSetParamChar(SQLHandle,ParameterNumber,
ParameterValue,MaxLen);
Parametr
Opis
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
ParameterNumber
Numer parametru w instrukcji SQL.
ParameterValue
Wartość parametru.
MaxLen
Maksymalny rozmiar kolumny, z którą związany
jest parametr. Opcja ta wyznacza czy parametr jest
typu o różnej liczbie znaków, czy też typu o
znacznie różnej liczbie znaków. Jeżeli parametr
MaxLen ma długość równą lub większą od
maksymalnej wartości dopuszczalnej w bazie
danych, to parametr jest typu
VARYINGPAGEvarying character, long varying
character.PAGEvarying character, long varying
character Jeżeli jest dłuższy, jest typu LONG
VARYING .
Przykład(y)
ResultCode=SQLSetParamChar(SQLHandle,ParameterNumber,
ParameterValue,MaxLen);
Patrz również
SQLPrepareStatement()
Funkcja ta powoduje przypisanie łańcucha znaków określonemu
parametrowi reprezentującemu datę.
Kategoria
SQL
Składnia
[ResultCode=]SQLSetParamDate(SQLHandle,ParameterNumber,
ParameterValue);
Parametr
Opis
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
ParameterNumber
Numer parametru w instrukcji SQL.
ParameterValue
Wartość parametru.
Przykład(y)
ResultCode=SQLSetParamDate(SQLHandle,ParameterNumber,Pa
rameterValue);
Patrz również
SQLPrepareStatement()
Funkcje skryptowe
275
Opis funkcji, pól i zmiennych systemowych
SQLSetParamDateTime()
SQLSetParamDecimal()
Funkcja ta powoduje przypisanie łańcucha znaków określonemu
parametrowi zawierającemu datę i czas.
Kategoria
SQL
Składnia
[ResultCode=]SQLSetParamDateTime(SQLHandle,
ParameterNumber,ParameterValue,Precision);
Parametr
Opis
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
ParameterNumber
Numer parametru w instrukcji SQL.
ParameterValue
Wartość parametru.
Precision
Długość wartości daty-czasu do przypisania. Jest
to liczba znaków, wykorzystywanych w
ParameterValue.
Przykład(y)
ResultCode=SQLSetParamDateTime(SQLHandle,ParameterNumbe
r,ParameterValue,Precision);
Patrz również
SQLPrepareStatement()
Funkcja ta powoduje przypisanie łańcucha znaków (cyfr) określonemu
parametrowi dziesiętnemu. Precision jest liczbą cyfr, a Scale jest liczbą
cyfr po kropce dziesiętnej.
Kategoria
SQL
Składnia
[ResultCode=]SQLSetParamDecimal(SQLHandle,
ParameterNumber,ParameterValue,Precision,Scale);
Parametr
Opis
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
ParameterNumber
Numer parametru w instrukcji SQL.
ParameterValue
Wartość parametru.
Precision
Długość wartości daty-czasu do przypisania. Jest
to liczba znaków, wykorzystywanych w
ParameterValue.
Scale
Liczba cyfr po kropce dziesiętnej.
Przykład(y)
ResultCode=SQLSetParamDecimal(SQLHandle,
ParameterNumber,ParameterValue,Precision, Scale);
Patrz również
SQLPrepareStatement()
276
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLSetParamFloat()
SQLSetParamInt()
SQLSetParamLong()
Funkcja ta powoduje przypisanie parametrowi wartości ParameterValue .
Kategoria
SQL
Składnia
[ResultCode=]SQLSetParamFloat(SQLHandle,
ParameterNumber,ParameterValue);
Parametr
Opis
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
ParameterNumber
Numer parametru w instrukcji SQL.
ParameterValue
Wartość parametru.
Przykład(y)
ResultCode=SQLSetParamFloat(SQLHandle,ParameterNumber,
ParameterValue);
Patrz również
SQLPrepareStatement()
Funkcja ta powoduje przypisanie parametrowi wartości ParameterValue.
Kategoria
SQL
Składnia
[ResultCode=]SQLSetParamInt(SQLHandle,ParameterNumber,
ParameterValue);
Parametr
Opis
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
ParameterNumber
Numer parametru w instrukcji SQL.
ParameterValue
Wartość parametru.
Przykład(y)
ResultCode=SQLSetParamInt(SQLHandle,ParameterNumber,
ParameterValue);
Patrz również
SQLPrepareStatement()
Funkcja ta powoduje przypisanie parametrowi wartości ParameterValue.
Kategoria
SQL
Składnia
[ResultCode=]SQLSetParamLong(SQLHandle,ParameterNumber,
ParameterValue);
Parametr
Opis
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
ParameterNumber
Numer parametru w instrukcji SQL.
ParameterValue
Wartość parametru.
Przykład(y)
ResultCode=SQLSetParamLong(SQLHandle,ParameterNumber,
ParameterValue);
Patrz również
SQLPrepareStatement()
Funkcje skryptowe
277
Opis funkcji, pól i zmiennych systemowych
SQLSetParamNull()
Funkcja ta powoduje przypisanie parametrowi wartości zerowej (pustej).
Kategoria
SQL
Składnia
[ResultCode=]SQLSetParamNull(SQLHandle,ParameterNumber,
ParameterType,Precision,Scale);
Parametr
Opis
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
ParameterNumber
Numer parametru w instrukcji SQL.
ParameterType
Typ danych określonego parametru:
Typ
Opis
Char
Łańcuch znaków o stałej
długości wypełniony
znakami pustymi
Var Char
Łańcuch znaków o
zmiennej długości
Decimal
Liczba dziesiętna w
kodzie BCD
Integer
4-bajtowa liczba
całkowita ze znakiem
Small Integer
2-bajtowa liczba
całkowita ze znakiem
Float
4-bajtowa liczba
zmiennoprzecinkowa
Double Precision
Float
8-bajtowa liczba
zmiennoprzecinkowa
DateTime
4-bajtowa reprezentacja
daty i czasu
Date
2-bajtowa reprezentacja
daty i czasu
Czas
2-bajtowa reprezentacja
daty i czasu
No Type
Brak typu danych
Precision
Dokładność wartości podawanych w systemie
dziesiętnym, maksymalna liczba znaków, lub
długość bajtów przeznaczonych do zapisu daty i
czasu.
Scale
Liczba cyfr po kropce dziesiętnej. Jest wymagana
tylko w przypadku, gdy dotyczy zerowanego
parametru.
Uwagi
Jeśli dla tego samego parametru została wywołana już funkcja
SQLSetParam(), nie można użyć żadnego typu danych.
Przykład(y)
ResultCode=SQLSetParamNull(SQLHandle,ParameterNumber,
ParameterType,Precision,Scale);
Patrz również
SQLPrepareStatement()
278
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLSetParamTime()
SQLSetStatement()
Funkcja ta powoduje przypisanie łańcucha znaków określonemu
parametrowi reprezentującemu czas.
Kategoria
SQL
Składnia
[ResultCode=]SQLSetParamTime(SQLHandle,ParameterNumber,
ParameterValue);
Parametr
Opis
SQLHandle
Wartość całkowita zwracana przez SQL po użyciu
funkcji SQLPrepareStatement().
ParameterNumber
Numer parametru w instrukcji SQL.
ParameterValue
Wartość parametru.
Przykład(y)
ResultCode=SQLSetParamTime(SQLHandle,
ParameterNumber,ParameterValue);
Patrz również
SQLPrepareStatement()
Funkcja ta tworzy bufor instrukcji SQL wykorzystując do tego celu
wartość SQLStatement, dla ustanowionego połączenia ConnectionID.
Jedno połączenie ConnectionID może korzystać tylko z jednego bufora.
Funkcja ta zwraca kody błędów.
Kategoria
SQL
Składnia
[ResultCode=]SQLSetStatement(ConnectionID,SQLStatement)
;
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
SQLStatement
Właściwa instrukcja SQL, jak w poniższym
przykładzie.
Funkcje skryptowe
279
Opis funkcji, pól i zmiennych systemowych
SQLTransact()
Przykład(y)
ResultCode=SQLSetStatement(ConnectionID,"Select LotNo,
LotName from LotInfo");
W zamieszczonym poniżej przykładzie, wartość SQLHandle ustawiona
zostaje na 0, dzięki czemu instrukcja nie wywołuje
SQLPrepare(Connect_Id,SQLHandle) przed wykonaniem instrukcji.
Ponieważ SQLHandle nie została utworzona przez SQLPrepare w celu
poprawnego zakończenia tego zaznaczania, skorzystać z funkcji SQLEnd
w miejsce SQLClearStatement().
SQLSetStatement( Connect_Id, “Select Speed, Ser_No
from tablename where Ser_No =’” + Serial_input +
“’”);
SQLExceute(Connect_Id,0);
W zamieszczonym poniżej przykładzie, SQLHandle jest tworzona za
pomocą SQLPrepareStatement, i wykorzystywana w funkcji
SQLExecute. W celu zakończenia tej instrukcji zaznaczania skorzystać z
funkcji SQLClearStatement w celu uwolnienia zasobów, oraz zwolnienia
SQLHandle.
SQLSetStatement( Connect_Id, “Select Speed, Ser_No
from tablename where Ser_No =’” + Serial_input +
“’”);
SQLPrepareStatement(Connect_Id,SQlHandle);
SQLExceute(Connect_Id,SqlHandle);
SQLSetStatement( Connect_Id, “Select Speed, Ser_No
from tablename where Ser_No =’” + Serial_input +
“’”);
SQLPrepareStatement(Connect_Id,SQlHandle);
SQLExceute(Connect_Id,SqlHandle);
Patrz również
SQLConnect()
Funkcja SQLTransact() określa początek zestawu transakcji. Grupa
poleceń zawierających się pomiędzy funkcjami SQLTransact() i
SQLCommit() nosi nazwę zestawu transakcji. Zestaw transakcji jest
traktowany jak pojedyncza transakcja. Po wykonaniu polecenia
SQLTransact(), wszystkie kolejne operacje nie będą kierowane do bazy
danych, aż do momentu kolejnego wywołania polecenia SQLCommit().
Kategoria
SQL
Składnia
[ResultCode=]SQLTransact(ConnectionID);
280
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Uwaga Przy tworzeniu skryptów QuickScript zawierających funkcję
SQLTransact() należy zachować dużą ostrożność. Ponieważ czas
wykonania skryptu jest mnożony przez liczbę transakcji w zestawie
transakcji, włączanie wielu poleceń do zestawu transakcji istotnie zwalnia
działanie aplikacji.
Patrz również
SQLCommit(), SQLRollback()
Funkcje skryptowe
281
Opis funkcji, pól i zmiennych systemowych
SQLUpdate()
Funkcja ta powoduje zmodyfikowanie rekordu w wyszczególnionej
tablicy w bazie danych przy użyciu bieżących wartości zmiennych
powiązanych z kolumnami tablicy.
Kategoria
SQL
Składnia
[ResultCode=]SQLUpdate(ConnectionID,TableName,BindList,
WhereExpr);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
TableName
Nazwa tablicy w bazie danych, której dotyczy
operacja.
BindList
Lista powiązań między kolumnami bazy danych i
zmiennymi programu InTouch
WhereExpression
Warunek, który może być spełniony lub
niespełniony dla każdego wiersza tablicy. Funkcja
aktualizuje tylko te wiersze w tablicy, dla których
warunek jest spełniony. Warunek musi mieć
następujący format:
Nazwa_kolumny operator_porównania
wyrażenie.
Uwaga Jeśli w kolumnie znajdują się dane typu
tekstowego, wyrażenie musi zostać wpisane w
apostrofach.
Poniższy przykład służy do wybrania wszystkich
wierszy, w których w kolumnie name występuje
ciąg znaków EmployeeID:
name='EmployeeID'
Kolejny przykład służy do wybrania wszystkich
wierszy, w których w kolumnie partno występuje
liczba od 100 do 199:
partno>=100 and partno<200
Następny przykład służy do wybrania wszystkich
wierszy, w których w kolumnie temperature
występuje liczba większa od 350:
temperature>350
282
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
SQLUpdateCurrent()
Sqrt()
Przykład(y)
Zamieszczone poniżej wyrażenie powoduje uaktualnienie wszystkich
rekordów tablicy BATCH, dla których numer serii jest równy 65, do
bieżącej wartości zmiennych określonych za pomocą parametru BindList
"List1".
ResultCode=SQLUpdate(ConnectionID,"BATCH","List1","
lotno=65");
Uwaga Należy sprawdzić, czy rekordy nie powtarzają się. W przypadku
gdy w tabeli będą znajdować się identyczne rekordy, zostaną one
wszystkie uaktualnione.
Patrz również
SQLConnect()
Funkcja ta pobiera zaznaczony rekord i uaktualnia go wartościami
zmiennych InTouch Zamieszczony poniżej przykład spowoduje
uaktualnienie zaznaczonego w danym momencie rekordu.
Kategoria
SQL
Składnia
[ResultCode=]SQLUpdateCurrent(ConnectionID);
Parametr
Opis
ConnectionID
Zmienna typu Memory Integer, utworzona przez
użytkownika do pamiętania numeru (ID)
przypisywanego przez funkcję SQLConnect do
każdego połączenia z bazą danych.
Przykład(y)
ResultCode=SQLUpdateCurrent(ConnectionID);
Patrz również
SQLConnect()
Funkcja ta oblicza pierwiastek kwadratowy z podanej liczby.
Kategoria
funkcje matematyczne
Składnia
RealResult=Sqrt(Number);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Przykład(y)
AnalogTag1=Sqrt(AnalogTag2);
Funkcje skryptowe
283
Opis funkcji, pól i zmiennych systemowych
StartApp
StringASCII()
Automatyczne uruchomienie innej aplikacji Windows.
Kategoria
system
Składnia
StartApp "AppName";
Parametr
Opis
AppName
Nazwa programu (pliku z rozszerzeniem .EXE)
aplikacji do uruchomienia, (np. Wordpad.EXE).
Chociaż rozszerzenie .EXE w nazwie pliku nie jest wymagane, zaleca się
jego wpisywanie. Można również wprowadzać parametry, w przypadkach
gdy aplikacja je obsługuje. Długie nazwy plików nie działają. Jednakże
można stosować poniższy przykład zastępowania długich nazw.
Jeżeli długa nazwa dostępu ma postać: :C:\Program files\Microsoft
Office\Office\Excel. Wówczas należy wprowadzić:
C:\Progra~1\Micros~2\Office\Excel (postać w systemie Dos).
StartApp "C:\Progra~1\Micros~2\Office\Excel";
Jeżeli wykorzystywany jest plik windows i pokazywane są wszystkie
informacje o pliku, w środkowej kolumnie umieszczona będzie nazwa w
postaci, w jakiej jest ona reprezentowana w systemie Dos.
Przykład(y)
Zamieszczona poniżej instrukcja powoduje uruchomienie programu
Microsoft Windows Wordpad.
StartApp "Wordpad.exe";
Patrz również
ActivateAPP()
Zwraca kod ASCII pierwszego znaku zadanej zmiennej tekstowej
Kategoria
funkcje tekstowe
Składnia
IntegerResult=StringASCII("Char");
Parametr
Opis
Char
Zmienna tekstowa lub łańcuch znaków
alfanumerycznych.
Uwagi
Kod ASCII pierwszego znaku ciągu znaków Char zostanie zapisany jako
IntegerResult. W czasie wykonywania funkcji, testowany lub zmieniany
jest wyłącznie pojedynczy znak. Jeśli łańcuch znaków lub zmienna
tekstowa podana jako parametr funkcji StringASCII() zawiera więcej niż
jeden znak, podany zostanie tylko kod pierwszego znaku.
Przykład(y)
StringASCII("A") zwróci 65
StringASCII("A Mixer is Running") zwróci 65
StringASCII("a mixer is running") zwróci 97
Patrz również
StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(),
StringReplace(), StringRight(), StringSpace(), StringTest(),
StringToIntg(), StringToReal(), StringTrim(), StringUpper(), Text()
284
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
StringChar()
StringFromIntg()
Zwraca znak dla zadanego kodu ASCII.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringChar(ASCII);
Parametr
Opis
ASCII
Kod ASCII lub zmienna typu całkowitego.
Uwagi
Znak o podanym (jako parametr ASCII) kodzie ASCII zostanie zapisany
jako MessageResult. Jednym z zastosowań tej funkcji jest dołączanie do
zmiennych tekstowych znaków ASCII, które nie są reprezentowane na
klawiaturze.
Przykład(y)
ControlString=MessageTag+StringChar(13)+StringChar(10);
W przykładzie powyżej, do zmiennej MessageTag dołączone zostały znaki
[CR(13)] i [LF(10)], a całość została zapisana jako ControlString.
Wstawianie znaków o kodach spoza normalnego zakresu 32-126 może być
bardzo użyteczne przy tworzeniu kodów sterujących dla urządzeń
zewnętrznych, takich jak drukarki lub modemy.
Funkcja ta jest często wykorzystywana do tworzenia poleceń SQL. W
wyrażeniu WhereExpression wartości tekstowe muszą często ujęte być w
znaki cudzysłowów, można je wstawić za pomocą funkcji StringChar(34).
Patrz również
StringASCII(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(),
StringReplace(), StringRight(), StringSpace(), StringTest(),
StringToIntg(), StringToReal(), StringTrim(), StringUpper(), Text()
Zamienia wartość całkowitą na odpowiadający jej ciąg znaków.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringFromIntg(Number,Base);
Parametr
Opis
Number
Liczba do konwersji. Dowolna liczba lub zmienna
całkowita.
Base
Parametr określający system zapisu. Dowolna liczba
lub zmienna całkowita.
Uwagi
Liczba całkowita jest przekształcana na system określony przez parametr
Base (dwójkowy, szesnastkowy, itp.), a wynik tej operacji jest zapisywany
jako MessageResult.
Przykład(y)
StringFromIntg(26, 2) da w wyniku "11010"
StringFromIntg(26, 8) da w wyniku "32"
StringFromIntg(26, 16) da w wyniku "1A"
Patrz również
StringASCII(), StringChar(), StringFromReal(), StringFromTime(),
StringFromTimeLocal(), StringInString(), StringLeft(), StringLen(),
StringLower(), StringMid(), StringReplace(), StringRight(),
StringSpace(), StringTest(), StringToIntg(), StringToReal(),
StringTrim(), StringUpper(), Text()
Funkcje skryptowe
285
Opis funkcji, pól i zmiennych systemowych
StringFromReal()
Przekształca liczbę w formacie rzeczywistym na odpowiadający jej ciąg
znaków, zapisując ją w formacie zmiennoprzecinkowym lub w formacie
wykładniczym.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringFromReal(Number,Precision,"Type");
Parametr
Opis
Number
Jest konwertowany zgodnie z parametrami Precision
i Type, a wartość przypisywana jest do
MessageResult. Liczba lub zmienna typu
rzeczywistego.
Precision
Podaje ile miejsc dziesiętnych należy wyświetlić.
Dowolna liczba lub zmienna całkowita.
Typ
Parametr określający system zapisu:
Typ
Opis
"f"
8-bajtowa liczba zmiennoprzecinkowa
"e"
Notacja "naukowa" z małym e.
"E"
Notacja "naukowa" z dużym E.
Przykład(y)
StringFromReal(263.355, 2,"f") da w wyniku "263.36"
StringFromReal(263.355, 2,"e") da w wyniku "2.63e2"
StringFromReal(263.55, 3,"E") da w wyniku "2.636E2"
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromTime(),
StringFromTimeLocal(), StringInString(), StringLeft(), StringLen(),
StringLower(), StringMid(), StringReplace(), StringRight(),
StringSpace(), StringTest(), StringToIntg(), StringToReal(),
StringTrim(), StringUpper(), Text()
286
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
StringFromTime()
Funkcja ta przekształca czas (wyrażany w sekundach licząc od 01-01-
1970) na ciąg znaków. Wartość czasu powinna odpowiadać standardowi
UTC (ilość sekund które upłynęły od 01 – 01 – 1970 czasu GMT).
Zwrócona wartość jest czasem lokalnym.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringFromTime
(SecsSince1-1-70,StringType);
Parametr
Opis
SecsSince1-1-70
Konwersja na ciąg znaków przeprowadzana jest
zgodnie z parametrem StringType, a wynik zwracany
za pomocą MessageResult.
StringType Parametr
określający system zapisu:
Typ
Opis
1
Zapis daty w formacie ustawionym w
Panelu sterowania Windows. (Podobny
do formatu zmiennej systemowej
$DateString.)
2
Zapis czasu w formacie ustawionym w
Panelu sterowania Windows. (Podobny
do formatu zmiennej systemowej
$TImeString.)
3
Wyświetlenie tekstu składającego się z
24 znaków, podającego zarówno datę
jak i godzinę. "Wed Jan 02 02:03:55
1993"
4
Wyświetlenie skrótowego oznaczenia
dla dnia tygodnia. "Wed"
5
Wyświetlenie pełnej nazwy dnia
tygodnia. "Wednesday"
Przykład(y)
StringFromTime(86400, 1) zwraca "1/2/70"
StringFromTime(86400, 2) zwraca "12:00:00 AM"
StringFromTime(86400, 3) zwraca "Fri Jan 02 00:00:00
1970"
StringFromTime(86400, 4) zwraca "Fri"
StringFromTime(86400, 5) zwraca "Friday"
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(),
StringReplace(), StringRight(), StringSpace(), StringTest(),
StringToIntg(), StringToReal(), StringTrim(), StringUpper(), Text()
Funkcje skryptowe
287
Opis funkcji, pól i zmiennych systemowych
StringFromTimeLocal()
Funkcja ta przekształca czas (wyrażany w sekundach licząc od 01-01-
1970) na ciąg znaków. Zwrócona wartość jest czasem lokalnym.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringFromTimeLocal(SecsSince1-1-70,
StringType);
Parametr
Opis
SecsSince1-1-70 Konwersja
na
ciąg znaków przeprowadzana jest
zgodnie z parametrem StringType, a wynik zwracany
za pomocą MessageResult.
StringType Parametr
określający system zapisu:
Typ
Opis
1
Zapis daty w formacie ustawionym w
Panelu sterowania Windows. (Podobny
do formatu zmiennej systemowej
$DateString.)
2
Zapis czasu w formacie ustawionym w
Panelu sterowania Windows. (Podobny
do formatu zmiennej systemowej
$TImeString.)
3
Wyświetlenie tekstu składającego się z
24 znaków, podającego zarówno datę
jak i godzinę. "Wed Jan 02 02:03:55
1993"
4
Wyświetlenie skrótowego oznaczenia
dla dnia tygodnia. "Wed"
5
Wyświetlenie pełnej nazwy dnia
tygodnia. "Wednesday"
Przykład(y)
StringFromTimeLocal(86400, 1) zwraca "1/2/70"
StringFromTimeLocal (86400, 2) zwraca "12:00:00 AM"
StringFromTimeLocal (86400, 3) zwraca "Fri Jan 02
00:00:00 1970"
StringFromTimeLocal (86400, 4) zwraca "Fri"
StringFromTimeLocal (86400, 5) zwraca "Friday"
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringInString(), StringLeft(), StringLen(),
StringLower(), StringMid(), StringReplace(), StringRight(),
StringSpace(), StringTest(), StringToIntg(), StringToReal(),
StringTrim(), StringUpper(), Text()
288
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
StringInString()
Pozycja wystąpienia szukanego ciągu znaków w zadanym tekście.
Kategoria
funkcje tekstowe
Składnia
IntegerResult=StringInString("Text","SearchFor",
StartPos,CaseSens);
Parametr
Opis
Tekst
Łańcuch znaków przeszukiwany pod kątem
występowania grupy znaków SearchFor. Jeśli grupa
ta występuje w kilku miejscach, do zmiennej
IntegerResult przypisywane jest miejsce pierwszego
wystąpienia. Łańcuch znaków lub zmienna tekstowa.
SearchFor
Poszukiwany ciąg znaków w Text. Łańcuch znaków
lub zmienna tekstowa.
StartPos
Liczba całkowita określająca miejsce początkowe
przeszukiwania łańcucha Text. Dowolna liczba lub
zmienna całkowita.
CaseSens
Parametr określający, czy przy przeszukiwaniu
łańcucha znaków mają być rozróżniane duże i małe
litery (0=nie, 1=tak). Dowolna liczba lub zmienna
całkowita.
Przykład(y)
Instrukcja StringInString("The mixer is running","mix",
1, 0)
zwróci wartoœæ 5
StringInString("Today is Thursday", "day", 1, 0)
zwróci wartoœæ 3
StringInString("Today is Thursday", "day", 10, 0)
zwróci wartoœæ 15
Instrukcja StringInString("Today is Veteran's
Day","Day",1, 1)
zwróci wartoœæ 20
Instrukcja StringInString("Today is Veteran's
Day","Night",1, 1)
zwróci wartoœæ 0
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringLeft(), StringLen(),
StringLower(), StringMid(), StringReplace(), StringRight(),
StringSpace(), StringTest(), StringToIntg(), StringToReal(),
StringTrim(), StringUpper(), Text()
Funkcje skryptowe
289
Opis funkcji, pól i zmiennych systemowych
StringLeft()
Zwraca liczbę znaków określoną przez Chars, począwszy od znaku
umieszczonego skrajnie po lewej stronie.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringLeft("Text",Chars);
Parametr
Opis
Tekst
Łańcuch znaków lub zmienna tekstowa.
Chars
Liczba znaków, które ma zwrócić funkcja, lub
zmienna typu całkowitego.
Uwagi
Jeśli wartość parametru Chars wynosi 0, funkcja zwraca cały łańcuch
znaków.
Przykład(y)
Instrukcja StringLeft("The Control Pump is On", 3)
zwróci
"The"
StringLeft("Pump 01 is On", 4) zwróci
"Pump"
StringLeft("Pump 01 is On", 96) zwróci
"Pump 01 is On"
Instrukcja StringLeft("The Control Pump is On", 0)
zwróci
"The Control Pump is On"
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringInString(), StringLen(), StringLower(),
StringMid(), StringReplace(), StringRight(), StringSpace(),
StringTest(), StringToIntg(), StringToReal(), StringTrim(),
StringUpper(), Text()
290
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
StringLen()
StringLower()
Zwraca liczbę całkowitą określającą długość zadanej zmiennej tekstowej.
Kategoria
funkcje tekstowe
Składnia
IntegerResult=StringLen("Text");
Parametr
Opis
Tekst
Łańcuch znaków lub zmienna tekstowa.
Uwagi
Długość tekstu Text (w znakach) przypisywana jest do zmiennej
IntegerTag. Zliczane są wszystkie znaki w zmiennej tekstowej, włączając
w to znaki standardowo nie wyświetlane.
Przykład(y)
StringLen("Twelve percent") zwróci wartoœæ 14
StringLen("12%") zwróci wartoœæ 3
StringLen("The end." + StringChar(13)) zwróci wartoœæ 9
Uwaga. [CR] jest znakiem powrotu karetki o kodzie ASCII 13
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLower(), StringMid(), StringReplace(),
StringRight(), StringSpace(), StringTest(), StringToIntg(),
StringToReal(), StringTrim(), StringUpper(), Text()
Zamienia wszystkie znaki pisane duże literą na znaki pisane małą literą, a
wynik tej operacji umieszczany jest w zmiennej MessageResult.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringLower("Text");
Parametr
Opis
Tekst
Tekst, w którym duże litery mają być zmienione
na małe. Łańcuch znaków lub zmienna tekstowa.
Uwagi
Funkcja nie zmienia małych liter, cyfr, symboli i znaków specjalnych (a
także, polskich dużych liter na małe).
Przykład(y)
StringLower("TURBINE")zwróci lancuch "turbine"
StringLower("22.2 Is The Value") zwróci
"22.2 is the value."
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringMid(), StringReplace(), StringRight(),
StringSpace(), StringTest(), StringToIntg(), StringToReal(),
StringTrim(), StringUpper(), Text()
Funkcje skryptowe
291
Opis funkcji, pól i zmiennych systemowych
StringMid()
Funkcja ta zwraca liczbę znaków określoną parametrem Chars,
rozpoczynając od pozycji określonej przez parametr StartChar. Funkcja ta
nieznacznie różni się od swoich odpowiedników: funkcji StringLeft() i
StringRight(), ponieważ umożliwia ona określenie zarówno początku jak i
końca wyjściowego łańcucha znaków.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringMid("Text",StartChar,Chars);
Parametr
Opis
Tekst
Łańcuch znaków lub zmienna tekstowa.
StartChar
Liczba całkowita określająca miejsce pierwszego
znaku z grupy. Dowolna liczba lub zmienna
całkowita.
Chars
Liczba znaków do odczytania. Dowolna liczba lub
zmienna całkowita.
Przykład(y)
Instrukcja StringMid("The Furnace is Overheating",5,7)
zwróci
"Furnace"
Instrukcja StringMid("The Furnace is Overheating",13,3)
zwróci
"is "
Instrukcja StringMid("The Furnace is Overheating",16,50)
zwróci
"Overheating"
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringReplace(),
StringRight(), StringSpace(), StringTest(), StringToIntg(),
StringToReal(), StringTrim(), StringUpper(), Text()
292
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
StringReplace()
Funkcja ta zastępuje określoną grupę znaków w podanym łańcuchu
znaków (lub zmiennej tekstowej). Dzięki tej funkcji można zastępować
znaki, słowa lub frazy w łańcuchach znaków i zmiennych tekstowych.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringReplace(Text,SearchFor,ReplaceWith,
CaseSens,NumToReplace,MatchWholeWords);
Parametr
Opis
Tekst
Łańcuch znaków lub zmienna tekstowa podlegające
modyfikacjom. Łańcuch znaków lub zmienna
tekstowa.
SearchFor
Poszukiwana grupa znaków, która ma zostać
wymieniona na inną. Łańcuch znaków lub zmienna
tekstowa.
ReplaceWith
Dowolny tekst który będzie wstawiony. Łańcuch
znaków lub zmienna tekstowa.
CaseSens
Parametr określający, czy przy przeszukiwaniu
łańcucha znaków mają być rozróżniane duże i małe
litery . (0-nie i 1=tak.) Liczba lub zmienna typu
całkowitego.
NumToReplace
Liczba wystąpień, w których ma być wprowadzona
zamiana. (-1 = wszystkie) Dowolna liczba lub
zmienna całkowita.
MatchWholeWords Określa czy działanie funkcji ograniczone zostanie
do zastępowania całych słów. (0-nie i 1=tak.) Liczba
lub zmienna typu całkowitego.
Jeżeli parametr MatchWholeWords zostanie
ustawiony na 1, a SearchFor na "and", znaki "and" w
słowie "handle" nie zostaną zastąpione. Jeśli
natomiast parametr MatchWholeWords ma wartość
0, grupa znaków "and" występująca w słowie
"handle" zostanie zamieniona.
Przykład(y)
StringReplace("In From Within","In","Out",0,1,0) zwróci
"Out From Within" (zast
ę
powany jest tylko pierwszy)
StringReplace("In From Within","In","Out",0,-1,0) zwróci
"Out From without" (zast
ę
powane wszystkie wyst
ą
pienia)
StringReplace("In From Within","In","Out",1,-1,0) zwróci
"Out From Within" (zast
ę
powane wszystkie wyst
ą
pienia ze
zgodn
ą
wielko
ś
ci
ą
liter)
StringReplace("In From Within","In","Out",0,-1.1) zwróci
"Out From Within" (zast
ę
powane wszystkie wyst
ą
pienia ze
zgodno
ś
ci
ą
całych wyrazów)
Funkcje skryptowe
293
Opis funkcji, pól i zmiennych systemowych
StringRight()
Funkcja StringReplace() nie rozpoznaje znaków specjalnych, np.
@#$%&*(). Traktuje je jako znaki rozdzielające. Przykładowo, wywołanie
funkcji
StringReplace() (abc#,abc#,1234,0,1,1)
nie spowoduje żadnego
zastąpienia. Znak # zostanie odczytywany jako znak rozdzielający.
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(), StringRight(),
StringSpace(), StringTest(), StringToIntg(), StringToReal(),
StringTrim(), StringUpper(), Text()
Zwraca liczbę znaków określoną przez parametr Chars, począwszy od
znaku umieszczonego skrajnie po prawej stronie.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringRight("Text",Chars);
Parametr
Opis
Tekst
Łańcuch znaków lub zmienna tekstowa.
Chars
Liczba znaków, które ma zwrócić funkcja, lub
zmienna typu całkowitego.
Uwagi
Jeśli wartość parametru Chars wynosi 0, funkcja zwraca cały łańcuch
znaków.
Przykład(y)
StringRight("The Pump is On", 2) zwróci
"On"
StringRight("The Pump is On", 5) zwróci
"is On"
StringRight("The Pump is On", 87) zwróci
"The Pump is On"
StringRight("The Pump is On", 0) zwróci
"The Pump is On"
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(),
StringReplace(), StringSpace(), StringTest(), StringToIntg(),
StringToReal(), StringTrim(), StringUpper(), Text()
294
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
StringSpace()
Funkcja ta ustawia łańcuch spacji do zmiennej tekstowej lub do wyrażenia.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringSpace(NumSpaces);
Parametr
Opis
NumSpaces
Liczba spacji do wygenerowania. Dowolna liczba lub
zmienna całkowita.
Uwagi
Funkcja StringSpace() zwraca łańcuch spacji o długości zadanej za
pomocą parametru NumSpaces.
Przykład(y)
Wszystkie spacje reprezentowane są za pomocą znaku "×".
StringSpace(4) zwróci łancuch "××××"
"Pump" + StringSpace(1) + "Station" zwróci
"Pump×Station"
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(),
StringReplace(), StringRight(), StringTest(), StringToIntg(),
StringToReal(), StringTrim(), StringUpper(), Text()
Funkcje skryptowe
295
Opis funkcji, pól i zmiennych systemowych
StringTest()
Sprawdza typ pierwszego znaku łańcucha znaków.
Kategoria
funkcje tekstowe
Składnia
DiscreteResult=StringTest("Text",TestType)
Parametr
Opis
Tekst
Łańcuch znaków na którym operuje funkcja. Łańcuch
znaków lub zmienna tekstowa.
TestType
Kryterium usuwania, zgodnie z poniższym
zestawieniem:
Typ
Opis
1
Znak alfanumeryczny ('A'-'Z', 'a-z' i '0-
9')
2
Cyfra (od '0' do '9')
3
Litera alfabetu (od 'A' do 'Z', od 'a' do
'z')
4
Duża litera alfabetu (od 'A' do 'Z')
5
Mała litera alfabetu (od 'a' do 'z')
6
Znak interpunkcyjny (0x21-0x2F)
7
Znak ASCII (0x00-0x7F)
8
Znak heksadecymalny ('A'-'F' or 'a'-'f'
or '0'-'9')
9
Znak drukowany (0x21-0x2F)
10
Znak sterujący (0x00-0x1F lub 0x7F)
11
Znaki spacji (0x09-0x0D lub 0x20)
Uwagi
Jeśli pierwszy znak łańcucha znaków Text jest znakiem zgodnym z
kryterium określonym za pomocą TestType, funkcja StringTest() ustawia
DiscreteResult na 1. Jeżeli funkcja StringTest() zawiera większą liczbę
znaków, sprawdzany jest typ wyłącznie pierwszego znaku.
Przykład(y)
StringTest("ACB123",1) zwróci warto
ść
1
StringTest("ABC123",5) zwróci warto
ść
0
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(),
StringReplace(), StringRight(), StringSpace(), StringToIntg(),
StringToReal(), StringTrim(), StringUpper(), Text()
296
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
StringToIntg()
Funkcja ta przekształca wartość numeryczną łańcucha znaków (lub
zmiennej tekstowej) na wartość całkowitą, która może być użyta do
obliczeń matematycznych.
Kategoria
funkcje tekstowe
Składnia
IntegerResult=StringToIntg("Text");
Parametr
Opis
Tekst
Łańcuch znaków na którym operuje funkcja. Łańcuch
znaków lub zmienna tekstowa.
Uwagi
Gdy określana jest wartość łańcucha znaków, system odczytuje pierwszy
znak łańcucha i określa jego wartość numeryczną. Jeśli pierwszy znak nie
jest cyfrą ani znakiem minus "-" (puste miejsca są ignorowane), wartość
numeryczna łańcucha znaków wynosi 0. Jeśli pierwszy znak jest cyfrą lub
znakiem minus "-", system odczytuje kolejne znaki do czasu napotkania
znaku nie będącego cyfrą.
Przykład(y)
Je
ś
li Text="ABCD", wówczas IntegerTag=0.
Je
ś
li Text="22.2 is the Value", wówczas IntegerTag=22
(je
ż
eli zmienna IntegerTag jest zdefiniowana jako liczba
całkowita).
Je
ś
li Text="The Value is 22", wówczas IntegerTag=0.
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(),
StringReplace(), StringRight(), StringSpace(), StringTest(),
StringToReal(), StringTrim(), StringUpper(), Text()
Funkcje skryptowe
297
Opis funkcji, pól i zmiennych systemowych
StringToReal()
Przekształca zmienną tekstową na wartość rzeczywistą (liczbę
zmiennoprzecinkową), na której mogą być przeprowadzone obliczenia
matematyczne..
Kategoria
funkcje tekstowe
Składnia
RealResult=StringToReal("Text");
Parametr
Opis
Tekst
Łańcuch znaków na którym operuje funkcja. Łańcuch
znaków lub zmienna tekstowa.
Uwagi
Gdy określana jest wartość łańcucha znaków, system odczytuje pierwszy
znak łańcucha i określa jego wartość numeryczną. Jeśli pierwszy znak nie
jest cyfrą ani znakiem minus "-" (puste miejsca są ignorowane), wartość
numeryczna łańcucha znaków wynosi 0. Jeśli pierwszy znak jest cyfrą lub
znakiem minus "-", system odczytuje kolejne znaki do czasu napotkania
znaku nie będącego cyfrą.
Przykład(y)
Je
ś
li Text ="ABCD", wówczas RealTag=0.
Je
ś
li Text="22.261 is the Value", wówczas
RealTag=22.261.
Je
ś
li Text="The Value is 22", wówczas RealTag=0.
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(),
StringReplace(), StringRight(), StringSpace(), StringTest(),
StringToIntg(), StringTrim(), StringUpper(), Text()
298
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
StringTrim()
Usuwa niepotrzebne spacje z łańcucha znaków.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringTrim("Text",TrimType);
Parametr
Opis
Text
Łańcuch znaków z którego będą usuwane spacje.
Łańcuch znaków lub zmienna tekstowa.
TrimType
Kryterium usuwania, zgodnie z poniższym
zestawieniem:
Typ
Opis
1
Spacje zostaną usunięte z początku
łańcucha znaków (wszystkie spacje na
lewo od pierwszego znaku, który nie
jest spacją).
2
Spacje zostaną usunięte z końca
łańcucha znaków (wszystkie spacje na
prawo od ostatniego znaku, który nie
jest spacją).
3
Usunięte zostaną wszystkie spacje z
wyjątkiem pojedynczych spacji
pomiędzy słowami.
Uwagi
Text jest przeszukiwany pod kątem występowania spacji o kodach ASCII
0x09-0x0D lub 0x20, które zostaną usunięte. Parametr TrimType określa,
które spacje zostaną usunięte.
Przykład(y)
Wszystkie spacje reprezentowane są za pomocą znaku "×".
StringTrim("×××××This×is×a××test×××××", 1) zwróci
"This×is×a××test×××××"
StringTrim("×××××This×is×a××test×××××", 2) zwróci
"×××××This×is×a××test"
StringTrim("×××××This×is×a××test×××××", 3) zwróci
"This×is×a×test"
Funkcja StringReplace() pozwala na usunięcie WSZYSTKICH spacji z
zadanej zmiennej tekstowej. W tym celu należy zamienić wszystkie spacje
na pusty łańcuch znaków.
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(),
StringReplace(), StringRight(), StringSpace(), StringTest(),
StringToIntg(), StringToReal(), StringUpper(), Text()
Funkcje skryptowe
299
Opis funkcji, pól i zmiennych systemowych
StringUpper()
Tan()
Przekształca wszystkie małe litery w podanym tekście na duże.
Kategoria
funkcje tekstowe
Składnia
MessageResult=StringUpper("Text");
Parametr
Opis
Tekst
Tekst, w którym małe litery mają być zmienione
na duże. Łańcuch znaków lub zmienna tekstowa.
Uwagi
Funkcja nie zmienia dużych liter, cyfr, symboli i znaków specjalnych (a
także, niestety, polskich małych liter na duże).
Przykład(y)
StringUpper("abcd") zwróci ła
ń
cuch "ABCD."
StringUpper("22.2 is the value") zwróci ła
ń
cuch "22.2 IS
THE VALUE"
Patrz również
StringASCII(), StringChar(), StringFromIntg(), StringFromReal(),
StringFromTime(), StringFromTimeLocal(), StringInString(),
StringLeft(), StringLen(), StringLower(), StringMid(),
StringReplace(), StringRight(), StringSpace(), StringTest(),
StringToIntg(), StringToReal(), StringTrim(), Text()
Zwraca tangens kąta podanego w stopniach.
Kategoria
funkcje matematyczne
Składnia
Result=Tan(AngleNumber);
Parametr
Opis
AngleNumber
Wartość kąta w stopniach. Dowolna liczba, zmienna
rzeczywista (Real) lub całkowita (Integer) programu
InTouch.
Przykład(y)
Wave = 10 + 50 * Tan(6 * $Second);
Tan(45) zwróci 1
Tan(0) zwróci 0
Patrz również
Cos(), Sin(), ArcCos(), ArcSin(), ArcTan()
300
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
Text()
Trunc()
Funkcja ta powoduje zapisanie w zmiennej tekstowej wartości zmiennej
analogowej (całkowitej lub rzeczywistej) w postaci łańcucha znaków, z
zastosowaniem formatu określonego w Format_Text.
Kategoria
funkcje tekstowe
Składnia
MessageResult=Text(Analog_Tag,"Format_Text");
Parametr
Opis
Analog_Tag
Wartość zmiennej analogowej, która będzie poddana
konwersji. Dowolna liczba lub zmienna rzeczywista
(Real) albo całkowita (Integer) programu InTouch.
Format_Text
Parametr określający format zapisu. Łańcuch znaków
lub zmienna tekstowa.
Przykład(y)
MessageTag=Text(Analog_Tag,"#.00");
Message_Tag jest zmienną tekstową (typu Message), 66 jest wartością
zmiennej całkowitej lub rzeczywistej, a "#0.00" reprezentuje format zapisu
wartości zmiennej:
Je
ś
li Analog_Tag=66, wówczas MessageTag=66.00.
Je
ś
li Analog_Tag=22.269, wówczas MessageTag=22.27.
Je
ś
li Analog_Tag=9.999, wówczas MessageTag=10.00.
LogMessage("The current value of FreezerRoomTemp is:" +
Text (FreezerRoomTemp, "#.#")); -
W zamieszczonym poniżej przykładzie, zmienna MessageTag zostanie
ustawiona na wartość "One=1 Two=2".
MessageTag = "One + " + Text(1,"#") + StringChar(32) +
"Two +" + Text(2,"#");
Patrz również
StringFromIntg(), StringToIntg(), StringFromReal(), StringToReal()
Przybliża liczbę rzeczywistą przez odrzucenie części po prawej stronie
kropki dziesiętnej.
Kategoria
funkcje matematyczne
Składnia
ResultNumericTag=Trunc(Number);
Parametr
Opis
Number
Dowolna liczba, zmienna rzeczywista (Real) lub
całkowita (Integer) programu InTouch.
Uwagi
Wynik wykonania tej funkcji jest taki sam, jak zapisania wartości zmiennej
rzeczywistej jako zmiennej całkowitej .
Przykład(y)
Trunc(4.3) daje w wyniku 4
Trunc(-4.3) daje w wyniku –4
Patrz również
Round()
Funkcje skryptowe
301
Opis funkcji, pól i zmiennych systemowych
TseGetClientId()
TseQueryRunningOnConsole()
Zwraca wersję łańcucha znaków ID klienta (adres TCP/IP klienta) jeżeli
aplikacja jest uruchomiona na stanowisku klienckim Terminal Serwera. W
przeciwnym przypadku zwraca pusty ciąg znaków.
Kategoria
Usługi terminalowe
Składnia
MessageResult=TseGetClientId();
Parametr
Opis
MessageResult
Zmienna typu message, która zwraca ID klienta.
Uwagi
To ID jest używane wewnętrznie do generowania nazw serwera SuiteLink i
nazw plików Logger’a.
Przykład
MsgTag=TseGetClientID();
Adres IP klienta, na przykład: 10.103.202.1 zostanie zwrócony do MsgTag.
Zwraca niezerową liczbę całkowitą, jeżeli aplikacja jest uruchomiona na
konsoli Terminal Serwera . W przeciwnym przypadku zwraca zero (0).
Kategoria
Usługi terminalowe
Składnia
Result=TseQueryRunningOnConsole();
Parametr
Opis
Result
Zwraca 0 jeżeli aplikacja nie jest uruchomiona na
konsoli TS
Uwagi
-
Przykład
IntTag=TseQueryRunningOnConsole();
Zwraca IntTag=1 jeżeli aplikacja jest uruchomiona na konsoli Terminala
Serwera.
302
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
TseQueryRunningOnClient()
wcAddItem()
Funkcja ta zwraca niezerową liczbę całkowitą, jeżeli aplikacja jest
uruchomiona na stanowisku klienckim Terminal Serwera. W przeciwnym
przypadku zwraca zero (0).
Kategoria
Usługi terminalowe
Składnia
Result=TseQueryRunningOnClient();
Parametr
Opis
Result
Zwraca 0 jeżeli aplikacja nie jest uruchomiona na
stanowisku klienckim serwera.
Uwagi
-
Przykład
IntTag=TseQueryRunningOnClient();
Zwraca IntTag=1 jeżeli aplikacja jest uruchomiona na stanowisku
klienckim Terminal Serwera.
Dodaje łańcuch znaków do listy lub listy rozwijalnej. Jeśli lista lub lista
rozwijalna nie zostały utworzone jako posortowane, tekst jest dodawany na
końcu listy. W przeciwnym wypadku, tekst jest wstawiany do listy, po
czym jest ona ponownie sortowana.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcAddItem("ControlName","MessageTag");
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
MessageTag
Łańcuch znaków do wyświetlania. Łańcuch znaków
lub zmienna tekstowa.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Listy i listy rozwijalne.
Przykład(y)
Instrukcja zamieszczona poniżej dodaje łańcuch znaków do listy po
otwarciu okna (przy użyciu skryptu QuickScript związanego z oknem
OnShow), zawierającego obiekt List:
wcAddItem("ListBox_1", "Chocolate");
wcAddItem("ListBox_1", "Vanilla");
wcAddItem("ListBox_1", "Strawberry");
Patrz również
wcInsertItem()
Funkcje skryptowe
303
Opis funkcji, pól i zmiennych systemowych
wcClear()
wcDeleteItem()
Funkcja ta usuwa wszystkie elementy z listy (List box) lub listy rozwijalnej
(Combo box).
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcClear("ControlName");
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna
tekstowa.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Listy i listy rozwijalne.
Przykład(y)
Jeśli instrukcja zamieszczona poniżej zostanie np. zapisana w skrypcie
QuickScript związanym z przyciskiem, wciśnięcie tego przycisku
spowoduje usunięcie wszystkich elementów listy ListBox_1:
wcClear("ListBox_1");
Funkcja ta usuwa pole listy lub element listy rozwijalnej o podanym
indeksie.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcDeleteItem("ControlName",ItemIndex);
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
ItemIndex
Numer oznaczający pozycję elementu na liście.
Dowolna liczba lub zmienna całkowita.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Listy i listy rozwijalne.
Przykład(y)
Zamieszczona poniżej instrukcja, umieszczona w skrypcie QuickScript i
powiązana z przyciskiem, po jego naciśnięciu powoduje usunięcie 3-go
elementu listy.
wcDeleteItem("ListBox_1", 3);
304
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
wcDeleteSelection()
wcErrorMessage()
Usuwa aktualnie wybrany element z listy lub listy rozwijalnej.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber =]wcDeleteSelection("ControlName");
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Listy i listy rozwijalne.
Przykład(y)
Jeżeli wciśnięty zostanie przycisk zawierający zamieszczoną poniżej
instrukcję, usunięte zostaną wszystkie, zaznaczone w danym momencie
elementy listy rozwijalnej:
wcDeleteSelection("ListBox_1");
Funkcja ta zwraca komunikat tekstowy opisujący błąd.
Kategoria
obiekty sterujące Windows
Składnia
ErrorMessage=wcErrorMessage(ErrorNumber);
Parametr
Opis
ErrorMessage
Zmienna tekstowa.
ErrorNumber
Liczba zwracana przez obiekty sterujące okien.
Dowolna liczba lub zmienna całkowita.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Pola tekstu, listy, listy rozwijalne, pola wyboru i pola wyboru
wykluczającego.
Przykład(y)
Jeśli podczas ładowania listy wystąpi błąd, opis błędu w formie
komunikatu tekstowego zostanie zapisany jako zmienna tekstowa
ErrorDescription. W poniższym przykładzie wykorzystano połączenie
animacyjne String Value Output do wyświetlenia komunikatu o błędzie,
czyli wartości zmiennej ErrorDescription.
Skrypt QuickScript związany z oknem On Show:
ErrorNumber=wcLoadList("ListBox_1","
c:\InTouch\recipe.txt");
ErrorDescription=wcErrorMessage(errornumber);
Funkcja ta może również zostać wykorzystana do wyświetlania
komunikatów o błędach dla wszystkich funkcji związanych z obiektami
sterującymi Windows:
ErrorNumber=wcAddItem("ListBox_1","United States");
ErrorMsg=wcErrorMessage(ErrorNumber);
Funkcje skryptowe
305
Opis funkcji, pól i zmiennych systemowych
wcFindItem()
Funkcja ta wyznacza indeks pierwszego elementu listy lub listy
rozwijalnej, który odpowiada podanemu łańcuchowi znaków Message.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcFindItem
("ControlName","MessageTag",DiscreteTag,Tagname);
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
MessageTag
Łańcuch znaków do celów porównawczych. Łańcuch
znaków lub zmienna tekstowa.
DiscreteTag
Określa sposób w jaki będą porównywane łańcuchy
znaków. Przyjmuje jedną z następujących wartości:
0 = przy porównywaniu nie są rozróżniane litery duże
i małe
1 = litery duże i małe są rozróżniane przy
porównywaniu
Zmienna
Nazwa zmiennej typu całkowitego.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Pola tekstu, listy, listy rozwijalne, pola wyboru i pola wyboru
wykluczającego.
Przykład(y)
Jeśli podczas ładowania listy wystąpi błąd, opis błędu w formie
komunikatu tekstowego zostanie zapisany jako zmienna tekstowa
ErrorDescription. W poniższym przykładzie wykorzystano połączenie
animacyjne String Value Output do wyświetlenia komunikatu o błędzie,
czyli wartości zmiennej ErrorDescription.
306
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
wcGetItem()
Funkcja ta odczytuje łańcuch znaków związany z elementem pola listy
(List box) lub listy rozwijalnej (Combo box) określonym przez parametr
ItemIndex.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcGetItem("ControlName",ItemIndex,
Zmienna);
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
ItemIndex
Numer oznaczający pozycję elementu na liście.
Dowolna liczba lub zmienna całkowita.
Zmienna
Nazwa zmiennej typu całkowitego lub
rzeczywistego. funkcja wcGetItem przypisuje do tej
zmiennej wartość numeryczną, odpowiadającą
elementowi.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Listy i listy rozwijalne.
Przykład(y)
Wciśnięcie przycisku z którym powiązane jest zamieszczone poniżej
wyrażenie powoduje przypisanie łańcucha znaków, odpowiadającego 10-u
elementowi listy rozwijalnej zmiennej tekstowej ListSelection.
wcGetItem("Combobox_1", 10, ListSelection);
Jeśli dziesiątym elementem listy jest "Vanilia", zmiennej ListSelection
będzie odpowiadał łańcuch znaków "Vanilia".
Funkcje skryptowe
307
Opis funkcji, pól i zmiennych systemowych
wcGetItemData()
Funkcja ta określa wartość całkowitą związaną z elementem pola listy (List
box) lub listy rozwijalnej (Combo box) określonym przez parametr
ItemIndex.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcGetItemData("ControlName",ItemIndex,
Zmienna);
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
ItemIndex
Numer oznaczający pozycję elementu na liście.
Dowolna liczba lub zmienna całkowita.
Zmienna
Nazwa zmiennej typu całkowitego lub
rzeczywistego. funkcja wcGetItemData przypisuje
do tej zmiennej wartość numeryczną, odpowiadającą
elementowi.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Listy i listy rozwijalne.
Przykład(y)
Jeśli instrukcja zamieszczona poniżej zostanie np. zapisana w skrypcie
QuickScript związanym z przyciskiem (połączenie animacyjne Touch
Pushbutton, Action), po naciśnięciu tego przycisku odczytuje ona wartość
numeryczną związaną z piątym elementem pola listy ListBox_1 i
przypisuje ją do zmiennej ItemValue:
wcGetItemData("ListBox_1", 5, ItemValue);
Jeśli piątemu elementowi listy przypisana jest wartość całkowita 4500,
zmiennej ItemValue zostanie przypisana wartość 4500.
Patrz również
wcSetItemData()
308
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
wcInsertItem()
Funkcja ta wstawia do listy łańcuch znaków. ItemIndex jest numerem
indeksu odpowiadającym pozycji na liście, gdzie będzie umieszczony
łańcuch znaków. W przeciwieństwie do funkcji wcAddItem() funkcja
wcInsertItem() nie sortuje listy, nawet jeśli pole listy lub lista rozwijalna
zostały utworzone jako posortowane.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcInsertItem("ControlName",ItemIndex,
"MessageTag");
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
ItemIndex
Numer oznaczający pozycję elementu na liście. Jeśli
ten parametr ma wartość -1, łańcuch znaków zostanie
dodany na końcu listy. Dowolna liczba lub zmienna
całkowita.
MessageTag
Zawiera łańcuch znaków, który ma być wstawiony w
miejscu określonym przez ItemIndex. Łańcuch
znaków lub zmienna tekstowa.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Listy i listy rozwijalne.
Przykład(y)
Jeśli instrukcja zamieszczona poniżej zostanie np. umieszczona w skrypcie
QuickScript związanym z przyciskiem, naciśnięcie tego przycisku
powoduje wstawienie nowego elementu o nazwie "Blueberry" do listy, na
czwartym miejscu od góry:
wcInsertItem("ListBox_1", 4, "Blueberry");
Patrz również
wcAddItem()
Funkcje skryptowe
309
Opis funkcji, pól i zmiennych systemowych
wcLoadList()
Funkcja ta zastępuje zawartość elementów listy lub listy rozwijalnej
elementami wczytanymi z pliku FileName.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcLoadList("ControlName","Filename");
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
Filename
Nazwa pliku z zawartością listy w formacie ASCII.
Jeśli nie zostanie tu podana pełna ścieżka dostępu do
pliku, a tylko jego nazwa, funkcja będzie poszukiwać
pliku w katalogu aplikacji. Łańcuch znaków lub
zmienna tekstowa.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Listy i listy rozwijalne.
Przykład(y)
Instrukcja zamieszczona poniżej wczytuje poprawnie sformatowaną listę
(umieszczoną w pliku c:\InTouch.32\wclist.txt.) do listy rozwijalnej, w
momencie otwarcia okna zawierającego tę listę (wykorzystywany jest o
tego celu skrypt QuickScript związany z oknem On Show)REFOn Show :
wcLoadList("Combobox_1", "c:\InTouch.32\wclist.txt");
Patrz również
wcAddItem(), wcSaveList()
310
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
wcLoadText()
Funkcja ta zastępuje zawartość pola tekstowego zawartością pliku o nazwie
FileName.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcLoadText("ControlName", "Filename");
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
Filename
Nazwa pliku z zawartością listy w formacie ASCII.
Jeśli nie zostanie tu podana pełna ścieżka dostępu do
pliku, a tylko jego nazwa, funkcja będzie poszukiwać
pliku w katalogu aplikacji. Łańcuch znaków lub
zmienna tekstowa.
Uwagi
Funkcja wcLoadText() obsługuje pliki zawierające dane w formacie
ASCII, np. utworzone za pomocą programu Microsoft Notatnik.
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Więcej informacji na temat zaawansowanych metod wyświetlania plików
podano w opisie przeglądarki dokumentów, wchodzącej w skład pakietu
Factory Suite's Productivity PackPAGEdocument viewer.
Zastosowanie
Pola tekstu.
Przykład(y)
Instrukcja zamieszczona poniżej wczytuje zawartość pliku tekstowego
(c:\InTouch.32\readme.txt) do pola tekstowego w momencie po otwarciu
okna zawierającego pole tekstowe (przy użyciu skryptu QuickScript
związanego z oknem On Show):
wcLoadText("Textbox_1", "c:\InTouch.32\readme.txt");
Funkcje skryptowe
311
Opis funkcji, pól i zmiennych systemowych
wcSaveList()
Funkcja ta zastępuje zawartość pliku FileName elementami obiektu lista
lub lista rozwijalna.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcSaveList("ControlName","Filename");
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
Filename
Nazwa pliku z zawartością listy w formacie ASCII.
Jeśli plik nie istnieje, to zostaje utworzony. Tekst
zapisany w pliku może zostać następnie załadowany
do pola tekstu przy użyciu funkcji wcLoadList().
Łańcuch znaków lub zmienna tekstowa.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Listy i listy rozwijalne.
Przykład(y)
Zamieszczona poniżej instrukcja powoduje zapisanie elementów listy w
pliku (c:\InTouch.32\newlist.txt), w momencie naciśnięcia przycisku
związanego ze skryptem QuickScript Touch Pushbutton Action:
wcSaveList("ListBox_1", "c:\InTouch.32\newlist.txt");
Jeżeli pliki ASCII wykorzystywane do tworzenia listy lub listy rozwijalnej
zostały utworzone przy pomocy innego programu, muszą być odpowiednio
sformatowane, oraz zawierać wszystkie, wymagane dodatkowo
informacje. Format:
TypObiektu, LiczbaElementów
ElementListy, WartośćElementu
ElementListy, WartośćElementu
: :
: :
ElementListy, WartośćElementu
Przykładowo: Zamieszczony poniżej plik, wczytywany do listy, zawiera
trzy elementy, elementy nie mają przyporządkowanych wartości (więcej
informacji na temat wartości danych elementów podano w opisie funkcji
wcSetItemData()). Plik ten ma następujący format:
COMBOBOX, 3
Czekolada, 0
Wanilia, 0
Truskawki, 0
Opis: COMBOBOX jest typem obiektu. ListCount jest równy 3, ponieważ
lista zawiera następujące elementy: Chocolate, Vanilla i Strawberry.
Chocolate jest umieszczona na liście jako pierwszy element lub index 1.
Vanilla jako drugi, Strawberry zaś jako 3. Każdy z tych indeksów ma
przypisaną wartość 0.
Patrz również
wcLoadList(), wcSetItemData()
312
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
wcSaveText()
Funkcja ta zapisuje tekst z pola tekstu do pliku FileName. Jeśli plik nie
istnieje, to zostaje utworzony. Jeśli istnieje, musi być to plik umożliwiający
odczyt i zapis.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcSaveText("ControlName","Filename");
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
Filename
Nazwa pliku z zawartością listy w formacie ASCII.
Jeśli nie zostanie tu podana pełna ścieżka dostępu do
pliku, a tylko jego nazwa, funkcja zapisze plik w
katalogu aplikacji. Jeśli plik nie istnieje, to zostaje
utworzony. Tekst zapisany w pliku może zostać
następnie załadowany do pola tekstu przy użyciu
funkcji wcLoadList(). Łańcuch znaków lub zmienna
tekstowa.
Uwagi
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Zastosowanie
Pola tekstu.
Przykład(y)
Wciśnięcie przycisku z którym powiązany jest zamieszczony poniżej
skrypt QuickScript powoduje zapisanie informacji wprowadzonej w polu
tekstowym do pliku (c:\InTouch.32\newtext.txt).
wcSaveText("Textbox_1", "c:\InTouch.32\newtext.txt");
Funkcja wcSaveText()zapisuje pliki w formacie ASCII, tak, jak np.
Notatnik systemu Windows.
Patrz również
wcLoadList()
Funkcje skryptowe
313
Opis funkcji, pól i zmiennych systemowych
wcSetItemData()
Funkcja ta przypisuje wartości Integer (Number) elementom pola listy (List
box) lub listy rozwijalnej (Combo box) określonym przez parametr
ItemIndex. Funkcja umożliwia przypisanie liczby do łańcucha znaków.
Kategoria
obiekty sterujące Windows
Składnia
[ErrorNumber=]wcSetItemData("ControlName",ItemIndex,
Number);
Parametr
Opis
ControlName
Nazwa obiektu sterującego oknem. Przykładowo,
ListBox_1. Łańcuch znaków lub zmienna tekstowa.
ItemIndex
Wartość całkowita określająca kolejność
zapisywanych elementów. Dowolna liczba lub
zmienna całkowita.
Number
Liczba całkowita zawierająca wartość elementu.
Dowolna liczba lub zmienna całkowita.
Uwagi
Pełna lista zawierająca elementy może być utworzona za pomocą innego
programu (np. Notatnika), a następnie wczytana poprzez wywołanie
odpowiedniej funkcji. Pliki te musza być odpowiednio sformatowane,
zgodnie z instrukcjami, podanymi przy opisie funkcji wcSaveList().
Kody błędów dla funkcji tego typu można znaleźć w rozdziale Załącznik
A.
Przykład(y)
Trzyskładnikowa receptura, zawierającą mąkę, cukier i sól. Dane: ilość
mąki to 4500 gramów, cukru 1500 gramów a soli 325 gramów. Wartości te
są przypisywane poszczególnym elementom w polu listy przy użyciu
skryptu QuickScript typu DataChange wykonywanego po wybraniu
receptury o określonej nazwie:
wcSetItemData("ListBox_1", 1, 4500); {pierwszy element
listy (maka)=4500}
wcSetItemData("ListBox_1", 2, 1500); {drugi element
listy (cukier)=1500}
wcSetItemData("ListBox_1", 3, 325); {trzeci element
listy (sól)=325}
Funkcja wcGetItemData() zwraca wartość elementu o podanym indeksie.
Ta wartość numeryczna przypisywana jest do parametru Tagname.
Parametr ten może być zmienną typu I/O Integer, zapisującą swoją wartość
bezpośrednio do urządzenia.
Patrz również
wcLoadList(), wcSaveList(), wcGetItemData()
314
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
WWControl()
Pozwala na Przywrócenie,. Zminimalizowanie, Maksymalizowanie lub
Zamknięcie aplikacji z poziomu pakietu InTouch.
Kategoria
różne
Składnia
WWControl("AppTitle","ControlType");
Parametr
Opis
AppTitle
Nazwa sterowanej aplikacji. Nazwę danej aplikacji
można uzyskać stosując funkcję InfoAppTitle().
Łańcuch znaków lub zmienna tekstowa.
ControlType
Określa w jaki sposób ma zachowywać się aplikacja
po uruchomieniu (działanie jest identyczne z
wybraniem odpowiedniego polecenia z menu do
sterowania oknem). Łańcuch znaków lub zmienna
tekstowa.
Typ
Opis
"Restore"
Uaktywnienie i wyświetlenie okna
danej aplikacji w postaci
zmaksymalizowanej .
"Minimize" Uaktywnienie okna danej aplikacji i
zmniejszenie go do ikony.
"Maximize" Uaktywnienie i wyświetlenie okna
danej aplikacji w postaci
zmaksymalizowanej .
"Close"
Zamknięcie danej aplikacji.
Przykład(y)
WWControl("Calculator","Restore");
WWControl(InfoAppTitle("View"), "Close");
Patrz również
InFoAppTitle(), ActivateApp(), StartApp()
Funkcje skryptowe
315
Opis funkcji, pól i zmiennych systemowych
WWExecute()
Funkcja ta wysyła polecenie (DDE Execute) do podanej aplikacji i tematu
(Topic).
Kategoria
WWDDE
Składnia
[Status=]WWExecute("Application","Topic","Command");
Parametr
Opis
Application
Nazwa aplikacji, do której jest wysyłane polecenie.
Łańcuch znaków lub zmienna tekstowa.
Topic
Nazwa tematu w obrębie aplikacji, do której jest
wysyłane polecenie. Łańcuch znaków lub zmienna
tekstowa.
Command
Polecenie, które ma zostać wysłane. Łańcuch znaków
lub zmienna tekstowa.
Uwagi
Łańcuch znaków Command zostanie przesłany do określonej aplikacji i
tematu.
Przykład(y)
Poniższa instrukcja spowoduje wykonanie makroinstrukcji w Excelu:
Macro="Macro1!TestMacro";
Command="[Run(" + StringChar(34) + Macro +
StringChar(34)
+ ",0)]";
WWExecute("excel","system",Command);
Wykonanie instrukcji WWExecute("excel","system",Command);
spowoduje wysłanie do Excela następującego polecenia (i uruchomienie
makra TestMacro):
[Run("Macro1!TestMacro")]
Poniższa instrukcja skryptu QuickScript spowoduje wykonanie
makroinstrukcji w bazie danych Access:
WWExecute("MSAccess","system","MyMacro");
Funkcja WWExecute zwraca wartość 1, jeśli aplikacja jest uruchomiona,
podany temat (Topic) istnieje i polecenie zostało pomyślnie przesłane.
Funkcja zwraca wartość 0, jeśli aplikacja jest zajęta oraz -1 lub jeśli
wystąpi błąd. Tak więc można monitorować status polecenia: Funkcja
WWExecute zwraca wartość 1, jeśli aplikacja jest uruchomiona, podany
temat (Topic) istnieje i polecenie zostało pomyślnie przesłane. Funkcja
zwraca wartość 0, jeśli aplikacja jest zajęta oraz -1 lub jeśli wystąpi błąd.
Tak więc można monitorować status polecenia:
Status=WWExecute("excel","system",Command);
Status jest zmienną typu Integer, o wartościach 1, -1 lub 0.
316
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
WWPoke()
Funkcja ta wysyła wartość (za pomocą protokołu DDE) do zadanej
aplikacji, tematu i elementu.
Kategoria
WWDDE
Składnia
[Status=]WWPoke("Application","Topic","Item",
"TextValue");
Parametr
Opis
Application
Nazwa aplikacji, do której wysyłany jest łańcuch
znaków. Łańcuch znaków lub zmienna tekstowa.
Topic
Nazwa tematu w obrębie aplikacji, do której jest
wysyłane polecenie. Łańcuch znaków lub zmienna
tekstowa.
Item
Nazwa pozycji w obrębie tematu. Łańcuch znaków
lub zmienna tekstowa.
TextValue
Zmienna tekstowa lub łańcuch znaków. Jeśli
zachodzi potrzeba przesłania liczby, można
przekształcić ją na łańcuch znaków używając jednej z
funkcji: Text(), StringFromIntg() lub
StringFromReal(). Łańcuch znaków lub zmienna
tekstowa.
Uwagi
Zamieszczona poniżej instrukcja powoduje wysłanie wartości TextValue
do określonej aplikacji, tematu i elementu.
Przykład(y)
Poniższa instrukcja przekształca wartość numeryczną na łańcuch znaków i
przesyła ją do komórki arkusza kalkulacyjnego Excel:
String=Text(Value,"0");
WWPoke("excel","[Book1.xls]sheet1","r1c1",String);
Więcej informacji na temat współpracy arkusza kalkulacyjnego Excel 5.0 z
programem InTouch (przy pomocy DDE) podano w podręczniku InTouch
- Podręcznik Użytkownika.
Wynik działania funkcji WWPoke() przy przesyłaniu danych w obrębie tej
samej aplikacji InTouch jest nieokreślony. Nie jest gwarantowane
pomyślne wykonanie polecenia WWPoke(), a najbardziej prawdopodobne
jest wystąpienie błędu przekroczenia dopuszczalnego okresu oczekiwania.
Funkcja WWPoke() zwraca wartość 1, jeśli aplikacja jest uruchomiona,
podany temat (Topic) istnieje i łańcuch znaków został pomyślnie
przesłany. Funkcja zwraca wartość 0, jeśli aplikacja jest zajęta oraz -1 lub
jeśli wystąpi błąd. Tak więc można monitorować status polecenia:
Status=WWPoke("excel","[Book1.xls]sheet1","r1c1",
String);
Status jest zmienną typu Integer, o wartościach 1, -1 lub 0.
Patrz również
Text(), StringFromIntg(), StringFromReal()
Funkcje skryptowe
317
Opis funkcji, pól i zmiennych systemowych
WWRequest()
Funkcja ta wysyła jedno polecenie odczytu wartości (za pomocą protokołu
DDE) z określonej aplikacji, tematu i elementu.
Kategoria
WWDDE
Składnia
WWRequest(Application,Topic,Item,ValueMsg_Tag);
Parametr
Opis
Application
Nazwa aplikacji, z której ma być przesłany łańcuch
znaków. Łańcuch znaków lub zmienna tekstowa.
Topic
Nazwa tematu w obrębie aplikacji, z której ma być
przesłany łańcuch znaków. Łańcuch znaków lub
zmienna tekstowa.
Item
Pozycja w obrębie tematu z której odczytywane będą
dane. Łańcuch znaków lub zmienna tekstowa.
ValueMsg_Tag
Zmienna tekstowa ujęta w cudzysłowy, zawierająca
żądane dane czytane z określonej aplikacji
(Application), tematu (Topic) i pozycji (Item).
Łańcuch znaków lub zmienna tekstowa.
Uwagi
Zamieszczona poniżej instrukcja przypisuje zmiennej ValueMsg_Tag
wartość DDE odczytaną z określonego elementu, tematu i aplikacji.
Wartość będzie zwrócona jako łańcuch znaków do zmiennej tekstowej.
Jeżeli otrzymana wartość jest wartością numeryczną, należy ją
przekonwertować za pomocą funkcji StringToIntg() lub StringToReal().
Przykład(y)
Poniższa instrukcja wysyła żądanie przesłania zawartości komórki Excela i
przekształca przesłany łańcuch znaków na wartość liczbową:
WWRequest("excel","[Book1.xls]sheet1","r1c1",Result);
Value=StringToReal(Result);
Funkcja WWRequest() zwraca wartość 1, jeśli aplikacja jest uruchomiona,
podany temat istnieje i łańcuch znaków został pomyślnie przesłany.
Funkcja zwraca wartość 0, jeśli aplikacja jest zajęta oraz –1 lub jeśli
wystąpi błąd. Tak więc można monitorować status polecenia:
Status=WWRequest("excel","[Book1.xls]sheet1","r1c1",
Result);
Status jest zmienną typu Integer, o wartościach 1, -1 lub 0.
Patrz również
StringToIntg(), StringToReal()
318
Rozdział 3
Opis funkcji, pól i zmiennych systemowych
Automatyzacja OLE w programie InTouch
319
Opis funkcji, pól i zmiennych systemowych
R O Z D Z I A Ł 4
Automatyzacja OLE w
programie InTouch
Technika Object Linking and Embedding (OLE) obsługuje szereg metod
wymiany i przetwarzania informacji pomiędzy stacją klienta a serwerem.
InTouch może pełnić rolę klienta dla wielu serwerów. Aplikacja InTouch
może informować serwer o zmianie wartości zmiennej oraz umożliwić
serwerowi wykonywanie wszystkich zaprogramowanych czynności.
Funkcjonalność ta może zostać wykorzystana do rozszerzenia możliwości
InTouch, ponad te już wbudowane
Rozdział ten zawiera zwięzły opis architektury automatyzacji techniki OLE.
Opisano również procedury korzystania z automatyzacji OLE przez
rozszerzenia InTouch. Ponieważ InTrack jest serwerem automatyzacji OLE ,
jest użyty w wielu przykładach.
Elementy OLE Automation
W bardzo uproszczonej formie, OLE umożliwia znormalizowaną komunikację
pomiędzy klientem a serwerem.
Automatyka obiektowa – element OLE – zapewnia możliwości
programowania zorientowanego obiektowo w środowisku klient/serwer.
Serwer umożliwia wykonywanie określonych obliczeń poprzez wykorzystanie
klas obiektów. Stacja kliencka wykorzystuje to, tworząc obiekty i
wykorzystując ich elementy. OLE zapewnia komunikację pomiędzy klientem
a serwerem.
Aby zrozumieć obiekty automatyzacji, należy zapoznać się z podstawowymi
pojęciami programowania zorientowanego obiektowo.
•
Obiekty są identyfikowalnymi i unikalnymi elementami, które mogą być
tworzone w oparciu o klasę obiektu.
•
Klasy definiują powiązany z obiektem zestaw właściwości (danych) i
metod (funkcji). Wszystkie obiekty tej samej klasy mają ten sam zestaw
właściwości i metod, jednakże każdy obiekt może mieć różne wartości
właściwości.
320
Rozdział 4
Opis funkcji, pól i zmiennych systemowych
Obsługa OLE Automation w programie InTouch
InTouch umożliwia łatwy dostęp do obiektów automatyzacji InTrack przy
użyciu trzech podstawowych elementów:
•
Ośmiu dodatkowych wbudowanych funkcji, które zostały dodane do
InTouch.
•
Operatora wskazującego początek wyrażenia OLE Automation
•
Przeglądarki OLE zawierającej szablony i szczegółowe informacje dla
wszystkich klas obiektów automatyzacji InTrack. Dostęp do przeglądarki
OLE jest możliwy po naciśnięciu przycisku InTrack OLE, znajdującego
się w prawym, dolnym rogu okna dialogowego edytora skryptów.
Format wyrażeń
Wszystkie odwołania do obiektów automatyzacji w programie InTouch
rozpoczynają się od znaku procent (%), po którym podawana jest nazwa
odwołania do obiektu. Nazwa musi rozpoczynać się znaku alfabetu, może
składać się ze znaków liter, wyrażeń numerycznych i podkreśleń. Nazwy są
globalne, rozróżniana jest wielkość liter. Przykładami różnych nazw obiektów
są:
•
%ObjectName (lub %objectName lub %objectname)
•
%Lot5
•
%lot_5
•
%aMachine
•
%A_Machine
•
%Sublot
Nie należy mylić nazw obiektów ze zmiennymi InTouch. Możliwe jest
występowanie obiektu automatyzacji OLE i zmiennej InTouch z tą samą
nazwą (jedyną różnicą jest znak procent).
Odwołania do obiektów
Nazwy poprzedzone znakiem procent odnoszą się do odwołań do obiektów,
ponieważ są one wskaźnikami, wskazującymi na obiekty automatyzacji. Jeżeli
zostanie zastosowana podana poniżej instrukcja skryptu, dwie różne nazwy
mogą odnosić się do tego samego obiektu:
%Object1 = %Object2;
Po wykonaniu tej instrukcji, oba odwołania wskazują ten sam obiekt
automatyzacji.
OLE_CreateObject
OLE_IsObjectValid
OLE_GetLastObjectError
OLE_ReleaseObject
OLE_GetLastObjectErrorMessage
OLE_ResetObjectError
OLE_IncrementOnObjectError
OLE_ShowMessageOnObjectError
Automatyzacja OLE w programie InTouch
321
Opis funkcji, pól i zmiennych systemowych
Nazwy odwołań do obiektów są automatycznie definiowane przy pierwszym
użyciu w czasie pracy. Są one globalne – zainicjowane w jednym skrypcie
mogą zostać wykorzystane w innym skrypcie.
Jak w większości języków programowania zorientowanych obiektowo, znak
kropki wykorzystywany jest przy odnoszeniu się do właściwości i metod
obiektu. Podana poniżej przykładowa instrukcja pokazuje przykład
wykorzystania znak kropki do przypisania wartości właściwości obiektu na
wartość 5.
%Object.Property = 5;
Obiekty zagnieżdżone (znak kropki)
Jeżeli obiekty są elementami innych obiektów, znaku kropki można użyć
wielokrotnie. Ustawienia właściwości na wartość 6 dla obiektu
zagnieżdżonego można dokonać przy pomocy instrukcji podanej poniżej:
%Object.Property_For_Nested_Object.Property = 6;
Poniżej podano określone zasady wykorzystywania znaku kropki:
1. Nie są dozwolone spacje pomiędzy określeniem odwołania do obiektu a
odwołaniem do żadnego innego elementu.
•
Nie są dozwolone spacje pomiędzy znakiem procent (%) a
początkiem nazwy odwołania do obiektu..
•
Nie są dozwolone spacje pomiędzy nazwą odwołania do obiektu,
znakiem kropki i nazwą elementu klasy.
•
Nie są dozwolone spacje pomiędzy nazwą właściwości obiektu
zagnieżdżonego, znakiem kropki i nazwą właściwości następnego
obiektu zagnieżdżonego.
2. Ilość znaków całego określenia nie może być większa niż 98, licząc od
znaku procent (łącznie ze znakiem) do ostatniego znaku wywołania
elementu.
Przykładowo, długość określenia %Object.Property jest równa 16
znakom, zaś długość określenia
%Object.Property_For_Nested_Object.Property jest równa 44 znakom.
Konwersja typów danych przesyłanych z
programu InTouch do OLE
Nie wszystkie typy danych InTouch są akceptowane przez rozszerzenia OLE.
Poniżej przedstawiono akceptowane typy danych i konwersji danych. Należy
pamiętać, że konwersja następuje w czasie pracy, nie jest przeprowadzana w
programie WindowMaker. Dlatego też, konwersja danych może zaowocować
trudnymi do przewidzenia wynikami, a powstałe błędy nie są zgłaszane.
Integer
Wartość 32 bitowa ze znakiem. Możliwa jest konwersja
na następujące typy danych:
Real
Wartość jest
zmiennoprzecinkowa..
322
Rozdział 4
Opis funkcji, pól i zmiennych systemowych
Message
Standardowa konwersja na
sekwencję cyfr dziesiętnych –
możliwe jest poprzedzenie
znakiem minus.
Discrete
Konwersja na TRUE (1) jeśli
wartość nie jest zerem, w
przeciwnym wypadku
FALSE (0).
Real
Dokładność 64 bitów. InTouch dokonuje obliczeń z
dokładnością 64 bitów, ale wyniki są zapamiętywane w
zmiennych 32 bitowych. Interfejs obiektu automatyzacji
pracuje z wyższą rozdzielczością. Możliwa jest
konwersja na następujące typy danych:
Integer
Wartość rzeczywista jest
ograniczana.
Message
Standardowa konwersja na
sekwencję cyfr dziesiętnych z
przecinkami – możliwe jest
poprzedzenie znakiem minus.
Discrete
Konwersja na TRUE (1) jeśli
wartość nie jest zerem, w
przeciwnym wypadku FALSE
(0).
Message
Łańcuch znaków o długości ograniczonej do 131 znaków
(ograniczenie InTouch). Dla tego typu danych konwersja
jest bardziej złożona i jest bardzo prawdopodobnym
źródłem błędów w czasie pracy.
Integer
Odpowiada funkcji
StringToIntg, która jest
wbudowana w programie
InTouch. Jeżeli łańcuch
znaków rozpoczyna się od
liczby (pomijając spacje, ale z
uwzględnieniem znaku
minus), liczba jest
przekształcana.
Przekształcenie łańcucha
rozpoczynającego się od
znaku innego niż liczba da w
wyniku wartość zerową.
Automatyzacja OLE w programie InTouch
323
Opis funkcji, pól i zmiennych systemowych
Real
Odpowiada funkcji
StringToReal, która jest
wbudowana w programie
InTouch. Jeżeli łańcuch
znaków rozpoczyna się od
liczby (pomijając spacje, ale z
uwzględnieniem znaku
minus), liczba jest
przekształcana.
Przekształcenie łańcucha
rozpoczynającego się od
znaku innego niż liczba da w
wyniku wartość zerową.
Discrete
Zamienia na wartość
całkowitą, a następnie stosuje
reguły do zamiany wartości
całkowitej na dyskretną.
Na odwołanie do
obiektu
Ten typ konwersji wymagany
jest jedynie w paru
specyficznych przypadkach,
należy unikać tego typu
konwersji. Złe użycie tej
konwersji może spowodować
zamknięcie programu
WindowViewer przez błąd
krytyczny. Konwersja ta
zgłosi błąd, jeżeli dana
wejściowa będzie inna niż
łańcuch wygenerowany przez
konwersję odwołania do
obiektu.
Discrete
Możliwa jest konwersja na następujące typy danych:
Integer
Jeden (One) jeśli TRUE, w
przeciwnym wypadku zero.
Real
Jeden (One) jeśli TRUE, w
przeciwnym wypadku zero.
Message
Zero (0) jeśli FALSE i –1 jeśli
TRUE.
Na odwołanie do
obiektu
Ogólnie, odwołania do obiektów nie powinny być
wykorzystywane w kontekście, gdzie może wystąpić
konwersja danych. Możliwa jest konwersja na
następujące typy danych:
Message
Łańcuch tekstowy w
specjalnym formacie,
zawierający reprezentację
odwołania do obiektu w
postaci heksadecymalnej.
324
Rozdział 4
Opis funkcji, pól i zmiennych systemowych
Ograniczenia
Korzystanie z rozszerzeń obiektów automatyzacji InTouch jest ograniczone
przez następujące warunki:
•
Rozszerzenia są dostępne tylko wewnątrz skryptów InTouch.
•
Rozszerzenia stosują “późne łączenie”---większość błędów nie może
zostać zidentyfikowana, do momentu zakończenia wykonywania skryptu.
Tworzenie obiektu: OLE_CreateObject
Obiekty automatyzacji tworzone są przez wbudowaną w programie InTouch
funkcję o nazwie OLE_CreateObject Składnia tej funkcji jest następująca:
OLE_CreateObject(%Object, “className”);
gdzie:
Funkcja ta nie zwraca wartości.
Przykład
Przykładowo, aby utworzyć obiekt InTrack klasy Sublot, instrukcja może mieć
następującą postać:
OLE_CreateObject(%Sublot, “InTrack.Sublot”);
Błąd w pisowni w pozycji “className” jest częstym błędem, który nie będzie
zidentyfikowany w programie WindowMaker. Błąd ten nie zostanie
zidentyfikowany i zgłoszony do momentu wykonania funkcji w programie
WindowViewer. Aby uniknąć tego błędu, należy skorzystać z szablonu
dostępnego w przeglądarce OLE InTrack.
Kiedy obiekt jest tworzony po raz pierwszy, jego właściwości są
automatycznie ustawiane przez serwer na odpowiednie wartości domyślne.
Uwaga: Nazwa odwołania do obiektu nie wymaga inicjalizacji przy
odwołaniu do OLE_CreateObject. W poprzednim przykładzie instrukcja
przypisania została wykorzystana do połączenia odwołania do obiektu z
obiektem.
OLE_CreateObject
Funkcja tworząca obiekt automatyzacji
%Object
Nazwa wykorzystywana przy odwoływaniu się do
obiektu automatyzacji.
className
Nazwa klasy dostarczona przez serwer OLE..
Automatyzacja OLE w programie InTouch
325
Opis funkcji, pól i zmiennych systemowych
Zarządzanie obiektem: OLE_ReleaseObject
Obiekt jest aktywny tak długo, jak długo przynajmniej jeden obiekt odwołuje
się do niego. Niemniej jednak, dobrą praktyką jest zwolnić nie używany
obiekt, aby oszczędzić zasoby systemowe. W celu zwolnienia obiektu:
1. Utworzyć nowy obiekt z tą samą nazwą odwołania do obiektu.
Kiedy tworzony jest nowy obiekt automatyzacji z tą samą nazwą jak
istniejące odwołanie do obiektu, pierwotny obiekt automatyzacji jest
zwalniany, a nowy obiekt jest związany z nazwą początkową.
Przykładowo:
OLE_CreateObject(%Object, “InTrack.Sublot”);
OLE_CreateObject(%Object, “InTrack.DateTime”);
Pierwsza instrukcja tworzy obiekt klasy Sublot, wywoływany przez
%Object. Druga instrukcja zwalnia obiekt klasy Sublot, a następnie
tworzy obiekt klasy DateTime, przypisując go do %Object
.
2. Wykorzystać wbudowaną funkcję systemową OLE_ReleaseObject.
Składnia tej funkcji jest następująca:
OLE_ReleaseObject(%objectName);
gdzie:
Funkcja ta nie zwraca wartości i zawsze jest wykonywana poprawnie.
3. Przypisać odwołanie do drugiego obiektu.
Składnia przypisania obiektu automatyzacji do innego obiektu
automatyzacji jest następująca:
%object1 = %object2;
gdzie:
W przykładzie tym, dowolny obiekt stowarzyszony z %object1 będzie
zwolniony.
%objectName
Nazwa odwołania do obiektu automatyzacji
%object1
Jest odwołaniem do obiektu wskazującym na ten
sam obiekt, co %object2. Obiekt automatyzacji
powiązany poprzednio z %object1 zostanie
zwolniony.
%object2
Obiekt automatyzacji, który będzie wywoływany z
nazwą %object1. Obiekt ten musi być tego samego
typu.
326
Rozdział 4
Opis funkcji, pól i zmiennych systemowych
Sprawdzanie aktywności obiektu:
OLE_IsObjectValid
Kiedy związek pomiędzy odwołaniem do obiektu a obiektem automatyzacji
OLE zostanie przerwane przez funkcję OLE_ReleaseObject, odwołanie staje
się „nieaktywne”. Użycie nieaktywnego odwołania w dowolnym wyrażeniu
obiektu spowoduje błąd w czasie pracy.
Wbudowana funkcja systemowa InTouch o nazwie OLE_IsObjectValid
pozwala na kontrolę poprawności odwołania do obiektu. Składnia tej funkcji
jest następująca:
OLE_IsObjectValid(%objectName);
gdzie:
Funkcja ta zwraca wartość dyskretną (typu Boolean) wskazującą, czy
%objectName jest aktualnie powiązany z aktywnym obiektem automatyzacji.
Odczytywanie wartości właściwości
Właściwość jest atrybutem o określonej nazwie, definiującym charakterystyki
obiektu lub sposób zachowania. Znak kropki oddziela odwołanie do obiektu od
nazwy właściwości. Jeśli dozwolone jest użycie zmiennej w skrypcie InTouch,
wartość właściwości obiektu automatyzacji może zostać zwrócona przez
użycie instrukcji o następującej składni:
%Object.Property
gdzie:
Jeśli właściwość obiektu jest obiektem sama w sobie, znak kropki może być
użyty wielokrotnie, jak w poniższym przykładzie:
%Object.Property1.Property2
gdzie:
%objectName
Nazwa odwołania do obiektu automatyzacji, który ma
%Object
Odwołanie do obiektu automatyzacji.
Właściwość
Atrybut obiektu.
%Object
Odwołanie do obiektu automatyzacji.
Property1
Właściwość odwołania do obiektu automatyzacji
%Object. Właściwość może być obiektem obsadzonym
lub odwołaniem do innego obiektu. InTouch i OLE
automatycznie rozpoznają i obsługują oba przypadki.
Property2
Właściwość zagnieżdżonego obiektu, z którego będzie
odczytana wartość.
Automatyzacja OLE w programie InTouch
327
Opis funkcji, pól i zmiennych systemowych
Wykorzystanie wielu znaków kropki przekształca tą instrukcję w wiele
operacji „odczytywania właściwości”. W tym przykładzie, wykonana jest
pojedyncza operacja odczytania dla %Object.Property1, która, zgodnie ze
standardami automatyzacji OLE, zwróci odwołanie do obiektu
zagnieżdżonego. Zwrócone odwołanie jest wykorzystane do wykonania
następnej pojedynczej operacji odczytania dla Property2. To samo można by
wykonać za pomocą dwóch instrukcji skryptu InTouch:
%tempObject = %Object.Property1;
%tempObject.Property2;
Kolejność czynności jest ważna z następujących powodów:
1. Błędy związane z odczytem wartości właściwości mogą wystąpić dla
każdej zagnieżdżonej właściwości.
2. Wiele operatorów kropki może być użyte w wielu kontekstach w celu
uproszczenia kodowania takich operacji jak odczytywanie właściwości,
ustawianie właściwości i wywoływanie metod.
Przykład 1
Celem jest zwiększenie wartości zmiennej, jeżeli jest to pierwszy dzień
miesiąca, pomiędzy godziną 1 a 2 w nocy. Ten fragment kodu ilustruje kilka
koncepcji:
OLE_CreateObject(%DateTime, "InTrack.DateTime");
%DateTime.SetLocalTime();
IF (%DateTime.Day == 1) AND (%DateTime.Hour > 1) AND
(%DateTime.Hour < 2)
THEN
Tag = Tag + 1;
ENDIF;
OLE_ReleaseObject(%DateTime);
Przykład 2
Poniższy przykład ilustruje wykorzystanie wielu znaków kropki. Celem tego
przykładu jest wczytanie do zmiennych InTouch informacji o zasobach
komputera, a następnie wyświetlenie tej informacji operatorowi. Przykład ten
jest bardzo wymyślny, ale ilustruje odczyt właściwości w różnych kontekstach
wyrażeń InTouch.
Aby uprościć przykład, założono, że obiekt %Machine został stworzony jako
instancja InTrack.Machine, a odpowiednia informacja została załadowana z
bazy danych InTrack (mechanizmy te są opisane w późniejszych sekcjach).
NumerUnitsTag = %Machine.Capacity.Quantity;
TypicalWeightTag = %Machine.Capacity.Quantity * 40.6;
ContrivedLoadingTag = Log(%Machine.Capacity.Quantity) + 1;
UnitsNameTag = %Machine.Capacity.Units;
328
Rozdział 4
Opis funkcji, pól i zmiennych systemowych
Ustawianie właściwości
Wartość wejściowej lub wyjściowej właściwości obiektu może zostać
ustawiona przy użyciu trzech metod:
•
Używając instrukcji przypisania (co zostało opisane w tej sekcji),
•
Przekazać referencję właściwości jako parametr wyjściowy metody,
•
Wywołując metodę aby jednorazowo przypisać jedną lub wiele
właściwości obiektu (nowe wartości są przekazywane jako parametry).
Te właściwości zależą od klasy. Więcej informacji na ten temat znajduje
się w dalszej części tego rozdziału.
Uwaga: Odwołania do właściwości obiektów automatyzacji nie mogą być
przekazywane jako parametry wyjściowe do funkcji DLL, które są
wywoływane z poziomu skryptów InTouch. Wartość właściwości obiektu nie
może zostać zmieniona przez funkcję DLL.
Podstawowa składnia instrukcji przypisania właściwości obiektu jest
następująca:
%Object.Property = Value;
gdzie:
Tak jak w przypadku odczytu właściwości obiektu, jeśli właściwość obiektu
sama w sobie jest obiektem, znak kropki może być użyty wielokrotnie.
%Object.Property1.Property2 = Value;
gdzie:
Ta jedna instrukcja InTouch wykorzystująca wiele znaków kropki odpowiada
wyrażeniu:
%tempObject = %Object.Property1;
%tempObject.Property2 = Value;
Przykład
W pierwszej linijce tego przykładu tworzony jest obiekt automatyzacji klasy
Amount o nazwie %PrimaryAmt. W drugiej i trzeciej linijce skryptu
właściwości obiektu automatyzacji %PrimaryAmt zostają ustawione na
wartości: Quantity na wartość 100, zaś Units – na wartość „each”.
OLE_CreateObject(%PrimaryAmt, “InTrack.Amount”);
%PrimaryAmt.Quantity = 100;
%PrimaryAmt.Units = “each”;
%Object
Odwołanie do obiektu automatyzacji.
Właściwość
Atrybut obiektu.
Wartość
Wartość, która ma być przypisana do atrybutu obiektu.
%Object
Odwołanie do obiektu automatyzacji.
Property1
Właściwość %Object która jest typem obiektu.
Property2
Właściwość obiektu zagnieżdżonego, którego wartość
ma zostać ustawiona.
Automatyzacja OLE w programie InTouch
329
Opis funkcji, pól i zmiennych systemowych
Wywoływanie metody
Wywołanie metody elementu obiektu automatyzacji jest typowym sposobem,
w jaki stacja klientowska „prosi” serwer o wykonanie zadania przeznaczonego
dla stacji. Poniżej podano składnię stosowaną do wywołania metody w
obiekcie automatyzacji.
resultValue = %Object.Method(Parameter1, Parameter2, ...);
%Object.Method(Parameter1, Parameter2, ...);
gdzie:
Ograniczenia
Przy korzystaniu z wywoływania metody należy uwzględnić następujące
ograniczenia:
•
Metody mogą być wywoływane jako procedury (bez zwracania wartości),
Jeśli metoda zwraca wartość, jest ona odrzucana.
•
Jeśli zwrócona wartość będzie wykorzystywana, musi zostać przypisana
jako niezmodyfikowana, Wywołanie metody nie może być warunkiem w
wyrażeniu,
•
Wykonanie skryptu jest zablokowane do momentu zakończenia
przetwarzania metody, chyba, że metoda wykonuje transakcje
wymagające współpracy z użytkownikiem, przeprowadzanej przy pomocy
pól dialogowych
•
Należy upewnić się, że przekazywana jest właściwa ilość parametrów,
Opcjonalne parametry OLE nie są obsługiwane.
Typy parametrów
Typy danych, które są przekazywane z InTouch do metody automatyzacji, są
obwarowane pewnymi ograniczeniami.
resultValue
Wartość danej zwrócona przez metodę,
%Object
Odwołanie do obiektu automatyzacji.
Method
Działanie realizowane przez obiekt automatyzacji,
Parameters
Informacje, które będą przekazane do metody lub
zwrócone z metody. Ilość parametrów definiowana jest
przez metodę w czasie wywołania. Parametry
przeznaczone są wyłącznie do zapisu, lub są typu
Input/Output.
Typ danych
Może być przedstawiony jako
Integer
Stała, wyrażenie, zmienna tylko do odczytu, zmienna do
odczytu/zapisu, właściwość automatyzacji OLE do
odczytu/zapisu.
Real
Stała, wyrażenie, zmienna tylko do odczytu, zmienna do
odczytu/zapisu, właściwość automatyzacji OLE do
odczytu/zapisu.
330
Rozdział 4
Opis funkcji, pól i zmiennych systemowych
Należy pamiętać o tym, że niektóre metody są polimorficzne i mogą pobrać
kilka różnych typów danych dla tego samego parametru. InTouch obsługuje to
udogodnienie dla tylko dla parametrów wejściowych.
Parametry wyjściowe
Parametry metody, będące parametrami typu Input, a także parametry typu
Input/Output nie są odróżniane od siebie. Jeżeli parametr może zostać
uaktualniony, zapisywana jest do niego wartość.
Parametr może być uaktualniony jeśli:
•
Parametrem jest nazwa zmiennej programu InTouch która może być
odczytywana/zapisywana,
•
Parametrem jest nazwa odwołania do obiektu,
•
Parametr określa właściwość obiektu.
W poniższym przykładzie instrukcji pierwsze trzy parametry zostaną
uaktualnione, ponieważ każdy spełnia jeden z warunków podanych powyżej.
Pozostałe parametry nie zostaną uaktualnione.
%Obj1.Method(tag1, %obj2, %obj3.property1.property2, tag1
+ 3, %obj4.property + 0);
Wartości zwracane
Aby przechwycić zwróconą wartość metody, lewa strona instrukcji
przypisania musi być:
•
nazwą zmiennej programu InTouch która może być
odczytywana/zapisywana,
•
nazwą odwołania do obiektu,
•
określeniem właściwości obiektu.
Przykład 1
W poniższym przykładzie założono, że utworzony jest obiekt automatyzacji
klasy SerialNumbers, o nazwie %SerialNumbers. Instrukcja podana poniżej
spowoduje dodanie numeru seryjnego “1234” do numerów seryjnych w
zbiorze obiektu %SerialNumbers.
returnCode = %SerialNumbers.Add(“1234”);
Message
Stała, wyrażenie, zmienna tylko do odczytu, zmienna do
odczytu/zapisu, właściwość automatyzacji OLE do
odczytu/zapisu.
Discrete
Stała, wyrażenie, zmienna tylko do odczytu, zmienna do
odczytu/zapisu, właściwość automatyzacji OLE do
odczytu/zapisu.
Obiekt
Nazwa odwołania do obiektu, właściwość automatyzacji
OLE do odczytu/zapisu
Typ danych
Może być przedstawiony jako
Automatyzacja OLE w programie InTouch
331
Opis funkcji, pól i zmiennych systemowych
Przykład 2
W poniższym przykładzie założono, że utworzony jest obiekt automatyzacji
klasy Sublot, o nazwie %Sublot_Object. Należy skorzystać z metody Sublot
Ship, zawierającej dwa parametry %PrimaryAmt i %SecondaryAmt, będące
obiektami automatyzacji:
ReturnCode = %Sublot_Object.Ship (%PrimaryAmt,
%SecondaryAmt,
“customerName”) ;
gdzie:
Przykład
Należy wysłać do klienta (Wonderware) 100 podręczników (wielkość
pierwszoplanowa), z których każdy waży 2 funty (wielkość drugoplanowa).
Przed wywołaniem metody Ship, należy utworzyć obiekty automatyzacji,
będące parametrami o nazwach %PrimaryAmt and %SecondaryAmt, a
następnie ustawić ich właściwości. Kolejność kroków podano poniżej.
1. 1. Utworzyć obiekt ilościowy reprezentujący wielkość pierwszoplanową i
ustawić jego właściwości:
OLE_CreateObject(%PrimaryAmt, “InTrack.Amount”);
%PrimaryAmt.Quantity = 100;
%PrimaryAmt.Units = “each”;
2. 2. Utworzyć obiekt ilościowy reprezentujący wielkość drugoplanową i
ustawić jego właściwości:
OLE_CreateObject(%SecondaryAmt, “InTrack.Amount”);
%SecondaryAmt.Quantity = 2;
%SecondaryAmt.Units = “pounds”;
3. 3. Wywołać metodę Ship dla %Sublot_Object używając polecenia o
następującej składni:
returnCode = %Sublot_Object.Ship(%PrimaryAmt,
%SecondaryAmt,
“Wonderware”);
%PrimaryAmt
Obiekt ilościowy, identyfikujący wielkość
pierwszoplanową, która ma zostać wysłana.
%SecondaryAmt
Obiekt ilościowy, identyfikujący wielkość
drugoplanową do wysłania.
customerName
Nazwa klienta, dla którego przeznaczona jest
przesyłka.
332
Rozdział 4
Opis funkcji, pól i zmiennych systemowych
Obsługa błędów w programie InTouch.
Obsługa błędów ustala, czy błąd został spowodowany niepoprawnym użyciem
OLE Automation, czy też został zwrócony przez serwer OLE. Program
InTouch wyświetla błędy OLE w polu dialogowym i rejestruje je w programie
WWLogger.
Wystąpienie błędu OLE nie przerywa wykonywania skryptu InTouch.
Działanie, które będzie podjęte zależy od zadania, które jest wykonywane w
momencie wystąpienia błędu:
•
Jeżeli błąd wystąpi w czasie odczytywania właściwości, zwracane jest
zero lub pusty łańcuch.
•
Jeżeli błąd wystąpi w czasie operacji przypisywania właściwości,
właściwość pozostanie nie zmieniona.
•
Jeżeli błąd wystąpi w momencie wywoływania metody, metoda nie
zostanie wywołana, nie zostaną zmienione żadne wartości parametrów,
wartość zwrócona wynosi zero, lub zwracany jest pusty łańcuch.
Do obsługi błędów przeznaczonych jest pięć funkcji:
•
OLE_GetLastObjectError
•
OLE_GetLastObjectErrorMessage
•
OLE_ResetObjectError
•
OLE_ShowMessageOnObjectError
•
OLE_IncrementOnObjectError
Szczegóły dotyczące tych funkcji podano poniżej.
OLE_GetLastObjectError
Funkcja ta służy do odczytania numeru błędu, który został zaraportowany
przez zmienną „last error”.
value = OLE_GetLastObjectError();
gdzie:
value
Wartość całkowita, w której zapisywany jest numer błędu.
Numery błędów są wewnętrznymi, 32 bitowymi liczbami bez
znaku. Program InTouch nie wykorzystuje tego samego zakresu
liczb całkowitych, dlatego więc kody błędów używające bitów
na wyższych pozycjach nie będą poprawnie zwracane.
Automatyzacja OLE w programie InTouch
333
Opis funkcji, pól i zmiennych systemowych
OLE_GetLastObjectErrorMessage
Funkcja ta służy do odczytania wiadomości o ostatnim zgłoszonym błędzie
(opis błędu).
value = OLE_GetLastObjectErrorMessage();
gdzie:
OLE_ResetObjectError
Wartość zmiennej “last error” jest zmieniana tylko w przypadku wystąpienia
błędu. Nie jest resetowana po udanym zakończeniu działania Automatyzacji
OLE. W niektórych wypadkach tworzenia aplikacji znacznie prostszym jest
ustawienie zmiennej „last error”na znany stan, wykonanie kilku działań
automatyzacji OLE, a następnie sprawdzenie, czy wartośc zmiennej „last
error” uległa zmianie. Funkcja ta ustawi wartość wewnętrznej zmiennej „last
error” na zero. Składnia tej funkcji jest następująca:
OLE_ResetObjectError();
OLE_ShowMessageOnObjectError
Funkcja ta kontroluje wyświetlanie informacji o błędzie i wprowadzanie przez
operatora wymaganych danych w przypadku wystąpienia błędu lub wyjątku
interfejsu OLE. W czasie wyświetlania pola dialogowego, wykonanie skryptu,
który spowodował wystąpienie błędu jest zablokowane do momentu
zatwierdzenia pola dialogowego (przykładowo, do momentu kliknięcia
przycisku OK.). Wykonywanie skryptów działających w tle jest
kontynuowane.
Błąd OLE oznacza błąd komunikacji w systemie operacyjnym Microsoft
Windows. Nie odzwierciedla to błędu przetwarzania zidentyfikowanego przez
serwer OLE.
Wyjątek OLE może być spowodowany przez infrastrukturę OLE lub przez
serwer OLE.
Składnia tej funkcji jest następująca:
OLE_ShowMessageOnObjectError(discreteTag);
gdzie:
value
Łańcuch znaków (zawierający opis błędu).
Ten tekst jest tekstem, który jest wyświetlany w polu z
komunikatem o błędzie. Zawiera znaki powrotu karetki i
przejścia do następnej linii. Jeżeli długość tekstu przekracza
131 znaków (limit długości ustalony przez program InTouch),
wyświetlany tekst jest ograniczany do tej długości.
discreteTag
Definiuje nazwę wartości typu Boolean (dyskretnej),
wskazującej czy pole dialogowe jest wyświetlane, jeśli
wystąpi błąd lub wyjątek OLE, przyjmuje następujące
wartości:
-1 = wyświetlić komunikat (domyślne)
0 = nie wyświetlić komunikatu
334
Rozdział 4
Opis funkcji, pól i zmiennych systemowych
Podany poniżej skrypt wyłącza wyświetlanie pola dialogowego błędu OLE
wywołania metody Create obiektu %Lot. Po wywołaniu metody, wyświetlanie
pola dialogowego błędu OLE jest ponownie włączane w przypadku każdego
następnego błędu.
OLE_ShowMessageOnObjectError(0);
%Lot.Create("abc");
OLE_ShowMessageOnObjectError(1);
OLE_IncrementOnObjectError
Funkcja ta zwiększa wartość zmiennej całkowitej przy wystąpieniu błędu
interfejsu OLE lub wyjątku OLE.
Uwaga: Jeśli funkcja OLE_ShowMessageOnObjectError wykonywana jest
ze zmienną dyskretną, wartość jest zwiększana po wyświetleniu i
zatwierdzeniu pola dialogowego błędu OLE.
Błąd OLE oznacza błąd komunikacji w systemie operacyjnym Microsoft
Windows. Nie odzwierciedla to błędu przetwarzania zidentyfikowanego przez
serwer OLE.
Wyjątek OLE może być spowodowany przez infrastrukturę OLE lub przez
serwer OLE.
Wartość zmiennej określonej przez tą funkcję będzie zwiększana przy każdym
wystąpieniu błędu do momentu następnego wywołania określającego inną
zmienną. Zmienna nie jest zapamiętywana w czasie wykonywania programu
WindowViewer.
Składnia tej funkcji jest następująca:
OLE_IncrementOnObjectError(integerTag);
gdzie:
Wykonanie poniższego skryptu spowoduje zwiększenie wartości zmiennej
reprezentowanej przez
errorCount
o 1, za każdym razem, gdy wystąpi błąd
interfejsu lub wyjątek OLE.
OLE_IncrementOnObjectError(errorCount);
integerTag
Definiuje nazwę zmiennej całkowitej, której wartość będzie
zwiększana w przypadku wystąpienia błędu lub wyjątku.
Automatyzacja OLE w programie InTouch
335
Opis funkcji, pól i zmiennych systemowych
Najczęstsze błędy automatyzacji obiektów.
Poniżej podano wykaz błędów występujących najczęściej przy korzystaniu z
automatyzacji OLE, oraz sposoby zapobiegania tym błędom.
•
OLE object reference name has not been defined.
Nazwa odwołania do obiektu została użyta w odniesieniu do właściwości
(%object.property) lub wywołania metody (%object.method(parametr) )
przed przypisaniem ich do obiektu. Należy sprawdzić, czy nazwa
odwołania do obiektu nie została podana z błędem w pisowni. Należy
zweryfikować nazwę przypisaną do obiektu przez użycie funkcji
systemowej InTouch OLE_CreateObject, lub przez przypisanie
wywołania obiektu do innego obiektu.
•
Unknown property or method name.
Należy sprawdzić, czy nazwa właściwości lub metody została
wprowadzona poprawnie (bez błędów w pisowni).
•
Attempt to update read-only property.
Błąd ten wystąpi zawsze, gdy właściwość przeznaczona tylko do odczytu
zostanie umieszczona po lewej stronie instrukcji przypisania. Jest to
trudne do zlokalizowania, gdy właściwość zostanie zaktualizowana jako
parametr zwracany z wywołania metody.
•
Type mismatch.
Błąd ten oznacza, że dana przekazana jako parametr uaktualnienia jest
nieprawidłowa. Oznacza to, że mechanizm automatycznej konwersji
danych nie posiada wystarczającej ilości informacji, aby wprowadzić
działania korygujące. Należy ręcznie przypisać daną do zmiennej
InTouch poprawnego typu, a następnie użyć tej zmiennej.
•
Invalid class string.
Błąd ten wskazuje, że nazwa klasy (drugi parametr) w wywołaniu funkcji
OLE_CreateObject została wprowadzona nieprawidłowo (z błędem w
pisowni).
•
Parameter not optional.
Należy sprawdzić, czy przekazywana jest właściwa ilość parametrów,
•
Unexpected results but no error reported.
Konwersja typu danych wykonywana jest w czasie pracy. W niektórych
przypadkach przypisanie łańcucha do liczby całkowitej nie spowoduje
wygenerowania błędu, jednakże, jeżeli łańcuch nie rozpoczyna się od
liczby, rezultatem może być zero.
•
Object reference path element is not an OLE object.
Błąd ten występuje przy korzystaniu ze znaku kropki, jeżeli jedna z
właściwości w ścieżce dostępu nie jest obiektem obsadzonym lub
wywołaniem obiektu.
336
Rozdział 4
Opis funkcji, pól i zmiennych systemowych
Usuwanie problemów przy korzystaniu z funkcji skryptowych
337
Opis funkcji, pól i zmiennych systemowych
Z a ł ą c z n i k A
Usuwanie problemów przy
korzystaniu z funkcji
skryptowych
Szereg funkcji skryptowych zwraca wartość, zależną od wyniku ich działania.
Wartość ta nazywana jest kodem wynikowym, lub kodem błędu, i może być
zastosowana do określenia rezultatu działania funkcji. W niniejszym
załączniku opisano kody wynikowe dla funkcji skryptowych obiektów
sterujących okien, receptur, oraz funkcji skryptowych modułu SQL. Opisano
również elementy DDE SPC, które mogą być zastosowane do odczytywania
zestawów danych, oraz do sterowania wykresami.
Funkcje związane z obiektami sterującymi okien i z alarmowaniem
rozproszonym zwracają wartość zależną od wyniku działania funkcji.
Zwracana wartość jest wykorzystywana do diagnozowania błędów i może być
podstawiona pod zmienną całkowitą. Przykładowo:
ErrorNumber = wcGetItem("ControlName", Number, Tagname);
gdzie:
ErrorNumber jest zmienną typu Integer w której zapisany jest kod błędu.
Wartość zwrócona przez funkcję może być przekazana do funkcji
wcErrorMessage(). Funkcja wcErrorMessage() zwraca opis tekstowy błędu.
Przykładowo:
ErrorMsg = wcErrorMessge(ErrorNumber);
gdzie:
ErrorMsg jest zmienną typu tekstowego zawierającą opis zwróconego błędu.
Podana poniżej tabela przedstawia wartości numeryczne zmiennej
ErrorNumber.
ErrorNumber
Opis
0
Powodzenie
-1
Błąd ogólny
-2
Brak pamięci
-3
Właściwość jest tylko do odczytu
-4
Określony element już istnieje
-5
Nieznana nazwa obiektu
338
Dodatek A
Opis funkcji, pól i zmiennych systemowych
* -x jest dowolnym numerem.
Usuwanie problemów przy korzystaniu z funkcji
do obsługi receptur
W celu odczytania kodu błędu zwracanego przez funkcje receptur należy go
przypisać do zmiennej całkowitej, zdefiniowanej w programie InTouch.
Przykładowo:
ErrorCode = RecipeLoad(FileName, UnitName, RecipeName);
Funkcja RecipeLoad() ustawia wartość zmiennej ErrorCode na 0, o ile jej
działanie zakończyło się pomyślnie. W przypadku wystąpienia błędu w czasie
wykonywania funkcji RecipeLoad(), jego kod zostanie przypisany do
zmiennej analogowej ErrorCode. Poniżej zamieszczono zestawienie
wszystkich kodów błędów, oraz odpowiadające im komunikaty, wraz z ich
opisem.
-6
Nieznana nazwa właściwości
-x*
Błąd nieznany
Wartość
Komunikat
Opis
0
Success
Pomyślne wykonanie wywołanej
funkcji receptur.
-1
No Such Recipe
Template
Brak pliku z określonym szablonem
receptury
-2
View Not Active
Funkcja receptur została wywołana
przez inny program, ale nie może
zostać wykonana ponieważ program
WindowViewer nie jest
uruchomiony
-3
Out of memory
Zbyt mało pamięci na zakończenie
wykonywanego działania
-4
Line too long in recipe
template file
Liczba znaków w wierszu pliku z
szablonem receptury przekracza
maksymalną, dopuszczalną wartość.
-5
Truncated line in the
recipe file
Linia w pliku z szablonem receptury
została obcięta
-6
Not a valid recipe
template file
Wskazany plik nie jest poprawnym
plikiem z szablonami receptur .
CSV
.
Więcej informacji na temat
zestawów i nazw receptur podano w
podręczniku w wersji elektronicznej
Recipe Manager User's Guide.
ErrorNumber
Opis
Usuwanie problemów przy korzystaniu z funkcji skryptowych
339
Opis funkcji, pól i zmiennych systemowych
-7
Expecting unit" or
"recipe"
W pliku z szablonami receptur
brakuje nazwy zestawu lub nazwy
receptury.
Więcej informacji na temat
zestawów i nazw receptur podano w
podręczniku w wersji elektronicznej
Recipe Manager User's Guide.
-8
No units defined in
recipe template file
W pliku z szablonami receptur nie
zostały zdefiniowane zestawy
danych.
-9
Recipe name not found
in recipe template file
Określona nazwa receptury nie
została zdefiniowana w pliku z
szablonami receptur.
-10
Unit name not found in
recipe template file
Określona nazwa zestawu nie została
zdefiniowana w pliku z szablonami
receptur.
-12
Expecting "Analog",
"Discrete", "Message"
Wprowadzony został niewłaściwy
typ elementu w pliku z szablonami
receptur. Dopuszczalne jest
stosowanie wyłącznie typów Analog,
Discrete i Message.
-13
Type of tagname
mismatches "Analog,"
"Discrete," or "Message"
Niezgodność typów pomiędzy
zadaną zmienną a typem elementu
np. element receptury jest typu
analogowego, a w zestawie
zdefiniowano dla niego zmienną typu
tekstowego.
-14
Invalid discrete value,
expecting "0", "1"
W pliku z szablonami receptur
wprowadzona została niewłaściwa
wartość dla typu dyskretnego.
Dopuszczalnymi wartościami typu
dyskretnego są 0 lub 1.
-15
Unable to open
temporary file
Plik tymczasowy nie może zostać
otworzony, prawdopodobnie z
powodu braku wolnego miejsca na
dysku.
-16
Write error while saving
recipe template file
W czasie zapisywania do pliku z
szablonem receptury wystąpił błąd
-17
User did not select
Użytkownik wybrał polecenie w
oknie dialogowym recepturę, a nie
nazwę receptury.
-19
Recipe template in use
by another application
Żądany szablon receptury jest już
otwarty, przez co nie jest dostępny
dla programu WindowViewer.
Wartość
Komunikat
Opis
340
Dodatek A
Opis funkcji, pól i zmiennych systemowych
Wyświetlanie komunikatów dla kodów błędów
receptur
Każda funkcja receptur zwraca numer kodu błędu. Podanie tego kodu w
funkcji RecipeGetMessage() pozwala na przypisanie komunikatu o błędzie do
zmiennej tekstowej.
W tym celu można skorzystać z następującego skryptu QuickScript
związanego ze zmianą wartości:
RecipeGetMessage(ErrorCode, ErrorMessage, 131);
Skrypt ten będzie wykonywany po każdorazowej zmianie wartości zmiennej
analogowej ErrorCode. Spowoduje on odczytanie przez funkcję
RecipeGetMessage() aktualnej wartości zmiennej ErrorCode, oraz
przypisanie komunikatu towarzyszącego tej wartości do zmiennej
ErrorMessage.
Nazwy elementów SPC DDE
Z elementów DDE SPC można skorzystać w celu uzyskania informacji o
zestawach danych, oraz w celu sterowania wykresami. Nazwa aplikacji to
SPC. Nazwa tematu jest nazwą zestawu danych.
Uwaga: Wszystkie elementy SPC DDE traktowane są tak samo zarówno w
przypadku rozproszonego jak i w przypadku nie rozproszonego SPC, jednak w
przypadku rozproszonego SPC nazwa tematu musi być typu Indirect Dataset.
Elementy DDE SPC do sterowania i wyświetlania
Elementy DDE sterowania i wyświetlania przeznaczone są do sterowania i
wyświetlania informacji o zestawie danych. Z elementów DDE sterowania
korzystają wszystkie stanowiska. Są to wartości zestawów danych zebranych
produktów dla zdalnego zestawu danych. Każde stanowisko korzysta ze
swoich elementów wyświetlania DDE. Są to wartości próbek dla produktu
wyświetlanego na lokalnym stanowisku.
Zmodyfikowane próbki mogą być wykorzystane w odniesieniu do zebranych
wyświetlanych produktów lokalnego zestawu danych. Zmiany wprowadzone
poprzez kliknięcie na wyświetlanym wykresie są uwzględniane w
wyświetlanym produkcie. Elementy SPC DDE wprowadzają zmiany w
zebranych produktach. Wyświetlany produkt, oraz zebrane produkty muszą
posiadać swoje własne wartości próbne, którymi są ostatnio zebrane próbki.
Dla zebranych i wyświetlanych produktów oceniane są i pamiętane alarmy. Są
one sygnalizowane dla zebranych produktów wyłącznie w czasie pracy
aplikacji.
Usuwanie problemów przy korzystaniu z funkcji skryptowych
341
Opis funkcji, pól i zmiennych systemowych
Uwaga: Poza zebranymi i wyświetlanymi produktami, wiele elementów SPC
DDE może być stosowanych wyłącznie w odniesieniu do zebranych
produktów. Elementy te oznaczone są przez umieszczenie znaku (*) przed
nazwą elementu SPC DDE na liście.
Nazwa elementu
Typ DDE
Dostęp
Opis
AutoCollection
Discrete
O/Z
Aktywowanie/ deaktywowanie
automatycznego zbierania danych.
*CalculateControlLimits
Discrete
O/Z
Ustawienie wartości 1 powoduje
rozpoczęcie obliczania wartości
granicznych sterowania.
DatasetName
Message
(32)
O/Z
Ustawia parametr DatasetName,
wykorzystywany przez zestaw pośredni.
HistogramLCL
Real
O
Wyświetla dolne wartości graniczne
sterowania histogramu, w oparciu o
populację.
HistogramUCL
Real
O
Wyświetla górne wartości graniczne
sterowania histogramu, w oparciu o
populację.
Kurtosis
Real
O
Kształt dystrybucji histogramów.
LastSampleDisplayed
Integer
O/Z
Ustawia numer ostatniej próbki
wyświetlanej przez Zestaw danych.
*ManualInputDialog
Discrete
O/Z
Ustawienie wartości 1 powoduje
wyświetlanie wbudowanego okna
dialogowego do ręcznego wprowadzania
danych.
MeasurementsPerSample
Integer
O
Wyświetlenie skonfigurowanej liczby
pomiarów przypadających na próbkę
NewProduct
Message
(32)
O/Z
Wykorzystywana do tworzenia nowej
nazwy produktu.
NewProductCtrlTitle
Message
(32)
O/Z
Wykorzystywany do przypisywania
tytułu wykresu kontrolnego dla nowego
produktu stworzonego przy pomocy
funkcji NewProduct.
NewProductParetoTitle
Message
(32)
O/Z
Wykorzystywany do przypisywania
tytułu wykresu Pareto dla nowego
produktu stworzonego przy pomocy
funkcji NewProduct.
NewProductHistTitle
Message
(32)
O/Z
Wykorzystywany do przypisywania
tytułu histogramu dla nowego produktu
stworzonego przy pomocy funkcji
NewProduct.
*ProductCollected
Message
(32)
O/Z
Zmienia nazwę produktu zebranego
przez Zestaw danych.
ProductDisplayed
Message
(32)
O/Z
Zmienia nazwę produktu wyświetlanego
przez Zestaw danych.
SampleSize
Integer
O
Rozmiar próbki dla Zestawu danych NP.
342
Dodatek A
Opis funkcji, pól i zmiennych systemowych
SamplesPerControlChart
Integer
O/Z
Ustawia liczbę próbek wyświetlanych na
Wykresie kontrolnym.
SamplesPerHistogram
Integer
O/Z
Ustawia liczbę próbek wyświetlanych na
histogramie.
SamplesPerLimitCalc
Integer
O/Z
Ustawia liczbę próbek
wykorzystywanych przy obliczaniu
kontrolnych wartości granicznych.
SamplesPerPareto
Integer
O/Z
Ustawia liczbę próbek
wykorzystywanych do wyświetlania na
wykresie kontrolnym Pareto.
SelSPCOutSpecMsg
Message
O
Zmienna tekstowa dla alarmu "Próbka
poza dopuszczalnymi wartościami
granicznymi."
Skewness
Real
O
Wyświetla odchylenie od średniej na
Histogramie.
SPCAllowSampDelMod
Discrete
O/Z
Włączenie/ wyłączenie opcji Usuń i
Modyfikuj menu rozwijanego po
wciśnięciu prawego przycisku myszy.
SPCConnection
Discrete
O
Wartość 0 oznacza przerwanie połączenia
z serwerem.
SPCConnectType
Message
O
Informuje, czy stacja pracuje jako Serwer
czy też jako Klient.
SPCLowDBSpace
Discrete
O
Pozycja wykorzystywana do
monitorowania bazy danych Microsoft
SQL Server. Pozycja ta ma zastosowanie
wyłącznie do baz danych Microsoft SQL
Server. Wartość 1 oznacza brak wolnego
miejsca dla bazy danych. Może być
wykorzystana do zatrzymania
automatycznego zbierania danych, oraz
poinformowania użytkownika o
konieczności przydzielenia większej
ilości wolnego miejsca na dysku dla
programu SPC. Pozycja ta przyjmuje
naprzemiennie wartości 1 i 0, w
zależności od statusu bazy danych SQL.
SPCResetRunRules
Discrete
O/Z
Wykorzystywany do wyłączenia
stosowania reguł pracy dla
nadchodzących próbek. Jest to ważne
przy zbieraniu danych dla nowej serii,
ponieważ użytkownik może nie chcieć
uruchamiać korzystania z reguł dla
próbek z nowej serii. Dla nowej serii
reguły mogą zostać ponownie
zdefiniowane.
Nazwa elementu
Typ DDE
Dostęp
Opis
Usuwanie problemów przy korzystaniu z funkcji skryptowych
343
Opis funkcji, pól i zmiennych systemowych
Elementy DDE SPC dla bieżącej próbki
Wszystkie elementy DDE bieżącej próbki odnoszą się do ostatnio zebranej
próbki zadanego Zestawu danych. Mogą one być zastosowane do
zmodyfikowania źródłowych danych, oraz wartości granicznych dla nazwy
zestawu danych. W celu zmiany informacji o bieżącej próbce należy ją zapisać
do odpowiednich elementów DDE, a następnie ustawić wartość elementu DDE
CurrentUpdate na 1. Efekt będzie identyczny jak w przypadku ponownego
wprowadzenia próbki, i spowoduje ponowne wykonanie odpowiednich
obliczeń. Po wprowadzeniu próbki, program SPC ustawi wartość elementu i
DDE CurrentUpdate na 0. Rozpoczęcie przez następną próbkę cyklu
zbierania, blokuje możliwość uaktualnienia elementu DDE bieżącej próbki.
Z elementów DDE bieżącej próbki korzystają wspólnie wszystkie stacje.
Wartości tych elementów reprezentują ostatnio zebraną próbkę zebranego
produktu.
W przypadku rozproszonego SPC, na początku wszystkie wartości ustawiane
są na zero. SPC co 5 sekund łączy się z bazą danych oraz sprawdza nowe
dane. Zawsze w przypadku znalezienia nowych informacji, wartości
elementów są uaktualniane. Modyfikacje odnoszące się do bieżącej próbki są
buforowane lokalnie, do momentu, gdy wartość elementu CurrentUpdate
zostanie ustawiona na 1. Wartości umieszczane są w pakiecie bieżącej próbki i
przesłane do sieciowego stanowiska zestawu danych w celu przeprowadzenia
analizy i zapisu. Modyfikacje bieżących próbek wskazujące na inny zebrany
produkt, oraz bieżące próbki o numerze różnym od ostatnio zapisanej próbki są
odrzucane przez Serwer.
Uwaga: Poza zebranymi i wyświetlanymi produktami, wszystkie bieżące
elementy DDE SPC mają zastosowanie wyłącznie w odniesieniu do zebranych
produktów.
Nazwa elementu
Typ DDE
Dostęp Opis
CurrentCauseCode
Integer
O/Z
Ustawia wartość SpecialCauseCode
dla bieżącej próbki.
CurrentCauseString
Message
(128)
O
Wyświetla opis numeru
SpecialCauseCode dla bieżącej próbki.
CurrentComment
Message
(50)
O/Z
Element wykorzystywany do
zapisu/odczytu różnych komentarzy
powiązanych z bieżącą próbką.
CurrentCp
Real
O
Element ten wyświetla możliwości dla
bieżącej próbki.
CurrentCpk
Real
O
Element ten wyświetla
wypośrodkowane możliwości dla
bieżącej próbki.
CurrentDate
Message
(8)
O/Z
Ustawia datę dla bieżącej próbki w
formacie DD/MM/YY. Jeżeli data
zostanie niepoprawnie wprowadzona,
przyjęta zostanie data bieżąca.
CurrentFlag
Discrete
O/Z
Ustawia flagę dla bieżącej próbki.
344
Dodatek A
Opis funkcji, pól i zmiennych systemowych
CurrentIgnoreValue
Discrete
O/Z
Ustawia ignorowanie bieżącej próbki
w momencie gdy Wykres kontrolny
jest automatycznie skalowany.
CurrentMx
Real
O/Z
Ustawia indywidualny pomiar
wartości dla bieżącej próbki. (x=1 do
25.)
CurrentR
Real
O
Element ten wyświetla zakres dla
bieżącej próbki.
CurrentRBar
Real
O/Z
Element ten ustawia średni zakres dla
bieżącej próbki.
CurrentRLCL
Real
O/Z
Element ten ustawia dolne, kontrolne
wartości graniczne.
CurrentRUCL
Real
O/Z
Element ten ustawia górne, kontrolne
wartości graniczne.
CurrentSample
Real
O
Element ten wyświetla wartość
ostatniego punktu próbkowania (tj. X,
C, P).
CurrentSampleBar
Real
O/Z
Ustawia średnią bieżącej próbki w
danym punkcie próbkowania.
CurrentSampleNumber
Integer
O
Wyświetla numer ostatnio zebranej
próbki.
CurrentTarget
Real
O/Z
Ustawia wartość docelową w danym
punkcie próbkowania.
CurrentTime
Message
(8)
O/Z
Ustawia czas dla bieżącej próbki w
formacie HH:MM:SS. Jeżeli czas
zostanie niepoprawnie wprowadzony,
przyjęty zostanie czas bieżący.
CurrentUpdate
Discrete
O/Z
Element ten należy ustawić na 1 w
celu wprowadzenia zmian w
informacji o próbce, w dowolnym z
bieżących pól.
CurrentXLCL
Real
O/Z
Ustawia Dolną, kontrolną wartość
graniczną (LCL - Lower Control
Limit) dla bieżącej próbki.
CurrentXLSL
Real
O/Z
Ustawia Dolną, wartość graniczną
specyfikowaną (LSL - Lower
Specification Limit) dla bieżącej
próbki.
CurrentXUCL
Real
O/Z
Ustawia Górną , kontrolną wartość
graniczną (UCL - Upper Control
Limit) dla bieżącej próbki.
CurrentXUSL
Real
O/Z
Ustawia Górną, wartość graniczną
specyfikowaną (USL - Upper
Specification Limit) dla bieżącej
próbki.
Nazwa elementu
Typ DDE
Dostęp Opis
Usuwanie problemów przy korzystaniu z funkcji skryptowych
345
Opis funkcji, pól i zmiennych systemowych
SPC2L3Out2SD
Integer
O
Licznik alarmów dla alarmu "2 z 3
ostatnich próbek poza 2 odchyleniem
standardowym SS."
SPC2L3Out2SDMsg
Message
O
Zmienna tekstowa dla alarmu "2 z 3
ostatnich próbek poza 2 odchyleniami
standardowymi SS."
SPC4L5Out1SD
Integer
O
Licznik alarmów dla alarmu "4 z 5
ostatnich próbek poza 1 odchyleniem
standardowym SS."
SPC4L5Out1SDMsg
Message
O
Zmienna tekstowa dla alarmu "4 z 5
ostatnich próbek poza 1 odchyleniami
standardowymi SS."
SPCConSampAltUpDn
Integer
O
Licznik alarmów dla alarmu "Wartość
kolejnych próbek naprzemiennie
zmniejsza się i zwiększa."
SPCConSampAltUpDnMsg
Message
O
Zmienna tekstowa dla alarmu
"Wartość kolejnych próbek
naprzemiennie zmniejsza się i
zwiększa."
SPCConSampln1SD
Integer
O
Licznik alarmów dla alarmu "Kolejne
próbki znajdują się wewnątrz 1
Odchylenia standardowego."
SPCConSampln1SDMsg
Message
O
Zmienna tekstowa dla alarmu "Kolejne
próbki znajdują się wewnątrz 1
Odchylenia standardowego."
SPCConSamplncDec
Integer
O
Licznik alarmów dla alarmu "Wartość
kolejnych próbek zmniejsza się lub
zwiększa."
SPCConSamplncDecMsg
Message
O
Zmienna tekstowa dla alarmu
"Wartość kolejnych próbek zmniejsza
się lub zwiększa."
SPCConSampOneSideCL
Integer
O
Licznik alarmów dla alarmu "Wartość
kolejnych próbek znajduje się po
jednej stronie osi symetrii."
SPCConSampOneSideCLMsg
Message
O
Zmienna tekstowa dla alarmu
"Wartość kolejnych próbek znajduje
się po jednej stronie osi symetrii."
SPCConSampOut1SD
Integer
O
Licznik alarmów dla alarmu "Kolejne
próbki znajdują się poza 1
Odchyleniem standardowym."
SPCConSampOut1SDMsg
Message
O
Zmienna tekstowa dla alarmu "Kolejne
próbki znajdują się poza 1
Odchyleniem standardowym."
SPCNLNOutNSD
Integer
O
Licznik alarmów dla alarmu "? z
ostatnich ? próbek poza ?
odchyleniami standardowymi."
Nazwa elementu
Typ DDE
Dostęp Opis
346
Dodatek A
Opis funkcji, pól i zmiennych systemowych
SPCNLNOutNSDMsg
Message
O
Zmienna tekstowa dla alarmu "? z
ostatnich ? próbek poza ?
odchyleniami standardowymi."
SPCNLNOutNSDSS
Integer
O
Licznik alarmów dla alarmu "? z
ostatnich ? próbek poza ?
odchyleniami standardowymi SS."
SPCNLNOutNSDSSMsg
Message
O
Zmienna tekstowa dla alarmu "? z
ostatnich ? próbek poza ?
odchyleniami standardowymi SS."
SPCOutRCtrl
Integer
O
Licznik alarmów dla alarmu Wykresu
"Zakres poza kontrolnymi wartościami
granicznymi."
SPCOutRCtrlMsg
Message
O
Zmienna tekstowa dla alarmu Wykresu
"Zakres poza kontrolnymi wartościami
granicznymi."
SPCOutXCtrl
Integer
O
Licznik alarmów dla alarmu Wykresu
X "Próbka poza kontrolnymi
wartościami granicznymi."
SPCOutXCtrlMsg
Message
O
Zmienna tekstowa dla alarmu Wykresu
X "Próbka poza kontrolnymi
wartościami granicznymi."
SPCOutSpec
Integer
O
Licznik alarmów dla alarmu "Próbka
poza dopuszczalnymi wartościami
specyfikowanymi."
SPCOutSpecMsg
Message
O
Zmienna tekstowa dla alarmu "Próbka
poza dopuszczalnymi wartościami
granicznymi."
SPCRecalculateCp
Discrete
O/Z
Gdy wartość tego elementu ustawiona
jest na 1, po zebraniu następnej próbki
mechanizm dokona ponownego
obliczenia wartości współczynników
Cp i Cpk dla bieżącego zestawu
danych. Po zebraniu próbki, wartość
tego elementu zostanie ustawiona na 0.
Ponowne ustawienie wartości tego
elementu na 1 spowoduje ponowne
obliczenie wartości współczynników
Cp i Cpk. Po ustawieniu na wartość 1,
dla następnej zebranej próbki wartości
Cp i Cpk zostaną ponownie obliczone.
Po zebraniu próbki wartość tego
elementu zostanie ponownie
automatycznie ustawiona na 0.
Uwaga Element ten odnosi się
TYLKO na wartości współczynników
Cp i Cpk. Nie odnosi się natomiast do
wartości granicznych i reguł pracy.
Nazwa elementu
Typ DDE
Dostęp Opis
Usuwanie problemów przy korzystaniu z funkcji skryptowych
347
Opis funkcji, pól i zmiennych systemowych
Elementy DDE SPC do ręcznego wprowadzania
Elementy DDE ręcznego wprowadzania stosowane są do tworzenia okien
użytkownika do ręcznego wprowadzania danych. W celu zastosowania
elementów ręcznego wprowadzania danych, należy ustawić wartości
odpowiednich elementów, a następnie ustawić element DDE MI_Save na
wartość 1. Spowoduje to wprowadzenie informacji zawartych w innych polach
MI jako nowej próbki. Po wprowadzeniu próbki, program SPC ustawi wartość
elementu DDE MI_Save na 0 (zero).
W przypadku rozproszonego SPC, elementy ręcznego wprowadzania danych
mają zasięg lokalny dla każdego ze stanowisk. Wartości są lokalnie
buforowane na każdym ze stanowisk, aż do momentu kiedy element DDE
MI_Save zostanie ustawiona na 1. Po ustawieniu MI_Save na 1, wartości
umieszczane są w pakiecie ręcznie wprowadzonych danych i wysyłane do
sieciowego stanowisk zestawu danych w celu przeprowadzenia analizy i ich
zapisania.
Uwaga Poza zebranymi i wyświetlanymi produktami, wszystkie elementy
DDE do ręcznego wprowadzania mają zastosowanie wyłącznie w odniesieniu
do zebranych produktów.
SPCResetAlarmCounters
Discrete
O/Z
Zeruje wszystkie liczniki alarmów.
SPCResetRunRules
Discrete
O/Z
Wykorzystywany do wyłączenia
stosowania reguł pracy dla
nadchodzących próbek. Dotyczy
aktualnie zebranych produktów. W
momencie włączenia, reguły są
resetowane i poprzednie próbki nie
będą uwzględniane w obliczeniach
alarmów typu "4 z 5 ostatnich próbek
poza 1 odchyleniem standardowym”
Działanie takie jest wykonywane
jednokrotnie, po czym reguły pracy
rozpoczną pracę ponownie. Element
ten musi zostać zresetowany, następnie
włączony ponownie, aby nastąpiło
zresetowanie reguł.
Nazwa elementu
Typ DDE
Dostęp
Opis
MI_CauseCode
Integer
O/Z
Ustawia wartość
SpecialCauseCode dla ręcznie
wprowadzanej próbki.
MI_CauseString
Message
(127)
O
Wyświetla opis numeru
wejściowego
SpecialCauseCode dla próbki.
Nazwa elementu
Typ DDE
Dostęp Opis
348
Dodatek A
Opis funkcji, pól i zmiennych systemowych
MI_Comment
Message
(50)
O/Z
Element ten wykorzystywany
do zapisu/ odczytu różnych
komentarzy wprowadzonych
dla próbki.
MI_Date
Message
(8)
O/Z
Ustawia datę dla bieżącej
próbki. Data musi być
wprowadzona w formacie
DD/MM/YY. Jeżeli data
zostanie niepoprawnie
wprowadzona, przyjęta
zostanie data bieżąca.
MI_Flag
Discrete
O/Z
Ustawia flagę dla ręcznie
wprowadzanej próbki.
MI_IgnoreValue
Discrete
O/Z
Ustawia ignorowanie bieżącej
próbki w momencie gdy
Wykres kontrolny jest
automatycznie skalowany.
MI_Mx
Real
O/Z
Ustawia wartość dla
oznaczonego ręcznie
wprowadzonego pomiaru
(x=1 do 25).
MI_Save
Discrete
O/Z
Zapisuje wprowadzoną
ręcznie w innych polach MI
informację jako nową próbkę.
Uwaga Jeżeli element
MI_Save ustawiony jest na 1,
wartości wszystkich
elementów MI zapisywane są
do odpowiednich elementów i
DDE Current, a element
CurrentSampleNumber jest
inkrementowana o 1.
MI_Time
Message
(8)
O/Z
Ustawia czas dla bieżącej
próbki. Czas musi być
wprowadzona w formacie
HH:MM:SS. Jeżeli czas
zostanie niepoprawnie
wprowadzony, przyjęty
zostanie domyślnie czas
bieżący.
Nazwa elementu
Typ DDE
Dostęp
Opis
Usuwanie problemów przy korzystaniu z funkcji skryptowych
349
Opis funkcji, pól i zmiennych systemowych
Elementy DDE SPC do zaznaczania
Elementy DDE do zaznaczania mogą być wykorzystane do uzyskiwania
szczegółowych informacji o dowolnej z próbek. Elementy DDE do
zaznaczania umożliwiają wprowadzenie numeru próbki, która ma być
wyświetlana. Po wprowadzeniu, program SPC zaktualizuje wszystkie
elementy do zaznaczania, wprowadzając szczegółowe informacje o
zaznaczonym numerze próbki.
Nie można zmienić starych danych, ale można dodać elementy Special Cause
Code, Flags i/lub Comments poprzez wprowadzenie wartości do
odpowiednich elementowi, i następnie ustawienie elementu SelectionUpdate
na 1.
Spowoduje to wprowadzenie do rekordu zaznaczonej próbki nowych wartości.
Po wprowadzeniu próbki, program SPC ustawi wartość elementu DDE
SelectionUpdate na 0 (zero).
W przypadku rozproszonego SPC, elementy DDE do zaznaczania mają zasięg
lokalny dla każdego ze stanowisk. Są to wartości próbek zarejestrowane na
stanowisku sieciowym dla określonego numeru próbki zebranego produktu. Po
ustawieniu elementu DDE do zaznaczania na numer próbki, z pliku z próbkami
na stanowisku sieciowym odczytywane są dane. Nie można zmienić starych
danych, ale można dodać elementy Special Cause Code, Flags i/lub Comments
poprzez wprowadzenie wartości do odpowiednich elementów, i następnie
ustawienie elementu SelectionUpdate na 1. Po ustawieniu wartości
SelectionUpdate na 1, następuje wysłanie elementów Special Cause Code,
Comment, Flag i Ignore Value w formie pakietu do stanowiska sieciowego w
celu zapisu.
Uwaga Poza zebranymi i wyświetlanymi produktami, wszystkie elementy
DDE do zaznaczania mają zastosowanie wyłącznie w odniesieniu do
zebranych produktów.
Nazwa elementu
Typ DDE
Dostęp
Opis
Selection
Integer
O/Z
Ustawienie tego elementu na
numer próbki powoduje
wprowadzenie do wszystkich
zaznaczonych elementów
odpowiednich danych.
SelectionCauseCode
Integer
O/Z
Ustawia wartość
SpecialCauseCode dla
zaznaczonej próbki.
SelectionCauseString
Message
(128)
O
Wyświetla opis
wprowadzonego Special
Cause Code.
SelectionComment
Message
(50)
O/Z
Element ten wykorzystywany
do zapisu/ odczytu różnych
komentarzy, wprowadzonych
dla zaznaczonej próbki.
350
Dodatek A
Opis funkcji, pól i zmiennych systemowych
SelectionCp
Real
O
Element ten wyświetla
możliwości dla zaznaczonej
próbki.
SelectionCpk
Real
O
Element ten wyświetla
wypośrodkowane możliwości
dla zaznaczonej próbki.
SelectionDate
Message
(8)
O
Element ten wyświetla datę
dla zaznaczonej próbki.
SelectionFlag
Discrete
O/Z
Ustawia flagę dla zaznaczonej
próbki.
SelectionIgnoreValue
Discrete
O/Z
Ustawia ignorowanie
zaznaczonej próbki w
momencie gdy Wykres
kontrolny jest automatycznie
skalowany.
SelectionMx
Real
O
Wyświetla wartość dla
indywidualnego pomiaru (x=1
- 25), zawierającego próbkę.
SelectionProduct
Message
(32)
O
Wyświetla nazwę produktu
dla zaznaczonej próbki.
SelectionRUCL
Real
O
Wyświetla zakres UCL dla
zaznaczonej próbki.
SelectionRLCL
Real
O
Wyświetla zakres LCL dla
zaznaczonej próbki.
SelectionR
Real
O
Wyświetla zakres dla
zaznaczonej próbki.
SelectionRBAR
Real
O
Wyświetla średni zakres dla
zaznaczonej próbki.
SelectionSample
Real
O
Wyświetla wartość
zaznaczonego punktu próbki.
SelectionSampleBar
Real
O
Wyświetla średnią
zaznaczonej próbki w
zaznaczonym punkcie próbki.
SelectionTarget
Real
O
Wyświetla docelową wartość
dla zaznaczonej próbki.
SelectionTime
Message
(8)
O
Element ten wyświetla Czas
dla zaznaczonej próbki.
SelectionUpdate
Discrete
O/Z
Aktualizuje zmiany
wprowadzone w polach
Zaznaczonej próbki
SelectionXUSL
Real
O
Wyświetla Górną wartość
specyfikowaną próbki.
SelectionXLSL
Real
O
Wyświetla Dolną wartość
specyfikowaną próbki.
Nazwa elementu
Typ DDE
Dostęp
Opis
Usuwanie problemów przy korzystaniu z funkcji skryptowych
351
Opis funkcji, pól i zmiennych systemowych
SelectionXUCL
Real
O
Wyświetla Górną wartość
graniczną próbki.
SelectionXLCL
Real
O
Wyświetla Dolną wartość
graniczną próbki.
SelSPC2L3Out2SDMsg
Message
O
Zmienna tekstowa dla alarmu
"2 z 3 ostatnich próbek poza 2
odchyleniami standardowymi
SS."
SelSPC4L5Out1SDMsg
Message
O
Zmienna tekstowa dla alarmu
"4 z 5 ostatnich próbek poza 1
odchyleniami standardowymi
SS."
SelSPCConSampAltUpDnMsg
Integer
O
Zmienna tekstowa dla alarmu
"Wartość kolejnych próbek
naprzemiennie zmniejsza się i
zwiększa."
SelSPCConSampln1SDMsg
Message
O
Zmienna tekstowa dla alarmu
"Kolejne próbki znajdują się
wewnątrz 1 Odchylenia
standardowego."
SelSPCConSamplncDecMsg
Message
O
Zmienna tekstowa dla alarmu
"Wartość kolejnych próbek
zmniejsza się lub zwiększa."
SelSPCConSampOneSideCLMsg Message
O
Zmienna tekstowa dla alarmu
"Wartość kolejnych próbek
znajduje się po jednej stronie
osi symetrii."
SelSPCConSampOut1SDMsg
Message
O
Zmienna tekstowa dla alarmu
"Kolejne próbki znajdują się
poza 1 Odchyleniem
standardowym."
SelSPCNLNOutNSDMsg
Message
O
Zmienna tekstowa dla alarmu
"? z ostatnich ? próbek poza ?
odchyleniami
standardowymi."
SelSPCNLNOutNSDSSMsg
Message
O
Zmienna tekstowa dla alarmu
"? z ostatnich ? próbek poza ?
odchyleniami standardowymi
SS."
SelSPCOutRCtrlMsg
Message
O
Zmienna tekstowa dla alarmu
Wykresu "Zakres poza
kontrolnymi wartościami
granicznymi."
Nazwa elementu
Typ DDE
Dostęp
Opis
352
Dodatek A
Opis funkcji, pól i zmiennych systemowych
Uwaga Wiele pośrednich zestawów danych może być ustawionych i
połączonych z tym samym, rzeczywistym zestawem danych. Można wtedy
Zaznaczoną wartość każdego z pośrednich zestawów danych ustawić na inny
numer próbki. Pozwala to użytkownikowi na podglądanie informacji o wielu
próbkach w obrębie jednego zestawu danych.
Usuwanie problemów przy korzystaniu z funkcji
skryptowych SQL
Wszystkie funkcje SQL zwracają parametr ResultCode, który może zostać
wykorzystany przy usuwaniu problemów. Funkcja SQLErrorMsg() zwraca
komunikat o błędzie, dla zadanego kodu ResultCode. Przykładowo:
ErrorMsg=SQLErrorMsg(ResultCode);
gdzie:
ErrorMsg jest zmienną typu Memory Message.
ResultCode jest zmienną całkowitą, z wartością dostarczoną przez
odpowiednią funkcję SQL.
Komunikaty o błędach
W niniejszym dokumencie nie omówiono znaczenia poszczególnych wartości
ResultCode, więcej informacji na temat tych wartości podano w dokumentacji
do bazy danych. Należy również pamiętać o sprawdzeniu informacji
wyświetlanych przez program diagnostyczny Wonderware Logger.
Funkcja SQLErrorMsg()ErrorMsg() przypisuje wartość zmiennej tekstowej
ErrorMsg. Poniżej zamieszczono zestawienie wybranych kodów błędów, oraz
odpowiadające im komunikaty, wraz z ich opisem.
SelSPCOutXCtrlMsg
Message
O
Zmienna tekstowa dla alarmu
Wykresu X "Próbka poza
kontrolnymi wartościami
granicznymi."
SelSPCOutSpecMsg
Message
O
Zmienna tekstowa dla alarmu
"Próbka poza dopuszczalnymi
wartościami granicznymi."
Kod błędu Komunikat
Opis
0
No errors occurred
Instrukcja została zakończona pomyślnie, bez
wystąpienia błędu
-5
No more rows to fetch
Odczytany został ostatni rekord bazy danych
-1001
Out of memory
Brak wolnej pamięci na zakończenie instrukcji
-1002
Invalid connection
Niepoprawny parametr ConnectionID
przekazany do funkcji
-1003
No bind list found
Lista powiązań o zadanej nazwie nie istnieje
-1004
No template found
Szablon o zadanej nazwie nie istnieje
Nazwa elementu
Typ DDE
Dostęp
Opis
Usuwanie problemów przy korzystaniu z funkcji skryptowych
353
Opis funkcji, pól i zmiennych systemowych
-1005
Internal Error
Wystąpił błąd wewnętrzny. Skontaktować się z
Serwisem.
-1006
String is null
Ostrzeżenie - z bazy danych odczytano pusty
łańcuch znaków
-1007
String is truncated
Ostrzeżenie - łańcuch znaków odczytany z bazy
danych ma więcej niż 131 znaków w związku z
czym został on obcięty
-1008
No Where clause
Brak klauzuli Where dla DeleteREFWhere
clause on Delete
-1009
Connection failed
Błąd w komunikacji, szczegółowy opis
zakłócenia podany jest w programie
diagnostycznym Wonderware Logger
-1010
The database specified on
the DB= portion of the
connect string does not exist
Określona baza danych nie istnieje
-1011
No rows were selected
Podjęto próbę wykonania polecenia
SQLNumRows(), SQLFirst(), SQLNext(), lub
SQLPrev(), bez uprzedniego wykonania
polecenia SQLSelect().
-4149
The connection, statement,
or query handle you
provided is not valid
Przyczyną może być niewłaściwie
zdefiniowany typ kolumny. Przykładowo, jeżeli
w pliku dBASE zdefiniowany zostanie szablon
tabeli z kolumną typu character, a nie typu char,
zasygnalizowany zostanie błądREF!!!!!!!!with
a column type of character instead of char
Kod błędu Komunikat
Opis
354
Dodatek A
Opis funkcji, pól i zmiennych systemowych
Komunikaty błędów dla poszczególnych baz
danych
Oracle
Komunikat
Rozwiązanie
ORA-03112 - Host String
Syntax error
Jeżeli uruchamiany jest program
NETINIT.EXE należy umieścić go w
grupie Autostart systemu Windows.
Jeżeli uruchamiany jest program
NETINIT.EXE, i nawiązywane jest
więcej niż jedno połączenie, lub też
uruchamianych jest więcej niż jedna
sesja, należy przydzielić więcej pamięci.
W tym celu należy ustawić parametr
WIN_REMOTE_SESSIONS w pliku
CONFIG.ORA na wartość równa liczbie
żądanych połączeń. Zamieszczona
poniżej instrukcja przydziela pamięć dla
4 połączeń:
WIN_REMOTE_SESSIONS=4
ORA-3121 - No interface driver
connected
Przed uruchomieniem Windows, oraz
przed korzystaniem z InTouch SQL
Access należy uruchomić program SQL
*NET TSR, odpowiedni dla systemu
sieciowego.
ORA-6435 - NetBIOS: Unable
to add local name to name
table‰
Musi być uruchomiony system sieciowy
(Novell, LAN Manager, itp.)
ORA-09301 - Local kernel only
supported in standard mode
W łańcuchu znaków do ustanowienia
połączenia określić nazwę serwera
("SRVR=").
ORA-06430 - Unable to make
connection
Zweryfikować poprawność i kolejność
atrybutów w łańcuchu znaków do
ustanowienia połączenia.
Usuwanie problemów przy korzystaniu z funkcji skryptowych
355
Opis funkcji, pól i zmiennych systemowych
Sybase or Microsoft SQL Server
dBASE
Komunikat
Rozwiązanie
You cannot have more than one
statement active at a time
Próba wykonania polecenia SQL po
wykonaniu SQLSelect(). Wywołać
polecenie SQLEnd() w celu zwolnienia
zasobów systemu po wywołaniu
SQLSelect(), lub też przeznaczyć dla
drugiej instrukcji oddzielny parametr
ConnectionID.
There is not enough memory
available to process the
command
Spróbować ponownie uruchomić stację
kliencką
Invalid object name table name Nazwa tablicy nie istnieje w używanej
bazie danych. Spróbować skorzystać z
instrukcji DB=nazwa bazy danych.
Komunikat
Rozwiązanie
File or DLL not found
W przypadku systemu Windows, plik
QEDBF.DLL musi znajdować się w
bieżącej kartotece, lub w kartotece
systemu Windows podanej w ścieżce
DOS.
Invalid connection
Należy sprawdzić, czy w kartotece
znajdują się odpowiednie pliki dll. W
przypadku DBF, potrzebny jest plik
QLDBF.DLL.
The connection or statement
handle you provided is not valid
Więcej informacji na ten temat podano w
programie Wonderware Logger .
Instrukcja SQL może zawierać błąd w
składni.
356
Dodatek A
Opis funkcji, pól i zmiennych systemowych
357
Opis funkcji, pól i zmiennych systemowych
Indeks
Symbols
$AlarmPrinterError 22
$AlarmPrinterNoPaper 22
$AlarmPrinterOffline 23
$AlarmPrinterOverflow 23
$ApplicationChanged 24
$ApplicationVersion 24
$ChangePassword 25
$ConfigureUsers 25
$Date 26
$DateString 26
$DateTime 26
$Day 27
$HistoricalLogging 27
$Hour 28
$InactivityTimeout 28
$InactivityWarning 29
$LogicRunning 29
$Minute 30
$ObjHor 31
$ObjVer 31
$Operator 32
$OperatorEntered 33
$PasswordEntered 34
$Second 34
$StartDdeConversations 34
$System 35
$Time 35
$TimeString 35, 36
A
Alarmów Funkcje
almAckAll 166
almAckDisplays 166
almAckGroup 167
almAckPriority 168
almAckRecent 168
almAckSelect 169
almAckSelectedGroup 169
almAckSelectedPriority 170
almAckSelectedTag 170
almAckTag 171
almDefQuery 172
almMoveWindow 172
almQuery 173
almSelectAll 174
almSelectionCount 175
almSelectItem 175
almSelectPriority 175
almSelectTag 176
almSetQueryByName 176
almShowStats 177
almSuppressDisplay 178
almSuppressGroup 178
almSuppressPriority 179
almSuppressRetain 179
almSuppressSelected 180
almSuppressSelectedGroup 181
almSuppressSelectedPriority 181
almSuppressSelectedTag 182
almSuppressTag 180
almUnSelectAll 182
almUnSuppressAll 183
Error Numbers 337
Alarmów zmienne systemowe
$AlarmPrinterNoPaper 22
$AlarmPrinterOffline 23
$AlarmPrinterOverflow 23
Aplikacji zmienne systemowe
$ApplicationChanged 24
$ApplicationVersion 24
E
Error Numbers
Funkcje receptur 338
Obiekty steruj¹ce okien - Funkcje 337
F
Flagi jakoœci 135
Funkcja OLE_IsObjectValid 326
Funkcja OLE_ReleaseObject 325
Funkcje
ActivateApp 165
almAckAll 166
almAckDisplay 166
almAckGroup 167
almAckPriority 168
almAckRecent 168
almAckSelect 169
almAckSelectedGroup 169
almAckSelectedPriority 170
almAckSelectedTag 170
almAckTag 171
almDefQuery 172
almMoveWindow 172
almQuery 173
almSelectAll 174
almSelectGroup 174
almSelectionCount 175
almSelectItem 175
358
Opis funkcji, pól i zmiennych systemowych
almSuppressDisplay 178
almSuppressGroup 178
almSuppressPriority 179
almSuppressRetain 179
almSuppressSelected 180
almSuppressSelectedGroup 181
almSuppressSelectedPriority 181
almSuppressSelectedTag 182
almSuppressTag 180
almUnSelectAll 182
almUnSuppressAll 183
ArcCos 183
ArcSin 184
ArcTan 184
ChangePassword 185
Cos 186
DialogStringEntry 186
DialogValueEntry 188
FileDelete 193
FileMove 194
FileReadFields 196
FileReadMessage 197
FileWriteFields 198
FileWriteMessage 199
GetNodeName 199
GetPropertyD 200
GetPropertyI 200
GetPropertyM 201
Hide 202
Hideself 202
HTGetLastError 203
HTGetPenName 204
HTGetTimeAtScooter 204
HTGetTimeStringAtScooter 205
HTGetValue 206
HTGetValueAtScooter 207
HTGetValueAtZone 208
HTScrollLeft 210
HTScrollRight 210
HTSelectTag 211
HTSetPenName 211
HTUpdateToCurrentTime 212
HTZoomIn 212
HTZoomOut 213
InfoAppActive 214
InfoAppTitle 214
InfoDisk 215
InfoFile 216
InfoInTouchAppDir 217
InfoResources 217
Int 218
IOGetApplication 218
IOGetNode 219
IOGetTopic 219
IOReinitialize 219
IOSetAccessName 220
IOSetItem 221
IOStartUninitConversations 222
IsAnyAsynchFunctionBusy 222
Log 223
LogMessage 224
LogN 224
Logoff 225
OLE_CreateObject 324
OLE_IsObjectValid 326
OLE_ReleaseObject 325
Pi 225
PlaySound 225
PrintHT 227
PrintWindow 228, 230
RecipeDelete 232
RecipeGetMessage 233
RecipeLoad 234
RecipeSave 235
RecipeSelectNextRecipe 236
RecipeSelectPreviousRecipe 237
RecipeSelectRecipe 238
RecipeSelectUnit 239
ReloadWindowViewer 240
RestartWindowViewer 240
Round 241
SendKeys 242
SetPropertyD 243
SetPropertyI 244
SetPropertyM 244
ShowHome 246
ShowTopLeftAt 247
Sin 247
SLQRollback 270
SPCConnect 248
SPCDatasetDlg 248
SPCDisconnect 249
SPCDisplayData 249
SPCLocateScooter 250
SPCMoveScooter 250
SPCSaveSample 251
SPCSelectDataset 251
SPCSelectProduct 251
SPCSetControlLimits 252
SPCSetMeasurement 252
SPCSetProductCollected 253
SPCSetProductDislpayed 253
SPCSetRangeLimits 254
SPCSetSpecLimits 254
SQLAppendStatement 255
SQLClearParam 255
SQLClearStatement 255
SQLClearTable 256
SQLCommit 257
SQLConnect 258
359
Opis funkcji, pól i zmiennych systemowych
SQLExecute 263
SQLFirst 264
SQLGetRecord 264
SQLInsert 265
SQLInsertEnd 265
SQLInsertExecute 266
SQLInsertPrepare 266
SQLLast 267
SQLLoadStatement 267
SQLManageDSN 268
SQLNext 268
SQLNumRows 268
SQLPrepareStatement 269
SQLPrev 269
SQLSelect 271
SQLSetParamChar 274
SQLSetParamDate 274
SQLSetParamDateTime 275
SQLSetParamDecimal 275
SQLSetParamFloat 276
SQLSetParamLong 276
SQLSetParamNull 277
SQLSetParamTime 278
SQLSetStatement 278
SQLTransact 279
SQLUpdate 281
SQLUpdateCurrent 282
Sqrt 282
StartApp 283
StringASCII 283
StringChar 284
StringFromIntg 284
StringFromReal 285
StringFromTime 286
StringFromTimeLocal 287
StringInString 288
StringLeft 289
StringLen 290
StringLow 290
StringMid 291
StringReplace 292
StringRight 293
StringSpace 294
StringTest 295
StringToInt 296
StringToReal 297
StringTrim 298
StringUpper 299
Tan 299
Tekst 300
Trunc 300
TseGetClientID 301
TseQueryRunningOnClient 302
TseQueryRunningOnConsole 301
wcAddItem 302
wcClear 303
wcDelete 303
wcDeleteSelection 304
wcErrorMessage 304
wcFindItem 305
wcGetItem 306
wcGetItemData 307
wcInsertItem 308
wcLoadList 309
wcLoadText 310
wcSaveList 311
wcSaveText 312
wsSetItemData 313
WWControl 314
WWExecute 315
Funkcje matematyczne
Funkcje receptur
Komunikaty o b³êdach 338
RecipeDelete 232
RecipeGetMessage 233, 340
RecipeLoad 234
RecipeSave 235
RecipeSelectNextRecipe 236
RecipeSelectPreviousRecipe 237
RecipeSelectRecipe 238
RecipeSelectUnit 239
Usuwanie problemów 338
Wyœwietlanie komunikatów b³êdów 340
Funkcje skryptowe QuickScript 163
Funkcje SPC
SPCConnect 248
SPCDatasetDlg 248
SPCDisconnect 249
SPCDisplayData 249
SPCLocateScooter 250
SPCMoveScooter 250
SPCSaveSample 251
SPCSelectDataset 251
SPCSelectProduct 251
SPCSetControlLimits 252
SPCSetMeasurement 252
SPCSetProductCollected 253
SPCSetProductDislpayed 253
SPCSetRangeLimits 254
SPCSetSpecLimits 254
Funkcje systemowe
360
Opis funkcji, pól i zmiennych systemowych
FileDelete 193
FileMove 194
FileReadFields 196
FileReadMessage 197
FileWriteFields 198
FileWriteMessage 199
GetNodeName 199
InfoAppActive 214
InfoAppTitle 214
InfoDisk 215
InfoFile 216
InfoInTouchAppDir 217
IsAnyAsynchFunctionBusy 222
ReloadWindowViewer 240
RestartWindowViewer 240
Funkcje systemu bezpieczeñstwa
Funkcje tekstowe
StringChar 284
StringFromIntg 284
StringFromReal 285
StringFromTime 286
StringFromTimeLocal 287
StringInString 288
StringLeft 289
StringLen 290
StringLow 290
StringMid 291
StringReplace 292
StringRight 293
StringSpace 294
StringTest 295
StringToInt 296
StringToReal 297
StringTrim 298
StringUpper 299
Tekst 300
Funkcje trendów historycznych
HTGetLastError 203
HTGetPenName 204
HTGetTimeAtScooter 204
HTGetTimeStringAtScooter 205
HTGetValue 206
HTGetValueAtScooter 207
HTGetValueAtZone 208
HTScrollLeft 210
HTScrollRight 210
HTSelectTag 211
HTSetPenName 211
HTUpdateToCurrentTime 212
HTZoomIn 212
HTZoomOut 213
Funkcje us³ugi terminala
TseQueryRunningOnClient 302
TseQueryRunningOnConsole 301
G
GOT - Funkcje
GetPropertyD 200
GetPropertyI 200
GetPropertyM 201
SetPropertyD 243
SetPropertyI 244
SetPropertyM 244
I
I/O
K
Kody b³êdów baz danych Sybase 355
Komunikaty b³êdów dBase 355
Komunikaty b³êdów SQL Serwer 355
Komunikaty o b³êdach
Alarmów Funkcje 337
Baza danych Oracle 354
Baza danych Sybase 355
dBase 355
Funkcje receptur 338
Obiekty steruj¹ce okien - Funkcje 337
SQL Server 355
Wyœwietlanie komunikatów b³êdów receptur 340
Komunikaty o b³êdach bazy danych Oracle 354
M
N
Nazwy elementów SPC DDE
Bie¿¹ca próbka 343
Rêczne wprowadzanie danych 347
Selection 349
O
Obiekty steruj¹ce okien - Funkcje
Error Numbers 337
Komunikaty o b³êdach 337
wcAddItem 302
wcClear 303
wcDelete 303
wcDeleteSelection 304
wcErrorMessage 304, 337
wcFindItem 305
wcGetItem 306
wcGetItemData 307
wcInsertItem 308
361
Opis funkcji, pól i zmiennych systemowych
Obiekty steruj¹ce okien - Pola
.Enabled 102
.ListCount 107
.NewIndex 124
.ReadOnly 143
.TopIndex 155
.Value 161
OLE for Process Control (OPC) 135
OLE_CreateObject Function 324
P
Pola alarmów
.Ack 46
.AckDev 48, 49
.AckROC 50
.AckValue 51
.Alarm 52
.AlarmAccess 53
.AlarmAckModel 54
.AlarmClass 55
.AlarmComment 56
.AlarmDate 57
.AlarmDev 58
.AlarmDevCount 59
.AlarmDevDeadband 59
.AlarmDevUnAckCount 60
.AlarmDisabled 60
.AlarmDsc 61
.AlarmDscCount 62
.AlarmDscDisabled 62
.AlarmDscEnaabled 63
.AlarmDscInhibitor 64
.AlarmDscUnAckCount 65
.AlarmEnabled 65
.AlarmGroup 66
.AlarmGroupSel 67
.AlarmHiDisabled 67
.AlarmHiEnabled 68
.AlarmHiHiDisabled 68
.AlarmHiHiEnabled 69
.AlarmHiInhibitor 70, 71
.AlarmLimit 72
.AlarmLoDisabled 72
.AlarmLoEnabled 73
.AlarmLoInhibitor 74
.AlarmLoLoDisabled 75
.AlarmLoLoEnabled 75
.AlarmLoLoInhibitor 76
.AlarmMajDevDisabled 77
.AlarmMajDevEnabled 77
.AlarmMajDevInhibitor 78
.AlarmMinDevDisabled 79
.AlarmMinDevEnabled 79
.AlarmMinDevInhibitor 80
.AlarmName 81
.AlarmOprName 82
.AlarmOprNode 83
.AlarmPri 84
.AlarmProv 85
.AlarmROC 86
.AlarmROCCount 87
.AlarmROCDisabled 87
.AlarmROCEnabled 88
.AlarmROCInhibitor 89
.AlarmROCUnAckCount 90
.AlarmState 90
.AlarmTime 91
.AlarmTotalCount 91
.AlarmType 92
.AlarmUnAckCount 92
.AlarmUserDefNum1 93
.AlarmUserDefNum2 94
.AlarmUserDefStr 95
.AlarmValDeadband 96
.AlarmValue 96
.AlarmValueCount 97
.AlarmValueUnAckCount 97
.DevTarget 101
.Freeze 103
.HiHiLimit 104
.HiHiSet 104
.HiHiStatus 105
.HiLimit 105
.HiSet 106
.HiStatus 106
.ListChanged 107
.LoLimit 108
.LoLoLimit 109
.LoLoSet 110
.LoLoStatus 111
.LoSet 109
.LoStatus 112
.MajorDevPct 112
.MajorDevSet 113
.MajorDevStatus 114
.MinorDevPct 119
.MinorDevSet 119
.MinorDevStatus 120
.NextPage 124
.Normal 125
.NumAlarms 126
.PageNum 127
.PendingUpdates 131
.PrevPage 132
.PriFrom 133
.PriTo 133
.ProviderReq 134
.ProviderRet 134
.QueryState 141
.QueryType 142
.ROCPct 145
.ROCSet 145
.ROCStatus 146
.Successful 150
.TotalPages 156
Pola trendów historycznych
362
Opis funkcji, pól i zmiennych systemowych
.ChartStart 100
.DisplayMode 101
.MaxRange 116
.MinRange 121
.Pen1-.Pen8 128
.ScooterLockLeft 147
.ScooterLockRight 147
.ScooterPosLeft 148
.ScooterPosRight 149
.UpdateCount 158
.UpdateInProgress 159
.UpdateTrend 160
Pola zmiennych
.AckROC 50
.AckValue 51
.Alarm 52
.AlarmAccess 53
.AlarmAckModel 54
.AlarmClass 55
.AlarmComment 56
.AlarmDate 57
.AlarmDev 58
.AlarmDevCount 59
.AlarmDevDeadband 59
.AlarmDevUnAckCount 60
.AlarmDisabled 60
.AlarmDsc 61
.AlarmDscCount 62
.AlarmDscDisabled 62
.AlarmDscEnabled 63
.AlarmDscInhibitor 64
.AlarmDscUnAckCount 65
.AlarmEnabled 65
.AlarmGroup 66
.AlarmGroupSel 67
.AlarmHiDisabled 67
.AlarmHiEnabled 68
.AlarmHiHiDisabled 68
.AlarmHiHiEnabled 69
.AlarmHiInhibitor 70, 71
.AlarmLimit 72
.AlarmLoDisabled 72
.AlarmLoEnabled 73
.AlarmLoInhibitor 74
.AlarmLoLoDisabled 75
.AlarmLoLoEnabled 75
.AlarmLoLoInhibitor 76
.AlarmMajDevDisabled 77
.AlarmMajDevEnabled 77
.AlarmMajDevInhibitor 78
.AlarmMinDevDisabled 79
.AlarmMinDevEnabled 79
.AlarmMinDevInhibitor 80
.AlarmName 81
.AlarmOprName 82
.AlarmOprNode 83
.AlarmPri 84
.AlarmProv 85
.AlarmROC 86
.AlarmROCCount 87
.AlarmROCDisabled 87
.AlarmROCEnabled 88
.AlarmROCInhibitor 89
.AlarmROCUnAckCount 90
.AlarmState 90
.AlarmTime 91
.AlarmTotalCount 91
.AlarmType 92
.AlarmUnAckCOunt 92
.AlarmUserDefNum1 93
.AlarmUserDefNum2 94
.AlarmUserDefStr 95
.AlarmValDeadband 96
.AlarmValue 96
.AlarmValueCount 97
.AlarmValueUnAckCount 97
.Caption 98
.ChartLength 99
.ChartStart 100
.Comment 100
.DevTarget 101
.DisplayMode 101
.Enabled 102
.EngUnits 103
.Freeze 103
.HiHiLimit 104
.HiHiSet 104
.HiHiStatus 105
.HiLimit 105
.HiSet 106
.HiStatus 106
.ListChanged 107
.ListCount 107
.LoLimit 108
.LoLoLimit 109
.LoLoSet 110
.LoLoStatus 111
.LoSet 109
.LoStatus 112
.MajorDevPct 112
.MajorDevSet 113
.MajorDevStatus 114
.MaxEU 115
.MaxRange 116
.MaxRaw 117
.MinEU 118
.MinorDevPct 119
.MinorDevSet 119
.MinorDevStatus 120
.MinRange 121
.MinRaw 122
.Name 122
.NewIndex 124
.NextPage 124
363
Opis funkcji, pól i zmiennych systemowych
.PendingUpdates 131
.PrevPage 132
.PriFrom 133
.PriTo 133
.ProviderReq 134
.ProviderRet 134
.Quality 135
.QualityLimit 138
.QualityLimitString 139
.QualityStatus 139
.QualityStatusString 139
.QualitySubstatus 140
.QualitySubstatusString 141
.QueryState 141
.QueryType 142
.RawValue 143
.ReadOnly 143
.Reference 144
.ReferenceComplete 144
.ROCPct 145
.ROCSet 145
.ROCStatus 146
.ScooterLockLeft 147
.ScooterLockRight 147
.ScooterPosLeft 148
.ScooterPosRight 149
.Successful 150
.TagID 151
.TimeDate 151
.TimeDateString 151
.TimeDateTime 152
.TimeDay 152
.TimeHour 152
.TimeMinute 153
.TimeMonth 153
.TimeMsec 153
.TimeSecond 154
.TimeTime 154
.TimeTimeString 154
.TimeYear 155
.TopIndex 155
.TotalPages 156
.UnAck 157
.UpdateCount 158
.UpdateInProgress 159
.UpdateTrend 160
R
Ró¿ne funkcje
DialogStringEntry 186
DialogValueEntry 188
Hide 202
Hideself 202
IOGetApplication 218
IOReinitialize 219
IOSetAccessName 220
IOSetItem 221
IOStartUninitConversations 222
LogMessage 224
PlaySound 225
PrintWindow 228, 230
SendKeys 242
Show 245
ShowAt 246
ShowHome 246
ShowTopLeftAt 247
S
Specyfikacja jakoœci danych Fieldbus 135
SQLErrorMsg 352
statusy jakoœci 135
System rejestrowania danych historycznych -
Zmienne
T
Indirect
Indirect Analog 39
Indirect Discrete 39
Hist Trend (Trend historyczny) 40
Tag ID (Identyfikator zmiennej) 40
Zmienne typu SuperTag 40
Memory Discrete 38
Memory Integer 38
Memory Message 38
U
Usuwanie problemów
Funkcje receptur 338
Zestawienie funkcji SQL 352
W
Wewnêtrzne zmienne systemowe 21
WWDDE Functions
Z
Zabezpieczaj¹ce zmienne systemowe
364
Opis funkcji, pól i zmiennych systemowych
$AccessLevel 21
$ChangePassword 25
$ConfigureUsers 25
$InactivityTimeout 28
$InactivityWarning 29
$Operator 32
$OperatorEntered 33
$PasswordEntered 34
Zestawienie funkcji SQL
ConnectionID Variable 258
ConnectString Variable 258
Komunikaty o b³êdach 352
ResultCode 352
SLQRollback 270
SQLAppendStatement 255
SQLClearParam 255
SQLClearStatement 255
SQLClearTable 256
SQLCommit 257
SQLConnect 258
SQLCreateTable 260
SQLDelete 261
SQLDisconnect 262
SQLDropTable 262
SQLEnd 262
SQLErrorMsg 263, 352
SQLExecute 263
SQLFirst 264
SQLGetRecord 264
SQLInsert 265
SQLInsertEnd 265
SQLInsertExecute 266
SQLInsertPrepare 266
SQLLast 267
SQLLoadStatement 267
SQLManageDSN 268
SQLNext 268
SQLNumRows 268
SQLPrepareStatement 269
SQLPrev 269
SQLSelect 271
SQLSetParamChar 274
SQLSetParamDate 274
SQLSetParamDateTime 275
SQLSetParamDecimal 275
SQLSetParamFloat 276
SQLSetParamInt 276
SQLSetParamLong 276
SQLSetParamNull 277
SQLSetParamTime 278
SQLSetStatement 278
SQLTransact 279
SQLUpdate 281
SQLUpdateCurrent 282
Zmienne systemowe
$AccessLevel 21
$AlarmPrinterError 22
$AlarmPrinterNoPaper 22
$AlarmPrinterOffline 23
$AlarmPrinterOverflow 23
$ApplicationChanged 24
$ApplicationVersion 24
$ChangePassword 25
$ConfigureUsers 25
$Date 26
$DateString 26
$DateTime 26
$Day 27
$HistoricalLogging 27
$Hour 28
$InactivityTimeout 28
$InactivityWarning 29
$LogicRunning 29
$NewAlarm 31
$ObjHor 31
$ObjVer 31
$Operator 32
$OperatorEntered 33
$PasswordEntered 34
$Second 34
$StartDdeConversations 34
$System 35