Глюки ПЛК ОВЕН, №1- зависает при передаче данных по Modbus или Овен в режиме «By command» | ПЛК и АСУТП

plc110-60В прошлом году я разработал программу для крупного проекта на ОВЕН ПЛК110-60.
Объект с моей программой успешно работает год в дальнем зарубежье.
Во время работы я нашел много овеновских глюков при написании программы в среде CodeSys.
Сегодня рассмотрим один из них, который доставил мне кучу неудобств- зависание ПЛК ОВЕН при передаче данных по протоколам Modbus и Овен в режиме «By command».

В CodeSys 2.3 передача данных по протоколам Модбас или Овен настраивается на закладке «Resources» в пункте «PLC configuration».

Codesys_rezym_modbus_0

 

Здесь с помощью мастера можно настроить передачу данных в нескольких режимах:

  • By poll time- передача идет постоянно  через определенный промежуток времени,
  • By value change- передача по изменению значения передаваемой переменной,
  • Both- передача через определенный промежуток времени или по изменению значения передаваемой переменной,
  • By command- передача по команде. Т.е. дается команда на передачу и данные передаются.

Codesys_rezym_modbus

Каждый из этих режимов важен и бывает незаменим в конкретной программе.

В моей программе нужен режим передачи «By command»- время от времени нужно передавать большие массивы данных на 12 ПИД-регуляторов ТРМ 251(запись программ нагрева).

Эти данные передавать по времени нельзя- слишком много времени на это будет уходить.
По изменению значения тоже- во первых, как я заметил, по изменению значения передача данных не всегда срабатывает. Например, пуск/останов ТРМ в этом режиме у меня срабатывал не всегда. Во-вторых это не надежно для нашего объекта.

Когда я ввел в свою программу передачу данных в режиме «By command», ПЛК начал зависать.
Как оказалось, зависает он именно при передаче данных в этом режиме.

Но я не спешил обвинять ОВЕН. Практика показывает, что чаще всего причина глюка в программе- кривые руки программера. Может я делал что-то не так?

Я написал письмо в техподдержку ОВЕН о том, что если передавать данные с ПЛК110-60 на ТРМ-251 переменную в режиме «By command», контроллер наглухо зависает.

В ответ мне написали что да, повторили мой эксперимент и контроллер действительно зависает. Мне посоветовали использовать другие режимы передачи данных и сообщили, что в ближайшее время ликвидацией этого глюка заниматься не станут.
Это вообще свойственно техподдержке ОВЕН- да, говорят они, мы сожалеем, указанный вами глюк имеет место, но никто разбираться с ним не будет.

После этих слов техподдержки Призрак Медного Таза  завис над моей программой. Делать фуфло я не хотел, а овеновское оборудование было уже закуплено.

К счастью, есть выход из этой ситуации- для передачи данных можно использовать дополнительные библиотеки передачи данных для CodeSys:

  • ModBus.lib- библиотека с функциями передачи данных по Модбас,
  • OwenNet.lib- библиотека с функциями передачи данных по протоколу ОВЕН,

Конечно, писать передачу данных с помощью этих библиотек не так удобно, как с использованием мастера CodeSys, но другого выхода нет.
Раздражает, что ОВЕН создал лишнюю проблему программерам на пустом месте.
Так бы в мастере CodeSys настроил передачу данных за полчаса и забыл о ней, вместо этого пришлось разбираться с библиотекой и городить лишние конструкции в программе.

Вывод: передача данных из ПЛК110-60 по протоколам Modbus и Овен в режиме «By command» с использованием мастера CodeSys невозможна. Фирма «ОВЕН» эту проблему устранять не собирается. Передачу данных нужно писать ручками с использованием библиотек Modbus.lib и OwenNet.lib.

1 комментарий: Глюки ПЛК ОВЕН, №1- зависает при передаче данных по Modbus или Овен в режиме «By command»

  • "более опытный коллега" говорит:

    Могу только добавить, что вышесказанное относится не только к режиму «By command» и не только к протоколу Modbus. В любом случае у ‘овна режим мастера реализован через большую букву Ж.
    Ещё нюанс — если овенплк мастер сети и обмен идет «By poll time» (или «Both») и произойдет остановка программы (смотрите глюк №1), то на другом конце провода защита по таймауту не сработает — обменом рулит отдельный процессор независимо от основной программы.

Добавить комментарий

Ваш e-mail не будет опубликован.

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:
Confirm that you are not a bot - select a man with raised hand:

Подпишитесь на нашу рассылку


Copyright © 2016. Перцух Алексей

Индекс цитирования