Форум программистов, компьютерный форум, киберфорум
ФедосеевПавел
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  

Краткие заметки по работе с ПЛК комплекса КОНТАР (МЗТА)

Запись от ФедосеевПавел размещена 17.03.2024 в 17:44
Показов 7475 Комментарии 0
Метки plc, асу тп

Краткие заметки по работе с ПЛК комплекса КОНТАР (МЗТА)


ПРЕАМБУЛА
Эта статья не является учебником, самоучителем по работе с ПЛК комплекса КОНТАР. В статье я отразил ответы на те вопросы, которые при работе не смог найти среди документации и примеров на официальном сайте производителя.
Таким образом, для начала работы следует изучить документацию, приведённую у производителя.
Источники:
https://www.mzta.ru — официальный сайт производителя
https://www.mzta.ru/produkcziy... eks-kontar — страничка на офсайте, посвящённая комплексу КОНТАР (контроллерам, модулям расширения)
https://www.mzta.ru/produkcziy... 8-mc8-mc12 — страничка на офсайте, посвящённая контроллерам комплекса КОНТАР, на которой присутствуют ссылки для скачивания документации и ПО
Также на офсайте присутствуют примеры решений (как проектные, так и алгоритмические)
https://www.mzta.ru/resheniya/gotovye-resheniya
https://www.mzta.ru/resheniya/... ptk-kontar
Страничка вопросов и ответов
https://www.mzta.ru/support-mz... y-i-otvety
Видеоинструкции и ещё много чего.
Для скачивания некоторых документов и ПО потребуется регистрация на сайте. Эта регистрация позже может пригодится для решения вопросов на форуме.
Также, с вопросами удобно обращаться по телефону напрямую в техподдержку — специалисты очень дружелюбны и грамотны.

Личные впечатления

Начну с того, что перед началом работы был некоторый трепет от работы с изделием производства МЗТА.
Слово «МЗТА» вызывает только тёплые воспоминания — регулятор Р25, как эталон при создании программного ПИД-регулятора, таинственный ламповый комплекс РПИБ-КПИ, который до сих пор регулирует параметры энергетических котлов во множестве ТЭЦ сахарных заводов.
Собственно, впечатления не омрачились и после знакомства с КОНТАР.

По проекту автоматизации мне довелось работать с сетью из нескольких контролеров MC8.301 и модуля дискретных выходов MR20.

По личному впечатлению, ПЛК комплекса КОНТАР предназначены для автоматизации небольших процессов. Этим и обусловлено сравнительно небольшое количество входов и выходов на самих ПЛК. Но «изюминка» комплекса состоит в том, что автоматизация на его основе — именно комплекс из множества ПЛК, связанных в единую сеть. Т.е. каждый ПЛК управляет небольшим участком и все ПЛК сети координируют работу между собой и от «главного» ПЛК.
Кроме самих ПЛК существуют модули расширения к ним — модули аналоговых и дискретных входов/выходов.

Печатные платы очень аккуратны. Приятно видеть и брать в руки.

Документация — тоже очень хорошая. Она разделена на отдельные описания контроллера, модулей, программного обеспечения, обучающие примеры с пошаговым созданием программы. Читать — много.

Коллеги показывали рабочие завершённые проекты, в которых реализовано подобие СКАДА-системы различных объектов на основе бесплатного облачного сервиса МЗТА — мнемосхемы, графики параметров, текущие значения. Доступ к сервису через интернет.

Подключение операторских панелей имеют особенности, о которых ниже. Поэтому список рекомендованных операторских панелей на страничке МЗТА — отнюдь не реклама.

Несколько непривычен способ работы — программирование в одном ПО, загрузка в контроллер — в другом. Хотя уже встречался с подобным для вычислителей КРЕЙТ ТЭКОН‑19‑05М. Для этого разделения вижу причины — развязка ПО для программирования от способов загрузки (драйверов и прочего), а также необходимость постоянно подстраиваться под формат списка тегов для ПО операторских панелей (почему не реализовали через плагины — трудно судить).

Непривычен способ компиляции — отправка исходника на сервер и получение в ответ бинарных файлов для загрузки в ПЛК. Альтернатива, правда, дороже — покупка недешёвого компилятора Keil для микроконтроллеров i8051 — и тогда возможна оффлайн компиляция.

