Китайский ПЛК Wecon LX3V-0806MT-A2, часть 2: программирование | ПЛК и АСУТП

В первой части обзора китайского ПЛК Wecon LX3V-0806MT-A2 я рассказывал про его аппаратную часть.

Сейчас посмотрим, как обстоят дела с программированием.

С точки зрения программирования, ПЛК Wecon серии LX3V является клоном ПЛК Mitsubishi Melsec FX2N. Поэтому программировать LX3V можно как в родной среде программирования Wecon PLC Editor, так и в среде GX Works2 для контроллеров Митсубиси.

 

ПО для Wecon LX3V Языки программирования Статус
Wecon PLC Editor v.1.2.0 IL, LD бесплатная
Melsoft GX Works2 v.1.50 IL, LD, ST, SFC, FBD триал на 60 дней

IL- своеобразный ассемблер ПЛК.
LD- стандартный для контроллеров графических язык радиорелейных схем. Преимущество- простота.
ST- си-подобный язык, особенно популярный у перешедших из классического программирования в мир АСУ.
SFC- графический язык, которым вообще-то мало кто пользуется. Но тем, кто его освоил, он нравится.
FBD- графический язык, где программа складывается из кубиков, как конструктор.

Сегодняшние темы:

Освоение
Общие сведения о программировании ПЛК Wecon LX3V
Wecon PLC Editor
Связь по Modbus
Совместимость с ПО для ПЛК Mitsubishi
Впечатления о программировании

 

Освоение

Информация о программировании именно ПЛК Wecon LX3V пока существует только на английском языке.
На офф. сайте можно скачать инструкции на оборудование.
Есть англоязычный форум. Есть технический центр, где лежат примеры программ по актуальным темам: работа с таймерами, связь по модбас и т.д.
Где-то в сети я нашел и полное руководство программиста «WECON LX PLC Programming Manual» на 572 стр. В этом руководстве, правда, параметры и регистры указаны для моделей ПЛК Wecon LX1S и LX2N, а для LX3V нет:
wecon_manual_01

Сейчас Wecon готовит новую редакцию, а пока меня заверили, что данные для LX2N соответствуют данным LX3V.

Но если тяжело читать на английском даже с гугл-переводчиком, то можно вспомнить, что Wecon LX3V является клоном ПЛК Митсубиси. Поэтому для изучения программирования Wecon LX3V подойдет документация на Mitsubishi FX2N. Здесь с русскими текстами полный порядок и по сети их раскидано множество, как и видеоуроков.

Мне больше всего понравились мануалы «Контроллеры серии FX1S, FX1N, FX2N(C), FX3U. Пособие для начинающего программиста» на 116 стр. и «ПЛК Mitsubishi Electric. Серия FX. Руководство по программированию» на 702 стр. В последнем вообще тщательно разжёваны все нюансы программной архитектуры и программирования контроллера. Главное помнить, что LX3V соответствует FX2N.

 

Общие сведения о программировании ПЛК Wecon LX3V

Максимальный размер программы- 16000 шагов(steps).
Программа состоит из инструкций(команд), каждая из которых занимает разное количество шагов. Например: инструкция деления 32-битных чисел DEDIV- 13 шагов, инструкция проверки нормально замкнутого бита LD- 1 шаг. Предположу, что максимальный размер программы составит 1000-2000 инструкций.

Инструкции
ПЛК Wecon LX3V имеет 138 инструкций(команд). Из них 136 инструкций одинаковы с ПЛК Mitsubishi и 2 инструкции, которых в Митсубиси нет. Все инструкции объединены в 16 групп:

Базовые /Basic Instruction
STL /Step ladder instruction
Обработка программ /Program control instruction
Сравнение и перенос /Move and Compare Instruction
Арифметические инструкции /Arithmetic Operation Instruction
Сдвиг и поворот /Rotation and Shift Instruction
Операции с данными /Data Operation Instruction
Высокоскоростные /High-speedProcessing Instruction
Handy instruction
Внешний ввод/вывод /External IO Instruction
External SER Device Instruction
Операции с числами с плавающей точкой /Floating pointoperation instruction
Позиционирование /Positioning Instruction
Время /Clock Control Instruction
Внешние устройства /External Device Instruction
Сравнение /Comparison Instruction

