ПЛК100 контроллер для малых систем автоматизации с DI/DO. Программирование контроллера овен


ПЛК ОВЕН 110: Программируем на CodeSys на CS-CS.Net: Лаборатория Электрошамана

Ну что? Я продолжаю рассказывать базовые понятия ПЛК и то, как их программировать. Сегодня я расскажу про свои дальнейшние приключения с ОВЕНом и тем, как я его программировал. Как я уже говорил, программирование ПЛК — это совсем другая религия! Это вам не схемки или кубики в логическом реле двигать! Тут всё значительно мудрее и очень важен грамотный выбор железа, грамотное физическое подключение линий IO и внешних модулей.

Для ПЛК обычно есть два варианта сред разработки: CodeSys и собственные. CodeSys — это бесплатная среда разработки, которая делится на компилятор и ядро. Ядро CodeSys производители ПЛК загружают в него при производстве. И всё, что надо для программирования такого ПЛК — скачать CodeSys и специальные файлы, которые описывают конкретную модель ПЛК.

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

ПЛК, который заказчик купил под свой щит работает на ядре CodeSys v2. Сейчас везде используется ядро CodeSys v3, а вторая версия ядра является устаревшей. Но так как принципы программирования всё равно одинаковые, то этот пост будет полезен всем начинающим. Да и мне охота поделиться информацией, которую я собирал по крупицам, неделю обложившись документацией. Блин! Мне кажется, что мне уже надо или учебные курсы вести, или посты продавать, гыгы =)

Первое, с чего начинается работа по программированию — это создание тестового стенда. У меня валялись кнопки на DIN-рейку от ABB, и я собрал из них четыре линии ввода: три на бортовом IO ПЛК, а одну — на внешнем модуле для того, чтобы проверить как работает опрос модулей по ModBus.

Настройка внешних модулей и ModBus

Первое, с чего начинается наше программирование — это с конфигурации железа. Любой внешний модуль имеет на шине RS-485 свой адрес. А ещё модулю надо указать правильные настройки обмена: скорость, чётность и тип протокола обмена.

Каждый модуль или внешнее устройство настраивается по своему. У кого-то надо будет зайти в меню и поменять там цифирки. У кого-то поставить перемычки. А у других устройств для их настройки предусмотрена специальная программа-конфигуратор. У ОВЕНа сделано именно так.

Их модули подключаются штатно под RS-485 к компьютеру и настраиваются при помощи программы. Для того, чтобы подключить RS-485 к компьютеру, понадобится любой преобразователь интерфейсов. Их на рынке навалом и можно использовать любой. Если хочется — можно RS-485 завернуть даже в обычный Ethernet и общаться с модулями или нашей системой по сетке.

Так как вокруг меня был ОВЕН, то я для личных целей купил преобразователь ОВЕН АС-4. Он у них сделан в корпусе на DIN-рейку, питается от самого же порта USB. Из фич — то, что перемычками можно подключать и изменять сопротивление резисторов-терминаторов шины RS-485.

Мы подаём на модуль питание и подключаем его к преобразователю:

Дальше запускаем программу «Конфигуратор М110». Первым делом программа предложит нам задать настройки для подключения к модулю. Если мы только что купили модуль — то можно смело тыкать кнопку «Заводские сетевые настройки». А если модуль уже настроен на какой-то адрес и другие параметры протокола, то нам надо их знать заранее и ввести в программу:

Если по какой-то причине мы забыли все настройки модуля (например нам подарили БУшный модуль), то можно запустить сканирование сети. Программа найдёт всё, что может и предложит подключиться к указанному модулю. Ну а если мы совсем ничего не можем — то сам модуль ввода-вывода можно жёстко сброить на заводские установки, если установить одну из перемычек, которые находятся на нём под крышкой. Это описано в инструкции на модуль.

После того, как мы подключились к модулю, программа выдаёт нам все его настройки, которые можно прочитать и записать в модуль. Нас интересуют настройки сети: скорость обмена, сетевой адрес и всякие таймауты. Напоминаю, что у модулей есть фишка: если его не опрашивали по RS-485 указанное время, то он считает что связь оборвалась и выставляет на выходах аварийные значения, чтобы оборудование не натворило дел (сам не поехал лифт или не включились насосы и прочее). В нашем случае модуль управляет лампочками, поэтому мы выставляем все аварийные значения на ноль.

