По роду своей деятельности, а вернее, по какой-то прихоти судьбы, мне на объектах чаще всего попадаются в качестве «клиентов» контроллеры японской фирмы Omron. И, соответственно, чаще всего мне приходится заниматься программированием именно контроллеров Omron .
В этой статье, а может быть даже и цикле статей, я и хочу поделиться своим опытом программирования контроллеров Omron.
У Omron есть несколько линеек промышленных контроллеров.
Компактная серия CP, которая, в свою очередь, делится на 3 линейки:
CP1E – компактный экономичный контроллер, представленный двумя контроллерами: самый дешёвый CP1E-E и CP1E-N с чуть более широкими функциями. Один раз мне приходилось программировать такой. Возможности у него конечно здорово ограничены, но со своей задачей он справился хорошо.
CP1L – компактный контроллер с функциями модульного ПЛК. Здесь некоторые модели уже могут быть даже оснащены портом Ethernet. И, при необходимости, контроллер расширяется с помощью дополнительных модулей ввода/вывода (максимум до 180 входов/выходов), соединенных по последовательному порту.
CP1H – компактный высокоскоростной ПЛК. Поддерживает максимум 320 входов/выходов. Поддерживает коммуникационные модули (до 2-х штук), совместимые с популярными промышленными сетями (Ethernet, Modbus, Profibus).
Модульная серия CJ, имеющая в своем составе также 3 линейки: CJ1M – быстрый и гибкий контроллер для небольших прикладных задач и CJ2M и CJ2H – фактически, улучшенные и расширенные варианты CJ1M с поддержкой до 400К шагов.
Вся эта серия мне очень понравилась. И по скорости и удобству разработки, и по быстродействию.
Программируемый логический контроллер Omron CJ1M
И последняя серия CS1 для стоечного монтажа. Самая мощная серия омроовских контроллеров для серьёзного промышленного применения с большим выбором модулей и широкой линейкой процессоров.
Есть модели с возможностью резервирования. Хорошие, мощные контроллеры, но, как ни странно, в большинстве своем поддерживают программирование только на языке релейной логики LD , что жутко бесит, т.к. на них разрабатываются большие системы управления и, соответственно, уходит много времени на разработку.
К чему я описываю здесь модели контроллеров? К тому, что в зависимости от линейки различаются возможности не только по железу, но и возможности по программированию этих контроллеров.
Например, в резервированных контроллерах линейки CS1, как я уже писал, не поддерживаются функциональные блоки, а только язык LD. Хорошо, что поддерживаются подпрограммы. Хотя, в 2020 году появились в продаже процессорные модули этой серии, которые поддерживают функциональные блоки на языке LD и ST (структурированный текст) .
А в линейке CJ2 появились, наконец-то, нормальные структуры данных, что ускоряет разработку в разы.
Все контроллеры Omron программируются с помощью единого пакета программного обеспечения CX-One. Это целый комбайн, который включает в себя средства для программирования контроллеров Omron, панелей оператора, частотных преобразователей, систем управления движением, регуляторов, промышленных сетей из различных устройств Omron и т.п.
Но в разрезе нашей темы, нас интересует только часть, которая касается программирования именно контроллеров.
За это в CX-One отвечает пакет CX-Programmer. Ну, и ещё, CX-Integrator для конфигурирования сетей.
Как устанавливается пакет CX-One я описывать не буду. Сложного ничего в этом нет. Можно все оставлять по умолчанию и в результате вы получите работоспособный комплект ПО.
Конечно же, лучше один раз увидеть, чем сто раз услышать. Поэтому, как программировать контроллер Omron я покажу в небольшом видео на примере управления двигателем.
Итак, наши исходные данные:
контроллер Omron CJ1M с процессором CPU12;
один модуль ввода дискретных сигналов и один модуль вывода дискретных сигналов;
один модуль аналогового ввода;
двигатель, включаемый и отключаемый через контактор;
состояние двигателя приходит 2-мя сигналами – Включён (адрес CIO 0.00) и Отключён (адрес CIO 0.01);
управление двигателем осуществляется одним дискретным выходом (адрес CIO 1.00). Пока выходной контакт замкнут – идет команда на включение контактора двигателя. Как только контакт разомкнулся – команда с контактора снимается, контактор отключается и, соответственно, должен отключить двигатель;
команды на включение/отключение двигателя поступают от панели оператора на адреса W0.00 и W0.01 соответственно;
ну, и давайте, раз у нас есть модуль аналогового ввода, обработаем сигнал «Ток двигателя» для приведения его в форму, понятную оператору. Пусть максимальный ток, выдаваемый измерительным прибором – 600А и получаем мы его как токовый сигнал 4-20мА.
Да, и для простоты понимания будем все делать на языке релейной логики LD. Итак, запускаем CX-Programmer и поехали.
Программируем контроллер Omron CJ1M в среде CX-One (CX-Programmer), на примере управления двигателем :
На этом пока все. Удачи!
Дмитрий Кольянов — asutpby.ru
Информация, опубликованная на данном веб-сайте, представлена исключительно в ознакомительных целях, за применение этой информации администрация сайта ответственности не несет.
Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…
Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…
Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…
Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…
Выбор ноутбука для каждого пользователя это довольно кропотливый процесс. Люди стараются подобрать ноутбук который будет…
Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…