На главную
Написать нам

/351/ 731-1403, 731-1404, 731-1405, 731-1406, 8-922-731-14-03 sales@indelta.ru




Ошибка настройки Modbus в режиме Мастер на программируемом реле ОВЕН ПР200



Для опытных программистов ПЛК не будет большой проблемой правильно настроить опрос нескольких Slave устройств на одной шине RS-485 с протоколом Modbus. Но для начинающего только осваивать эту область специалиста, я думаю, эта статья поможет быстрее разобраться с одной из проблем «загадочного поведения» программы, на примере программируемого реле ОВЕН ПР200. Речь не о параметрах скорости, четности и т.п. это можно легко понять и настроить. И даже не о качестве линии связи и согласующих резисторах. Речь о том, что вроде бы рабочая программа, которая нормально обменивалась с одним прибором, например датчиком влажности и температуры ПВТ-100, после копирования в программе OwenLogic, на несколько таких же устройств, перестает работать. Или работает на столе у программиста, а на объекте ПР200 перестает получать данные с ПВТ100 или делает это не предсказуемо. Мы поговорим, как легко можно устроить «пробку» в потоке данных этого протокола.

И ведь нельзя сказать, что производитель не предупреждал. Вот что сказано в руководстве:

Для минимизации времени получения данных со всех устройств рекомендуется:

  • если одно или несколько подчиненных устройств не подключены или недоступны, то рекомендуется предусмотреть в программе блокировку опроса этих устройств или сократить до минимума параметр «Таймаут ответа» для этих устройств. В ином случае время опроса будет расти пропорционально количеству неподключенных устройств и величине установленного параметра «Таймаут ответа» для этих устройств;
  • во время установки параметра «Интервал между запросами» следует учитывать количество подчиненных устройств и общее количество запросов. Если время обработки всех запросов занимает больше времени, чем установлено параметром «Интервал между запросами», то данный параметр будет игнорироваться.

Но кто же вчитывается так внимательно? Да и что это значит «предусмотреть в программе блокировку опроса»? Конечно, было бы разумно изучить документацию на все устройства Slave и установить правильные значения параметра «Задержка ответа» (кстати, у ПВТ100 этот параметр по умолчанию 10мс, но может быть и 255мс). Затем учесть количество параметров, которые будут считываться и получить время «освобождения шины» для установленной скорости обмена. А еще умножить на число попыток Мастера получить данные от Слэйва. И если учесть, что опрос Slave может быть одиночным или групповым, то очевидно, задача становится не тривиальной и без опыта решить ее довольно сложно.

Но опять же из руководства:

При корректно заданных параметрах «Время опроса» и «Тайм-аут ответа», регистры опрашиваются с заданным интервалом. Если указан меньший период опроса, чем общее время обмена, то корректный обмен по интерфейсу будет нарушен. Если время тайм-аута ответа от Slave настроено меньше возможного, то ответ устройства Slave бракуется. Следующий запрос заканчивается «неудачей» и данные по интерфейсу не поступают в регистры Master.

Как поступить, если опыта не достаточно, а проект нужен еще вчера? Конечно, если у вас критичным является скорость реакции на данные, поступающие от Slave, то придется вникать и настраивать. Но, часто программируемые реле используются для довольно медленных процессов, например, изменение влажности на том же ПВТ100. Поэтому, можно поставить эти параметры с запасом и добиться устойчивого опроса всех подключенных приборов. А при необходимости, опытным путем уменьшать, добиваясь максимальной скорости обмена. И вот, когда вы добились, что все слэйвы стабильно отдают данные мастеру, начните их отключать по одному. Во многом результат будет зависеть от количества приборов и опрашиваемых регистров, кстати, к одному Мастеру ПР200 можно подключить до 16 приборов, но при потере связи с несколькими слэйвами, скорее всего, вы перестанете получать данные и от оставшихся в работе приборов, либо данные будут поступать в Мастер не стабильно. Вот тут и стоит задуматься о предоставленных разработчиком OwenLogic способах исключить из опроса не используемые в данный момент устройства. Например, у вас 6 теплиц с ПВТ100, но не все в данный момент работают.


Рис.1

Установите булевскую переменную в поле «Опрос» в значение «0» для запрета опроса данного слэйва (на рис.1 подчеркнуто красным). Для определения работоспособности прибора (нормально отвечает на запросы Мастера) можно использовать переменную «Статус» (подчеркнуто зеленым). Если связь с прибором потеряна, то в ней будет записан 0. Управлять переменной «Опрос» можно как с самой ПР200, так и с панели оператора или SCADA. Один из вариантов передачи состояния 6 датчиков и получения разрешения на их опрос показан на рис.2.


Рис.2

Здесь в 6 бит переменной StatusS1 записывается состояние приборов, а с Панели оператора передается разрешения на опрос этих датчиков в соответствующих битах сетевой переменной OprosS1.

Телефоны:
/351/ 731-1403, 731-1404, 731-1405, 731-1406, 8-922-731-14-03
©2012 Дельта Инжиниринг.