Уважаемый tyrex!1. В базе каналов Трейс Моуд 5.0 используются только 2 формата: 2-байтовый HEX и 4-байтовый FLOAT. Работать с 4-байтовыми целыми числами в Трейс Моуд нельзя.
В соответствии с описанными в документации алгоритмами обработки запросов
"3. Для найденного канала анализируется элемент p[ind].F.fmt[1] структуры RSDATA. Значение этого элемента определяет следующие действия:
0 – присвоить входу канала значение элемента p[ind].V.v структуры RSDATA;
1 – сформировать для канала признак аппаратной недостоверности.".
Отсюда следует, что принимаемое от драйвера значение интерпретируется как float и в зависимости от типа принимающего канала в базе результат записывается в канал в соответствующем формате.
Если получаемый от контроллера 4-байтовый ответ содержит упакованные дискретные сигналы, его следует просто разложить на 2 канала HEX.
Если это 4-байтовое число в формате float, надо объявить тип приемного канала F и записать принятое число в него без преобразований.
Если это 4-байтовое целое, то Вам придется все равно разбивать его на 2 канала, а затем преобразовывать его уже математическими средствами Трейс Моуд в число формата float (одинарный), возможно,не без потери точности. Если точность должна быть сохранена, придется работать с двумя числами - "старшие разряды" и "младшие разряды".
2. В описании алгоритма вызова драйвера (а не в примерах) указано:
"Если канал типа OUTPUT, то p[0].F.fmt[3]=1;.... Если канал типа INPUT, то p[0].F.fmt[3]=0."
3. В разделе "НАСТРАИВАЕМОЕ ПОДКЛЮЧЕНИЕ ДРАЙВЕРОВ/Описание настроек канала для связи с контроллером" указано:
"При обработке канала подтипа КОНТР_1 или КОНТР_2 МРВ вызывает драйвер, соответствующий их дополнению к подтипу. При этом драйверу передается удаленный адрес. В нем указываются данные, которые надо запросить у контроллера, или переменная контроллера, в которую надо переслать значение канала.
Удаленный адрес включает в себя шесть байт. Его можно разбить на несколько полей (до шести). Каждое поле может включать в себя один или два байта (для каналов подтипа КОНТР_1 первая настройка является номером последовательного порта и может быть только однобайтовой). Формирование значений полей удаленного адреса осуществляется с помощью настроек канала. У каналов подтипов КОНТР_1 и КОНТР_2 с помощью канала подтипа Объект с дополнением Изм. базу можно менять значение двух младших байтов удаленного адреса."
Возможно, Вы работаете со старой редакцией документации и там это отражено неполно.
4. Более подробного описания структур RSDATA и FOUR_BYTE, чем приведено в документации в разделе "ДРАЙВЕР ОБМЕНА ПО ПОСЛЕДОВАТЕЛЬНОМУ ИНТЕРФЕЙСУ/Стандартный заголовок", у нас нет. Это описание исчерпывающе.
Не упомянутые в описании драйвера структуры, приведенные в СТАНДАРТНОМ ЗАГОЛОВКЕ, могут применяться пользователями по их усмотрению.