Формат файлов конфигурации
Файл представляет собой набор символов ASCII с разделителями (текстовый файл).
Разделителями строк являются символы chr(10), которые могут дополняться символом chr(13).
Файл состоит из секций, каждая секция имеет свой формат данных.
Разделителями секций являются строки с названием секции. Название секции заключено в квадратные скобки. В строке названия секции никакие дополнительные символы недопустимы.
Каждая секция состоит из строк.
Каждая строка состоит из полей. Разделителями между полями является символ ?|?.
Поле может состоять из дополнительных полей, разделителями между которыми является символ ?;?.
Некоторые предусмотренные форматом поля, могут содержать пустую строку или прочерк ?-? и тогда значение этого поля устанавливается из правил подстановки по умолчанию.
Секция может быть разделена на подсекции, в этом случае разделителем подсекций является строка, первым полем которой является символ ?$?
Формат секций файлов конфигурации
[port]
Содержит строку настройки порта связи с контроллером.
Таблица Формат строки
|
№ |
Наименование поля |
Примечание |
|
|
1 |
номер порта |
Десятичное целое число |
|
|
2 |
скорость передачи |
Десятичное целое число |
|
|
3 |
проверка четности |
Один из символов: e - контроль четности, o - контроль нечетности, n - нет контроля четности. |
[modbus]
Содержит строку настройки протокола Modbus.
Таблица Формат строки
|
№ |
Наименование поля |
Примечание |
|
|
1 |
время ожидания в мс |
Десятичное целое число |
[limit]
Содержит список пределов для переменных.
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Наименование |
Строка |
|
|
2 |
Нижний предел физической величины |
Число с пл. зап. |
|
|
3 |
Верхний предел физической величины |
Число с пл. зап. |
|
|
4 |
Нижний предел кода modbus |
Целое число 0…65535 По умолчанию = 0 |
|
|
5 |
Верхний предел кода modbus |
Целое число 0…65535 По умолчанию = 4095 |
Поля 4 и 5 (пределы кода modbus) имеют смысл только в постоянной части конфигурации (в файле Pult_hrd.txt).
Пример 1:
В файле Pult_hrd.txt имеется строка:
ABCD|-50|150|1000|10000
В файле Pult_flx.txt имеется строка:
ABCD|-55|170|123|543
Это означает, что пределы физической величины "ABCD" -55..170, а минимальное и максимальное значение кодов modbus равно 1000 и 10000.
Пример 2:
В файле Pult_hrd.txt нет строки для ABCD.
В файле Pult_flx.txt имеется строка:
ABCD|-55|170
Это означает, что пределы физической величины "ABCD" -55..170, а минимальное и максимальное значение кодов modbus равно 0 и 4095.
[var]
Содержит описание связи переменных с данными от контроллеров (адресами modbus).
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Имя переменной |
Строка |
|
|
2 |
Адреса чтения |
Строка адреса |
|
|
3 |
Адреса записи |
Строка адреса |
|
|
4 |
Обозначение переменной |
Строка |
|
|
5 |
Обозначение единицы измерения |
Строка |
|
|
6 |
Предел |
Строка |
|
|
7 |
Количество знаков после запятой |
целое число |
Каждая переменная содержит 16-ти разрядное слово, которое может иметь связь либо с одним адресом ссылки 3x/4x либо с несколькими адресами ссылки 1x/0x.
Примеры:
Строка
IXXXPV|10:30010|10:40010
Означает, что переменная IXXXPV читается из контроллера с адресом 10 из массива данных 3x по ссылке 10 и записывается в массив 4x по ссылке 10
Строка
SXXXPV|3:10025;3:10026|-
Означает, что переменная SXXXPV читается из контроллера с адресом 3 из массива данных 1x по ссылкам 25 и 26. Первым указывается младший бит. Запись в контроллер не осуществляется (прочерк).
Строка
UXXXK|5:10033|5:33
Означает, что переменная UXXXK читается из контроллера с адресом 5 из массива данных 1x по ссылке 33. Запись в контроллер с адресом 5 в массив данных 0x по ссылке 33.
Формат адреса:
PCU:addr
Где PCU - число или переменная, значение которой равно адресу контроллера
addr - число или переменная, значение которой вычисляется по формуле:
массив*10000+ссылка
16-разрядное слово при выводе значения переменной на экран преобразуется в формат числа с плавающей запятой в соответствии с пределами, указанными в поле №6 предел по линейному закону.
Количество знаков после запятой - необязательный параметр. При его отсутствии количество знаков после запятой рассчитывается программой автоматически.
[color]
Содержит список используемых цветовых контентов.
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Имя контента |
Строка |
|
|
2 |
Цветовой код |
Десятичное целое число Вычисляется по формуле: B*65536+G*256+R |
[str]
Содержит список используемых строковых контентов.
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Имя контента |
Строка |
|
|
2 |
Текст |
Строка |
[bmp]
Содержит список используемых растровых изображений (bmp - контентов).
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Имя контента |
Строка |
|
|
2 |
Имя файла |
Строка Содержит полное имя файла (с указанием каталога) |
[seq]
Содержит список используемых секвенций (последовательностей).
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Имя секвенции |
Строка |
|
|
2 |
Имя контента |
Строка |
|
|
3 |
Имя контента |
Строка |
|
|
4 |
… |
Строка |
Первый контент соответствует состоянию «недостоверность», когда значение переменной не определено (например когда отсутствует связь с контроллером).
Второй и последующие контенты соответствуют значениям переменной от нуля и выше. Последний контент соответствует всем значениям переменной, превышающим количество контентов в секвенции.
[rect]
Содержит описание используемых боксов.
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Имя |
||
|
2 |
Фоновые контенты |
||
|
3 |
Цветовые контенты |
||
|
4 |
Текстовые контенты |
||
|
5 |
Выравнивание |
||
|
6 |
Толщина рамки |
Десятичное целое число 0 - означает, что рамка отсутствует |
Фоновые контенты - ссылка на секвенцию или контент, используемые для изображения фона
Цветовые контенты - ссылка на секвенцию или контент, используемые для цвета текста
Текстовые контенты - ссылка на секвенцию или контент, используемые для изображения текста
[font]
Список используемых шрифтов.
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Имя |
Строка |
|
|
2 |
Системное имя шрифта |
Строка |
|
|
3 |
Ширина |
Десятичное целое число |
|
|
4 |
Высота |
Десятичное целое число |
|
|
5 |
Курсив |
0 или 1 |
|
|
6 |
Жирность |
0 или 1 |
[action]
Список действий, определенных в программе.
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Имя |
Строка |
|
|
2 |
Условие |
Строка |
|
|
3 |
Действие при выполнении условия |
Строка |
|
|
4 |
Действие при невыполнении условия |
Строка |
Поля 3 и 4 могут подразделяться на дополнительные поля.
[stamp]
Описание специальных составных фреймов - шаблонов
Шаблон имеет в своем составе комбинацию фреймов, будучи описанным один раз он получает формат ввода своих параметров и после этого может отображаться на экране как единый элемент без перечисления всех своих составных частей.
Для описания каждого шаблона секция stamp делится на подсекции.
Формат первой строки подсекции - описания шаблона.
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Символ разделителя подсекции |
Символ ?$? |
|
|
2 |
Имя шаблона |
Строка |
Следующие строки подсекции содержат описание фреймов в том же виде, что и в секции frames, но координаты левой верхней точки указываются относительно точки привязки (обычно x=0; y=0) и с возможностью подстановки текста из перечня параметров.
[dialog]
Описание диалоговых окон, используемых в программе, оно содержит описание элементов, присутствующих в этом окне (аналогично секции stamp)
Для описания каждого диалогового окна секция dialog делится на подсекции.
Формат первой строки подсекции - описания диалога.
Таблица Формат записи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Символ разделителя подсекции |
Символ ?$? |
|
|
2 |
Имя диалога |
Строка |
|
|
3 |
Координата левой точки |
Десятичное целое число |
|
|
4 |
Координата верхней точки |
Десятичное целое число |
|
|
5 |
Ширина |
Десятичное целое число |
|
|
6 |
Высота |
Десятичное целое число |
|
|
7 |
Название диалога |
Строка |
|
|
8 |
Действие |
Строка |
Следующие строки подсекции содержат описание фреймов в том же виде, что и в секции frames, но с возможностью подстановки текста из перечня параметров.
[form]
Cодержит описание фреймов и ссылок на шаблоны для формирования графического интерфейса оператора.
Последовательность описания фреймов в этой секции определяет порядок вывода их на экран.
Таблица Формат строки описания фрейма
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Тип фрейма |
Десятичное целое число |
|
|
2 |
Координата левой точки |
Десятичное целое число |
|
|
3 |
Координата верхней точки |
Десятичное целое число |
|
|
4 |
Ширина |
Десятичное целое число |
|
|
5 |
Высота |
Десятичное целое число |
|
|
6 |
Условие видимости |
Выражение условия |
|
|
7 |
Условие выделения |
Выражение условия |
|
|
8 |
Шрифт нормального состояния |
||
|
9 |
Шрифт выделенного состояния |
||
|
10 |
Бокс |
Строка |
|
|
11 |
Переменная фона |
Строка |
|
|
12 |
Переменная цвета |
Строка |
|
|
13 |
Переменная текста |
Строка |
|
|
14 |
Статический текст |
Строка |
|
|
15 |
Действие при нажатии |
Строка |
|
|
16 |
Параметры действия при нажатии |
Строка |
Тип фрейма служит для указания программе особенностей при отображении. Так при выводе на экран фрейма с типом 0 (фон) из области рисования извлекаются прямоугольники, в которых будут выведены другие фреймы. Это позволяет исключить эффект мерцания. При выводе на экран изображения фрейма с типом 8 (кнопка) применяется «эффект объемности»: кнопка в нажатом состоянии изображается «утопленной», в не нажатом - «выпуклой».
Условие видимости - это запись условия, при выполнении которого данный фрейм отображается на экране. В противном случае фрейм не отображается. Условие выделения - это запись условия, при выполнении которого данный фрейм отображается как выделенный. В противном случае фрейм отображается как обычный. Шрифт нормального состояния - шрифт, описанный в секции font, который используется для вывода текста фрейма на экран, если не выполняется условие выделения.
Шрифт выделенного состояния - шрифт, описанный в секции font, который используется для вывода текста фрейма на экран, если выполняется условие выделения. Бокс - имя бокса, описанного в секции rect, определяет все возможные варианты вывода на экран данного фрейма
Переменная фона - имя переменной, значение которой определяет подстановку фонового контента при выводе фрейма на экран.
Переменная цвета - имя переменной, значение которой определяет подстановку цветового контента при выводе фрейма на экран.
Переменная текста - имя переменной, значение которой определяет подстановку текстового контента при выводе фрейма на экран.
Статический текст - текст, используемый для вывода на экран в случае, если не указан текстовый контент. Действие при нажатии - строка, содержащая последовательность действий, выполняемых программой при нажатии на фрейм Параметры действия при нажатии - строка, содержащая список подстановок для действия при нажатии
Таблица Формат строки ссылки на шаблон
|
№ |
Наименование поля |
Примечание |
|
|
1 |
Имя шаблона |
Строка |
|
|
2 |
Координата левой точки |
Десятичное целое число |
|
|
3 |
Координата верхней точки |
Десятичное целое число |
|
|
4 |
Параметры |
Строка |
Имя шаблона - имя используемого шаблона из секции stamp
Координата левой точки - горизонтальная координата точки привязки
Координата верхней точки - вертикальная координата точки привязки
Параметры - список подстановок для формирования строк
Тип фрейма - десятичное целое число, определяющее назначение фрейма:
- 0 - фрейм используется как фон, на котором находятся другие фреймы.
- 1 - обычный фрейм.
- 8 - кнопка.
Формат записи условий
V=D - условие выполняется, если значение переменной V равно D
V>D - условие выполняется, если значение переменной V больше D
V<D - условие выполняется, если значение переменной V меньше D
V!D - условие выполняется, если значение переменной V не равно D
[start]
Cодержит последовательность действий с параметрами, которые программа выполняет во время запуска (однократно).
Таблица Формат строки описания действия
|
№ |
Наименование поля |
Примечание |
|
|
1 |
действие |
Строка |
|
|
2 |
параметры |
Строка |
[task]
Cодержит последовательность действий с параметрами, которые программа выполняет периодически в процессе работы.
Таблица Формат строки описания задачи
|
№ |
Наименование поля |
Примечание |
|
|
1 |
период |
Целое число |
|
|
2 |
действие |
Строка |
|
|
3 |
параметры |
Строка |
Первое поле задает периодичность выполнения задачи в мс
Таблица Список зарезервированных обозначений
|
Обозначение |
Тип |
Пояснение |
|
|
exit |
действие |
Закрывает текущее верхнее окно программы |
|
|
edit |
действие |
Вызывает окно редактирования значения переменной |
|
|
editMax |
действие |
Вызывает окно редактирования максимального предела переменной |
|
|
editMin |
действие |
Вызывает окно редактирования минимального предела переменной |
|
|
dev_on_X |
действие |
Включает опрос контроллера с адресом X |
|
|
dev_off_X |
действие |
Выключает опрос контроллера с адресом X |
|
|
value |
контент |
Значение переменной |
|
|
valMin |
контент |
Минимальный предел значения переменной |
|
|
valMax |
контент |
Максимальный предел значения переменной |
|
|
valName |
контент |
Наименование параметра |
|
|
valUnits |
контент |
Единицы измерения параметра |
|
|
red |
контент |
Красный цвет |
|
|
green |
контент |
Зеленый цвет |
|
|
blue |
контент |
Синий цвет |
|
|
white |
контент |
Белый цвет |
|
|
silver |
контент |
Светло-серый цвет |
|
|
black |
контент |
Черный цвет |
|
|
dev_Ok |
переменная |
Связь с контроллером. Значение 0 - отсутствие связи; 1 - наличие связи. |
|
|
AutoAction |
действие |
Выполняется при любом «клике» мышью |
|
|
cancel |
действие |
Закрывает все открытые диалоги, оставляет только основное окно программы |