Программирование плк

[plc] Обучение программированию ПЛК

Я много программировал программирование ПЛК, а теперь немного программирую .NET. Очень опасно делать переключатель в любом случае, потому что многие навыки, которые, по вашему мнению, должны быть переданы (шаблоны и т. Д.), Ведут вас очень далеко.

Самое большое различие, которое я говорю людям, заключается в том, что программный код ПК должен быть написан так, как если бы другие программисты были аудиторией, но программы ПЛК (лестничная логика) должны быть написаны так, как если бы люди обслуживания были аудиторией. Обслуживание большинства объектов (в частности, производство) часто связано напрямую с ПЛК и в режиме онлайн, они могут наблюдать за графическим выполнением кода, чтобы выяснить, что не так.

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

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

Имеет смысл с точки зрения программирования ПК, но это заставляет человека, обслуживающего обслуживание, убить вас. Как правило, программное обеспечение для программирования предоставляет функцию перекрестных ссылок, где они могут указывать эту выходную катушку, и она скажет им всюду в программе, что она используется.

Если вы используете инструкцию копирования для перемещения 10 слов ввода-вывода в структуру данных из 10 слов, он должен сидеть там и подсчитывать биты, чтобы выяснить, какой бит в источнике копирует карты, на какой бит на стороне назначения копия. Правда, комментарии могут помочь, но проблема с этим тоже …

ПЛК хранят всю программу и позволяют вам загружать программу из нее в чрезвычайной ситуации, если вам нужно устранить неполадки, и у вас нет копии исходной программы , Проблема в том, что по соображениям пространства ПЛК не сохраняет комментарии.

Поэтому, если линия не работает, она стоит 5000 долларов в минуту при простоях, а парень работает там с ноутбуком, ему, возможно, придется быстро загрузить без комментариев и попытаться устранить его. Имея эти инструкции по копированию там, тратя 10 минут своего времени, стоило компании $ 50,000 в режиме простоя. Это то, о чем вы должны знать при написании программ PLC.

Некоторые другие советы: некоторые ПЛК имеют поддержку циклов FOR. Никогда не используйте их. По той же причине выше, они делают код очень сложным для устранения неполадок для обслуживающего персонала.

Это связано с тем, что если в ПЛК есть один фрагмент кода, который сканируется более одного раза на сканирование (например, содержимое цикла), тогда, когда вы переходите в режим онлайн-отладки, программное обеспечение не может показывать вам значения для каждого из 10 циклов, которые выполнили это сканирование, так что вы действительно не знаете, какое значение вы ищете. Затем вам нужно написать весь этот хитрый код, чтобы вывести значения цикла для определенного индекса цикла в некоторые другие теги (переменные), которые вы можете контролировать. Это всего лишь еще один импеданс для решения проблемы в чрезвычайной ситуации. Использование подпрограммы более одного раза за сканирование страдает от одной и той же проблемы.

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

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

Поэтому ожидается, что если на вашей машине 10 одинаковых вещей (например, приводы конвейера или что-то еще), у вас будет 10 разных файлов (подпрограмм), по одному для каждого диска, и каждый диск будет иметь свои собственные переменные, связанные с ними: например Drive1_Run, Drive2_Run, Drive3_Run и т. Д.

Это будет очень неприятно для вас, когда вы придете с фона программирования на компьютере, но это все из-за того, что я сделал выше. Когда вы находитесь в ситуации простоя, и кто-то говорит, что Drive 3 не работает, вы взламываете ноутбук, идите в файл для Диска 3, и вы смотрите на Run Run rung.

Вы запускаете поиск и устранение неполадок, когда программа выполняется. Нет точек останова (программа никогда не останавливается).

Удачи вам в ваших начинаниях. Я написал несколько новых идей из моих лет программирования ПЛК , если вы хотите проверить их.

Лестница, часто называемая LD, является одним из нескольких языковых стилей, определенных в стандарте программирования автоматизации ISO 61131. Другие — SFC (последовательная блок-схема), FBD (функциональная блок-схема), ST (структурированный текст) и IL (список инструкций).

