Ладно пора спать. Я наверно фигова объясняю
Ладно пора спать. Я наверно фигова объясняю
Я в разных циклах в один буфер читаю куски большого блока последовательно укладывая их, ничего оттуда не беру до признака окончания. И ничего не теряюИ это будет работать, потому что из буфера "заберут" все содержимое.
По протоколу ответ не может превышать 256 байт.
А если из буфера порта забрать меньше его содержимого, то происходит ПОТЕРЯ ДАННЫХ.
В modbus.lib сделано практически тоже самое.
У Вас теряется - см пост.19 ответ 1 (часть б)
Можно пример
См. исходник modbus.lib
Вдумайтесь
Я всегда недоедаю котлету. Я требую объяснить почему я голодный ?А если из буфера порта забрать меньше его содержимого, то происходит ПОТЕРЯ ДАННЫХ.
Валенок, пожалуйста приведи фрагмент кода чтения ответа, только с определениями переменных. Дался тебе ентот modbus.lib. Ты свой рабочий код покажи.
P.S. Вы в Овене работаете?
Просто я говорю " глючит " и выкладываю пример. Вы говорите все работает и примера не даете. А modbus.lib не в счет.
На форуме есть уже несколько тем с очень похожим содержанием, без ответа почему теряются байты.
Исходник не дам. Разве только пример с закрытой б-кой. Хотя примеры-выкладывал. В Овене не работаю - можете справится у них.
А что вы так против модбаса.либа - я вот его по косточкам разобрал, википедию почитал - и свой мастер сделал.
Я не против modbus.lib, прото мне сейчас не нужен. В проекте нужно сделать обмен с устройством по нестандартному протоколу. Modbus rtu использовал просто для примера. Если я сказал, что глючит обмен между ПЛК63 и шнайдеровским счетчиком, меня в техподдержке с ходу в сад послали. А так обмен между двумя овеновскими плк по modbus. Типа не отвертятся. Но ошибался. Кто-то заболел, контроллеров у них нет и т.д.