А некоторые модули ввода-вывода ещё и могут общаться по разным протоколам. Да и даже у самого ModBus есть парочка модификаций: RTU (устройства обмениваются двоичными даными) и ASCII (все данные гоняются в текстовом виде). Мы будем использовать более быстрый протокол ModBus-RTU.

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

Ещё у этой программы есть возможность контролировать состояние входов-выходов. С помощью этого можно отдельно протестировать каждый модуль на работоспособность.

Изучаем CodeSys

Итак, с помощью программы мы настроили все модули на одинаковые параметры связи и дали им адреса. Теперь их можно физически подключить к ПЛК, а сам ПЛК воткнуть в сетку. ПЛК ОВЕН 110 можно программировать тремя способами: через USB, через RS-232 и по сетке. Самый лучший способ из этого — программировать ПЛК по сетке, потому что в этом случае он не перезапускается, а программа заливается туда в горячем режиме. То-есть написали, загрузили, проверили. Что-то исправили? Сразу же загрузили и проверили. Если же программировать ПЛК по USB — то там надо вынимать USB-кабель после заливки программы, что адски неудобно.

И теперь начинаем разбираться с CodeSys. Я скачал её прямо с сайта ОВЕНа, где она есть в русском варианте. Вообще я не люблю русские переводы специального софта, потому что переводят его те, кто ни фига не понимает в технике. Например, самый адский перевод был у AutoCad: «Вырезать, Обрезать, Растянуть, Расчленить, Взорвать». Или у P-CAD, где Net (соединение) перевели как «Сеть». Но в случае с CodeSys русский перевод мне помог разобраться в терминологии и в том, где что находится. После этого русский перевод мне уже не нужен, и я могу ориентироваться в английской среде свободно.

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

Сама CodeSys поддерживает много языков программирования. В том числе и тех, на которых удобно программировать логические реле. Например, можно программировать при помощи блок-схем (CFC). Это как нам в школе алгоритмы учили рисовать в стиле «Начало => Ввод данных => Если .. то => иначе => Конец». Тут это рисуется при помощи блоков:

А можно програмировать функциональными блоками (FBD), как на логических реле. В этом случае схема исполняется не последовательно как в CFC, а по сигналам, как в обычной цифровой логике на микросхемах:

Для тех, кто переходит с обычных релюшек и автоматики есть возможность писать всё в релейной логике LD, LAD. Тогда всякие сигналы описываются контактами, которые включают или выключают реле:

А ещё есть язык инструкций IL. Он подойдёт тем, кто любит суровый ассемблер. Смотрите, как он похож на него же:

А на мой взгляд самый удобный язык для сложных задач — это обычный текст ST, который похож на смесь СИ и Pascal одновременно:

Тут тебе есть и комментарии, и возможность написать любые условия.

Внутри CodeSys можно совмещать все эти языки и создавать свои функциональные блоки. Например, вы можете на ST написать сложный блок, который чего-нибудь вычисляет и выдаёт на выходе логическое значение 1 или 0. А потом взять язык FBD и из этих блоков составить «простую» логическую схемку.

Распределяем ресурсы ПЛК

Наше программирование, конечно же, тесно связано с железом. И наша среда CodeSys должна знать то, какие железо мы сейчас используем. Это конечно же понятно: в разных ПЛК есть разное количество памяти, портов ввода-вывода и прочих штуковин.

Поэтому новый проект всегда начинается с выбора платформы. На английском это называется Target. Сама среда никогда не будет знать о всяких ОВЕНах и других ПЛК. Изначально она знает только о некоем абстрактном ядре «3S CodeSys». Чтобы она узнала про наши ПЛК, нам надо пойти на сайт разработчика и скачать оттуда Target-файлы для наших ПЛК.

После этого Target’ы загружаются в CodeSys (на версии 2 этот процесс адски мутный, неочевидный и противный), и мы наконец-то можем творить. Выбираем нужный вариант нашего ПЛК:

Теперь мы сразу вспоминаем то, что ПЛК — это многозадачная система, внутри которой крутятся задачи — программы, которые что-нибудь делают. Задач может быть несколько, но для работы ПЛК нужна хотя бы одна. В CodeSys она обязана называться «PLC_PROG», и именно её нам сразу предлагают создать после выбора платформы ПЛК.

Сразу же при её создании надо выбрать язык, на котором вы будете писать код. Если вы вдруг ошиблись с названием языка (я постоянно путаю IL и ST), то можно просто удалить эту задачу и создать новую с тем же именем.

После этого наш проект создан и среда от нас отстала. Если мы пишем на ST, то в коде PLC_PROG достаточно поставить «;» и программа откомпилируется. Но работать ничего не будет. Почему? А потому что ПЛК не знает, как к его ресурсам обращаться и чего у него вообще есть.

И вот чтобы его этому научить — надо аккуратно и внимательно разобраться с его ресурсами и с тем, как туда прописывать внешние модули ввода-вывода. Всё это кажется лёгким только тогда, когда сам всё понял. А когда смотришь на конфигурацию ПЛК в самый первый раз, то от неё взрывается голова. Я разбирался с этим дней пять, потому что ещё и инструкция по работе с CodeSys на сайте ОВЕНа говорит «Сделайте это и то», но не говорит ПОЧЕМУ так надо делать. Я этот недостаток хочу исправить и потом пошлю ОВЕНу ссылку на эти посты.

Для того, чтобы CodeSys знала про все-все ресурсы и ввод-вывод всей системы на базе ПЛК, это всё надо прописать руками. То-есть, вся конфигурация системы прописывается в том же программном коде жёстко. И поэтому когда вы выбираете всякие модули ввода-вывода, назначаете им параметры связи и адреса, вы должны понимать, что это останется навсегда. А если надо будет поменять адрес устройства — то вам надо будет перекомпилировать проект.

Общий концепт ресурсов и обращения к ним сделан при помощи неких адресов. Адреса эти вычисляет сама среда по нашей конфигурации ПЛК. На скриншоте ниже эти адреса начинаются со знаков «AT %». Чтобы программст не мучился с этими адресами, он может создать обычные программные переменные, которые будут использовать вместо адресов понятные имена типа «WaterPump», которая на самом деле будет говорить о внешнем выходе по адресу типа «%QW6.3.0.0».

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

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

Слева у меня сейчас развёрнута конфигурация самого ПЛК. Чего у нас тут есть? Есть два быстрых входа, 16 обычных входоы (в сумме — 18). Так же есть четыре быстрых выхода и 10 обычных — в сумме 14. Это соотвествует тому, что у этого ПЛК действительно есть. Дополнительно есть Special Input — это кнопка «F1» на самом ПЛК и Special Output — это пищалка ПЛК. Если туда записать «1», то пищалка будет пищать и привлекать наше внимание к системе.

Около этих ресурсов есть обозначение «[FIX]» или «[SLOT]». Если написано «SLOT», то это означает что программно можно заставить среду воспринимать эти входы или выходы не как дискретные 1..0, а например как энкодер или ШИМ-регулятор. Это сделано для того, чтобы облегчить программирование с заставить ПЛК максимально автоматически обрабатывать данные с IO, не нагружая этим программиста. Соотвественно те ресурсы, которые «FIX» изменять нельзя и они всегда будут теми, какие они и есть.

Около каждого ресурса как раз и указан его адрес, по которому к нему можно обращаться. Вот если мы хотим программно включить быстрый выход 2, то нам нужен адрес «%QX2.0». Про то, как назначать адреса переменным, я расскажу позже.

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

Идём дальше! Это-то мы изучали внутренние ресурсы, которые есть на борту ПЛК. А как же нам добраться до внешних ресурсов? Вот у нас есть аж три модуля ввода-вывода. Но где же они?

А нигде! Их надо добавить ручками. Логика тут простая и технарская: то, что у тебя есть физически должно быть и в программе. Давайте вспомним, чего у нас есть физически? Модули? Неа! У нас есть протокол ModBus!

Поэтому мы кликаем на самом ПЛК и выбираем из меню этот самый ModBus (Master) вот так, как показано ниже. Master — потому что главный у нас в сети ПЛК, и именно он будет управлять всеми другими модулями. Так же там есть ещё и другие протоколы обмена для разных вариантов сети. Например можно было вообще взять собственный протокол «ОВЕН» и построить сетку на нём.