IL похож на ассемблер, и очень немногие его используют. ST — это текстовое программирование, подобное ранним версиям BASIC. Он не часто используется. LD спроектирован так, чтобы напоминать контакты реле с электрической панели управления (которая заменена многими ПЛК). FBD больше похожа на схему.

SFC — это в основном блок-схема.

Некоторые ПЛК поддерживают все, другие только некоторые, или даже один. Хотя LD является наиболее распространенным, FBD и SFC набирают популярность.

Различные бренды используют несколько разных языков программирования. Они, как правило, достаточно похожи, что, как только вы понимаете один бренд, вы можете работать с любым из них, но вы не можете напрямую брать код с одного ПЛК и использовать его на другом бренде.

Программирование ПЛК следует рассматривать как реализацию деятельности разработки программного обеспечения ПЛК, если вы не используете ПЛК как чисто часть альтернативных компонентов для механических или электрических решений.

Исходя из этого, среда программирования ПЛК, как правило, основана на стандарте IEC61131, время работы в режиме ожидания, «упреждающее» в реальном времени, нет необходимости обрабатывать проблемы, связанные с ОС в реальном времени, непрерывное сканирование кода, не-программный указатель, различную концепцию из типичного нереста компьютерного задания вид многозадачности. Выполнение кода естественно атомарно, не нужно использовать мониторы между задачами.

Каждый из языков имеет свою близость к тому, насколько мыслимым является ваш код для логической модели, которую вы хотите реализовать.

  1. Лестница имеет основную концепцию блокировки потока электроэнергии. Разрешение кода в пределах одной сети — это горизонтальное или вертикальное сканирование (вы можете найти ресурс по этой теме от производителя или других сайтов).

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

  2. FBD или функциональная блок-схема — это электронный поток сигналов, но сегодня может быть поток данных в зависимости от типа ПЛК.

    FBD показывает более четкую последовательность выполнения, очень похожую на горизонтальную сканирующую лестницу в последовательности сканирования.

    Сегодня FBD обычно используется как контейнер для функциональных блоков объектов, хотя реализация зависимостей и визуальное сходство с моделью процесса зависят от типа ПЛК.

  3. Literal очень похож на BASIC, но только синтаксис; выполнение по-прежнему просматривается. Литературный язык хорош для математических вычислений.

    Для реализации на высоком уровне методы или вывод атрибутов внутри объекта могут быть проще с использованием Literal.

    Государственное машинное программирование с использованием представления или констант в виде английского языка делает программу очень читаемой.

  4. Список операторов похож на сборку мнемоники, но повторное выполнение по-прежнему сканирует, а не программный указатель. Он силен в бит-операции и дискретных логиках в виде круглых скобок. Это может быть очень эффективный язык для правильного структурирования и комментирования.

  5. SFC или последовательная блок-схема являются дополнительным языком для реализации последовательности. SFC имеет встроенные правила активации блока действий, переходы состояний, активацию и слияние последовательности parellel. Однако комплексное исключение ветвления или параллельное управление действиями может затруднить выполнение сложной и блок-схемы.

Управление системой ПЛК при обработке ввода-вывода, обмен сообщениями, «горячий резерв» — это настройка аппаратной конфигурации и зависит от продукта. Как правило, можно рассматривать отдельно от разработки программного обеспечения.

Однако данные, относящиеся к управлению системой ПЛК, имеют тип «локализованный» (независимая область адресации данных), хороший подход к моделированию данных при разработке программного обеспечения может помочь в управлении системными данными.

Вы можете использовать Structured Text (ST), который состоит из серии инструкций, которые, как определено на языках высокого уровня («IF..THEN..ELSE») или в циклах (WHILE..DO), могут быть выполнены.

Я нахожу его лучше, чем Лестница, поскольку он близок к стандартным языкам программирования.

Источник: https://code-examples.net/ru/q/4bacb

Программирование ПЛК на языках стандарта МЭК

Для программирования ПЛК Международная электрическая комиссия (МЭК) разработала стандарт IEC 6-1131/3, в котором определены 6 языков программирования:

· CFC (Continuous Function Chart);

· SFC (Sequential Function Chart);

· FBD (Function Block Diagram);

