Хочу предупредить, что если вы сразу поняли о чём речь из заголовка, советую первый пункт(собственно, ПЛК-ядро) менять на что угодно из ценовой категории на ступень выше.
Никакая экономия денег не стоит такого количества нервов, субъективно.
Для тех, кого не пугает небольшая седина и амплитуда нервного тика, позже я опишу в подробностях как создавалось это технологическое чудо. В данной статье же краткий анализ проекта с определённой долей критицизма.
Зарождение. Постановка задачи
Собственно, работаю я в конструкторском бюро, и мы тестируем оборудование автоматизации для интеграции в наши заводы под ключ. Недавно на склад поступило оборудование ОВЕН и из него было решено собрать испытательный стенд:
- ПЛК110[M02]-MS4 (исполнительная среда MasterSCADA 4D)
- Панель оператора СП307
- Модуль универсальный ввода аналоговых сигналов МВ110-224.2А
- Модуль ввода сигналов тензодатчиков МВ110-4ТД
- Модуль электроизмерительный МВ110-220.3М
- Modbus RTU на базе RS-485 — общение ПЛК с подчинёнными устройствами(модули, частотники, интеллектуальные датчики, HMI панель СП307), ПЛК-мастер сети.
- Modbus TCP на базе Ethernet — Общение разных ПЛК друг с другом и с OPC-сервером
- ПК-сервер OPC и SCADA-системы является одновременно шлюзом между двумя разными сетями(Корпоративная LAN предприятия и Modbus TCP сеть контроллеров(два сетевых адаптера с маршрутизацией данных стандартными средствами Windows)
- Корпоративный LAN имеет выход в интернет через прокси-сервер
Программирование ОВЕН ПЛК110. Часть 4. Подключение ПЛК к ПК по Ethernet
Заложенный функционал
- Сбор и перенаправление данных с ПЛК на OPC-сервер
- Локальное управление и мониторинг посредством HMI-панели
- Управление и мониторинг из SCADA через OPC-сервер
- Управление с любого ПК из LAN предприятия и через интернет с помощью SCADA-клиента
- Подключение мобильных OPC-мониторов через LAN и интернет
- Разумеется, архивация и генерация отчётов
Возникшие сложности
1. Документация к ПЛК
Beta-тестирование заявленного ПЛК на ядре MasterSCADA 4D было обозначено производителем в 2012 году. Несмотря на такой внушительный срок существования концепта, всё что имеет разработчик в 2019-м — это руководство по программированию в 28(!?) страниц, на которых полезной информации чуть менее чем нисколько, причём скриншоты в мануале из MasterSCADA 3D, что довольно забавно с учётом того, что интерфейс сменился.
Также активно поддерживается тремя адептами и менеджером по продажам ветка форума в 20 топиков.
2. Архитектура ПЛК-модули
Это отдельная тема для обсуждения. Кратко: ПЛК общается с модулями как с Modbus RTU slave устройствами, которые предварительно необходимо сконфигурировать утилитой отдельно подключив каждый к ПК через преобразователь RS-485.
Умные дяди, конечно, наверняка умеют делать это без преобразователя через ПЛК, последовательно подключая модули в сеть и записывая нужные регистры, но такое приходит с опытом и огромным количеством боли.
Программирование ОВЕН ПЛК110. Часть 1. Создание первого проекта в CODESYS v2.3
Для разработчика впервые увидевшего такую архитектуру совсем не юзер-френдли.
Также все аналоговые модули любят уходить в отказ по неизвестным причинам, забирая за собой всю RS-485 сеть в Терра Инкогнита, но об этом я также хочу рассказать отдельно, целая эпопея, конечно. Проблеме, к слову, лет 10, производитель отшучивается «Следует признать, шаблоны нам не удались», однако это единственный интерфейс общения с модулями, и люди, вполне серьёзно, давно прописывают свои реализации Modbus RTU.
3. IDE MasterSCADA
Про графические инструменты говорить не будем, сильно я не тестировал, но скажу сразу, что не понравилось.
Говорим про реализацию обмена данными и языки стандарта МЭК:
Физические вводы выводы контроллера не являются глобальными переменными и к ним нельзя обратиться из любой части программы, написав алиас, например «DI1». В каждую программу следует перетаскивать это ручками, там формируется локальная переменная, которая наследует или передаёт значение. Т.е. сама сущность ПЛК, в моём видении, немного утеряна: устройство должно упрощать программирование логики работы физических каналов до уровня «Если сработал вход DI1 — Включаем выход DO1», а выглядит это так «Вход DI1 — Переменная LI1 — Переменная LO1-Выход DO1», также по незнанию этого принципа IDE можно словить восхитительное предупреждение «Преобразование Boolean-Boolean невозможно»(вероятнее всего, что то из них указатель, но представляю в редакции создателей, так гармоничнее).
Библиотеки языков ST, FBD, SFC достаточно объемные и выбор для удобства программирования есть, однако эти компоненты являются не функциями, а классами, внутри которых зашиты методы, а во вторых на большинство отсутствует справка с описанием функционала и типов данных. Настырность привела меня в библиотеки ядра CodeSys, откуда все эти функции и были взяты, их справка помогла.
4. Обмен с панелью СП307
Довольно интересное мероприятие для тех, кому некуда потратить пару дней.
Стандартное тестирование GUI(HMI или SCADA) для меня это сделать 6 проб:
- Чтение дискретного сигнала
- Запись дискретного сигнала
- Чтение целочисленного значения
- Запись целочисленного значения
- Чтение вещественного значения
- Запись вещественного значения
Первые 4 пункта были выполнены на отлично, но 5 и 6 вызвали проблемы.
Отправляем данные типа Single Float, на экране их выводим и видим, что данные не те, хотя все настройки вывода(Float, размерность 1 регистр и прочее) стоят правильно. Будет неправдой сказать, что в документации прецедент не описан, однако, попробуйте найти в какой и где, это со стороны забавно.
После истеричного перебора всех настроек, касаемых самих данных и их отправки, пишем в техподдержку, ответ в среднем 5-6 календарных дней, работаем по стандартному скрипту техподдержки «Проверьте, что питание включено — проверьте версию ПО — ожидайте, пожалуйста еще неделю-Идём разбираться сами».
К слову, решилось установкой одной галочки в абсолютно неадекватном месте с абсолютно неадекватной подписью.
В функционал экрана не заложен ввод аналогового сигнала формата «Бегунок», можно вписать только в текстовое поле цифрами. Это просто восхитительно, либо пишем кнопки «±» и скрипт самостоятельно либо вводим цифру с клавиатуры, о мягком управлении каким-нибудь приводом забываем.
Не буду сильно перегружать статью, поэтому буду описывать проблемы с верхним уровнем в части 2.
Резюмируя, хочу отметить, что я имел достаточную свободу и много времени для решения этих проблем, которые на первый взгляд кажутся смешными, но вызывают много боли у пострадавшего. В условиях ограниченных сроков с такими проблемами сталкиваться критично.
P.S.: Все тезисы, изложенные здесь, субъективны, и являются лишь попыткой предупредить неподготовленных, а не дискриминировать производителей, прошу отнестись к этой статье именно с этой точки зрения.
Источник: temofeev.ru
Форум АСУТП
Слить проект с ПЛК110-60
Сообщение VADR » 04 июн 2020, 09:10
Есть контроллер Owen ПЛК110-60 (неожиданно достался в обслуживание). Проект утерян, фирма-разработчик прекратила существование, люди-разработчики неизвестны. Вопрос, собственно: есть ли возможность скачать с этого контроллера работающий в нём проект, и если есть — то как это сделать?
Отправлено спустя 1 минуту 39 секунд:
. шальная мысль. а может быть, тут есть инженеры, делавшие несколько лет назад для Сегежского ЦБК систему управления воздухонагнетателем ВН-360 на СБО?
🙂
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
VADR
Слить проект с ПЛК110-60
Сообщение Ryzhij » 04 июн 2020, 10:36
Если исходник проекта не был загружен в контроллер, то слить откомпилированный файл можно.
Вот только модифицировать его и использовать в иной программно-аппаратной конфигурации контроллера никак не выйдет.
Самое простое — попробовать PLC-Browser.
—————————————————
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
«Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить.» (святитель Николай Сербский)
Ryzhij
Автор темы
Слить проект с ПЛК110-60
Сообщение VADR » 04 июн 2020, 11:19
Ryzhij писал(а): ↑ 04 июн 2020, 10:36 Если исходник проекта не был загружен в контроллер, то слить откомпилированный файл можно.
Вот только модифицировать его и использовать в иной программно-аппаратной конфигурации контроллера никак не выйдет.
Ага. То есть — слить в принципе можно в любом случае, но если загрузка была без исходника — в дальнейшем можно только восстановить на аналогичном оборудовании, если с исходником — можно полноценно работать с проектом. Так?
Ryzhij писал(а): ↑ 04 июн 2020, 10:36 Самое простое — попробовать PLC-Browser.
Это софт от Овна или сторонний? И ещё: в процессе слива проекта есть опасность сбоя/остановки контроллера? То есть — можно ли эту операцию делать на ходу или мне дождаться, пока технологи оборудование на ППР остановят?
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
VADR
Слить проект с ПЛК110-60
Сообщение Ryzhij » 04 июн 2020, 12:11
VADR писал(а): ↑ 04 июн 2020, 11:19 Ага. То есть — слить в принципе можно в любом случае, но если загрузка была без исходника — в дальнейшем можно только восстановить на аналогичном оборудовании, если с исходником — можно полноценно работать с проектом. Так?
Как и с любого незащищённого микроконтроллера, в крайнем случае — программатором.
Последний раз редактировалось Ryzhij 04 июн 2020, 12:18, всего редактировалось 1 раз.
—————————————————
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
«Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить.» (святитель Николай Сербский)
Ryzhij
Слить проект с ПЛК110-60
Сообщение paul-th » 04 июн 2020, 12:17
С Овеном это как фишка ляжет, была и есть машина как раз на таком контроллере и ещё панель овеновская, залезли на панель и она ушла в ресет со сбросом пользовательских параметров, хорошо это всё на бумажке было записано, но с панели проект так и не слили, к контроллеру с двух портов пробовали подключиться , сделали шнуры как в доках написано, но он сказал НЕТ, нет соединения с контроллером. Плюнули и уехали.
paul-th
Слить проект с ПЛК110-60
Сообщение Sergy6661 » 04 июн 2020, 13:28
Все надо делать очень аккуратно, на панель не залазить(особенно ногами)
Есть нюансы:
1. Классический способ- установить кодесис 2.3 и таргет соответствующего контроллера. Подключиться средой с «Пустым»(; на ST) к ПЛК среда скажет что проект в ПЛК другой, менять загруженный проект? Отвечаем НЕТ и должно подключиться, при этом можно вытащить из ПЛК файлы DEFAULT.PRG и DEFAULT.CHK — это скомпилированные файлы проекта, а энергонезависимые переменные лежат в файлах retain.bin и RETAIN.1.(Подробности копирования проще из руководств на кодесис прочитать) Для подключения к ПЛК по Ethernet порту надо знать IP, заводской 10.0.6.10, в ПЛК110-60 есть косяк- если модбас слэйв на ethernet порту, то средой программирования не подключишься.
2. Есть утилита(Ы) Овенские,для чтения-записи файлов в ПЛК, их там 2 одна на запись, другая на чтение, причем обе косячные, на форуме ихнем есть «правильные» сборки, даже оболочку один добрый человек наваял, но работают они только по Ethernet порту.
Источник: asutpforum.ru
ОВЕН ПЛК-110 Модем ОВЕН ПМ01
ОВЕН ПЛК110 – линейка программируемых моноблочных контроллеров с дискретными входами/выходами на борту для автоматизации малых и средних систем.
Оптимальны для построения распределенных систем автоматизации когда расширение входоввыходов ПЛК удаленными модулями и связь с другими ПЛК осуществляется по интерфейсу RS485 либо Ethernet.
Подключение контроллера ОВЕН ПЛК-110 к комплексу DispSky
Для подключения контроллера к комплексу DispSky необходимо:
В модеме:
Установите переключатели 1-OFF, 2-ОN. При помощи терминальной программы и преобразователя интерфейсов подключитесь к модему:
— AT+IPR=115200 (скорость обмена по сом-порту)
— ATE0(отключение эха)
— AT «Конфигурация ПЛК» -> «Modbus (slave) » (На рисунке пункты 1 и 2) Обратите внимание на пункт 3 — указатель на начало области регистров modbus:
Добавьте библиотеку ConnectToDispSky.lib. Обратите внимание, что для работы также необходима стандартная СoDeSys-библиотека SysLibSockets.lib. Для их добавления — кликните правой кнопкой мыши в области поля установленных библиотек:
Перейдите в раздел основной программы контроллера:
- Создайте экземпляр блока ConnectToDispSky
- Введите адрес сервера (s1.dispsky.ru)
- Укажите порт (5005)
- Придумайте и укажите уникальный двенадцатизначный код, состоящий из ASCII символов (IMEI)
- Введите указатель на начало области регистров modbus (смотрите изображение 2)
ConnectToDispSky(addrDispSky:= addr, portDispSky:= port, heartBeatDispSky:= heartBeat, startModbusAddr:= ADR( %QW6.1.0));
Сформируйте прошивку и запустите контроллер.
В личном кабинете DispSky:
Добавьте узел (Для этого нажмите правой кнопкой мыши на свободной области поля «устройства»):
В открывшемся окне введите параметры подключения:
- Придумайте название
- Выберите режим настройки — CoDeSys Device
- Введите код, который вы указали в функциональном блоке программы для контроллера (IMEI)
В открывшемся окне введите параметры устройства:
- Введите название устройства
- Выберите протокол Modbus TCP
- Придумайте и введите идентификатор для устройства
В дереве устройств появится добавленное устройство. Галка зеленного цвета означает корректно выполненные настройки и наличие устройства на связи с комплексом DispSky
Для просмотра и добавления регистров для опроса в контроллере нажмите на кнопку «Теги»:
Для добавления тегов нажмите кнопку добавить и введите параметры регистров:
При выборе адресов учитывайте расположение регистров в разделе «Конфигурация ПЛК»:
Проконтролировать передачу данных возможно в настройках соединения путем выбора вкладки «Диагностика»:
Для удобного и наглядного контроля за параметрами программы Вы можете сделать мнемосхему и видеть все показатели в ОнЛайн режиме в личном кабинете из любой точки в мире.
Программные решения ОВЕН ПЛК110
Как и прежний ПЛК110, контроллер программируется в профессиональной среде CODESYS, разработанной немецкой компанией 3S-Software. Среда позволяет создавать программы на пяти языках, так что каждый специалист может выбрать удобный именно для него язык. В среде имеются мощные средства для отладки проекта, встроенный режим эмуляции работы. Подробно о CODESYS можно узнать на сайте производителя. Важно отметить, что покупателям контроллеров ОВЕН среда CODESYS предоставляется бесплатно.
Программировать контроллер можно по любому из трех интерфейсов: Ethernet, USB Device, RS-232 (Debug). В ближайшее время появится возможность программировать контроллер удаленно с использованием сотовых сетей связи по каналу GPRS.
В контроллере программно поддерживается работа с GSM-модемами: встроена библиотека для приема/ отправки СМС, установлена настройка конфигурации обмена по голосовому каналу CSD. В перспективе появится поддержка удаленной работы через GPRS, которая позволит производителям станков и технологических линий осуществлять дистанционное наблюдение за оборудованием и при необходимости обновлять управляющую программу.
Количество интерфейсов и параметры их работы в новом ПЛК110 сохранены и, кроме того, добавлены новые. Интерфейс USB Host позволяет создавать архивы и логи работы, записывать их на внешнюю память, размер которой исчисляется гигабайтами. Скоро появится возможность обновлять встроенное ПО контроллера и при необходимости записывать код программы с flash-карты, подключаемой к USB.
Зарождение. Постановка задачи
- ПЛК110[M02]-MS4 (исполнительная среда MasterSCADA 4D)
- Панель оператора СП307
- Модуль универсальный ввода аналоговых сигналов МВ110-224.2А
- Модуль ввода сигналов тензодатчиков МВ110-4ТД
- Модуль электроизмерительный МВ110-220.3М
- Modbus RTU на базе RS-485 — общение ПЛК с подчинёнными устройствами(модули, частотники, интеллектуальные датчики, HMI панель СП307), ПЛК-мастер сети.
- Modbus TCP на базе Ethernet — Общение разных ПЛК друг с другом и с OPC-сервером
- ПК-сервер OPC и SCADA-системы является одновременно шлюзом между двумя разными сетями(Корпоративная LAN предприятия и Modbus TCP сеть контроллеров(два сетевых адаптера с маршрутизацией данных стандартными средствами Windows)
- Корпоративный LAN имеет выход в интернет через прокси-сервер
Слить проект с ПЛК110-60
Сообщение paul-th » 04 июн 2020, 12:17
С Овеном это как фишка ляжет, была и есть машина как раз на таком контроллере и ещё панель овеновская, залезли на панель и она ушла в ресет со сбросом пользовательских параметров, хорошо это всё на бумажке было записано, но с панели проект так и не слили, к контроллеру с двух портов пробовали подключиться , сделали шнуры как в доках написано, но он сказал НЕТ, нет соединения с контроллером. Плюнули и уехали.
Модификации и цены
Схема расположения и назначение клемм на ПЛК110-220.30.К. Схема для ПЛК110-24.30.К — аналогична
Схема расположения и назначение клемм на ПЛК110-220.30.Р
Изучаем CodeSys
Итак, с помощью программы мы настроили все модули на одинаковые параметры связи и дали им адреса. Теперь их можно физически подключить к ПЛК, а сам ПЛК воткнуть в сетку. ПЛК ОВЕН 110 можно программировать тремя способами: через USB, через RS-232 и по сетке.
Самый лучший способ из этого — программировать ПЛК по сетке, потому что в этом случае он не перезапускается, а программа заливается туда в горячем режиме. То-есть написали, загрузили, проверили. Что-то исправили? Сразу же загрузили и проверили. Если же программировать ПЛК по USB — то там надо вынимать USB-кабель после заливки программы, что адски неудобно.
Связь с ПЛК 110 по Ethernet
И теперь начинаем разбираться с CodeSys. Я скачал её прямо с сайта ОВЕНа, где она есть в русском варианте. Вообще я не люблю русские переводы специального софта, потому что переводят его те, кто ни фига не понимает в технике. Например, самый адский перевод был у AutoCad: «Вырезать, Обрезать, Растянуть, Расчленить, Взорвать». Или у P-CAD, где Net (соединение) перевели как «Сеть».
Но в случае с CodeSys русский перевод мне помог разобраться в терминологии и в том, где что находится. После этого русский перевод мне уже не нужен, и я могу ориентироваться в английской среде свободно.
Сама среда состоит из дерева проекта, где несколько вкладок и элементов дерева. В них отображается как структура программы, так и всякие злобные параметры ПЛК и его внешние ресурсы. Все элементы дерева открываются кучей дочерних окон со своими настройками.
Среда разработки CodeSys v2 для ПЛК 110
Сама CodeSys поддерживает много языков программирования. В том числе и тех, на которых удобно программировать логические реле.
Пример проекта на CodeSys на нескольких языках одновременно
Например, можно программировать при помощи блок-схем (CFC). Это как нам в школе алгоритмы учили рисовать в стиле «Начало => Ввод данных => Если .. то => иначе => Конец». Тут это рисуется при помощи блоков:
Пример последовательных логических схем (CFC)
А можно програмировать функциональными блоками (FBD), как на логических реле. В этом случае схема исполняется не последовательно как в CFC, а по сигналам, как в обычной цифровой логике на микросхемах:
Пример разработки на функциональных блоках (FBD)
Для тех, кто переходит с обычных релюшек и автоматики есть возможность писать всё в релейной логике LD, LAD. Тогда всякие сигналы описываются контактами, которые включают или выключают реле:
Пример разработки на релейно-контактной схеме (LD)
А ещё есть язык инструкций IL. Он подойдёт тем, кто любит суровый ассемблер. Смотрите, как он похож на него же:
Пример разработки на языке инструкций (IL)
А на мой взгляд самый удобный язык для сложных задач — это обычный текст ST, который похож на смесь СИ и Pascal одновременно:
Пример разработки на редакторе кода (ST)
Тут тебе есть и комментарии, и возможность написать любые условия.
Внутри CodeSys можно совмещать все эти языки и создавать свои функциональные блоки. Например, вы можете на ST написать сложный блок, который чего-нибудь вычисляет и выдаёт на выходе логическое значение 1 или 0. А потом взять язык FBD и из этих блоков составить «простую» логическую схемку.
Другие советы:
Помимо соединения plc по RS232, haiwell PLC также может использовать кабель для преобразования интерфейса “RS-232 в RS-485” и “USB в RS-485” с “485A в А+” и “485B в B-“. Модуль расширения Haiwell также может быть напрямую подключен к haiwellhappy, и его также можно использовать для загрузки программ, мониторинга и т.д.
Если оборудование PLC haiwell было введено внутри программы связи, тогда, когда ПЛК находится в рабочем состоянии, он автоматически отправит данные в коммуникационный порт plc, в этом случае он не сможет подключиться к сети с haiwellhappy в этот момент, поэтому в этом случае пользователю необходимо переключить рабочий режим ПЛК на “Stop”.
Источник: fobosworld.ru