PDA

Просмотр полной версии : ПЛК100 и Modbus.lib



Slev
16.03.2012, 12:29
Пытаюсь устанавливать биты через 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.

capzap
16.03.2012, 12:33
*INVALID* это особенность из-за нумерованных списков, можно необращать внимание, а когда поменяли на 485, в настройках выставили RTU или ASCII осталось

Slev
16.03.2012, 12:44
Использую RTU. Но ASCII тоже пробовал. Результат такой:
BA 2C C1 B5 C1 B0 2C C1 B0 15 C1 23 F1
вместо
3A 31 30 30 35 ... и т.д.

capzap
16.03.2012, 12:57
у меня мусор начинает идти, когда в онлайне начинаю уменьшать таймауты, время опроса и т.п. вообщем с настройками когда не всё хорошо

Slev
16.03.2012, 13:23
Нашёл я, вроде, в чём дело. В примере используется COM_SERVICE, в качестве параметра настроек порта которго, используется структура COMSETTINGS. В этой структуре нет элемента РАЗМЕР_ДАННЫХ и по умолчанию он равен 7. Для восьмибитовых данных нужно использовать структуру COMSETTINGSEX (там есть элемент cByteSize). Но её не понимает COM_SERVICE.
Щас буду чего-нибудь опять городить...

capzap
16.03.2012, 13:34
вообще типы данных COMSETTINGS и COMSETTINGSEX это из библиотеки SysLibCom и кто Вам сказал что по умолчанию размер данных 7 бит, может лучше в приборе изменить значения, Вы ведь не первый кто начал пользоваться библиотекой и ни у кого до Вас проблем небыло

Slev
16.03.2012, 14:34
Если б у меня один прибор в сети был. А так придётся у всех приборов (а там не только ПКП) менять настройки. Не вижу веской причины для этого.
Пришлось дополнительно изменить размер данных через SysComSetSettingEx.

Насчёт умолчания - согласен. COMSETTINGS размер данных не перезаписывает. Какой был до этого, такой и остаётся.

С библиотекой-то проблем нет.
Проблема у меня одна: БЫСТРО разобраться с управлением ПКП через ПЛК. А получается, что на подключение двух умных устройств одного производителя уходит два дня...

capzap
16.03.2012, 15:01
а визуализация есть?

Slev
16.03.2012, 20:53
а визуализация есть?

В смысле? В проекте - не использую, а если ты про скаду - то будет.

Короче, отказался от Модбас мастера и всё сделал на самопальном модбасе. Вроде всё работает.

Осталась одна проблема - у ПКП (у обоих) не сохраняется адрес при отключении питания. А без этого, все мои модбасы никому не нужны будут...

capzap
17.03.2012, 06:34
про визуализацию почему спросил, так потому что можно управлять ведь и через скаду, там должна быть реализация и одиночной битовой записи. Скада может следить за битами на ПЛК и передавать их на прибор

capzap
17.03.2012, 06:37
И в догонку, а сторонние мастера модбас и свой рукописный как себя ведут? Управление заработало?

Slev
17.03.2012, 12:16
Не, управление из скады - дело неблагодарное...

А мастера, все ведут себя нормально. Раньше всегда пользовался встроенным мастером. Проблем не было (пока не попался ПКП). Только было неприятное ощущение неполного контроля за ситуацией в сети.
Самодельный мастер руки развязал. Теперь могу делать в сети всё что хочу. И отлаживаться удобнее стало. Поставил точку останова - и опрос тоже остановился. Удобно. Можно паузы вставлять между опросами двух узлов (актуально для МВА8).
Учитывая нюансы управление ПКП по модбасу, это то что нужно.

Валенок
17.03.2012, 12:57
Можно паузы вставлять между опросами двух узлов (актуально для МВА8).

О-о. Увидели. Сколько ставите после МВА8 ? (я 6-8ms)

Slev
18.03.2012, 08:49
О-о. Увидели. Сколько ставите после МВА8 ? (я 6-8ms)
Я делаю паузу ДО опроса МВА8. Чтобы МВА успел переварить предыдущий запрос (адресуемый, впрочем, другому устройству). Сколько точно нужно - пока разбираться некогда. Поставил тупо 150 мс - ошибки МВА исчезли.

Валенок
19.03.2012, 07:22
Я делаю паузу ДО опроса МВА8. Чтобы МВА успел переварить предыдущий запрос
Как-то странно