· LD(Ladder Diagram);

· ST (Structured Text);

· IL (Instruction List).

Четыре первыхязыка CFC, SFC, LD и FBD используют графическую нотацию – выполняемые команды, операции и функции представляются графическими средствами, как схемы.

Два последних языка(ST, IL) являются текстовыми. Они расширяют возможности программистов.

С помощью языков IEC 61131-3 программируются не только задачи автоматики, но и алгоритмы человеко-машинного интерфейса (HMI).

Языки IEC 6-1131/3 сочетают в себе функциональность и простоту. Они также предохраняют пользователя от большинства ошибок, которые нередко возникают при использовании обычных языков программирования.

Реализация IEC 6-1131/3 в интегрированной HMI-системе не только удовлетворяет требованиям стандарта, но и предоставляет пользователю дополнительный сервис в виде расширенного набора библиотек функциональных блоков, реализующих типовые алгоритмы управления.

Для всех шести языков существует единый механизмсвязи с базой данных реального времени. В соответствии с этим механизмом каждая программа должна обладать набором аргументов.

Исходные данные передаются в программу через входные аргументы, а результаты вычислений возвращаются в выходных аргументах. Аргументы связываются с атрибутами каналов, то есть с реальными входами и выходами контроллеров, с устройствами сопряжения, ячейками корпоративных баз данных, а также с внутренними переменными.

Благодаря такой схеме одна и та же программа может вызываться несколько раз за цикл для обработки разных потоков данных.

Программирование и отладка программ на языках IEC 6-1131/3 производится в интегрированной среде разработки, включающей в себя несколько различных редакторов. Программы на языках FBD, LD, CFC и SFC создаются и отлаживаются в специальных визуальных редакторах, а ST и IL – в текстовом редакторе.

Несмотря на различия, программы на разных языках стандарта IEC 6-1131/3 могут взаимодействовать между собой. Например, программа на FBD может вызывать функциональный блок, написанный на языке ST, а внутри этого блока может вызываться подпрограмма на LD и т.д.

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

Язык SFC.В семействе МЭК-языков диаграммы SFC (Sequential Function Chart) являются высокоуровневым графическим инструментом, в котором использованы идеи сетей Петри. Благодаря SFC графическое представление модели системы превращается в законченную программу.

Начало практической реализации языка SFC для ПЛК принадлежит французским фирмам. Совместная работа изготовителей ПЛК и пользователей привела к появлению национального стандарта «Графсет», а затем и международного стандарта МЭК 848 (1988 г.). Последний стандарт IEC 61131-3 заимствовал «Графсет» с некоторыми доработками.

SFC это мощное средство структурирования сложных алгоритмов. По сути SFC не является самостоятельным языком.

В переводе с английского аббревиатуру SFC можно перевести как «схема функциональной последовательности». Внешне программа на SFC похожа на блок-схему алгоритма (рис. 2.

1), на которой отображены отдельные программные блоки (шаги), переходы между ними и условия, по которым выполняются эти переходы.

Рисунок 2.1 – Пример представления программы на языке SFC

Переходы в SFC имеют выраженную направленность сверху вниз и отражаются прямыми линиями. Позиции в SFC называют шагами или этапами. На диаграмме они отображаются в виде прямоугольников. Благодаря такому представлению существует возможность реализации диаграмм в символах псевдографики.

Задать несколько стартовых шагов в SFC нельзя, начальным является только один шаг диаграммы. Каждый программный блок, как и каждое условие перехода – это подпрограмма на любом из языков стандарта IEC 6-1131/3.

Диаграмма SFC дает возможность быстрого построения прототипа системы без программирования, так как для представления системы на верхнем уровне не требуется детальное описание действий и привязка к конкретным аппаратным средствам.

Этот язык очень удобен для программирования стадийных (batch) процессов, систем дозирования и бизнес-приложений. SFC может быть использован как инженерами, так и бизнес-аналитиками.

Язык FBD. Язык FBD предназначен для инженеров-технологов, решающих задачи управления технологическим процессом.

Он представляет собой наглядное средство для программирования контуров управления и регулирования.