Обратите внимание, что этот протокол сейчас не привязан к физическим проводам ПЛК! После того, как мы добавим наш ModBus, система просто будет знать что есть некий абстрактный протокол, по которому гоняются байтики. Но через какой порт ПЛК это будет работать — она пока ещё не знает!

Что же делать? Придётся научить нашу систему нужному порту. Для этого мы разворачиваем дерево под нашим ModBus’ом и видим искомое. По умолчанию система подставила самый первый попавшийся интерфейс ПЛК — «Debug RS-232». Мы видим около него волшебную надпись «SLOT». Кликаем по ней правой кнопкой мыши и — вуаля! Мы можем заменить его на нужный на RS-485.

Причём список замены будет только из тех вариантов, которые действительно есть в именно этом ПЛК. Например в некоторых ПЛК бывает аж два интерфейса RS-485, на которых можно построить две разные сетки ModBus.

И вот только теперь мы дошли до физического уровня: собственно самого RS-485. Для него у нас есть настройки протокола обмена и параметров связи. Если вы помните, то мы все модули конфигурировали на ModBus RTU и скорость обмена 9600. Теперь вставим эти же настройки в нашем ПЛК:

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

Вот сейчас мы как раз и добавим наши внешние модули. Сам ОВЕН рекомендует добавлять свои модули как «Unversal ModBus Device» — некое абстрактное устройство. Сделаем так:

Теперь у нас появился некий внешний модуль, который подключен на нашу шину RS-485 и будет работать по ModBus. Но напоминаю вам то, что протокол ModBus — это просто способ читать и записывать байты в и из устройств. И более ничего. А вот что значит каждый байт и та область памяти, куда его надо записать/прочитать — знает разработчик модуля и разработчик системы на базе ПЛК.

Для каждого модуля надо будет задать параметры связи. Для нас это адрес модуля (ModuleSlaveAddress) и время опроса его контроллером. Контроллер будет автоматически общаться с модулем раз в столько миллисекунд, сколько мы укажем.

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

Ну добавили мы модуль, и чего? А как система узнает как рулить его входами или выходами? Вообще, откуда она узнает, где они у него находятся? А узнает она это через человека, который достанет и прочитает инструкцию на модуль. Для любого устройства с протоколом ModBus производитель даёт таблицу, в которой указаны все адреса его регистров. Выглядит эта таблица вот таким образом, например:

Тут нас интересует два момента. Так как это модуль ввода, то нам надо получать значения его входов. Производитель, чтобы не гонять по сети тьму байтов, упаковал все 16 входов в 16 бит — в два байта, в тип WORD. Значит, нас интересует регистр номер 51, который надо будет читать из модуля. Следующий момент, который нам важен — это проверить команду, которая используется для записи-чтения данных в этот модуль. Иногда они могут отличаться от стандартных.

Отлично! Вот теперь мы всё знаем, чтобы добавить это в наш ПЛК. Тыкаем менюшкой на нашем модуле и выбираем, что добавить. типы в CodeSys называются так:

  • 8 Bit — BYTE, байт
  • Register — INT, WORD — два байта
  • 32 Bit — DWORD, четыре байта

Так как в документации видно что мы читаем двухбайтовое слово — то нам нужен тип «Register input»:

Теперь задаём параметры именно для этого кусочка: адрес регистра, который читаем и команду, которой читаем.

Вот теперь (см. скриншот сверху) ПЛК знает что у нас есть протокол MoBus-RTU на основе интерфейса RS-485, на котором висит устройство с адресом «1», из которого мы читаем два байта из ячейки «51».

А вот как выглядит конфигурация ПЛК для моей системы. У меня стоит один модуль ввода на 16 входов и модуль вывода на 16 выходов. И на будущее для диммирования света стоит модуль аналогого вывода.

Назначение переменных в ПЛК

Вот теперь у нас есть все-все адреса наших ресурсов. Чтобы нам было удобно ими пользоваться, мы заведём для них программные переменные. Это тоже ручная работа, в которой требуется внимательность. А ещё её в CodeSys v2 делать не очень удобно, потому что в табличке для ввода переменных не меняется ширина колонок.