В Wecon LX3V есть инструкции, которых нет в ПЛК Митсубиси: PID и RS.

Для операций с различными типами данных используются разные инструкции, например деление 16-битных целых чисел DIV, деление 32-битных чисел DDIV, деление вещественных чисел с плавающей точкой DEDIV. Для BCD-чисел имеются только инструкции преобразования в другие типы.

Детальное описание с примерами каждой инструкции есть в руководстве по программированию. Множество разнообразных инструкций позволяет создавать сложные программы: есть ШИМ, PID и т.д.

Операнды
Это, фактически, переменные различных типов. Например, сравнительно с С++, операнд М соответствует типу bool, D соответствует int16. Операнды бывают обычные(не сохраняются в энергонезависимой памяти) и с памятью(они же фиксируемые, сохраняются в энергонезависимой памяти). Обычные операнды и операнды с памятью располагаются по разным адресам.

X физические входа
Дискретные входа контроллера X0…7

Y физические выхода
Дискретные выхода контроллера Y0…5

M маркеры
Битовые переменные. M0…3071 пользовательские, из них М500…3071 с постоянной памятью. M8000-8255 зарезервированы как специальные.

S маркеры состояния
Битовые переменные S0…999 для STL-инструкций. Если STL-инструкции не применяются, эти биты можно использовать как М-биты.

T таймеры
16-битные таймера, все с задержкой включения. Всего таймеров 256. В зависимости от адреса таймера, его минимальный шаг времени составляет 1, 10 или 100 мс: Т0…199 шаг 100 мс; Т200…245 шаг 10 мс; Т246…249 работают про прерыванию, шаг 1 мс; Т250…255 шаг 100 мс. Максимальное время таймера составляет 32767*шаг мс.
Таймера Т246…Т255 фиксируемые, т.е. достигнутое значение времени не обнуляется при отключении входа таймера, а сохраняется в памяти.

C счетчики
Бывают 16-битные инкрементные или 32-битные двунаправленные(направление задается маркером).
С0…199 16-битные; C200…234 32-битные(направление счета в М8200…8234); C235…255 32-битовые скоростные(направление счета в М8235…8255).

D регистры данных и регистры файлов
16-битные переменные, соответствующие типу int16 в Си, т.е. целые числа со знаком в диапазоне от -32767 до +32767. Два соседних регистра D можно использовать как один двойной регистр, соответствующий типам int32 или float32 в Си.
D0…999 пользовательские регистры данных, из них D200…999 с памятью. D1000…7999 регистры файлов с памятю. D8000-8255 зарезервированы как специальные.

V, Z индексные регистры
16-битные регистры, используются в операциях передачи и сравнения.

L, I указатели

K, H константы
Используются при объявлении констант. K- десятичная константа, H- шестнадцатеричная. Например: K15, H3F. Констант-вещественных чисел с плавающей точкой нет, но можно их организовать самому.

Специальные маркеры М и регистры D
Как было указано выше, операнды M8000…8255 и D8000…8255 зарезервированы в LX3V для хранения данных системы и являются специальными. Вот основные из них.

Общие
M8000  программа работает.
M8002  старт программы.
M8005  низкий заряд батареи.
M8011…8014  тактовые испульсы 10 мс, 100 мс, 1 с, 1 мин.
M8034  отключить и заблокировать все выходы Y

D8000  прошедшее время работы программы.
D8005  напряжение батареи, число BCD
D8010  текущее время цикла программы

Часы реального времени (RTC)
M8015…8019, D8013…8019
M8015  установка времени
M8019  ошибка RTC

D8013…8019  секунды, минуты, часы, день, месяц, год (2000…2099), неделя

Настройки COM2
M8121…8129, D8120…8129

Из специальных маркеров особенно полезен «М8002 старт программы». Этот маркер взводится в начале первого прохода цикла программы и сбрасывается в его конце. К M8002 удобно подвязывать начальные настройки. Вот пример конфигурирования COM2 Modbus RTU Slave, напечатанный прямо в инструкции к LX3V:
lx3v-modbus-slave

Форматы чисел в LX3V
Как было сказано выше, хранение и обработка чисел в LX3V возможна в нескольких форматах:

Тип Размещение Диапазон
bit M, S 0/1
Int16 D -32768… 32767
Int32 Двойное D* -2128478208… 2128478207
Float32 Двойное D* 10^-38… 10^37
BCD D, Двойное D* 0… 9999, 0… 99999999

*Два соседних регистра D, доступ по четному адресу

Для преобразования чисел различных типов есть специальные инструкции.

При этом представление целых чисел возможно в шестнадцатеричном и десятичном виде (см. константы).
Однако, использовать в программе вещественные константы (числа с плавающей точкой) нельзя, нет такого представления числа среди констант, хотя сам тип данных есть. Т.е. нельзя, к примеру, просто взять и сравнить  какую-то температуру с константой 107.5 градуса.

Вещественные константы (Е) появляются только в Mitsubishi FX3U, а Wecon LX3V является аналогом FX2N.
Так что же, как быть, если нужно сравнить число типа float32 с какой-то вещественной константой?
Можно самому сформировать такое вещественное число и далее использовать его в программе в качестве константы. Вот как делается для того же значения 107.5:

Записали десятичную константу 1075 в двойной регистр по адресу D1000, преобразовали во флоат, разделили на 10 и вуаля- в D1000 теперь хранится вещественное число 107.5

В LX3V все целые числа знаковые, кроме BCD. Специальных инструкций преобразования беззнаковых чисел(uint) в знаковые(int) нет. Вроде бы беззнаковые числа и не нужны, т.к. в ПЛК они не используются, но беззнаковые числа могут попадать извне- по Modbus. Например, с модуля аналогового ввода Adam 4017+.
В таком случае необходимо как-то сконвертировать uint в int, что бы полученные по Модбас данные могли использоваться в программе. Преобразовать uint16 в int32 можно просто- достаточно скопировать uint16 в двойной регистр (int32).

 

Wecon PLC Editor

Официальное ПО программирования ПЛК Wecon. Текущая версия- 1.2.0. Бесплатная, легкая- инсталляция весит 28 Мб.
wecon-plc-editor-01

Возможности Wecon PLC Editor:

  • В текущей версии(1.2.0) программирование только на языках LD(Ladder) и IL(Instruction List)
  • Есть симулятор- можно разрабатывать и отлаживать программу, не имея на руках контроллера.
  • Есть мониторинг состояния ПЛК. Полезная штука при отладке программы- можно посмотреть состояние всех операндов в контроллере.
  • Возможно использование подпрограмм. Подпрограммы могут вызывать другие подпрограммы, глубина вложения- 4 уровня.

Как видно,  имеется все самое необходимое для разработки и отладки программы. Те, кто работал в любой среде программирования ПЛК с LD, от Step-7 до CodeSys, легко разберутся методом тыка. Кто не работал- в том же «WECON LX PLC Programming Manual» все расписано с картинками.

Вот видео с основами:

В откомпилированной программе отображается количество занятых инструкциями шагов:
wecon-plc-editor-02

 

Связь по Modbus

LX3V-0806MT-A2 имеет 2 порта последовательной связи: круглый Com1 RS-422 и Com2 RS-485. Плюс есть возможность добавить еще 2 порта RS-485 с помощью установки платы расширения LX3V-2RS485-BD.

Круглый Com1 RS-422 используется для загрузки программ, настроить его для работы по Modbus нельзя.
Com2 RS-485 настраивается на работу по Modbus ASCII/RTU master/slave на скорости от 4800 до 115200 бод. Для настройки используются специальные регистры D8120…8129. Основные из них- регистры D8120 и D8126:
lx3v-modbus-d

На сайте Wecon есть архив с документацией на работу Com2 по Модбас и примерами программ.

 

Com2 Modbus RTU slave
В режиме Модбас слейв всем операндам ПЛК присваиваются адреса для доступа по Модбас:

lx3v-modbus-operands-02

Наличие Modbus RTU позволяет подключить ПЛК к любой современной СКАДА:

Схема подключения в этом видео:

 

Com2 Modbus RTU master

Режим ПЛК мастер тоже есть:

Здесь я подключил ПЛК к модулю аналогового ввода Adam 4017+:

 

Совместимость с ПО для ПЛК Mitsubishi

Как уже сказано выше, ПЛК Wecon LX3V по программной архитектуре является аналогом ПЛК Mitsubishi FX2N. Следовательно, программное обеспечение от Митсубиси должно подходить и для LX3V.