1. Обновление состава сети после её изменения (добавления или удаления приборов)
Наверняка, это отображено где-то в документации. Выделю только потому, что сам запнулся при добавлении ещё одного контроллера в сеть.
Когда программа создаётся для одного ПЛК, то всё просто — она загружается через WebLinker непосредственно в ПЛК, к которому WebLinker и подключён. Когда же загружаются программы в несколько ПЛК сети, потребуется считать состав сети, присвоить номера, согласно проекта. Для обновления, в программе КОНСОЛЬ нужно выбрать пункт контекстного меню «Обновить состав сети», а не кнопку с похожим названием «Считать состав сети», иначе новый прибор не будет виден из программы КОНСОЛЬ. Контекстное меню обновляет и сохраняет таблицу устройств в сети. Кнопка применяется для показа включённых в данный момент приборов из таблицы.

2. Первая программа (лампочки и кнопочки)

2.1 Программное и аппаратное обеспечение
Для комплекса КОНТАР написание программы для ПЛК и её загрузка осуществляются не в единой среде программирования, а в двух, даже порознь скачиваемых, программах.
Написание и компиляция программы для ПЛК осуществляется в ПО КОНГРАФ
https://www.mzta.ru/produkcziya/program/kongraf
Загрузка программы в ПЛК осуществляется ПО КОНСОЛЬ
https://www.mzta.ru/produkcziya/program/konsol
Для загрузки программы в ПЛК требуется аппаратный «программатор» (на самом деле это не только «программатор», но и Ethernet порт для подключения операторских панелей) — WebLinker
https://www.mzta.ru/produkcziy... 8-mc8-mc12 — на вкладке «Скачать» имеется руководство по эксплуатации WebLinker
WebLinker из себя представляет электронную плату, устанавливаемую в MASTER ПЛК. Устанавливается или временно для программирования или постоянно для программирования и дальнейшего использования портов (тогда отдельно заказывается крышка корпуса с прорезью под разъёмы).

2.2. Написание и компиляция управляющей программы
После установки запускаем программу КОНГРАФ.
По умолчанию путь к проектам КОНГРАФ — «Мои документы»\Kongraf\Projects\.
Для каждого проекта создаётся папка с названием проекта и файл с таким же названием и расширением «*.alg». Например, для проекта «test» в папке «Мои документы»\Kongraf\Projects\ будут созданы папка «test.m» и файл «test.m.alg».
Это знание пригодится для разбора чужих примеров, которые выложены без файла «*.alg». Для доступа к ним можно будет скопировать с переименованием любой имеющийся собственный файл «*.alg» и, открыв его в текстовом редакторе, скорректировать первую строку на соответствующее название проекта.

На страничке ПО КОНГРАФ во вкладке «Скачать» есть хорошее обучающее руководство «Работа с программой». Начать обучение требуется с него. Так будет проще.

2.3. Лампочки и кнопочки для одного ПЛК
А теперь пробуем сделать самостоятельную программу «лампочки и кнопочки» для комплекса из одного ПЛК.
Создаём новый проект. Выбираем для него контроллер. В свойствах назначаем его MASTER. И внутри контроллера просто рисуем связь от цифрового входа DI[1] к цифровому выходу DO[1].
Нажмите на изображение для увеличения
Название: L&B_1plc_1.PNG
Просмотров: 510
Размер:	58.4 Кб
ID:	5783 Нажмите на изображение для увеличения
Название: L&B_1plc_2.PNG
Просмотров: 422
Размер:	45.4 Кб
ID:	5784
Компилируем.
Теперь нужно загрузить программу в ПЛК. Для этого на плате контроллера устанавливаем перемычку MASTER. Устанавливаем плату WebLinker. Через WebLinker соединяем ПЛК с компьютером. Подаём питание.
Запускаем программу КОНСОЛЬ. Из программы КОНСОЛЬ загружаем программу в ПЛК.
Подключаем ко входу ПЛК DI[1] кнопку, а к выходу DO[1] лампочку.
Теперь можно наблюдать за включением лампочки при удержании нажатой кнопки.

2.4. Лампочки и кнопочки для комплекса из двух ПЛК, контроль связи
Создадим и проверим проект, в котором по нажатию кнопки, подключённой ко входу одного ПЛК, включалась лампа, подключённая к выходу другого ПЛК.
Пусть кнопка подключена ко входу DI[1] ПЛК из условного щита ЩА (ПЛК MASTER), а лампа подключена к выходу DO[1] ПЛК из условного щита ЩУП1 одной из печей.

