Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 18

Тема: ПЛК-150 (Master) + две СП-270 (Slave) по Modbus RTU

  1. #1

    Question ПЛК-150 (Master) + две СП-270 (Slave) по Modbus RTU

    Здравствуйте!

    Имеется ПЛК-150 (Master) + две СП-270 (Slave). Связь осуществляется по Modbus RTU. В ПЛК-150 соответственно создано ModBus (Master) с интерфейсом 485 скорость 9600 и два universal modbus device (By poll time - 10) с абсолютно идентичными наборами регистров (5 Register output module + 2 register input module), с адресами 1 и 2. Тормоза дикие! На СП-270 несколько кнопок управления битами (реверсивно). Нажимаешь кнопку - некоторое значение увеличивается на 1 и выводится на экран. Этот незатейливый процесс может занять до 2 сек. При этом пока на стадии разработки была только одна панель - всё работало шустро.
    Что можно сделать, чтобы реакция на нажатие кнопки была адекватна (100-200 мсек.)? После какого суммарного кол-ва регистров начинаются проблемы (делал порядка 20 регистров на одной панели - тоже тормозит страшно)?

  2. #2
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    Цитата Сообщение от Boris3B Посмотреть сообщение
    скорость 9600 и два universal modbus device (By poll time - 10) с абсолютно идентичными наборами регистров (5 Register output module + 2 register input module), с адресами 1 и 2.
    А вы не пробовали установить значение параметра "Polling time" побольше? Например, 200 мс? Мне кажется, что при таком маленьком значении, как у вас, в сети начинается конфликт пакетов, отсюда и тормоза.
    Также можно попробовать увеличить скорость обмена, скажем, до 38 400 (если СП-270 ее поддерживает - к сожалению, с такими панелями оператора не работал).
    Последний раз редактировалось Flomaster; 29.09.2010 в 02:39.

  3. #3

    По умолчанию

    Пробовал ставить и 100 и 200, а больше не имеет смысла - только ещё более тормозит. Скорость увеличить не могу, т.к. на объекте будет много различных помех. Меня вот что напрягает - есть объект, на котором ОПС-сервер (Kepware) собирает по Modbus порядка 400 значений с 25-30 девайсов (9600/1 сек.) и справляется. Уж не знаю как и есть ли там конфликты пакетов, но запаздывание реакции на события нет.

  4. #4

    По умолчанию

    увеличьте до 5-10 время цикла плк.
    когда панель слэйв - контроллер записывает в неё все заведеные для обмена переменные. когда панель мастер - она считывает только переменные, расположенные на активном экране.
    рассмотрите варианты записи значений по изменению или по команде

  5. #5

    По умолчанию

    "увеличьте до 5-10 время цикла плк." - правильно ли я понимаю, что Вы имеете ввиду параметр MinCicleLength (ms) в PLC Configuration? Если да, то не помогает. Пробовал вариант "по изменению" - вообще не работает. По команде - пока не знаю как этим пользоваться, но предполагаю, что команду должен давать контроллер и т.к. он не знает в какой момент времени я нажму на кнопку на экране СП-270, то приду опять же к циклу с определенным интервалом - в общем-то к Polling time.

  6. #6

    По умолчанию

    В общем то про MinCycle a и говорил...
    Команду дает контроллер, действительно не тот вариант...
    Что еще может быть...
    Проверьте если можно есть ли такая задержка при обмене, например, с другими ПЛК вместо панелей...

  7. #7

    По умолчанию

    к сожалению нет свободного девайса в данный момент. при возможности попробую. но если порассуждать о скорости обмена, то 9600 бот (бит - если я правильно понимаю) делим на 8 = 1200 байт в сек. или 600 регистров. отнимем половину на обслуживание самого протокола - получается, что 300 регистров в сек. а у меня их 14. как-то не складывается математика...

  8. #8

    По умолчанию

    Цитата Сообщение от Boris3B Посмотреть сообщение
    но если порассуждать о скорости обмена, то 9600 бот (бит - если я правильно понимаю) делим на 8 = 1200 байт в сек. или 600 регистров. отнимем половину на обслуживание самого протокола - получается, что 300 регистров в сек. а у меня их 14. как-то не складывается математика...
    Вы это серьезно?
    Затраты на протокол гораздо больше, если Вы пишите по одному регистру на команду. Это протокол типа "пинг-понг" + таймауты + сумма...

  9. #9

    По умолчанию

    нет - не серьезно. это предположение. а по вашему мнению 14 регистров (28 байт) за секунду - это перебор? вроде как я "губу раскатал"?

  10. #10

    По умолчанию

    считаем.
    1. 3,5 бита пауза. часто - 1 байт.
    2. 1 байт адрес
    3. 1 байт функция
    4. 2 байта регистр
    5. 2 байта контрольная сумма
    6. 3,5 бита пауза. часто - 1 байт
    итого посылка 7-8 байт
    теперь панель должна декодировать, обработать, и квитировать еще 4-5 байт.
    уффф..

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •