Просмотр полной версии : ПЛК100 и Modbus.lib
Пытаюсь устанавливать биты через Modbus.lib.
Если работаю через порт 1 (RS232), то всё работает, запросы правильные вижу.
Меняю порт 1 на 0 ( RS485) - идёт какой-то мусор...
И кодесис на порт=0 говорит *INVALID*.
Вместо
10 05 00 01 00 00 9F 4B
через RS485 идёт:
90 21 81 80 5А
Как правильно прокачать RS485 ?
Использовал стандартный пример "Modbus запись Int и Real (ST).pro".
В проекте раз в секунду шлётся запрос на установку койла=1.
*INVALID* это особенность из-за нумерованных списков, можно необращать внимание, а когда поменяли на 485, в настройках выставили RTU или ASCII осталось
Использую RTU. Но ASCII тоже пробовал. Результат такой:
BA 2C C1 B5 C1 B0 2C C1 B0 15 C1 23 F1
вместо
3A 31 30 30 35 ... и т.д.
у меня мусор начинает идти, когда в онлайне начинаю уменьшать таймауты, время опроса и т.п. вообщем с настройками когда не всё хорошо
Нашёл я, вроде, в чём дело. В примере используется COM_SERVICE, в качестве параметра настроек порта которго, используется структура COMSETTINGS. В этой структуре нет элемента РАЗМЕР_ДАННЫХ и по умолчанию он равен 7. Для восьмибитовых данных нужно использовать структуру COMSETTINGSEX (там есть элемент cByteSize). Но её не понимает COM_SERVICE.
Щас буду чего-нибудь опять городить...
вообще типы данных COMSETTINGS и COMSETTINGSEX это из библиотеки SysLibCom и кто Вам сказал что по умолчанию размер данных 7 бит, может лучше в приборе изменить значения, Вы ведь не первый кто начал пользоваться библиотекой и ни у кого до Вас проблем небыло
Если б у меня один прибор в сети был. А так придётся у всех приборов (а там не только ПКП) менять настройки. Не вижу веской причины для этого.
Пришлось дополнительно изменить размер данных через SysComSetSettingEx.
Насчёт умолчания - согласен. COMSETTINGS размер данных не перезаписывает. Какой был до этого, такой и остаётся.
С библиотекой-то проблем нет.
Проблема у меня одна: БЫСТРО разобраться с управлением ПКП через ПЛК. А получается, что на подключение двух умных устройств одного производителя уходит два дня...
а визуализация есть?
В смысле? В проекте - не использую, а если ты про скаду - то будет.
Короче, отказался от Модбас мастера и всё сделал на самопальном модбасе. Вроде всё работает.
Осталась одна проблема - у ПКП (у обоих) не сохраняется адрес при отключении питания. А без этого, все мои модбасы никому не нужны будут...
про визуализацию почему спросил, так потому что можно управлять ведь и через скаду, там должна быть реализация и одиночной битовой записи. Скада может следить за битами на ПЛК и передавать их на прибор
И в догонку, а сторонние мастера модбас и свой рукописный как себя ведут? Управление заработало?
Не, управление из скады - дело неблагодарное...
А мастера, все ведут себя нормально. Раньше всегда пользовался встроенным мастером. Проблем не было (пока не попался ПКП). Только было неприятное ощущение неполного контроля за ситуацией в сети.
Самодельный мастер руки развязал. Теперь могу делать в сети всё что хочу. И отлаживаться удобнее стало. Поставил точку останова - и опрос тоже остановился. Удобно. Можно паузы вставлять между опросами двух узлов (актуально для МВА8).
Учитывая нюансы управление ПКП по модбасу, это то что нужно.
Можно паузы вставлять между опросами двух узлов (актуально для МВА8).
О-о. Увидели. Сколько ставите после МВА8 ? (я 6-8ms)
О-о. Увидели. Сколько ставите после МВА8 ? (я 6-8ms)
Я делаю паузу ДО опроса МВА8. Чтобы МВА успел переварить предыдущий запрос (адресуемый, впрочем, другому устройству). Сколько точно нужно - пока разбираться некогда. Поставил тупо 150 мс - ошибки МВА исчезли.
Я делаю паузу ДО опроса МВА8. Чтобы МВА успел переварить предыдущий запрос
Как-то странно
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot