Тем что на мой взгляд муторно это, нужно разбирать весь поток, вылавливать ответы на команду записи одного регистра и только этот ответ править. Мне проще на питоне, джаве или опенскаде эмуляцию ваги реализовать.
Вид для печати
илиЦитата:
Ну нравится мне MS4D, нравится .
Ну так определитесь. За вас то не сможемЦитата:
Мне проще на питоне, джаве или опенскаде эмуляцию ваги реализовать.
Тык там почти не нужно, там поток четко "пакетизируется". Все условия-то по tcpЦитата:
нужно разбирать весь поток
if (от MS4D) & (размер = 12) & ([7] = 6) then swap [10] и [11]
а если попробовать в OPC UA ? MS4D ведь с ней работает. правда я не пробовал Modbus slave, который есть в RapidScada преобразовывать в OPC UA (надо будет попробовать). Ну и Modbus slave там правда платный от разраба.
В смысле не занимаясь разбором пакетов, просто as is так сказать.
И вероятно еще пересчитать CRC придется.
ну, тут палка о двух концах. Перевод в RTU в MS4D по справке указанием порта 0. и вот как оно там что формирует обратный пакет непонятно. При этом ошибка со слов и в TCP и в RTU режиме.
Возможно еще до расчета CRC, который либо считается либо нет при уже явном определении через что ответ (TCP или RTU)
какое RTU?
Запустил серверКод:открыл tcp-сервер
постучались в сервер -> открыл tcp-клиента в сторону MS4D
OnRecv из MS4D
если нужное -> swap //см. выше
отправил постучавшемуся
OnRecv от постучавшего
отправил в MS4D
OnDisconnect от MS4D
close постучавшемуся
OnDisconnect постучавшего
close для MS4D
Настроил на него "аппаратно-программный комплекс (иностранного производства)"
Всё
выше AlexF проверил через COM порт в том числе https://owen.ru/forum/showthread.php...l=1#post470121Цитата:
какое RTU?