И действительно,  в среде программирования ПЛК Митсубиси Melsoft GX Works2 можно разрабатывать, отлаживать и загружать программы для LX3V.
gxworks2-01

Правда, загрузка программы из GX Works2 в контроллер возможна только через круглый разъем Com1. Для этого нужен специальный кабель, который у Wecon стоит 5$. Можно и самому сделать загрузочный шнурок по схеме Троицкого.
GX Works2 не работает с портом usb на LX3V.

GX Works2 v.1.5 можно скачать на сайте Митсубиси(после регистрации), триал-версия работает 60 дней. Программа тяжелая, инсталляция весит 1.2 Гб.

Возможности программирования тут шире, чем в Wecon PLC Editor: кроме языков LD и IL доступны языки ST, FBD, SFC.

Для программистов, пришедших в АСУ из классического программирования, тут особо полезен си-подобный язык ST.
Вот пример программирования LX3V на языке ST от энтузиаста контроллеров Wecon в России Вячеслава Мезенцева:

Есть нюанс- программа на ST загружается нормально, но после загрузки программы ПЛК LX3V зависает и его нужно перезапустить- перещелкнуть тумблер RUN/STOP в положение STOP а потом снова в положение RUN. Тогда все ок. При загрузке программы на LD такого глюка не выявлено.

 

Впечатление о программировании

Каких-то сложностей в программировании ПЛК Wecon LX3V-0806MT-A2 я не заметил.

Информации для изучения контроллера в сети достаточно, правда на русском языке информация есть только про аналог Mitsubishi FX2N. В родной среде программирования PLC Wecon Editor доступны только языки LD и IL. Впрочем, программы на ST и других языках можно создавать и загружать в Wecon LX3V, используя ПО для ПЛК Митсубиси.

Наличие разнообразных инструкций программирования(138 штук) и максимальный размер программы в 16000 шагов(около 2000 инструкций, по моим оценкам), позволяют создавать программы средней сложности.

В то же время, программирование связи по Modbus и в ПО Wecon и в ПО Mitsubishi организовано сложнее, чем в ПЛК других фирм с системой CodeSys, где для этого есть простой мастер связи. Но это не критично и сказывается только на простоте и удобстве, а не на возможностях последовательной связи.

С точки зрения программирования, ПЛК Wecon LX3V-0806MT-A2- годный контроллер.

 

Ссылки

Обзор, часть 1. Железо:         plc-blog.com.ua/review-plc-wecon-lx3v-0806-hard
Тех. центр(примеры программ):  we-con.com.cn/en/support/technical-center/lx-series-plc/
Cайт Wecon:  we-con.com.cn/en/
Форум Wecon:  wecon.freeforums.net
Отдел продаж:  sales@we-con.com.cn
Страница Wecon на Aliexpress: ru.aliexpress.com/store/632791

 

1 комментарий: Китайский ПЛК Wecon LX3V-0806MT-A2, часть 2: программирование

  • Виктор говорит:

    Добрый день,
    Очень понравились ваши видео. Только начинаю разбираться с программированием ПЛС на новом месте работы, но пока не все получается.
    На прошлой неделе получили ПЛС Wecon LX3V-1212 MR-D с модулем аналогового ввода LX3V-4AD и дисплей PI8070.
    Хотел спросить, можно ли у Вас заказать программу которая свяжет эти три девайса.
    Ето должен быть дисплей с тремя стрелочными указателями давления в кислородных баллонах (резерв и запасной(secondary)) и общее давление системе.Показания должны дублироваться на цифровых дисплеях расположенных под циферблатами. Должен появляться сигнал на экране при падении допустимого давления.
    В комплекте мы имеем три трансдусера 4-20мА, 0-300 PSI, Они будут вмонтированы в трубопроводы и которые подключим к модулю LX3V-4AD
    Ответьте пожалуйста можно ли написать такую программу, приблизительное время и стоимость. Спасибо большое за ответ.
    Виктор

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

Ваш e-mail не будет опубликован.

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:
Confirm that you are not a bot - select a man with raised hand:

Подпишитесь на нашу рассылку


Copyright © 2016. Перцух Алексей

Индекс цитирования