На основном холсте располагаем два ПЛК. Конфигурируем один из них как MASTER, другой как SLAVE, назначаем различные номера в сети.
Нажмите на изображение для увеличения
Название: L&B_2plc_1.PNG
Просмотров: 345
Размер:	65.4 Кб
ID:	5785 Нажмите на изображение для увеличения
Название: L&B_2plc_2.PNG
Просмотров: 361
Размер:	71.0 Кб
ID:	5786
Для того, чтобы передать состояние кнопки, в ПЛК «щит ЩА» создаём виртуальный цифровой (дискретный) выход, а в ПЛК «щит ЩУП1» — виртуальный цифровой (дискретный) вход. В обоих ПЛК обозначу эти контакты псевдонимом «Кнопка».
Сразу предусмотрим контроль связи между ПЛК. Для этого среди блоков КОНГРАФ имеются «ПРВ СВЗ» и «ПРВ СВЗ М». Для их соединения добавим виртуальный целый вход и виртуальный целый выход к ПЛК. В обоих ПЛК обозначу эти контакты псевдонимом «LnkTest».
Нажмите на изображение для увеличения
Название: L&B_2plc_3.PNG
Просмотров: 328
Размер:	5.6 Кб
ID:	5789
Т.е., в общем случае, для передачи значения от одного ПЛК к другому, для каждого передаваемого значения (переменной) требуется создать отдельный выход на одном ПЛК и отдельный вход на другом. Например, для передачи состояния трёх кнопок от «щит ЩА» в «щит ЩУП1», в ПЛК «щит ЩА» добавляется три виртуальных выхода, в ПЛК «щит ЩУП1» — три виртуальных входа, которые соединяются связями на основном холсте.

Создаём программы для каждого ПЛК
Нажмите на изображение для увеличения
Название: L&B_2plc_4.PNG
Просмотров: 345
Размер:	11.9 Кб
ID:	5790 Нажмите на изображение для увеличения
Название: L&B_2plc_5.PNG
Просмотров: 294
Размер:	11.8 Кб
ID:	5791
Компилируем. Загружаем в ПЛК. Проверяем.

3. Использование комплексных блоков, внутренних списков

4. Использование ModBus

Очень обескуражило, что параметры, получаемые из ModBus (holding registers — HR[0…255]) не могут быть энергонезависимыми, что приводит к необходимости отдельного строба для их сохранения.
Другими словами — панель подключённая через ModBus — годиться только для отображения текущих значений, а для ввода параметров процесса полностью непригодна, т.к. при отключении электропитания все параметры сотрутся.

5. Подключение операторских панелей, зависание и пропуск запросов

5.1 Общее

Выбор операторской панели и её подключение — не очень очевидный момент при проектировании и последующем программировании.

В самом общем виде к ПЛК можно подключать произвольные операторские панели по протоколу ModBus к интерфейсу RS‑232, RS‑485. Недостатков в этом варианте немного, но их качество приводит к невозможности нормальной работы.

Но есть и особый вариант, который оказывается более удобным.
Он подразумевает подключение операторской панели от определённых производителей (Beijer Electronics AB, Weintek) по интерфейсам RS‑232, RS‑485, Ethernet ко внутренней сети из ПЛК. Такой панели доступны переменные не только из локального ПЛК, но и из любого ПЛК, входящего в состав сети. Именно этот вариант и является оптимальным.

5.2 Подключение операторских панелей по ModBus к RS‑232 или RS‑485 (не рекомендую)

К ПЛК можно подключать произвольные операторские панели по интерфейсу RS‑232, RS‑485.
При этом используются протокол ModBus RTU (возможен выбор между MASTER и SLAVE).
Панели доступен локальный ПЛК, к которому непосредственно она и подключена.

У данного подключения есть только одно обоснование — вам оно досталось от проектировщиков, всё скомплектовано и изменений не будет — отступать некуда.

Положительный момент только один — подключить так можно любую панель, поддерживающую протокол ModBus Master.

Дальше перечислю отрицательные стороны этого варианта.
  1. Программный блок «MODBUS SLAVE» не имеет у выходов регистров хранения HR свойства «Энергонезависимый», и для сохранения параметров нужно организовывать дополнительный строб записи от панели.
  2. Параметры настройки, которые передаются от панели в ПЛК должны сохраняться в энергонезависимой памяти ПЛК (у выхода блока ставится свойство «Энергонезависимый»), но количество энергонезависимых ячеек в ПЛК ограничено (для MC8 их всего: 128 байт = 64 Modbus регистра = 32 float переменных) и недостаточно даже для маленького проекта.
  3. Панели доступен только локальный ПЛК, к которому непосредственно она и подключена.