Посмотрим на конфигурацию ПЛК и выцепим оттуда адреса всех наших входов и выходов. Я их подчеркнул красным:

А теперь создадим переменные для них. Для этого мы идём в раздел «Глобальные переменные» и начинаем заполнять табличку примерно так:

Видите? Мы указываем название переменной и прописываем её адрес и тип. И теперь чтобы включить внутренний выход 1, нам надо написать «MOuts0_1 := TRUE;».

Проделаем то же самое с внешними устройствами. Тут адреса становятся длиннее:

И редактировать их не совсем удобно. Заполняем переменные:

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

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

Программируем

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

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

То же самое я проделал с выходами:

Теперь можно кодить. Для теста я сделал самое простое: нажимаем кнопку — срабатывает выход. То-есть мы просто присваиваем выход входу и наслаждаемся работой мощного ПЛК ;)

Ещё я нашёл в Сети пример того, как сделать на CodeSys импульсное реле и тоже его протестировал. Кстати, пример лежит на форуме ОВЕНа.

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

Задачи

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

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

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

Ну а для самой задачи задаётся то, что будет выполняться:

Связь с ПЛК и заливка программы

Ну и теперь нам осталось только залить нашу программу в ПЛК. Для этого мы идём в меню «Онлайн -> Параметры связи» и создаём там подключение по сетке через протокол TCP.

После этого достаточно выбрать команду подключения к ПЛК:

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

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

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

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

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

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

Библиотеки

А ещё под CodeSys есть много библиотек с готовыми функцями. Самая известная среди них — библиотека OSCAT. Я её скачал и нашёл там много интересного. Например вот модуль CLICK, который может определять одинарное, двойное и тройное нажатие на кнопку. При помощи него можно делать например так, чтобы если мы погасили весь свет одной кнопкой, то при двойном нажатии на неё весь свет включился там же, где и был включен.

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

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

Если вас заинтересовала информация из этого поста и вы хотите со мной связаться (или заказать Сборку щита / Консультацию/Мастер-Класс), то пишите мне на почту [email protected] или звоните на +7-926-286-97-35 (c 10 до 20 по Москве). На SMS и почту, написанную в одну строчку, я не отвечаю. Отзываюсь на имя Электрошаман.Невнимательных, тупых и наглых продаванов и менеджеров я буду жёстко стебать, если они не заглянут в инфу про контакты для организаций, а скорее кинутся звонить.

cs-cs.net

ОВЕН ПЛК110 [М02]. Онлайн-курс по работе с новым контроллером ОВЕН ПЛК110[М02]

1 Почему работать с ОВЕН ПЛК просто, или «мы не боимся CODESYS».

Просмотрев данный ролик, Вы будете уметь произвести все предварительные настройки, чтобы начать создавать свой проект:

Что такое Target файлы, и зачем они нужны. Насколько просто начать создавать проект под свой новый контроллер в CODESYS. 
 Смотреть
2 Конфигурация входов и выходов

От теории к практике - или как в своей программе задействовать физические входы и выходы контроллера.

Знакомимся с конфигуратором ПЛК. Учимся, как в программе обращаться к физическим входам и выходам. 

 Смотреть
3 Входы и выходы здорово, а как же программа?

Пишем простую программу на языке CFC, понятном для автоматчиков.

Используем в своей первой программе физические входы-выходы.

 Смотреть
4 Вы полагаете, все это будет работать?

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

 Смотреть
5 я Вам ни какой-то «сис. админ»…

Подключаем контроллер к ПЛК через стандартный COM порт. Для обладателей современных ноутбуков – через стандартный USB порт.

 Смотреть
6 Часть 6. Даешь сигналов, больше и разных.

Подключаем к ОВЕН ПЛК110 модули расширения Мх110 по интерфейсу RS-485, используя протокол ModBus RTU. Считываем значение аналоговых входов с модуля МВ110-2А. Считываем значение дискретных входов, и управляем дискретными выходами на модуле МК110-8Д.4Р.

 Смотреть
7 Часть 7. А как же визуализация тех. процесса?