Программа на FBD представляет собой схему, состоящую из набора функциональных блоков, связанных между собой через входы и выходы (рис. 2.2).

Рисунок 2.2 – Пример программы на языке FBD

В программных комплексах имеется более 150 типовых функциональных блоков, реализующих широкий набор функций – от простейших логических операций до готового адаптивного регулятора. В стандартных FBD-блоках реализованы функции фильтрации, ПИД-регулирования, модального, нечеткого и позиционного регулирования, ШИМ-преобразования, а также блоки управления клапаном, задвижкой, мотором и др.

Язык релейных диаграммLD (Ladder Diagram) или релейно-контактных схем (РКС) – графический язык, реализующий структуры электрических цепей.

РКС – это американское изобретение, предназначенное для замены релейной автоматики сборочных конвейеров программируемыми контроллерами. Язык РКС позволил решать задачи прозрачного переноса релейных схем в ПЛК.

Различные варианты программной реализации релейных схем создавались практически всеми ведущими производителями ПЛК.

Благодаря простоте представления язык РКС обрел популярность, что и стало основной причиной включения его в стандарт МЭК.

Слова «релейная логика» звучат сегодня достаточно архаично, однако релейная техника все еще широко применяется.

Графически LD-диаграмма представлена в виде двух вертикальных шин питания. Между ними расположены цепи, образованные соединением контактов (рис. 2.3). Нагрузкой каждой цепи служит реле. Каждое реле имеет контакты, которые можно использовать в других цепях.

Рисунок 2.3 – Представление релейной схемы на языке LD

Логически последовательное (И), параллельное (ИЛИ) соединение контактов и инверсия (НЕ) образуют базис Буля.

Поэтому язык LD идеально подходит не только для построения релейных автоматов, но и для программной реализации комбинационных логических схем.

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

Язык инструкций IL.Язык IL (Instruction list, дословно “список инструкций”) – это типичный ассемблер с аккумулятором и переходами по меткам (рис. 2.4). Набор инструкций стандартизован и не зависит от конкретной целевой платформы.

До принятия стандарта МЭК существовало ряд разновидностей этого языка, в том числе и с русскоязычными аббревиатурами.

Наибольшее влияние на формирование современного IL оказал язык программирования STEP контроллеров фирмы Siemens.

Язык IL позволяет работать с любыми типами данных, вызывать функции и функциональные блоки, реализованные на любом языке. Таким образом, на IL можно реализовать алгоритм любой сложности, хотя текст будет достаточно громоздким.

Рисунок 2.4 – Вид IL-программы в окне редактора CoDeSys

В составе МЭК-языков IL применяется при создании компактных компонентов, требующих тщательной проработки, на которую не жалко времени. При работе с IL гораздо понятнее, чем с другими языками, можно представить, как будет выглядеть оттранслированный код. Благодаря этому IL выигрывает там, где нужно достичь наивысшей эффективности.

Язык структурированного текста ST.Язык ST (Structured Text) – это язык высокого уровня. Синтаксически ST представляет собой несколько адаптированный язык Паскаль. Вместо процедур Паскаля в ST используются компоненты программ стандарта МЭК.

Для специалистов, знакомых с языком С, освоение ST также не вызовет никаких сложностей. В качестве иллюстрации сравним эквивалентные программы на языках ST и С:

ST: С:

WHILE CounteroO DO while (Counter – ! = 0)

Counter := Counter-1; {

Varl := Varl*2; Varl *= 2;

IF Varl > 100 THEN if (Varl > 100)

Varl := 1; {

Var2 := Var2 + 1; Varl = 1;

END_IF ++Var2;

END_WHILE }

}/*while*/

В большинстве комплексов программирования ПЛК язык ST по умолчанию предлагается для описания действий и условий переходов SFC.

2.4 Комплексы проектирования, поддерживающие стандарт
МЭК 61131-3

В отличие от простых контроллеров, программирование которых сводится обычно к заданию набора констант и осуществляется со встроенного или выносного пульта, для программирования логических контроллеров универсального назначения применяются специализированные программные комплексы.

Благодаря открытости МЭК-стандарта возникло ряд специализированных фирм, занятых исключительно инструментами программирования ПЛК.

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

