Панель пользователя

Автор Тема: Доработка стандартного ПО для контроллера M100-2 и Z031  (Прочитано 5289 раз)

Оффлайн bagammo

  • Новичок
  • *
  • Сообщений: 14
  • Карма: +1/-0
Добрый вечер, на конец то удалось собрать щиты с контроллерами M100-2B и настенной панелью Z-031, прописал все параметры в панели, столкнулся такой проблемой что панель не выводит температуру с датчиков притока или вытяжки, показывает 12,4 С, но если поменять параметр B-6  на 0 (встроенный датчик в панели ) то температура отображается правильно. датчики NTC 10k. Возможно я пропустил какой-то параметр?
« Последнее редактирование: 24 Октябрь 2019, 23:16:46 от mike »

Оффлайн mike

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1205
  • Карма: +34/-2
Re: Контроллер M100-2B Не хочет обновляться.
« Ответ #1 : 24 Октябрь 2019, 23:10:52 »
Задача у коллеги - простая, в дополнительном режиме параметров контроллера 031 отображать температуру отработанного теплоносителя.
Самое смешное, что описание вывода занимает больше времени, чем реализация, но тем не менее - приступим.
В ЗВБ есть классный инструмент - симулятор. Подготовим проект к изучению и отладке.
Загружаю проект универсальной программы для контроллера М100, добавляю в него шаблон программы Z031, создаю дополнительное сетевое представление (для удобства) и на рабочей станции настраиваю виртуальные порты. Все, что я только что сделал подробно описано на форуме. Те, кому "надо побыстрее" и "некогда разбираться" могут скачать доработанный проект в конце статьи.
« Последнее редактирование: 24 Октябрь 2019, 23:12:54 от mike »

Оффлайн mike

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1205
  • Карма: +34/-2
Напомню, задача сводится к выводу в доп режиме 031 ПЛК температуры отработанного теплоносителя.
Но помимо этой температуры есть еще несколько физических параметров, которые можно вывести в 031ый.
Для вывода нам нужно будет немного доработать программу контроллера М100. Но это очень быстро.
Оглядимся, что мы имеем. Для начала посмотрим программу 031 и его сетевые переменные:

Оффлайн mike

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1205
  • Карма: +34/-2
Вот в эти переменные и будем писать значения. Перейдем в программу сотого контроллера.
В ЗВБ есть инструмент подключения переменных из шаблонов, принадлежащих проекту. Штука крайне удобная. Воспользуемся ей. Настроим сразу порт, на котором работает мастер. В нашем случае это порт 1. Так же настроим адрес девайса, в который будем производить запись. У панели 031 адрес 1.

Оффлайн mike

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1205
  • Карма: +34/-2
Дальше все стандартно для этого блока:
Выбор шаблона программы подчиненного устройства. В нашем случае это программа 031

Оффлайн mike

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1205
  • Карма: +34/-2
И тут же указываем начальную переменную и количество подряд идущих переменных, которые требуется записать. В данном случае их 6.

Оффлайн mike

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1205
  • Карма: +34/-2
Почти закончили))
После применения изменений получается блок записи переменных, которые были выбраны. Обратите внимание, что ножку "reg" (это стартовый регистр) в данном случае трогать не надо, так как значение на нее будет подано автоматически. Поэтому не обращаем на нее внимание.
Что бы не перегружать обмен Z031 и M100  - поставлю таймер, который раз в секунду срабатывает и по фронту формирует сигнал записи по сети.

Оффлайн mike

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1205
  • Карма: +34/-2
Пора проверить что получилось.
К примеру, запишу значение мощности нагревателя. Ставлю константу, например 100 (соответствует процентам).
И запускаю симулятор на 031 и 100
Перехожу в шаблон 031 и в макросе дополнительного режима вижу, что все работает исправно. Значит и в реальной машине будет работать.

Оффлайн mike

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

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

Оффлайн mike

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1205
  • Карма: +34/-2
Для вывода значения текущей мощности регулятора составляю пропорцию.

Оффлайн mike

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1205
  • Карма: +34/-2
Вот и все. Обещанный файл в приложении.