Первая серия триллера по сопряжению контроллера ОВЕН ПЛК110 и панельного контроллера ОВЕН СПК107, под названием: «Это скучно… это мы уже умеем». Начинаем настраивать обмен между устройствами с конфигурирования (заметьте – никакого программирования) контроллера ПЛК110 в CODESYS v.2. Все как обычно, но в данном случае настраиваем ПЛК110 как Slave устройство.

 Смотреть
8 Часть 8. Она же вторая часть части 7.

Вторая серия триллера по сопряжению контроллера ОВЕН ПЛК110 и панельного контроллера ОВЕН СПК107, под названием: Не так страшен CODESYS v.2, как не страшен CODESYS v.3.

Легкий экскурс в особенности CODESYS v.3 (подробнее работа с панельными контроллерами ОВЕН СПК освящается в отдельных инструкциях и видео-уроках). Настраиваем обмен по протоколу RS-485. Связываем устройства. Управляем выходами контроллера ПЛК110 непосредственно с дисплея СПК107. 

 Смотреть
9 Часть 9. И все-таки он вертится…

Управляем вращением двигателя, с использованием частотного преобразователя из программы контроллера ОВЕН ПЛК110 по интерфейсу RS.  До сегодняшнего урока подключение ОВЕН ПЧВ по RS-485 к ПЛК казалось сложным. Теперь мы знаем, что это не так. Все стандартно. Конфигуратор ПЛК, настраиваем обмен по сети, указываем параметры обмена между ОВЕН ПЛК110 и ОВЕН ПЧВ. Настраиваем частотный привод. Управляем двигателем с помощью ПЧВ непосредственно из управляющей программы контроллера.

 Смотреть
10 ОВЕН ПЛК110. Часть 10. Ну, наконец-то энкодер. Когда нам необходима быстрая реакция контроллера на внешние воздействия мы используем в контроллерах ОВЕН ПЛК110 конфигуратор задач. Создаем новую программу. Настраиваем вызов данной программы не в основном цикле, а по прерыванию программного таймера. Для примера работы с быстрыми входами ПЛК110 подключаем к контроллеру энкодер. Измеряем на столе длину листа бумаги А4.    Смотреть
11 Часть 11. А как же начальство, или передаем данные в SCADA систему.

Интегрировать контроллеры ОВЕН ПЛК110 в SCADA системы неожиданно просто. Делаем два паса мышкой в CODESYS. Важно не забыть произвести все приведенные манипуляции, и именно в этом порядке. В OPC сервере нам требуется настроить только лишь канал связи, по которому ОВЕН ПЛК110 будет подключаться к Вашей SCADA системе. Вуаля. Все готово. Можно использовать переменные в своем проекте в SCADA системе.

Ну и на сладкое: при покупке контроллеров ОВЕН с CODESYS  OPC сервер предоставляется совершенно бесплатно.

В крупных проектах, где речь идет о десятках контроллеров и тысячах переменных рекомендуется использовать профессиональные OPC сервера. 
 Смотреть
12 Часть 12. А давайте позвоним на ОВЕН ПЛК. Часто встречается задача удаленного обновления пользовательского проекта в ОВЕН ПЛК. Один из вариантов представлен в этом видео-уроке. Самый простой и легко реализуемый вариант, при котором Вам не нужно с ужасом вспоминать страшные слова GPRS, Static IP, VPN, DDNS и прочее. Подключаем стандартный GSM модем ОВЕН ПМ01 к ПК с установленным CODESYS с одной стороны, и ОВЕН ПЛК110 с подключенным модемом ПМ01 с другой. Все что нам необходимо сделать – настроить модемы, и записать в контроллер несколько созданных на компьютере файлов.  Смотреть
13 Часть 13. Напиши мне, напиши…

Как нам оперативно получать информацию с объекта, если мы не можем все время находиться рядом? А давайте контроллер ОВЕН ПЛК110 будет слать Вам смс, в случае, если что-то случилось на объекте, или просто информационные сообщения о состоянии объекта. Например: «Котел в работе», «Темп. воды 27», «Несанкционированный доступ». Ну, или мы будем посылать смс с командами для контроллера, и контроллер будет производить управляющие воздействия на систему. Например: «Включить котел», «Остановить печь», «Выключить электропитание».  При этом количество сообщений, тип сообщений и информация в смс ограничивается только Вашей фантазией.