Наибольшей известностью в мире пользуются следующие комплексы.

Simatic Step 7 (производитель – немецкая фирма Siemens http://www.siemens.de/).

Программное обеспечение STEP 7 содержит центральный инструмент Simatic Manager, с помощью которого можно реализовать широкий набор функций программирования аппаратных средств фирмы Siemens.

Все аппаратные и программные требования процесса автоматизации в SIMATIC S7 выполняются внутри одного проекта.

Этот проект содержит в себе необходимое аппаратное обеспечение (+ конфигурация), создание сети (+ конфигурация), все программы и данные для решения задачи автоматизации.

CoDeSys (производитель немецкая фирма 3S Smart Software Solutions http://www.3s-software.com).

CoDeSys – это один из самых развитых функционально полных инструментов программирования в стандарте МЭК 61131-3.

TRACE MODE (производитель – AdAstra Research Group, Ltd, Россия).

TRACE MODE – это интегрированная информационная система для управления промышленным производством. Программа содержит средства разработки операторского интерфейса (SCADA/HMI), программирования контроллеров (Softlogic), управления основными фондами (EAM), персоналом (HRM) и производственными процессами (MES).

Главная задача инструментов комплекса программирования ПЛК состоит в автоматизации работы разработчика прикладной системы. Он должен быть избавлен от рутинной работы и постоянного «изобретения велосипеда».

В интегрированных комплексах программирования ПЛК сложился определенный набор возможностей, позволяющий относить их к средствам быстрой разработки. Интегрированная среда предполагает наличие встроенных редакторов текстовой и графической информации.

Интеграция текстового редактора в единую среду программирования предполагает:

· возможность быстрого ввода стандартных текстовых элементов, мгновенную вставку в текст операторов, функций, функциональных блоков;

· возможность быстрого автоматического дополнения ввода. Например, строка: «INP1 I 3;Вход 1» по окончании ввода (CoDeSys) преобразуется в соответствии с требованиями МЭК в строку:

INP1: INT := 3; (* Вход 1 *);

· автоматическое объявление переменных;

· представление раздела объявлений переменных в виде текста или картотеки таблиц, разделенных и отсортированных по функциональному значению (входные переменные, локальные и т. д.);

· проверка синтаксиса и автоматическое форматирование ввода;

· автоматическая нумерация строк, что упрощает описание и сопровождение программы.

Эти возможности в существенной мере способствуют ускорению процесса подготовки программ и уменьшению числа ошибок в программах.

Интеграция графического редактора обеспечивает следующие возможности при проектировании:

· автоматическая трассировка соединений компонентов (программисту вообще не приходится рисовать соединения – система автоматически проводит графические соединительные линии);

· автоматическая расстановка компонентов (этим свойством обладают графические редакторы CoDeSys и OpenPCS);

· автоматическая нумерация цепей;

· копирование и перемещение выделенной графической группы компонентов с учетом их индивидуальной специфики;

· произвольное масштабирование изображения с целью наилучшего представления для анализа больших разветвленных графических диаграмм.

В режиме исполнения встроенные редакторы отображают «ожившие» тексты и графические диаграммы. Для графических диаграмм наглядно отражается последовательность выполнения.

В целом программный комплекс должен обеспечивать:

· Унифицированный механизм соединения с ПЛК. Работа инструментов отладки не должна зависеть от способа соединения контроллера с отладчиком. Не имеет значения, эмулируется ли контроллер на том же самом компьютере, подключен ли контроллер через последовательный порт компьютера или же связан через Интернет.

· Загрузку кода управляющей программы в память контроллера.

· Автоматический контроль версий кода (проверку соответствия кода, содержащегося в памяти ПЛК, и кода, полученного после текущей компиляции.

· Выполнение управляющей программы в режиме реального времени.

· Режим останова. Останов означает прекращение выполнения только кода управляющей программы. При этом выполняются все прочие фазы рабочего цикла и сохраняется способность наблюдать значения входов. В этом режиме можно проводить тестирование и настройку датчиков и механизмов объекта управления;

· Сброс ПЛК. Может быть несколько видов сброса. В стандарте МЭК предусмотрено два вида сброса «горячий» и «холодный». Первый включает перевод управляющей программы в исходное состояние и выполнение начальной инициализации переменных. Во втором виде сброса добавляется начальная инициализация переменных, размещенных в энергонезависимой области памяти.

Кроме того, в ПЛК может произойти аппаратный сброс путем выключения питания или перезапуска микропроцессора. Система программирования должна адекватно реагировать в случае аппаратного сброса. Детальная реакция на команды сброса определяется системой исполнения. Поэтому здесь возможны некоторые отличия для разных ПЛК, даже в одной среде программирования.

· Мониторинг и изменение мгновенных значений всех переменных проекта, включая входы-выходы ПЛК. Для удобства работы значения представляются в заданной пользователем системе счисления.

· Фиксацию переменных, включая входы-выходы. Фиксированные переменные будут получать заданные значения в каждом рабочем цикле независимо от реального состояния ПЛК и действий управляющей программы.

Данная функция позволяет имитировать элементарные внешние события в лабораторных условиях и избегать нежелательной работы исполнительных механизмов при отладке на «живом» объекте управления.

Неуправляемая работа механизмов может привести к поломке и представлять опасность для окружающих людей.

· Выполнение управляющей программы шагами по одному рабочему циклу. Применяется при проверке логической правильности алгоритма.

· Пошаговое выполнение команд программы и задание точек останова.

· Просмотр последовательности вызовов компонентов в точке останова.

· Графическую трассировку переменных. Значения нужных переменных запоминаются в циклическом буфере и представляются на экране ПК в виде графиков. Запись значений можно выполнять в конце каждого рабочего цикла либо через заданные периоды времени. Трассировка запускается вручную или синхронизируется с заданным изменением значения определенной (триггерной) переменной.

· Визуализацию – анимационные картинки, составленные из графических примитивов, связанных с переменными программы. Значение переменной может определять координаты, размер или цвет графического объекта.

Графические объекты включают векторные геометрические фигуры или произвольные растровые изображения. Визуализация может содержать элементы обратной связи, например кнопки, ползунки и т. д.

С помощью визуализации создается изображение, моделирующее объект управления или систему операторского управления.

Дата добавления: 2016-12-09; просмотров: 7429;

Источник: https://poznayka.org/s75067t1.html

Китайский ПЛК 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 готовит новую редакцию, а пока меня заверили, что данные для 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
Как было сказано выше, хранение и обработка чисел в 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:

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

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

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

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

Связь по 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:

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

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

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

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

Com2 Modbus RTU master

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

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

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

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

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

Правда, загрузка программы из 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

Источник: http://plc-blog.com.ua/review-plc-wecon-lx3v-0806-soft

Программирование ПЛК

Первоначально, системы логического управления разрабатывались на основе работы электромагнитных реле, сегодня большая их часть заменена программируемыми контролерами, хотя реле не утратили своей актуальности, и продолжают использоваться по сей день.

Что касается ПЛК, то такие устройства позволяют осуществлять контроль над производственным процессом, в котором задействованы сразу несколько процессов, протекающих параллельно. Для их реализации необходимо использовать контроллеры, позволяющие программировать самые разнообразные логические функции.

Для решения этой задачи к исходу 1960 годов компанией Betford Associates (США) было разработано компьютерное устройство, получившее название MODICON, впоследствии оно стало названием того подразделения компании, которое занялось проектированием устройства, его созданием и продажей.

Позднее и другие компании занялись разработкой подобного устройства, которое в конечном итоге получило название «программируемый логический контроллер». Основной задачей программируемого контроллера стала замена электромеханических реле на логические элементы. При этом удалось заменить огромное количество реле.

ПЛК оснащены клеммами, благодаря которым появляется возможность осуществлять контроль над состоянием датчиков и выключателей. В то же время ПЛК имеет соответствующие выходы, которые передают сигналы высокой и низкой частоты:

  • на индикаторы питания;
  • электромагнитные клапаны;
  • контакторы;
  • небольшие двигатели, а также на другие самоконтролируемые устройства.

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

Так, любому инженеру, умеющему читать релейные схемы, будет несложно осуществить программирование ПЛК при создании команд для выполнения схожих функций.

Стандартное программирование PLC и подключение сигналов у разных моделей ПЛК может незначительно различаться, однако принцип остается тем же, что позволяет привести «общее» введение в программирование PLC.

Чтобы понять, как осуществляется программирование ПЛК, мы приведем несколько схем, на которых наглядно показаны все составляющие детали и дано объяснение происходящих процессов.

На первой схеме изображена передняя часть устройства, где вы можете увидеть две винтовые клеммы, отмеченные буквами L1 и L2. Они предназначены для подключения внутренних цепей к сети переменного тока 120 В.

С левой стороны расположены 6 винтовых клемм, которые предназначены для крепления входных устройств. На схеме они обозначены буквами Х и порядковым номером. Ниже расположена винтовая клемма, обеспечивающая «общее» подключение, обычно она соединяется с нейтральной L2 — источником тока с напряжением 120 В.

Корпус ПЛК связывает каждую из входных клемм с общей клеммой. Внутри этого корпуса расположен оптоизолятор устройства. Это светодиод, обеспечивающий электрически изолированный «высокий» сигнал для схемы компьютера.

В момент установки, между входной и общей клеммой 120-вольтного переменного тока, фототранзистор интерпретирует свет светодиода. Таким образом, на передней панели ясно видно, какой вход находится под напряжением.

Это можно наглядно увидеть на приведенной ниже схеме.

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

Клемма «Источник», расположенная в нижнем левом углу, связывается с любым выходом, который на схеме отмечен литерой Y. Обычно клемма «Источник» связывается с L1.

Каждый выход, как и каждый вход, находящийся под напряжением, отмечается светодиодом.

Так, ПЛК обеспечивает возможность подключения к таким устройствам, как переключатели и электромагниты.

Основы программирования

Логика управления в ПЛК устанавливается посредством компьютерной программы, которая определяет, какие выходы находятся под напряжением и при каких условиях.

Сама программа схожа с логикой реле, однако в ней, для создания связей между входами и выходами, отсутствуют какие-либо переключатели или катушки реле. Все контакты и катушки в данном случае виртуальные.

Программа создается посредством подключенного к порту ПЛК персонального компьютера.

Следующая картинка наглядно показывает схему и программу ПЛК.

Здесь видно, что при положении кнопки переключателя в незадействованном состоянии, то есть кнопка не нажата, сигнал на вход X1 не поступает. В соответствии с программой, показывающей «открытый» вход X1, сигнал на Y1 также не будет посылаться. Следовательно, выход Y1 будет обесточен, а индикатор погашен.

При нажатом положении кнопки переключателя сигнал будет поступать на вход Х1.

Так, все контакты Х1 активизируются, как это происходило бы при активизации посредством контактов реле при поступлении напряжения катушки реле.

В этом случае, если назвать вход Х1 катушкой, то открытый контакт Х1 замкнется и отправит сигнал на катушку Y1. Подключенный к Y1 индикатор осветит подключенный к нему выход Y1, как только он окажется под напряжением.

Контакт Х1 и катушка Y1 соединены между собой проводами, а вот появляющийся на мониторе компьютера сигнал, является виртуальным. Эти сигналы не существуют как реальные, они присутствуют только в программе и лишь напоминают, что происходит на схеме.

При этом компьютер необходим только для программирования контроллера, написания программы или ее редактирования. Далее, после загрузки программы в программируемый контроллер, компьютер может быть отключен. ПЛК будет работать самостоятельно и выполнять все загруженные программой команды.

На схемах, иллюстрирующих работу ПЛК, компьютер указан только для наглядной демонстрации связи между реальными условиями и статусами программы. Как происходит связь между замыканием переключателя и зажиганием лампы, и как это отображается на экране монитора, когда через виртуальные контакты происходит передача сигнала на контакты и катушки.

Преимущества ПЛК

Все преимущества программирования контроллера раскрываются, когда возникает необходимость изменить поведение системы управления. Поскольку ПЛК представляет собой программируемое устройство, то изменение команд можно осуществлять без перенастройки подключенных к нему компонентов.

К примеру, если функцию «переключатель-лампочка» необходимо перенастроить наоборот, то есть нажать кнопку для выключения лампочки и опустить для включения, то заменять переключатель не придется. Достаточно будет изменить программу так, чтобы контакт Х1 при нормальных условиях оказался в закрытом состоянии, а не в открытом.

Это можно увидеть на следующих изображениях: изменения программы с переключателем в активизированном и неактивизированном состоянии.

Переключатель не активизирован

Переключатель активизирован

Важным преимуществом управления посредством ПЛК над управлением посредством оборудования, заключается в том, что здесь можно использовать входные сигналы неограниченное количество раз. На следующем изображении показана разработанная программа для включения лампочки в условиях, когда два из трех переключателей находятся одновременно в активизированном состоянии.

Для построения подобной схемы посредством реле, нам потребуется задействовать три реле с двумя открытыми контактами, при этом каждый контакт должен быть изолирован.

Применяя ПЛК, нам удастся без добавления оборудования, запрограммировать нужное количество контактов для каждого входа Х.

При этом каждый вход в памяти ПЛК должен занимать не более 1 бит, и вызывать сигнал необходимое количество раз.

Также не более 1 бита должен занимать и каждый выход, в таком случае открывается возможность вносить контакты в программу, приводя Y выход в неактивизированное состояние, как показано ниже на схеме двигателя с системой контроля начала движения и остановки.

Кнопка «Старт» обозначена переключателем, подключенным к входу Х1, а кнопка «Стоп» представляет переключатель Х2. Контакт Y1 дает возможность двигателю находиться под напряжением, даже если кнопка «Старт» опущена. Закрытый при нормальных условиях контакт Х2 в данном случае появится на цветном блоке, показывая, что он находится в электропроводящем состоянии.

При нажатии кнопки «Старт», по закрытому контакту Х1 пойдет переменный ток 120 В, при этом параллельный контакт Y1 также замкнет цепь.

При нажатии кнопки «Старт», контакт Х1 откроется, однако двигатель не прекратит работать, поскольку контакт Y1, который находится в замкнутом состоянии, будет держать катушку под напряжением.

Для остановки двигателя потребуется быстро нажать кнопку «Стоп», посредством которой будет отправлено напряжение на вход Х1 и на открытый контакт, вследствие чего прекратится подача напряжения к катушке Y1.

В такой ситуации двигатель не возобновит работу, пока снова не будет нажата кнопка «Старт», поскольку печать в контакте Y1 потеряна.

Следует учесть, что если контакт Х2 окажется ошибочно открыт, то остановить работу двигателя не удастся. Поэтому важно использовать отказоустойчивую модель устройств контроллера ПЛК.

Решить такую проблему позволит перепрограммирование программы на фактическое нажатие кнопки «Стоп».

В таком случае, при ошибочном открытии входного контакта Х2, вход Х2 можно остановить нажатием на кнопку «Стоп», что незамедлительно отключит работу двигателя.

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

Мы рассмотрели только незначительную часть возможностей ПЛК.

В действительности, программирование контроллеров позволяет создавать программы для выполнения множества функций одновременно, чего невозможно добиться посредством релейных схем.

Кроме того, ПЛК может принимать цифровые сигналы с компьютера, что дает возможность управлять устройствами, расположенными на значительном отдалении от монитора компьютера.

Облегчает программирование PLC поддержка всех стандартных языков, что позволяет каждому инженеру чувствовать себя комфортно при программировании ПЛК и его перепрограммировании, с целью изменения ранее установленных функций.

Сегодня производители предлагают программируемые контроллеры с большим количеством модулей, на которых имеется более 6 пар входов и выходов. Это позволяет программировать ПЛК на решение более сложных задач и управлять посредством одного контроллера более чем 10-ю устройствами.

При этом контроллер занимает немного места, его можно установить в шкаф управления, а сам шкаф поместить на любом отдалении, где для него найдется удобное место.

Источник: http://www.techtrends.ru/techdept/techarticles/programmirovanie-plc.php

Ссылка на основную публикацию