Aleksander8, вижу, что и в собственном блоге опубликовали новость.
Периодически пользуюсь самодельными утилитами на FreePascal с помощью библиотеки Synaser (https://www.ararat.cz/synapse/doku.php/download). Набор подпрограмм, примерно, похожий на предлагаемый в Вашей библиотеке.
Задачи примерно следующие - сканирование сети по всем (или диапазону) регистрам, по всем адресам, перебор настроек порта.
Смысл - на объекте с неизвестной аппаратурой узнать настройки соединения, адреса приборов, доказать их неисправность.
Да, существует какая-то очень хорошая программа - за деньги. Но её нужно украсть и изучить. А самодельные утилиты уже есть и их нужно лишь подогнать под ситуацию и получить лог работы.
Это к тому, что кроме принятых-отправленных байт требуется ещё и обработка ошибок - таймаут (совсем нет ответа), ошибка приёма пакета от прибора, ошибки обращения к прибору (нет регистра с таким номером и прочее). И именно значения из принятых регистров не сильно нужны - только реакция Slave на команду.
Как и какие ошибки обрабатываете? Как узнать, что прибор не ответил? Что он ответил отказом (из-за номера функции или адреса регистра)? И прочие ошибки... Вижу, что имеется какая-то функция Err.LastDllError - но что в её ответе?
Также, все функции из библиотеки возвращают значение, которое не используется в примерах. Что возвращают функции?




Ответить с цитированием