Настраиваем подключение модема ОВЕН ПМ01 к контроллеру ОВЕН ПЛК110. Подключаем специальную библиотеку для работы с смс. Определяем необходимое количество смс, и текст, который они будут нести.

 Смотреть

www.owen.ru

ОВЕН ПЛК110. Схемы подключения

Схемы подключения ОВЕН ПЛК110-30

Схема расположения и назначение клемм на ПЛК110-220.30.К. Схема для ПЛК110-24.30.К - аналогична 

Схема расположения и назначение клемм на ПЛК110-220.30.Р

Схемы подключения ОВЕН ПЛК110-32

Схема расположения и назначение клемм на ПЛК110-220.32.К. Схема для ПЛК110-24.32.К - аналогична

Схема расположения и назначение клемм на ПЛК110-220.32.Р. Схема для ПЛК110-24.32.Р - аналогична

Схемы подключения ОВЕН ПЛК110-60

Схема расположения и назначение клемм на ПЛК110-220.60.К. Схема для ПЛК110-24.60.К - аналогична

Схема расположения и назначение клемм на ПЛК110-220.60.Р. Схема для ПЛК110-24.60.Р - аналогична

Подключение входных устройств и схемы входных элементов контроллера ПЛК110

Схема подключения контактных датчиков (Sl-Sn) к входам ПЛК110

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

Подключение к дискретным входам датчиков (F1–Fn), имеющих  на выходе транзисторный ключ n-p-n–типа 

Подключение к дискретным входам датчиков, имеющих на выходе n-p-n - транзисторный ключ

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

Выходные элементы типа Р контроллера с внешними цепями защиты при активной нагрузке,  Rн – пользовательская нагрузка (двигатель, нагреватель, контактор и т.д.)

Подключение цепей защиты при реактивной нагрузке

Кабели

КС1

Применяется для прошивки и программирования контроллеров:

- ПЛК110 (порт RS-232 DEBUG)

1,5

2,7

КС2

Применяется для соединения контроллеров ПЛК110 (порты RS-232 DEBUG и RS-232) с панелями оператора ИП320 (порт RS-232), СП270, СП307, СП310 (порт PLC, RS-232)

1,5

2,7

КС3

Применяется для соединения контроллеров ПЛК110 (порты RS-232 DEBUG и RS-232) с модемом ПМ01[M02] (порт RS-232, соединитель Х2)

1,5

www.owen.ru

ОВЕН ПЛК100. Схема подключения

Схема подключения ОВЕН ПЛК100-24.К

Схема подключения ОВЕН ПЛК100-24.Р

Схема подключения ОВЕН ПЛК100-220.Р

Схема подключения дискретных входов ПЛК100

Схемы подключения к ПЛК100 дискретных датчиков с полупроводниковым выходным каскадом

ПЛК100-220, датчик n-p-n типа

ПЛК100-24, датчик p-n-p типа

ПЛК100-24, датчик n-p-n типа

Примечание.

Для подключения к ПЛК100-24 датчиков n-p-n по схеме «с общим минусом» рекомендуется использовать дополнительно устройство ОВЕН ПДИМ-8

Кабели

КС1

Применяется для прошивки и программирования контроллеров:

- ПЛК100 (порт RS-232 DEBUG)

1,5

2,7

КС2

Применяется для соединения контроллеров ПЛК100 (порт RS-232 DEBUG) с панелями оператора ИП320 (порт RS-232), СП270, СП307, СП310 (порт PLC, RS-232)

1,5

2,7

КС3

Применяется для соединения контроллеров ПЛК100 (порт RS-232 DEBUG) с модемом ПМ01[M02] (порт RS-232, соединитель Х2)

1,5

www.owen.ru

ОВЕН ПЛК - 2/6 - PLC

Производится опрос первых трех входов нескольких модулей аналоговых входов IPC-7033.

Описание формата обмена с модулем IPC-7033:

Формат запроса:

#AA[CRC][CR]

где: # – разделитель;

AA – адрес прибора;

CRC – контрольная сумма;

CR – перевод строки.

