Модифицирование редактора пользовательского драйвера
При обработке канала МРВ вызывает драйвер, соответствующий его дополнению к подтипу. При этом драйверу через структуру IA (см. заголовочный файл) передается удаленный адрес. В нем указываются данные, которые надо запросить у контроллера, или переменная контроллера, в которую надо переслать значение канала.
Удаленный адрес включает в себя шесть байт. Его можно разбить на несколько полей (до шести). Каждое поле может включать в себя один или два байта. Значения полей формируются атрибутами переменной, с которой связан канал вызова драйвера. Возможные сочетания разрядности атрибутов образуют 4 разновидности драйверов t11 и t12 (отличия драйверов TCOM5 и TCOM6 описаны в разделе Драйверы t11 и t12 ):
Вид драйвера |
Атрибут 1 |
Атрибут 2 |
Атрибут 3 |
Атрибут 4 |
Атрибут 5 |
Атрибут 6 |
1 |
BYTE |
BYTE |
WORD |
WORD |
- |
- |
2 |
BYTE |
BYTE |
WORD |
BYTE |
BYTE |
- |
3 |
BYTE |
BYTE |
BYTE |
BYTE |
WORD |
- |
4 |
BYTE |
BYTE |
BYTE |
BYTE |
BYTE |
BYTE |
Наименования разработанных драйверов t11 и t12 в соответствии с %TRACE MODE% \ Drivers_with_Setup \ drivers.txt должны быть следующими:
Вид драйвера |
t11 |
t12 |
1 |
t11s27.dll |
t12s4.dll, media4.dll |
2 |
t11s28.dll |
t12s5.dll, media5.dll |
3 |
t11s29.dll |
t12s6.dll, media6.dll |
4 |
t11s30.dll |
t12s7.dll, media7.dll |
К системе можно подключить только по одному пользовательскому драйверу каждого вида.
В редакторе переменной разрядность атрибутов указана:
Два младших байта структуры IA (IA.c[0] и IA.c[1]) влияют также на формирование блоковых (групповых запросов). Каналы, у которых совпадают одновременно тип, подтип, дополнение к подтипу и два младших байта удаленного адреса, группируются в один блок (группу). Если хотя бы один параметр не совпадает, канал не попадает в данный блок. Это нужно учитывать при разработке структуры удаленного адреса для конкретного контроллера.
Модифицирование редактора пользовательского драйвера
Редактор пользовательского драйвера может быть модифицирован с помощью файла, располагаемого в директории ИС:
t11s27.frm…t11s30.frm (соответственно для драйвера t11 типа 1…4);
t12s4.frm…t12s7.frm (соответственно для драйвера t12 типа 1…4).
Файл *.frm имеет текстовый формат (UTF-8) и состоит из строк описания имен атрибутов и способов их задания. Строка имеет следующий формат:
nField = "fieldName", fieldInputType;
где
nField – адрес атрибута в массиве однобайтных параметров в структуре удаленного адреса, начиная с 0 (0...5), или специальный адрес 7;
fieldName – имя атрибута,
fieldInputType – способ задания значения атрибута:
0 – ввод 1-байтового числа в формате DEC;
2 – ввод 2-байтового числа в формате DEC;
1 – ввод 1-байтового числа в формате HEX,
3 – ввод 2-байтового числа в формате HEX,
4 – выбор значения из списка,
5 – ввод строки (только для специального адреса 7).
Список значений для выбора из раскрывающегося меню задается после указания способа задания (4) в следующем формате:
("type1"=1, "type2"=2, … … "type5"=5)
Элементы списка разделяются запятой, в кавычках указывается строка для отображения, а число задает значение, записываемое в структуру удаленного адреса. Если число не указано, он равно предыдущему числу, увеличенному на 1. Если число не задано для первого элемента списка, оно принимается равным 0.
Специальное значение nField = 7 соответствует строковому атрибуту (в отсутствие файла *frm этот атрибут имеет имя Дополнительно).
В качестве примера разместим в директории ИС следующий файл t11s27.frm:
0 = "Порт", 0;
1 = "Устройство", 1;
2 = "Адрес", 2;
4 = "Запрос", 4 ("тип1"=1, "тип2", "тип5"=5);
7 = "Строковый параметр", 5;
Редактор драйвера t11 типа 1 примет следующий вид (ср. с редактором по умолчанию, показанным выше):