Программирование 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К шагов.

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

И последняя серия CS1 для стоечного монтажа. Самая мощная серия Omron'овских контроллеров для серьёзного промышленного применения с большим выбором модулей и широкой линейкой процессоров. Есть модели с возможностью резервирования. Хорошие, мощные контроллеры, но, как ни странно, в большинстве своем поддерживают программирование только на языке  релейной логики 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 и поехали.

На этом пока все. Удачи.

P.S.: Комментируйте, делитесь с друзьями, задавайте вопросы.

P.S.P.S.: Желающие могут скачать файл с примером программы показанной в видео здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

− 6 = 2