Программирование контроллеров 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 И последняя серия 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 Источник: http://electrik.info