Для конфигурации используются два файла:
termodatopc.exe.port.cfg
termodatopc.exe.tag.cfg
Файлы считываются в момент запуска процесса termodatopc.exe и потом процессом не используются.
Файлы ищутся в той же папке откуда запускается termodatopc.exe .
Файлы считываются как текстовые в 8-битной кодировке ASCII.Добускаются только символы
младшей половины таблицы ASCII. Перевод строки считается пробельным символом. Несколько
пробельных символов подряд считаются за один пробел.
Назначение файлов конфигурации следующее
termodatopc.exe.port.cfg определяет настройки и название порта для связи с прибором.
termodatopc.exe.tag.cfg определяет опрос регистров прибора и названия тэгов OPC.
Содержание файлов конфигурации.
Конфигурация порта.
termodatopc.exe.port.cfg содержит одну строку в формате консольной
команды mode для последовательного порта. Указание устройства обязательно
и делается в верхнем регистре.
Вот пример:
COM4:baud=9600 stop=1 parity=N data=8
Конфигурация тэгов OPC и опроса регистров.
Файл не является файлом XML.
Синтаксис файла такой:
блок_запроса
блок_запроса
...
блок_запроса
количество блоков запроса не нулевое
далее. блок_запроса имеет следующий синтаксис:
регистры_modbus
...
регистры_modbus
здесь обозначены:
сетевой_адрес - число. Адрес прибора в сети modbus.
период_опроса - число. Время между последовательными опросами указанных здесь
регистров в миллисекундах.
регистры_modbus - см. ниже.
количество регистров должно быть не нулевое. Кроме того, стоящие друг за другом регистры должны
располагаться непрерывно в адресах modbus без разрывов и наложений. Максимальный размер суммарного
количества регистров в одном блоке запроса определяется возможностями прибора. В том смысле, что
один блок запроса конфигурации предписывает программе получать указанные регистры за один пакет
протокола modbus.
регистры_modbus это одиночный_регистр или блок_регистров
одиночный_регистр имеет синтаксис:
адрес_регистра - адрес в пространстве регистров modbus прибора. Может быть задан в десятичной нотации
или в шестнадцатиричной с префиксом 0x. Примеры: 1 2 0xa0 .
название_тэга - идентификатор тэга OPC. Латинские буквы или символы младшей половины ASCII.
идентификаторы должны быть уникальны внутри всего файла после приведения к одному регистру символов.
Т.е., например, два тэга с одним идентификатором не допускаются. И таги t и T в одном файле не допускаются.
блок_регистров имеет синтаксис:
блок_регистров сделан для сокращённой записи вместо указания нескольких однотипных регистров подряд.
Эквивалентно указанию нескольких SingleReg подряд.
Пример:
создаст следующие одиночные регистры:
имя тэга адрес регистра
rtc_100 0x140
rtc_101 0x141
rtc_102 0x142
У каждого блока запроса время и адрес устройства задаются независимо.