Не совсем понимаю, что имеется под словами "сегнетик меняет его на другой"
Думаю, если в NI OPC есть отдельный диапазон для строковых данных, то этот сервер либо модбас вообще не знает, либо не совсем с ним совместим. Дело в том, что строковых данных в модбасе нет. Только биты и шеснадцатибитные регистры.
Всякие реальные и длинные числа кодируются серией последовательных регистров, но это уже кто как делает, т.к. модбас никак это не описывает.
В модбасе есть два типа адресации: правильная и через диапазоны.
Выделяются четыре диапазона: входные биты, выходные биты, входные регистры, выходные регистры.
В правильной адресации тип данных определяется функциями чтения/записи, адреса в диапазоне 0..65535 (0000h..FFFFh).
В диапазонной тип данных определяется первой цифрой "адреса", сам адрес в десятичном виде в диапазоне 1..9999 - т.е. смещён на единицу от нормальных адресов. Плюс к этому, адреса выше 9999 недоступны.
Итого получается "псевдоадрес" вида 1xxxx, 2xxxx, 3xxxx и 4xxxx.
Часть серверов и устройств позводяют задавать диапазон не 1..9999, а 1..65536 - это сделано для того, чтобы охватить _весь_ диапазон адресов.
У них получается "псевдоадрес" вида 1xxxxx, 2xxxxx, 3xxxxx и 4xxxxx.
Если NI OPC не умеет задавать весь диапазон или переключаться в правильную адресацию, то это повод сменить сервер, благо их куча как платных, так и бесплатных
PS. SMH2010 и Pixel работают в правильной (реальной) адресации. Адреса в карте памяти - в шеснадцатиричном виде.