Доработка стандартного ПО для контроллера M100-2 и Z031

Автор bagammo, 23 октября 2019, 17:37:01

« назад - далее »

bagammo

Добрый вечер, на конец то удалось собрать щиты с контроллерами M100-2B и настенной панелью Z-031, прописал все параметры в панели, столкнулся такой проблемой что панель не выводит температуру с датчиков притока или вытяжки, показывает 12,4 С, но если поменять параметр B-6  на 0 (встроенный датчик в панели ) то температура отображается правильно. датчики NTC 10k. Возможно я пропустил какой-то параметр?

mike

#1
Задача у коллеги - простая, в дополнительном режиме параметров контроллера 031 отображать температуру отработанного теплоносителя.
Самое смешное, что описание вывода занимает больше времени, чем реализация, но тем не менее - приступим.
В ЗВБ есть классный инструмент - симулятор. Подготовим проект к изучению и отладке.
Загружаю проект универсальной программы для контроллера М100, добавляю в него шаблон программы Z031, создаю дополнительное сетевое представление (для удобства) и на рабочей станции настраиваю виртуальные порты. Все, что я только что сделал подробно описано на форуме. Те, кому "надо побыстрее" и "некогда разбираться" могут скачать доработанный проект в конце статьи.

mike

Напомню, задача сводится к выводу в доп режиме 031 ПЛК температуры отработанного теплоносителя.
Но помимо этой температуры есть еще несколько физических параметров, которые можно вывести в 031ый.
Для вывода нам нужно будет немного доработать программу контроллера М100. Но это очень быстро.
Оглядимся, что мы имеем. Для начала посмотрим программу 031 и его сетевые переменные:

mike

Вот в эти переменные и будем писать значения. Перейдем в программу сотого контроллера.
В ЗВБ есть инструмент подключения переменных из шаблонов, принадлежащих проекту. Штука крайне удобная. Воспользуемся ей. Настроим сразу порт, на котором работает мастер. В нашем случае это порт 1. Так же настроим адрес девайса, в который будем производить запись. У панели 031 адрес 1.

mike

Дальше все стандартно для этого блока:
Выбор шаблона программы подчиненного устройства. В нашем случае это программа 031

mike

И тут же указываем начальную переменную и количество подряд идущих переменных, которые требуется записать. В данном случае их 6.

mike

Почти закончили))
После применения изменений получается блок записи переменных, которые были выбраны. Обратите внимание, что ножку "reg" (это стартовый регистр) в данном случае трогать не надо, так как значение на нее будет подано автоматически. Поэтому не обращаем на нее внимание.
Что бы не перегружать обмен Z031 и M100  - поставлю таймер, который раз в секунду срабатывает и по фронту формирует сигнал записи по сети.

mike

Пора проверить что получилось.
К примеру, запишу значение мощности нагревателя. Ставлю константу, например 100 (соответствует процентам).
И запускаю симулятор на 031 и 100
Перехожу в шаблон 031 и в макросе дополнительного режима вижу, что все работает исправно. Значит и в реальной машине будет работать.

mike

Останавливаю симулятор и собираю программу.
Снова перехожу в программу М100. Надо подать значения температур на соответствующие ноги блока записи, что и делаю.
Из блока мультиплексирования в программе получаются значения температур в формате 2х байтового знакового числа. Температуре 1,0 градуса соответствует значение 100 (так надо), то есть целая часть значения температуры умножается в мультиплексоре на 100.
Панель 031 для вывода значений температур использует  2х байтовые знаковые с множителем целого разряда на 10, а для вывода значений влажности, качества воздуха и мощность нагревателя 1но байтовые беззнаковые без множителя.

Например, из блока мультиплексирования получаем значение температуры отработанного теплоносителя 6783 (67,83С).
Для записи в панель необходимо всего лишь разделить значения температур из мультиплексора на 10.

mike

Для вывода значения текущей мощности регулятора составляю пропорцию.

mike