Таким образом, операторская панель превращается в индикатор состояния объекта без возможностей изменения параметров техпроцесса.

«Лично мой единичный опыт»

Подключал Delta TP04AL2 (ModBus RTU master RS‑232) к MC8.3 (ModBus RTU slave RS‑232).
Получил «букет» проблем.
  1. Панели Delta пришлось использовать лишь для отображения текущих значений. Тем более, что аналоговые (они же float=single) с панели Delta TP04AL2 ввести невозможно — вводятся только целые числа — какой-то дефект. Сам ввод с них какой-то странный — не всегда обновляет значение, и ещё разные чудеса.
  2. При обмене между панелью и ПЛК по RS‑485 происходило зависание панели, а ПЛК оставался доступен по интерфейсу. Поэтому осталось использовать дуплексный RS‑232.
    Приведу лог обмена по RS‑485 до зависания панели (именно зависания, т.к. панель не только прекратила обмен, но и перестала реагировать на кнопки). Параметры: 9600@8n1, панель считывает два регистра.
    Здесь не видно, но сразу после зависания я через ту же прослушку самодельной программкой с компьютера опросил контроллер и получил корректные значения регистров. Т. е. контроллер оставался в работе.
    Не могу объяснить причины появления неправильных двух байт перед зависанием — расстояния всех (двух) проводов не превышает (1…1,5)м, хотя согласующий резистор 620 Ом только в преобразователе к компьютеру. Возможно — попытка одновременной передачи контроллера и панели. В сильные электромагнитные помехи в офисе не верю.
    Последние 2 секунды перед зависанием (работа длилась около 2 минут):
    Code
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    000605 18:47:16.463 01 04 00 00 00 01 31 CA 01 04 00 00 00 01 31 CA ……1К……1К
    000606 18:47:16.668 01 04 02 03 78 B9 E2 01 04 00 01 00 01 60 0A 01 ….x№в……`..
    000607 18:47:16.888 04 00 01 00 01 60 0A 01 04 02 00 41 79 00 01 04 …..`…..Ay…
    000608 18:47:17.002 00 00 00 01 31 CA 01 04 00 00 00 01 31 CA 01 04 ….1К……1К..
    000609 18:47:17.274 02 03 78 B9 E2 01 04 00 01 00 01 60 0A 01 04 00 ..x№в……`….
    000610 18:47:17.422 01 00 01 60 0A 01 04 00 01 00 01 60 0A 01 04 02 …`…….`….
    000611 18:47:17.589 00 41 79 00 01 04 00 00 00 01 31 CA 01 04 00 00 .Ay…….1К….
    000612 18:47:17.740 00 01 31 CA 01 04 00 00 00 01 31 CA 01 04 02 03 ..1К……1К….
    000613 18:47:17.879 78 B9 E2 01 04 00 01 00 01 60 0A 01 04 00 01 00 x№в……`……
    000614 18:47:18.059 01 60 0A 01 04 00 01 00 01 60 0A 01 04 02 00 41 .`…….`…..A
    000615 18:47:18.195 79 00 01 04 00 00 00 01 31 CA 01 04 00 00 00 01 y…….1К……
    000616 18:47:18.378 31 CA 01 04 02 03 78 B9 E2 4C F9 1К….x№вLщ
    В логе обмена видны пропуски ответов со стороны контроллера и повторные (бывает до 3-х попыток) запросы от панели.
    Это я к тому, что не всё стоит валить на панель. Пропуски ответов со стороны контроллера — очень плохо.
    Думаю, что «виноваты» оба устройства:
    - ПЛК: пропускает запросы, отвечает лишь на каждый третий (9600@8n1), возможно, подсовывает ответ в момент очередного запроса панели;
    - панель: зависает при возникновении ошибки обмена. Ну ошибка, ну подождали 1 секунду и повторили запрос. Но, нет — зависает.


5.3 Подключение операторских панелей по Ethernet к внутренней сети ПЛК (рекомендую)

