Omron’s sample code database has been created by our technical experts to help you speed up your projects across the entire spectrum of automation technologies. Here you can find function blocks and application-specific code for a variety of applications across industries such as automotive, food and beverage packaging, and more.
Keep checking back for new code updates, and be sure to share your feedback on the type of code you are looking for.
Site Footer
Subscribe to OmronNow today for enhanced access to tools, resources and the latest news from Omron!
News, Events, https://automation.omron.com/en/us/support/resources/sample-code/» target=»_blank»]automation.omron.com[/mask_link]
Изучение программы симулятора для программируемого контроллера OMRON
Цель работы: Изучить программу симулятор для контроллера OMRON.
Программа: Разработать схемы по выданным заданиям и промоделировать их работу в программе симулятора.
Отчет по лабораторной работе должен содержать: разработанные и промоделированные схемы.
Программирование Omron. Начало
Программа симулятор ZENTOOL предназначена для отладки программ написанных на языке релейно – контактных схем РКС (Ladder diagram — LD).
При включении программы появляется окно представленное на рис.1
Рис.1 Окно программы симулятора для контроллера OMRON
Для выбора нового проекта необходимо активизировать File – New при этом появляется окно установки свойств контроллера. В окне ZEN types необходимо выбрать тип контроллера и ввести имя проекта в поле Project name.
Рис.2 Окно для установки типа контроллера ZEN
При нажатии на ОК появится окно для создания проекта (рис.3).
Рис. 3 Окно для создания проекта
Рассмотрим элементы панели инструментов для создания схем.
1 – кнопка для ввода контакта;
2 – кнопка для ввода катушки
3 – кнопка для ввода горизонтальной линии;
4 — кнопка для ввода горизонтальной линии.
Для ввода элемента схемы в поле проекта нужно нажатьна кнопку ввода контакта при этом появляется окно рис.4.
Рис. 4 Окно для редактирования элемента контакт
Здесь в поле Contact необходимо указать Normaly open (нормально открытый) или Normaly closed (нормально закрытый). В поле Relay No указывается номер контакта. В поле Comment можно указать комментарий, например, назначение контакта. В соответствии с разрабатываемой схемой необходимо ввести нужное количество контактов каждый раз указывая их параметры.
В правой части рабочего поля экрана может вводиться (зеленое поле) катушка реле (coil Q), таймер (Т), счетчик (С), бит памяти (М). Для этого необходимо нажать кнопку ввода катушки при этом появиться окно рис.5.
Программирование ПЛК (программируемых логических контроллеров). Введение.
Рис.5 Окно ввода параметров катушки (coil)
Для выполнения симуляции работы разработанной схемы необходимо включить режим симуляции. Для этого воспользуйтесь кнопками следующей панели
1 – старт симуляции;
2 – останов симуляции;
3 – показать контроллер;
4 – показать лист значений;
6 – включить режим симуляции.
Рассмотрим пример создания проекта (рис.6). При срабатывании контактов I0 или I2 и I1 срабатывает катушка реле Q1, при этом она своим контактом Q1 запускает таймер Т1, который через 10 секунд своим контактом Т1 включает катушку реле Q2. При десятикратном нажатии на кнопку I4 счетчик C0 (настроен на 10 импульсов) замыкает свой контакт С0 и через нормально закрытый контакт I5 включает катушку Q4, при нажатии на I5 срабатывает бит в памяти М0 и своим контактом включает катушку Q0.
Рис.6 Пример проекта
Для симуляции учебного проекта нажмите кнопку 6 панели при этом появится окно контроллера (рис. 7) с подключенными элементами схемы катушки реле будут представлены в виде лампочек, а контакты в виде кнопок.
Рис.7 Контроллер с подключенными кнопками и лампочками
Промоделируйте работу всей схемы. Нажимайте кнопки при этом должны срабатывать нужные исполнительные элементы — лампочки.
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ:
1. При нажатии на кнопку №1 загораются лампочка №1 и лампочка №2. При нажатии на кнопку №2 гаснет лампочка №1, а при нажатии кнопки №3 – лампочка №2.
2. При нажатии на кнопку №1 загорается лампочка №1, а при нажатии на кнопку №2 – лампочка №1 гаснет и загорается лампочка №2.
3. При нажатии на кнопку №1 и кнопку №2 загорается лампочка №1, при нажатии на кнопку №3 лампочка №1 гаснет.
4. При нажатии на кнопку №1 и кнопку №2 загорается лампочка №1, при нажатии на кнопку №3 лампочка №1 гаснет и загорается лампочка №2.
5. При нажатии на кнопку №1 или кнопку №2 загорается лампочка №1, при нажатии на кнопку №3 лампочка№1 гаснет.
6. При нажатии на кнопку №1 или кнопку №2 загорается лампочка №1, при нажатии на кнопку №3 лампочка №1 гаснет и загорается лампочка №2.
7. При нажатии на кнопку №1 и кнопку №2 загорается лампочка №1 и лампочка №2, при нажатии на кнопку №3 лампочка №1 гаснет, при нажатии на кнопку №4 гаснет лампочка №2.
8. При нажатии на кнопку №1 или кнопку №2 загорается лампочка №1 и лампочка №2, при нажатии на кнопку №3 лампочка №1 гаснет, при нажатии на кнопку№4 гаснет лампочка №2.
9. При нажатии на кнопку №1 загорается лампочка, а при нажатии на кнопку №2 и кнопку №3 – лампочка гаснет.
10. При нажатии на кнопку №1 загорается лампочка, а при нажатии на кнопку №2 или кнопку №3 – лампочка гаснет.
11. При нажатии на кнопку №1 и кнопку №2 загорается лампочка №1, а при нажатии на кнопку №3 и кнопку №4 – лампочка гаснет.
12. При нажатии на кнопку №1 и кнопку №2 загорается лампочка №1, а при нажатии на кнопку №3 или кнопку №4 – лампочка гаснет.
13. При нажатии на кнопку №1 или кнопку №2 загорается лампочка №1, а при нажатии на кнопку №3 или кнопку №4 – лампочка гаснет.
14. При нажатии на кнопку №1 или кнопку №2 загорается лампочка №1, а при нажатии на кнопку №3 и кнопку №4 – лампочка гаснет.
15. При нажатии на кнопку №1 загораются лампочки №1, №2, №3, №4, №5.
при нажатии на кнопку №2 – гаснет лампочка №1,
при нажатии на кнопку №3 – гаснет лампочка №2,
при нажатии на кнопку №4 – гаснет лампочка №3,
при нажатии на кнопку №5 – гаснет лампочка №4,
при нажатии на кнопку №6 – гаснет лампочка №5,
Если нажать на кнопку № 7 сразу гаснут все лампочки.
Задание №2
Источник: studopedia.su
IEC 61131-3
Эта среда разработки мне нравится больше всех (даже чем Siemens STEP 7. ИМХО, слишком наинтегрировали — много лишнего, если проект небольшой).
К счастью для всех (и к несчастью для оригинальности этой статьи) , у Omron-а в справке очень подробно описываются практически все инструкции. Но моя цель — показать различия в реализации от разных производителей, так что я конспективно перенесу выдержки из справки.
Счетчики (и таймеры) у Omron делятся на два вида — считающие в BCD-формате и в десятичном. Способ применения одинаковый. Но у первых необходимо вносить данные, соответственно, в BCD. Это может оказаться полезным при работе с часами реального времени, т.к. именно в таком формате хранится текущая дата/время. Минусы при его использовании — максимальное значение в одном слове — 9999 и большее время на обработку инструкций.
![]() |
Пример применения |
Инициирование счетчика происходит путем его сброса (это связано с тем, что значение счетчика сохраняется при отключении питания (без батарейки некоторое время)) . Считает он в обратную сторону, так что, если просмотреть значение регистра C0 (текущее значение, PresentValue, PV), то увидим 10, а после переустановки W0.00 — 9.
В данном примере я объединил два способа сброса. По первому (с использованием W0.01, но вместо него можно на вход сброса поставить и бит C0 (флаг окончания счета)), досчитав, счетчик будет выдавать импульс на С0 и самосбрасываться. В этом способе, необходимо до первого счета уже обнулить счетчик. По второму, с использованием W0.02, остальной программе достаточно подавать счет на W0.00, первый сброс будет самостоятельным.
Также существует реверсивный счетчик. Отличия от обычного:
- Вход не один,а два: по одному текущее значение прибавляется (прямой счет), по второму убавляется (обратный счет)
- При сбросе текущее значение счетчика становится равным 0
- Флаг окончания счета устанавливается только в двух случаях:
- При использовании входа обратного счета был получен 0
- При использовании входа прямого счета было получено установленное значение (Set Value, SV)
Delta Electronics ISPSoft
В данной среде разработки все инструкции делятся на 16- и 32-битные. Для 16-ти битных счетчиков отведены регистры C0..C199, для 32-х — C200..C254. 32-битные поддерживают реверсивность. Достигается путем установки битов M1200~1254 соответственно для счетчиков C200-C254.
Так же существуют высокоскоростные счетчики, счет которых может вестись со входов независимо от цикла сканирования (у Omron для этого есть аппаратные функции). Их адреса — с поддержкой обратного счета: С232..С242, C245..C254. С прямым счетом: C243, C244. Счетчики с прямым счетом считают в диапазоне от 0 до установленного значения (максимально 32767 или 2147483647).
16-битные прекратят свой счет после его достижения, 32-битные же продолжат. 32-битные с поддержкой обратного счета считают в диапазоне -2147483648..+2147483647. Флаг достижения счета будет включен только если текущее значение будет равно установленному. После переполнения продолжат с -2147483648. Без поддержки от 0 до 2147483647.
После переполнения продолжат с 0. В отличии от Omron, сброс при первом запуске не требуется. Сброс осуществляется путем применения инструкции RST — «сбросить бит» к имени счетчику. Сбрасывается флаг окончания счета и текущее значение становится 0.
![]() |
Аналог кода на Omron |
Это аналог кода Omron, который я привел на первой картинке.
Кстати, если в текущее значение (PV) 16-битного счетчика записать число, большее чем уставка (SV),то в следующий раз, когда будет инициирован счет, включится флаг окончания счета и текущее значение счетчика станет равным уставке.
Для более детального рассмотрения высокоскоростных (программных и системных) счетчиков предлагаю ознакомиться с 61-66 руководства (2).
Таймеры
Omron CX-One
Аналогично счетчикам, все таймеры разделяются на считающие в BCD- и BIN-формате. Дополнительно, таймеры разделяются по единицам измерения: 100 мс таймеры, 10 мс и 1мс. 32-битную модификацию имеют только 100-мс таймеры. Считают таймеры с уставки до нуля. Тип таймера определяется при запуске его определенной инструкцией.
![]() |
Примеры применения |
Таймеры запускаются подачей на них сигнала. После пропадания сигналов 0.00, 0.01 текущие значения T0, T1 (регистры) таймеров становятся равными уставке (даже если счет не закончен) и снимаются T0, T1 (биты) флаги окончания счета.
Также существует накопительный счетчик (100мс, 16-бит, BCD/BIN). Отличается тем, что считает от нуля до уставки, после снятия сигнала счета не сбрасывает своего текущего значения и после восстановления сигнала продолжит счет с того значения, на котором остановился. Сброс таймера осуществляется дополнительным входом сброса. С таким таймером нужно помнить это отличие, чтобы на автомате не забыть, что если подали сигнал сброса, то флаг окончания счета сбросится только в следующем цикле, при исполнении этой инструкции. О таких ситуациях я напишу отдельную статью.
Delta Electronics ISPSoft
Таймеры Delta Electronics отличаются от Omron в том, что их применение заранее определно номером используемого регистра. Все они считают от 0 до уставки и только в десятичном формате. 32-битные инструкции займут два регистра [T0,T1], [T2,T3].
- Регистры для 100-мс таймеров стандартных: T0..T126, T128..183
- Регистры для 100-мс таймеров накопительных: T250..T255
- Если установлен бит M1028, то разрешение T64..T126 — 10 мс.
- Регистры для 10-мс таймеров стандартных: T200..T239
- Регистры для 10-мс таймеров накопительных: T240..T245
- Если установлен бит M1028, то разрешение T200..T245 — 1 мс.
- Регистр для 1-мс таймера стандартного: T127
- Регистры для 1-мс таймера накопительных: T246..T249
В прерываниях и подпрограммах разрешается использовать только T184..T199.
![]() |
Стандартный таймер |
![]() |
Накопительный счетчик |
![]() |
Аналог кода на Omron |
В прерываниях и подпрограммах разрешается использовать только таймеры T184..T199.
У Delta существует обучающийся таймер, который представляет из себя инструкцию TTMR, записывающую в указанный регистр время выбранного бита в положении «включено». Всего в программе можно вызвать её 8 раз. А в прерывании или подпрограмме 1 раз.
Также есть инструкция специального таймера STMR (только 16 бит, для T0..T183), который предназначается для управления определенным образом четырьмя битами в соответствии с установленным временным интервалом.
![]() |
Специальный таймер: циклограммы управления |
- Документация для контроллеров Omron
- Документация для контроллеров Delta Electronics
Источник: plc-prog.blogspot.com