SCADA (663313), страница 6
Текст из файла (страница 6)
Описание некоторых функций этого списка приведено в табл. 5.1.
|
Каждая строковая функция имеет один или несколько аргументов (до 6). Например, синтаксис функции StringFromReal выглядит следующим образом:
StringFromReal(Number,Precision,Type);
- Number - конвертируемая вещественная величина;
- Precision - количество десятичных знаков;
- Type - тип формата ( "f", "e", "E").
Например,
функция StringFromReal(263.365, 2, "f") возвращает "263.36";
функция StringFromReal(263.365, 2, "e") возвращает "2.63e2";
функция StringFromReal(263.55, 3, "E") возвращает "2.636E2".
Функция Text имеет два аргумента: Text(Analog_Tag, "Format_Text");
- Analog_Tag - вещественное или целое число;
- Format_Text - формат преобразования.
Если указанный формат функции Text - "#0.00", то:
- при Analog_Tag = 66 функция возвращает 66.00;
- при Analog_Tag =22.269 функция возвращает 22.27;
- при Analog_Tag =9.999 функция возвращает 10.00.
-
Щелчок по клавише Math... вызывает появление диалога Choose function (выбор функции) со списком математических функций.
Математические функции работают с целыми и вещественными аргументами, выдавая целый или вещественный результат. В левой части оператора присваивания допускается указывать и целые переменные. Однако необходимо иметь ввиду, что преобразование вещественного значения в целое может привести к усечению результата.
-
Системные функции делятся на две категории: файловые (File) и для работы с Windows - приложениями (Info).
Файловые функции предназначены для считывания и записи информации в файлы. У всех файловых функций есть два общих аргумента - Filename и FillOffset. Аргумент Filename (имя файла) хранит имя файла, из которого должна быть считана или в который должна быть записана информация (имя также должно включать и путь к файлу). Аргумент FillOffset (смещение в файле) задает относительную позицию в файле, начиная с которой будут читаться или записываться данные. Смещение задается в байтах от начала файла. Первый байт файла имеет смещение 0. После завершения каждая функция возвращает следующее доступное смещение в файле. Например, если функция читает 5 байтов данных, начиная с 10-го байта, то после завершения функция возвратит 15. Некоторые встроенные функции группы System приведены в табл. 5.2.
|
Остальные аргументы файловых функций не поддаются типизации и различны для каждой функции.
Например, функция FileReadFields имеет четыре аргумента и следующий синтаксис:
FileReadFields(Filename,FileOffset,StartTag,NumberOfFields);
- StartTag - идентифицирует первый элемент в имени InTouch-переменной;
- NumberOfFields - идентифицирует число полей для чтения.
-
Группа функций Miscellaneous (клавиша Misc...) включает функции для работы с алармами распределенных систем, трендами, печатью и др.
В этой широкой (с точки зрения назначения функций) группе можно выделить несколько более узко специализированных подгрупп. Функции, название которых начинается с alm, используются только в распределенных системах алармов. Некоторые из них приведены в табл.5.3.1.
|
Первым аргументом всех встроенных функций алармов является ObjectName (имя объекта алармов). Часто в роли одного из аргументов выступает Comment (комментарий). Например, функция almAckSelect имеет следующий синтаксис: almAckDisplay(ObjectName,Comment); .
Функции, название которых начинается с HT, используются только с архивными трендами. Примеры таких встроенных функций - в табл.5.3.2.
|
Встроенные функции для работы с архивными трендами также могут иметь несколько аргументов (до четырех). Функции, приведенные в табл. 5.3.2, имеют следующий синтаксис:
- HTGetPenName(Hist_Tag, UpdateCount, PenNum);
- HTGetValue(Hist_Tag,UpdateCount,PenNum,ValType_Text);
- HTScrollLeft(Hist_Tag,Percent);
- HTSetPenName(Hist_Tag,PenNum,Tagname);
- HTZoomIn (Hist_Tag,LockString).
Первый аргумент всех встроенных функций для работы с трендами - Hist_Tag (имя тренда). Из других аргументов следует отметить PenNum (номер пера тренда), ValType_Text (строка, указывающая тип возвращаемого значения), Tagname (новое имя пера).
Функции, название которых начинается с wc (табл.5.3.3), используются с управляющими объектами окна (простые списки, текстовые окна, ниспадающие списки и т. д.)
|
Функции этой подгруппы также могут иметь до четырех аргументов:
- wcDeleteItem("ControlName", ItemIndex);
- wcInsertItem("ControlName", ItemIndex, "MessageTag");
- wcLoadText("ControlName", "Filrename");.
Первый аргумент всех встроенных функций этой подгруппы - ControlName (имя управляемого окна). Часто в качестве аргумента используются ItemIndex (номер, соответствующий позиции элемента), MessageTag (строковое сообщение), Filrename (имя файла в формате ASCII).
В рассматриваемой группе функций Miscellaneous следует отметить функцию PrintWindow, i?aaiacia?aiioю для печати окна. Ее синтаксис выглядит следующим образом:
PrintWindow("Window",Left,Top,Width,Height,Options);,
где:
- Window - имя окна;
- Left - число дюймов от левого края;
- Top - число дюймов от верхнего края;
- Width - ширина распечатываемого окна;
- Height - высота распечатываемого окна;
- Options - дискретные значения 0 или 1.
Вставка встроенных функций в скрипт производится щелчком по выбранной функции в списке функций. Она вместе со своими аргументами будет автоматически вставлена в текст скрипта в точку, указанную курсором. После этого можно отредактировать список аргументов.
По окончании редактирования скрипта следует нажать кнопку Ok. При обнаружении в скрипте каких-либо ошибок на экран будет выведено соответствующее сообщение. В большинстве случаев курсор установится в ту позицию, которая привела к появлению ошибки. Прежде чем скрипт будет сохранен, все ошибки должны быть исправлены.
Функции Quick Functions
Quick Functions - это скрипты, которые могут вызываться из других скриптов и использоваться в выражениях при определении динамических свойств объектов. Скрипты Quick Functions хранятся внутри того приложения, в котором они были созданы, и могут многократно использоваться в других скриптах InTouch.
Наиболее часто эти функции используют в выражениях при определении динамических свойств объектов. Чем это вызвано? Дело в том, что длина выражения в поле Expression диалогов определения динамических свойств объектов должна быть не более 256 символов. Это относится к таким динамическим свойствам, как цвет линии, цвет заполнения, изменение высоты и ширины, вертикальное и горизонтальное перемещение, вертикальное и горизонтальное заполнение, видимость, мерцание, ориентация, блокировка.
Для ввода более длинных выражений можно воспользоваться функциями Quick Functions. При этом выражение в поле Expression должно содержать операторы CALL вызова функций Quick Functions, каждая из которых, в свою очередь, должна иметь в качестве последнего оператора RETURN для возврата результата в вызывающее выражение. Организованное таким образом выражение может содержать многие тысячи символов и быть сколь угодно сложным.
Сохраненная функция Quick Functions может быть использована в любом другом скрипте или выражении.
Quick Functions могут быть синхронными и асинхронными скриптами. Синхронные скрипты выполняются последовательно, в то время, как после запуска одного асинхронного скрипта может быть запущен другой (синхронный или асинхронный) скрипт. Это позволяет отделять исполняющиеся довольно долго операции (типа обращений к базам данных) от основной программы. Асинхронные скрипты не могут возвращать результаты. Поэтому в качестве скриптов Quick Functions, используемых в выражениях (Expression) для определения динамических свойств объектов, следует применять только синхронные скрипты.
Создание скриптов Quick Functions осуществляется в диалоговом окне редактора Quick Functions. Вызов этого диалога на экран в окне WindowMaker производится в командой Special/Scripts с последующим нажатием на строке Quick Functions.
Список Name содержит имена всех определенных к данному моменту скриптов Quick Functions. Щелчок по имени скрипта выводит его текст в рабочее поле диалога.