Возможно подключение операторских панелей от определённых производителей (Beijer Electronics AB, Weintek) по интерфейсам RS‑232, RS‑485, Ethernet ко внутренней сети из ПЛК. Такой панели доступны переменные из списков алгоблоков не только из локального ПЛК, но и из любого ПЛК, входящего в состав сети. Подключение имитирует работу программы КОНСОЛЬ на компьютере.
Подключение выполняется через WebLinker, установленном в ПЛК — MASTER сети. На ПЛК SLAVE подключение невозможно.

Наиболее практичный выбор интерфейса — Ethernet. Позволяет одновременную работу панели и отладки системы с компьютера без перекоммутации. Скорость обмена достаточно высока.

5.4 Личный опыт работы с операторской панелью Weintek MT8090XE, подключенной по Ethernet к внутренней сети ПЛК

Для работы в данном режиме требуется установка драйвера в панель. Если панель приобреталась в МЗТА, то драйвер уже установлен и активирован. Если панель приобреталась в другом месте — потребуется купить ключ активации драйвера, скачать и установить драйвер на панель и активировать его.
После активации драйвер никуда не исчезает при перезаписи проектов.

Среда программирования EasyBuilder постоянно совершенствуется, поэтому скриншоты в примере создания проекта для панели не совсем соответствуют внешне, хотя свойства объектов совпадают полностью.

В одном моменте не до конца разобрался — передача тегов из ПО КОНСОЛЬ в проект для панели.
При создании нового проекта для панели в EasyBuilderPro с применением опции «Использовать шаблон (template_1024x768.empt)» — создаются автоматически и внутренние для панели теги (можно посмотреть по Проект — Адрес — LocalHMI).
Экспортирую теги из проекта для ПЛК при помощи ПО КОНСОЛЬ — Дополнительно — создать файл свойств контролера — Файл тегов для пультов Weintek — Из проекта КОНГРАФ (Pro).
Теперь добавляю теги из ПЛК к тегам проекта панели кнопкой «Импорт CSV…». И получаю нерабочий проект для панели! Всё потому, что теги ПЛК не добавились, а полностью заменили существовавшие внутренние теги панели.
Чтобы выйти из этой ситуации, пришлось:
  1. после создания проекта для панели сразу экспортировать внутренние теги в отдельный файл — «tagsHMI.csv»
  2. при каждом обновлении проекта для ПЛК получать теги — «tagsPLC.csv»
  3. объединять два файла — теги панели и теги ПЛК при помощи пакетного файла
    Windows Batch file
    1
    
    copy /b tagsHMI.csv + tagsPLC.csv tags.csv
  4. объединённый файл «tags.csv» импортировать в проект панели

Также, мне советовали создавать проект для панели без использования шаблона — тогда проект создаётся без внутренних тегов, с которыми нужно дополнительно возиться при обновлении проекта для ПЛК.
Возможно, это более правильный выход, но я его не проверил — как всегда, работы нужно выполнять срочно и на переделку всего проекта времени уже не было.

6. Использование ПИД регуляторов

Работа ПИД регуляторов (как с аналоговым выходом, так и для управления трёхпозиционным приводом) оставила приятное впечатление.
Но вот именно программирование имеет ряд особенностей, которые требуют внимательности.
  1. после расстановки на полотне всех элементов, выясняется, что часть настроек блока ПИД-регулятора скрыта среди свойств блока и для нормальной работы требуется часть из них заполнить константами в свойствах, а часть подключить к новым входам и сделать видимыми, чтобы иметь возможность корректировать в ходе эксплуатации.
    • параметр ACTION (направление действия) установить константой в зависимости от необходимости
    • параметр TF (постоянная времени фильтра измеряемой величины) установить константой
    • параметр DZONE (зона нечувствительности) установить константой
    • параметр TP (минимальная длительность импульса) установить константой
    • параметр B (время люфта исполнительного механизма) установить константой
  2. выходы блока ПИД регулятора подключать напрямую к выходам ПЛК — об этом есть упоминание в справке к блоку

7. Подключение аналоговых датчиков

Среди примеров рассмотрена обработка аналоговых входов для всех датчиков, кроме имеющих унифицированный токовый сигнал.
Привожу фрагмент программы обработки для токового сигнала (4…20)мА
Нажмите на изображение для увеличения
Название: AnalogIn_Current.PNG
Просмотров: 687
Размер:	2.6 Кб
ID:	5797

8. Подключение аналоговых выходов

Тип выхода — ток или напряжение — определяется перемычками на плате.
Для использования выходного токового сигнала (4…20)мА следует изменять выход от 20% до 100%.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru