я это понимаю, ответ тоже Modbus, просто не такой, как ожидалось :) Интересно, слейвом в MS4D никто не пользуется с версии 1.2? и никто не выкатил ранее в баг репорт и никто не исправил?
Вид для печати
я это понимаю, ответ тоже Modbus, просто не такой, как ожидалось :) Интересно, слейвом в MS4D никто не пользуется с версии 1.2? и никто не выкатил ранее в баг репорт и никто не исправил?
Да все это проверялось, более того если послать значение которое при перемене байт не меняет значение то обмен проходит без ошибок например если послать 55 55 55 55 или 01 01 01 01. Это почти однозначная ошибка в реализации протокола (ну может быть есть некая не описанная в документации настройка, но я честно в этом сомневаюсь) и существует она несколько лет с версии 1.2.
Тут ситуация вот какая, есть аппаратно-программный комплекс (иностранного производства). В данном комплексе есть своя среда разработки с поддержкой определенного набора устройств. Нужно включить в работу устройство не из этого списка. Среди поддерживаемого оборудования есть WAGO 750-362. Вот только ПО этого комплекса не использует для записи команду 16, а только 6.
Ну так этот "аппаратно-программный комплекс (иностранного производства)" всегда будет говорить что запрос битый. Вы знаете его дальнейшую логику (переповторять до усрачки/положить болт/....)?
Но раз вы просто эмулируете вагу для проверки, исходите из того что вага - норм, а на эмулятор на МS4D сами кладите болт.
Если же эта МS4D как эмулятор чем-то так мила, но с 6-й сложно эмулировать - сделайте прозрачную прокладку которая ответ на ф.6 приводит в нужный вид.
Именно так и происходит, 10 попыток записи и БОЛТ (не шмогла я), 10 раз запись разных значений и ПОЛНЫЙ БОЛТ на устройство (да ну его нафиг) :) .
В 20-21-ом году обошел проблему тем что установку значений перенес в MS4D а в зарубежном ПО оставил только чтение. В этот раз решил немножко заморочиться. Открыл запрос в ТП и спросил на форуме (прикольная дискуссия получилась :) ). А вариантов решения есть целых три Python, Java и OpenScada (это те которые на тестовом проекте проверены и работают)
Ну нравится мне MS4D, нравится :) .
С прослойкой на уровне tcp заморачиваться лениво, а вот идею вы подали - использовать для обмена COM-порт. Это надо обдумать.
ну и чем вам прослойка не угодила? ну по крайней мере до момента исправления проблемы как минимум.