Программирование контроллеров OMRON для начинающих

По роду своей деятельности, а вернее, по какой-то прихоти судьбы, мне на объектах чаще всего попадаются в качестве «клиентов» контроллеры японской фирмы 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

Программируемый логический контроллер 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

Информация, опубликованная на данном веб-сайте, представлена исключительно в ознакомительных целях, за применение этой информации администрация сайта ответственности не несет.

EnglishRussianUkrainian