Устройство - МВ110-224.16ДН
Сетевой адрес устройства: 0х38 (56dec)
Запрос параметра: r.Cn (нигде, кстати, не указано, что для хеш-свертки этого параметра надо добавить пробел. нашли методом "научного тыка")
У нас формируется следующая последовательность байтов: 0x38, 0x10, 0x2D, 0x26
CRC этого пакета: 0x1A80 (используя тот же алгоритм, что и для хеш-свертки)
При кодировании в символы получается следующая последовательность: JOHGITIMHQOG (начало и конец пакета я опустил)

CRC, формируемый вашей программой "Конфигуратор М110" почему-то PNSN.
Мы не можем уяснить, с какого пакета вы берете CRC, чем они у нас отличаются?
Т.е. у нас пакет запроса выглядит как JOHGITIMHQOG, а ваш JOHGITIMPNSN. Как?
Почему HASH параметра совпадает, а CRC разнятся, если они вычисляются по одному и тому же алгоритму?

Может, есть бОлее новое описание протокола ОВЕН? Мы использовали это: http://www.owen.ru/uploads/type_prot_owen.zip

485я сеть подключена к компьютеру:
Компьютер -> RS-232 -> автомат.конвертор (232 <-> 485) -> 485 сеть -> модули. Вышеуказанный ваш конфигуратор отлично работает по этой сети, а моя программа (Delphi) ну никак. стали анализировать пакеты вашего программатора, и возникли вопросы по расчету CRC.

На всякий случай приведу листинг фунции, рассчитывающей HASH и CRC:

function oHASH(m: array of byte): word;
// функция расчета HASH-свертки по ОВЕНу
type Tword_s = record
case boolean of
True: (bw: word);
False: (bb: array [0..1] of byte);
end;

var i,j: integer; // cycle
tmp1, tmp2: byte;
tmp3: Tword_s;
begin
Result:=0;
for i:=0 to High(m) do
begin
tmp1:=m[i];
for j:=0 to 6 do
begin
tmp1:= tmp1 shl 1;
tmp3.bw:=Result;
tmp2:=tmp3.bb[1] xor tmp1;
if (tmp2 and $80)>0 then Result:=(Result shl 1) xor $8F57 else Result:=Result shl 1;
end;
end;
end;