Формат ответа:

>+0255.12+013.45+150.11[CRC][CR]

где: > – разделитель в случае положительного ответа;

+025.12 – данные одного канала (5 чисел + знак + точка) итого семь символов;

CRC – контрольная сумма;

CR – перевод строки.

Окно конфигурирования модуля DCON (Master) с подключенным к нему устройством Universal DCON device, настроенным для последовательного опроса нескольких модулей IPC-7033 с различными адресами, проиллюстрировано на рисунке 1.

Рисунок 1 – Окно конфигурирования модуля «Universal DCON device» модуля DCON (Master) для опроса входов модулей IPC-7033

Для задания адреса опрашиваемого прибора используется 8-битовая входная переменная «Address». Значения со входов опрашиваемого модуля IPC-7033 отображаются в трех выходных переменных типа Float (REAL).

Модуль Universal DCON device настраивается следующим образом:

Request format – формат строки запроса – #[2h][+],

где: # – символ разделителя команды опроса входов;

[2h] – спецкоманда, указывающая, что в это место запроса подставляется шестнадцатиричный двухсимвольный адрес, значение которого должно быть взято из входной переменной;

[+] – спецкоманда подсчета и добавления в конец запроса контрольной суммы «по модулю 256».

Внимание! Символ возврата каретки вставляется автоматически!

Good response format – формат положительного ответа – >[7f][7f][7f][+],

где: > – символ разделителя в случае положительного ответа;

[7f] – спецкоманда, указывающая на то, что семь символов ответа должны быть преобразованы в число с плавающей точкой и результат преобразования должен быть помещен в первую выходную переменную, которая имеет формат Float. Внимание! Для следующих спецкоманд [7f] применяется то же правило преобразования, но результаты помещаются во вторую и третью выходные переменные, соответственно.

[+] – спецкоманда, указывающая на то, что должно быть проанализировано правильность контрольной суммы в принятой посылке. Результат записывается в переменную «Status».

CR – перевод строки.

Bad response format – формат отрицательного ответа – ?,

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

Max response timeout – максимальное время ожидания ответа – 50 мс. Задается в соответствии с рекомендациями производителя прибора.

Work mode – режим работы – by change value (по изменению значения одной из входных переменных). Этот режим позволяет генерировать запросы при изменении адреса опрашиваемого прибора. Для генерации одного запроса необходимо записать значение, отличающееся от текущего, во входную переменную «Аdress». После этого по значению переменной «Status» определяется окончание обмена данными с опрашиваемым прибором и корректность данных в выходных переменных.

Внимание! Чтение переменной «Status»а и ее анализ должны производиться на следующем цикле работы ПЛК после записи нового адреса.

Остальные параметры в данном режиме работы не существенны.

 P.S. Если вам надо создание и раскрутка сайта в Киеве, то нет ничего проще.

Мой блог находят по следующим фразам

plc24.ru


Видеоматериалы

24.10.2018

Опыт пилотных регионов, где соцнормы на электроэнергию уже введены, показывает: граждане платить стали меньше

Подробнее...
23.10.2018

Соответствует ли вода и воздух установленным нормативам?

Подробнее...
22.10.2018

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

Подробнее...
22.10.2018

Столичный Водоканал готовится к зиме

Подробнее...
17.10.2018

Более 10-ти миллионов рублей направлено на капитальный ремонт многоквартирных домов в Лескенском районе

Подробнее...

Актуальные темы

13.05.2018

Формирование энергосберегающего поведения граждан

 

Подробнее...
29.03.2018

ОТЧЕТ о деятельности министерства энергетики, ЖКХ и тарифной политики Кабардино-Балкарской Республики в сфере государственного регулирования и контроля цен и тарифов в 2012 году и об основных задачах на 2013 год

Подробнее...
13.03.2018

Предложения организаций, осуществляющих регулируемую деятельность о размере подлежащих государственному регулированию цен (тарифов) на 2013 год

Подробнее...
11.03.2018

НАУЧИМСЯ ЭКОНОМИТЬ В БЫТУ

 
Подробнее...

inetpriem


<< < Ноябрь 2013 > >>
Пн Вт Ср Чт Пт Сб Вс
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

calc

banner-calc

.