Tag Archives: ПЛК

Подключение устройств по интерфейсу RS-485

При подключении нескольких устройств в сеть RS-485 необходимо учитывать, что приборы в данной сети должны подключаться последовательно один за другим. Например, если есть три прибора — X1, X2, X3, у каждого прибора есть клеммы A1, B1, A2, B2, A3, B3 соответственно. В таком случае провод идет с клеммы A1 на клемму A2 и затем с клеммы A2 на клемму A3. Аналогично с кабелем B. C клеммы B1 кабель идет на клемму B2 и потом с клеммы B2 на клемму B3. Схематично это изображено на Рисунке 1.

 

Рис.1. Подключение приборов по RS-485

Максимальная длина линии связи между крайними устройствами может составлять до 1200м (и более с использованием повторителей). При длине линии связи более 100м в максимально удаленных друг от друга точках сети рекомендуется устанавливать оконечные согласующие резисторы номиналом от 100 до 250 Ом, позволяющие компенсировать волновое сопротивление кабеля и минимизировать амплитуду отраженного сигнала.

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

Для примера рассмотрим пример подключения панели оператора ИП-320, модуля дискретного ввода-вывода МДВВ и программируемого логического контроллера, который в данном случае выполняет роль Мастера сети. Пример правильного последовательного подключения приведен на Рисунке 2.

Рис. 2. Пример правильного подключения

На Рисунке 3 приведен пример неправильного подключения – топология звезда. При данном подключении работа в сети RS-485 будет вестись некорректно.

Рис. 3. Пример неправильного подключения

    Эмулятор ОВЕН ТРМ1

    ПЛК100 (Master) + ИП320 (Slave) + МВА8 (Slave)

    Эмулятор ТРМ1

     

     

    Задача:

    1)      Эмуляция работы ТРМ1

    2)      Опрос входа МВА (получение температуры)

    3)      Обработка в контроллере данных, полученных с МВА

    4)      Передача данных на панель для отображения температуры

    5)      Установка уставки, гистерезиса и режима работы с панели

    6)      Контроллер работает в качестве мастера

    Решение задачи

    1)     Сетевые параметры

    — Контроллер  — Мастер

    — Адрес Панели Оператора ИП320 – 1

    — Адрес Модуля Ввода  МВА8 – 16

     

    2)     Регистры для обмена данными в сети

     

    Имя переменной Адрес Регистра Назначение
    Параметры для обмена с МВА8
    T_MVA 1 Опрос температуры с МВА в целочисленном формате со сдвигом 2 знака
    Параметры для обмена с ИП320
    T_IP_TX 5 Передача в панель температуры в целочисленном формате со сдвигом 2 знака для отображении в численном виде
    T_IP_GR 6 Передача в панель температуры в целочисленном формате без сдвига для вывода на график
    Ust 7 Регистр для вывода уставки в панель в целочисленном формате, со сдвигом 2 знака
    Ust_inp 8 Регистр для получения нового значения уставки с панели в целочисленном формате, со сдвигом 2 знака
    Gist 9 Регистр для вывода гистерезиса в панель в целочисленном формате, со сдвигом 2 знака
    Gist_inp 10 Регистр для получения нового значения гистерезиса с панели в целочисленном формате, со сдвигом 2 знака
    Rejim 11 Регистр для вывода режима работы котроллера (нагреватель — холодильник)
    Rejim_inp 12 Регистр для получения нового режима работы котроллера (нагреватель — холодильник)
    Rele_b 13 Регистр для чтения статуса индикатора выходного реле
    screen 15 Регистр для получения текущего номера экрана панели
    Screen_in 16 Регистр для сметы текущего экрана панели
    auto 17 Регистр разрешения автоматического переключения экранов панели
    Параметры для обмена с ИП320 (для инициализации панели)
    U_ret 8 Запись в панель уставки из энергонезависимой памяти
    G_ret 10 Запись в панель гистерезиса из энергонезависимой памяти
    R_ret 12 Запись в панель режима работы из энергонезависимой памяти

     

    3)     Описание Экранов и назначения клавиш панели ИП320

    Основное назначение панели – это вывод температуры на экран и установка параметров работы эмулятора ТРМ1. В качестве примера была взята упрощенная модель работы ТРМ1. Модель предполагает, что ТРМ1 работает в двух режимах – прямой гистерезис и обратный. Для реализации этих двух режимов необходимо задавать уставку, гистерезис и сам режим работы ТРМ1.

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

    В панели ИП 320 реализованы 4 экрана:

    Базовый — для вывода основных параметров работы прибора

    Установка параметров — для задания уставки и гистерезиса

    Установка режима работы — для выбора режима работы ТРМ1

    График — для вывода температуры в виде графика

     

    Подробное описание экранов и работы с ними:

    Рис.1 Базовый экран

     

    Базовый:

     

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

    Все параметры читаются из регистров указанных на рисунке 1. Индикатор соответствует логическому состоянию регистра 13 бита 0 (соответствует биту 208). Динамический текст выводится в соответствии с содержимым регистра 13, в данном регистре используется только 0-й бит, который может находиться в 2-х состояниях TRUE и False – что будет соответствовать числам 1 и 0 в десятичной системе счисления (в зависимости от этого значения в панели задается выводимый текст).

    С помощью кнопки  8 можно перейти в режим автоматического переключения экранов панели. Экраны переключаются ПЛК циклически, в том случае если в регистре 17 бит 0 (соответствует буту 272) равен 1. Кнопка 8 работает в реверсивном режиме, то есть при каждом нажатии заданный бит меняется на противоположное состояние (0 либо 1).

    При нажатии на кнопку 9 происходит переход на экран дата-время, выход с этого экрана осуществляется нажатием кнопки ESC.

    Установка параметров:

     

     

    Рис. 2 Экран установки параметров

    Экран установки параметров предназначен для задания значений уставки и гистерезиса. На экране отображаются четыре числовых значения. Значения, которые находятся напротив “OLD” являются текущими, и отображают реальные значения уставки и гистерезиса. Значения, которые стоят напротив “NEW” предназначены для ввода новых значений уставки и гистерезиса. Редактируемые значения защищены паролем, и их редактирование запрещено.

    Для разрешения записи новых значений необходимо перейти на экран пароля и выбрать меню “Открыть доступ”. Далее откроется экран ввода пароля, в котором необходимо будет ввести пароль с помощью стрелок на панели (пароль 11).

    После открытия доступа кнопкой SET можно выбрать редактируемый параметр (из группы NEW) и ввести его новое значение, после чего нажать кнопку ENT, чтобы его записать. Через небольшой промежуток времени в группе NEW отобразится новое введенное значение.

    Запись новых значений реализуется путем записи нового значения из регистров Input  в регистры Output.

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

    Как и в базовом экране, кнопка 8 включает, или выключает автопрокрутку экранов.

    Установка режима работы:

    Рис. 3 Экран установки режима работы

    Данный экран позволяет установить режим работы ТРМ1 нажатием кнопок 0 или 1 на панели оператора. Режим работы при нажатии на данные клавиши будет меняться в том случае, если на экране пароля был открыт доступ, в противном случае кнопки будут не функциональны. После Выбора режима путем нажатия соответствующей кнопки на экран будет выведен номер текущего режима.

    Переход на экран пароля осуществляется при помощи кнопки +/-.

    Кнопка 8 включает или отключает автопрокрутку экранов.

    Рис. 4 Экран график

    График:

    Экран графика представляет, выводит график температуры, но в более крупном масштабе, чем на экране 1 (Базовый).

    Кнопкой 8 включается автоматическая прокрутка экранов.

    Параметры настройки панели:

     

    Рис. 5 Настройки панели

    В настройках проекта конфигуратора ИП320 необходимо задать пароль для ввода его на экране пароля. Также указывается номер регистра для работы с экранами панели.

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

    Список тревог

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Рис. 6 Список тревог

     

    Фирма SIEMENS в мире автоматизации

    Все знают, что Siemens — это очень большой интернациональный электротехнический концерн. Многие знают, что основное направление деятельности Siemens -автоматизация промышленности. Некоторые знают, что Siemens является мировым лидером на рынке программируемых контроллеров, без которых немыслима промышленная автоматизация. И только единицы знают, что около трети всей прибыли всему концерну Siemens приносит отдел, который производит средства промышленной автоматизации.

    SIEMENS сегодня в мире и в России

    SIEMENS сегодня — это 16 департаментов, которые работают в различных отраслях, связанных с электричеством и электроникой. Среди электротехнических компаний мира SIEMENS занимает пятое место, но если брать оборот, собственно, электротехники, тогда SIEMENS на втором месте после IBM.
    Во всем мире SIEMENS образует дочерние предприятия с юридическим лицом страны пребывания. Есть такая фирма и в России — ООО «Сименс» (Москва). Она имеет возможность вести коммерческую деятельность на территории страны, что невозможно имея только представительство.

    В России работает около 800 сотрудников, представляющих все департаменты. Один из них — департамент автоматизации и приводов (A&D, то есть Automation and Drives). Основная деятельность департамента — поставка полной гаммы средств для автоматизации промышленности. A&D поставляет системы автоматизации, ЧПУ, частотно регулируемые приводы асинхронных двигателей и сами двигатели, практически любой мощности, низковольтную аппаратуру, приборы для управления непрерывными процессами, а именно датчики температуры и давления, расходомеры, анализаторы жидкостей и газов, самописцы, регуляторы и т.д.

    Системы промышленной автоматизации

    Более 100 тысяч наименований приборов, устройств и компонентов носят общее название SIMATIC и являются составными частями различных систем автоматизации.

    Промышленные контроллеры

    Микроконтроллер из серии S7-200 специально предназначен для решения простых задач автоматизации. Он уже имеет «на борту» определенное количество цифровых входов и выходов, достаточное для управления небольшим устройством.
    Системы на базе контроллеров серии S7-200 имеют возможность расширяться с помощью выбора более мощного процессора, подключения дополнительных модулей цифровых или аналоговых входов/выходов и объединения в сеть нескольких контроллеров.

    Три серии контроллеров SIMATIC S7

    Следующая серия контроллеров S7-300 может управлять уже сотнями сигналов технологического процесса. Можно выбрать один из 6 процессоров, а также подобрать подходящую периферию в виде цифровых или аналоговых модулей входов/выходов различного назначения и исполнения, в том числе — искробезопасное или для отрицательного диапазона температур. Для решения специальных задач, например, регулирования, позиционирования или взвешивания, можно использовать один из специализированных модулей, который данную задачу полностью берет на себя и, тем самым, разгружает центральный процессор. Более того, если стоит задача быстрого вычисления или сложной графической визуализации, решить ее можно с помощью специального модуля с IBM-совместимым компьютером внутри.
    Если разработчику системы мало и такого контроллера, он переходит к серии S7-400, которой подвластны практически любые задачи автоматизации. S7-400 — это десятки тысяч сигналов и мегабайты рабочей памяти. Мало одного, даже самого мощного процессора — ставьте два, мало — три или четыре, пока задача не будет решена.

    HMI (Human Machine Interface)

    Система визуализации или, как ее сейчас называют, человеко-машинный интерфейс  носит название SIMATIC HMI. Предлагаются как панели со знако-буквенным дисплеем, так и с полнографическим экраном, который, в свою очередь, может быть черно-белым или цветным, а также сенсорным. Если задача наблюдения и управления не ограничивается местным или удаленным пультом оператора, а выливается в полноценный диспетчерский пост, не обойтись без SCADA-системы. У SIEMENS — это разработанный совместно с Microsoft программный комплекс WinCC (Windows Control Center). В нем есть все необходимое для организации современной диспетчерской службы. Это и серьезный графический редактор с большой библиотекой стандартных символов и возможности для составления протоколов и архивов, и динамические графические объекты, и возможности наблюдения «живой картинки» с видеокамеры, и возможность использования одним оператором нескольких мониторов, и «подхват» выполнения задачи одним из серверов при выходе из строя другого, и т.д. и т.д. Одним словом, SIEMENS готов предложить всё необходимое  и для качественного управления технологией в реальном масштабе времени и для комфортной работы оператора. Все системы HMI русифицированы.

    SIMATIC С7 — контроллер в одном корпусе с панелью оператора

    Промышленные компьютеры

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

    Промышленный компьютер SIMATIC PC 32F

    Промышленные сети

    Фирма SIEMENS предлагает все три стандартных уровня сетей. И здесь выбор сети зависит от стоящей перед разработчиком задачи. На самом нижнем уровне используется стандартизованная IEC сеть AS-интерфейс (Actuator-Sensor-Interface).
    Средний уровень — PROFIBUS — это европейский стандарт EN 50170, поддерживаемый более 600 ведущими производителями средств автоматизации.
    Промышленный Ethernet — самый высокий из трех уровней сетей. Эта сеть характеризуется возможностью передачи больших объемов информации с наивысшей скоростью. Обычно используется привычный МАР-протокол или современный TCP/IP.

    Индустриальное программное обеспечение

    Современная автоматизация — сплошь программируемая и поэтому ее нельзя отделить от базового программного обеспечения производителя. Разработчику прикладных пакетов сегодня нужны средства, с которыми можно сразу решать поставленную задачу. Просто, быстро и экономично. Без дописывания «на ходу» какого-нибудь драйвера или блока, необходимость в котором выяснилась уже при запуске объекта у заказчика где-нибудь в тайге или пустыне. Базовое программное обеспечение от фирмы SIEMENS — Industrial Software — это своеобразный большой «инструментальный ящик», в котором пользователь может найти набор готовых программных инструментов, в соответствии с решаемой в данный момент задачей. К примеру, инструмент с названием «STEP 7» необходим для работы с контроллерами. Другой инструмент — для визуализации. Третий — для технолога, не имеющего знаний программиста. Четвертый, наоборот, — для опытного программиста и т.д. и т.д., всего — более 20 инструментов.

    Услуги A&D S в России

    Информация

    Для облегчения труда разработчика, кроме бумажной версии каталогов, уже более 2 лет, ежеквартально выпускается интерактивный, электронный каталог на лазерном диске. Этот каталог позволяет не только узнать технические или коммерческие характеристики конкретных изделий, но и составить заказную спецификацию для покупки выбранных продуктов
    Другой источник информации — Internet. По адресу www.siemens.ru/ad/as можно найти статьи, напечатанные когда-либо в различных изданиях, демонстрационные и рабочие версии программного обеспечения, примеры применения  отдельных устройств, технические описания компонентов. Информация представлена на русском языке.
    Еще одним источником информации является выпускаемый регулярно CD-диск под названием «Автоматизация в России». Он во многом повторяет web-страницу и предназначен для людей, не имеющих пока доступа в Internet.

    Помощь в проектировании

    Самое простое для заказчика — заполнить бланк заказа системы управления в Internet или на бумаге и отправить в отдел A&D S для подготовки технического предложения. Другая возможность — передать  самостоятельно выбранную конфигурацию системы управления техническим специалистам SIEMENS для анализа, обсуждения и проверки на полноту, оптимальность и совместимость примененных технических решений. А самое интересное — самому опробовать свое решение в работе на реальной системе управления, установленной в одном из технических центров. Такую поддержку можно получить бесплатно еще до покупки.

    Продажа

    Даже тот факт, что для покупки в отделе A&D S не обязательно иметь валюту, можно расплатиться и рублями, не всегда радует заказчика так как «живых» рублей у него тоже нет. В этом случае, можно осуществить оплату частями или же применить одну из множества схем безденежного финансирования данного проекта. Конкретная ситуация требует конкретного обсуждения и наиболее подходящий вариант решения, конечно, будет найден.

    Поставка

    По желанию заказчика поставка может быть реализована двумя путями. Первый — деньги в валюте перечисляются на счет SIEMENS в Германию, товар довозится до таможенного склада, а далее заказчик самостоятельно его растаможивает. Сегодня все меньше людей соглашается на такую схему. Большинство предпочитают получить товар в Москве или своем родном городе за рубли и после полной таможенной очистки. То есть, используется второй путь — поставка через ООО Сименс, Москва.

    Обучение

    A&D S предлагает несколько возможностей. Наиболее привычное — направить группу слушателей в лицензированный центр обучения в Москве и там они получат те же знания и международные сертификаты, как если бы они поехали на обучение в Германию, но на русском языке и дешевле. Еще более выгодным оказывается выездное обучение на предприятии заказчика с приездом на место преподавателя и оборудования для обучения.
    Гарантийный и послегарантийный сервис, инспекции состояния оборудования заказчика и поставка запасных частей также входят в компетенцию отдела A&D S.

    Работа A&D S в регионах России

    Не всегда заказчик за помощью может обратиться в Москву, какой бы полноценной эта помощь ни была. Такую же хочется иметь где-то поблизости от своего предприятия, чтобы с какими-то вопросами можно было направлять своих специалистов поближе и подешевле.
    Полноценные представительства отдела A&D S функционируют в Москве, Санкт-Петербурге, Самаре и Екатеринбурге. Эти бюро укомплектованы не только квалифицированным персоналом, но и  всей необходимой техникой. Здесь заказчик может получить весь комплекс технической поддержки — от консультации до реального опробования выбранного технического решения. И конечно, вся сбытовая поддержка осуществляется также на месте.
    Во многих других городах, представляющих крупные промышленные регионы, самостоятельно работают представители отдела A&D S, занимающиеся сбытовой деятельностью и технической поддержкой. Вот — некоторые из этих городов: Ангарск, Краснодар, Пермь, Старый Оскол. По мере восстановления работоспособности промышленности, соответственно будет наращиваться активность отдела A&D S в других регионах.

    Партнеры

    Основной опорой отдела A&D S являются официальные партнеры. Ими могут быть российские инжиниринговые, проектные, дистрибьюторские и даже коммерческие фирмы, работающие в различных регионах и отраслях промышленности России. В настоящее время отдел A&D S имеет в России около 50 партнеров. Партнеры получают всестороннюю поддержку на всех стадиях работы с заказчиком, от знакомства с новым заказчиком до поставки оборудования и разработки программного обеспечения. Практически все услуги предоставляются партнеру бесплатно. Кроме того, партнеры получают возможность пользоваться гибкой системой скидок и комиссионных.
    Стать партнером имеет возможность любая фирма, имеющая достаточный опыт автоматизации, обладающая квалифицированным персоналом и имеющая желание работать с техникой департамента A&D. После истечения определенного времени совместной работы фирма получает соответствующий сертификат официального партнера. Но даже без сертификата, с самого начала совместной работы партнер получает весь комплекс поддержки.

    Библиотека SysLibCallback.lib

    Данная библиотека позволяет активировать пользовательские функции обратного вызова для событий системы исполнения. Она содержит функции SysCallbackRegister и SysCallbackUnregister.

    Обе функции имеют тип BOOL и возвращают TRUE, если соответствующая функция обратного вызова успешно зарегистрирована или отключена, соответственно. Функции выполняются синхронно.

    Прототип функции обратного вызова должен выглядеть так:

    FUNCTION Callback : DWORD

    VAR_INPUT

    dwEvent:DWORD; // (* Событие *)

    dwFilter:DWORD; // (* Фильтр *)

    dwOwner:DWORD; // (* Источник *)

    END_VAR

     

    Внимание:  в целевых платформах RISC и Motorola 68K имя функции обратного вызова должны начинаться с „callback“!

     

    Библиотечные функции SysCallbackRegister и SysCallbackUnregister имеют одинаковый набор параметров:

     

    Входные 

    переменные

    Тип данных Описание
    iPOUIndex INT POU индекс функции обратного вызова, может быть получен при помощи оператора INDEXOF(<имя функции >).
    Event RTS_EVENT Событие в системе исполнения, по которому должна вызываться callback-функция. Определяется значением перечисления RTS_EVENT, определенного в данной библиотеке (см. ниже).

     

    Перечисление RTS_EVENT определено следующим образом:

    TYPE RTS_EVENT :

    (

    EVENT_ALL,
    (* Общие события *)
    EVENT_START,
    EVENT_STOP,
    EVENT_BEFORE_RESET,
    EVENT_AFTER_RESET,
    EVENT_SHUTDOWN,
    (* Исключения системы исполнения *)
    EVENT_EXCPT_CYCLETIME_OVERFLOW, (* Переполнение времени цикла *)
    EVENT_EXCPT_WATCHDOG, (* Сработал программный сторожевой таймер МЭК задачи *)
    EVENT_EXCPT_HARDWARE_WATCHDOG, (* Сработал аппаратный сторожевой таймер. Фатальная ошибка. *)
    EVENT_EXCPT_FIELDBUS, (* Ошибка Fieldbus *)
    EVENT_EXCPT_IOUPDATE, (* Ошибка обновления входов-выходов *)
    (*Исключения выполнения *)
    EVENT_EXCPT_ILLEGAL_INSTRUCTION, (* Недопустимая инструкция *)
    EVENT_EXCPT_ACCESS_VIOLATION, (* Ошибка доступа *)
    EVENT_EXCPT_PRIV_INSTRUCTION, (* Привилегированная операция *)
    EVENT_EXCPT_IN_PAGE_ERROR, (* Ошибочная страница *)
    EVENT_EXCPT_STACK_OVERFLOW, (* Переполнение стека *)
    EVENT_EXCPT_MISALIGNMENT, (* Ошибка размещения по типу данных *)
    EVENT_EXCPT_ARRAYBOUNDS, (* Выход за границы массива *)
    EVENT_EXCPT_DIVIDEBYZERO, (* Деление на 0 *)
    EVENT_EXCPT_OVERFLOW, (* Переполнение *)
    EVENT_EXCPT_NONCONTINUABLE, (* Авария системы, продолжение работы невозможно *)
    EVENT_EXCPT_NO_FPU_AVAILABLE, (* Мат. сопроцессор (FPU) недоступен *)
    EVENT_EXCPT_FPU_ERROR, (* FPU: Неопределенная ошибка *)
    EVENT_EXCPT_FPU_DENORMAL_OPERAND, (* FPU: Ошибочный операнд *)
    EVENT_EXCPT_FPU_DIVIDEBYZERO, (* FPU: Деление на 0 *)
    EVENT_EXCPT_FPU_INVALID_OPERATION, (* FPU: Ошибочная операция *)
    EVENT_EXCPT_FPU_OVERFLOW, (* FPU: Переполнение*)
    EVENT_EXCPT_FPU_STACK_CHECK, (* FPU: Перегрузка стека *)
    (* События входов-выходов *)
    EVENT_AFTER_READING_INPUTS,
    EVENT_BEFORE_WRITING_OUTPUTS,
    (* Прочие события *)
    EVENT_TIMER, (* Прерывание по таймеру*)
    EVENT_DEBUG_LOOP, (* Отладка по точке останова *)
    (* Онлайн сервисы *)
    EVENT_ONLINE_SERVICES_BEGIN := 500,
    EVENT_LOGIN,
    EVENT_CUSTOM_SERVICES,
    (* Прерывания *)
    EVENT_INT_0:=1000,
    EVENT_INT_1,
    EVENT_INT_2,
    EVENT_INT_3,
    EVENT_INT_4,
    EVENT_INT_5,
    EVENT_INT_6,
    EVENT_INT_7,
    EVENT_INT_8,
    EVENT_INT_9,
    EVENT_INT_10,
    EVENT_INT_11,
    EVENT_INT_12,
    EVENT_INT_13,
    EVENT_INT_14,
    EVENT_INT_15,
    EVENT_INT_255:=1255,
    EVENT_MAX

    );

    END_TYPE

     

      Библиотека sound

      Формирование звукового сигнала (BeepForTimeUser)

      Структурная схема

       

      Таблица 1

      Имя программного компонента BeepForTimeUser
      Тип программного компонента Функциональный блок   Функция  Программа
      Особенности работы Для работы не требуется установка в проекте дополнительных библиотек
      Применение на контроллерах ПЛК63, ПЛК73, ПЛК410
      Входные переменные: Тип данных Пояснения
      Time_ms WORD Время в миллисекундах, на которое необходимо включить зуммер. Диапазон значений от 1 до 5000 (задается пользователем)
      freq WORD Частота зуммера в герцах. Диапазон значений от 21 до 15000 (задается пользователем)
      Выходная переменная: Тип данных Пояснения
      BeepForTimeUser INT Функция ничего не возвращает

       

      Описание работы

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

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

      – если в течение времени звучания звукового излучателя происходит нажатие клавиш, то звукового подтверждения их нажатия не будет;

      – если в момент звукового подтверждения нажатия клавиши происходит вызов функции BeepForTimeUser, то этот вызов будет проигнорирован;

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

       

      Пример вызова данной функции в составе программы, которая на встроенный в ПЛК звуковой излучатель (зуммер) выводит сигнал с частотой 2 кГц на интервал времени 1000 мс, выглядит следующим образом (на языке ST):

       

      BeepForTimeUser(1000,2000);

       

        Возможные альтернативы языкам стандарта МЭК 61131-3

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

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

        В принципе, допустимо решение об использовании для задач управления языков Си/Си++. Такой подход может быть оправдан при наличии штата квалифицированных специалистов, отлаженной культуре разработки ПО и больших объемах тиражируемых изделий. Си++ предоставляет хорошие возможности для адаптации языка к широкому спектру задач, так что создание паттернов и набора классов, ориентированных на приведенную выше специфику, вполне осуществимо. Однако при использовании алгоритмического языка для задач автоматизации невозможно обеспечить должный уровень контроля корректности программ, ее семантическую целостность. Сложность подхода – высокие квалификационные требования к программистам, существенные затраты на обеспечение надежности и низкая сопровождаемость программ, трудности с вовлечением в процесс разработки конечного пользователя.

        Достаточно популярно в России обсуждение т.н.switch-технологии. В основе подхода лежит известная реализация конечного автомата, в котором состояния автомата (некий набор функций) пронумерованы, а номер текущего состояния хранится в выделенной ячейке памяти. Текущая функция определяется через Си-конструкцию табличного выбора switch (этот факт и был использован при выборе названия). Дополнительно к этой базе предлагается набор приемов по разработке алгоритма, его отладке, специфицируется идентификационная система для переменных. Подход обеспечивает цикличность, логический параллелизм, достаточную свободу в организации вычислений и, несомненно, имеет право на рассмотрение как вариант “пишу на Си”. Switch-подход успешно используется в учебном процессе. К сожалению, подход нуждается в проработке методов синхронизации, структуризации и абстрагирования. Не прописаны процедуры связи с УСО. Вызывает вопросы предлагаемая идентификационная система, присутствуют отклонения от действующих в России стандартов.

        Как дополнительные варианты Си-подхода можно рассматривать работы, исследующие проблемы адаптации алгоритмических языков Си, Си++, Java к задачам автоматизации через создание специализированных библиотек, классов, паттернов, направленных на введение в базовые языки необходимых свойств параллелизма, событийности и структурности. Основной недостаток перечисленных подходов заключается в невозможности достигнуть необходимую степень комфортности программирования и безопасности получаемых программ. Остается очень большое число рутинных операций, выполняемых вручную. Контроль специфической семантики программ, появляющейся при расширении языков общего назначения, не автоматизирован. Отсутствует унификация привязки к УСО. Присутствует и следующий нюанс. Концептуально большинство таких подходов базируется на теории конечных автоматов, разрабатываемой, в первую очередь, для синтеза управляющих контроллеров из электронных компонентов. Это обстоятельство повлияло на понятийный аппарат теории и на современном этапе приводит к серьезным психологическим проблемам при освоении методики выпускниками учебных заведений, т.к. в настоящее время образование ориентировано на информационные технологи и программирование, а не на схемотехнику. Особый интерес вызывает работа над стандартом МЭК-61499 [15], в котором разработчики предприняли попытку преодолеть ограничения языков МЭК61131-3 и скомбинировать в одном языковом средстве и поддержку логического параллелизма, и поддержку событийности. Цель стандарта – предоставить методологию разработки сложных алгоритмов. Программные компоненты представлены функциональными блоками специального вида: кроме обычных для языка FBD входных и выходных данных, интерфейс функционального блока стандарта МЭК-61499 предполагает событийные входы/выходы. Несомненно, это нововведение частично решает проблему событийности для классических функциональных блоков. К сожалению, этот несомненно прогрессивный стандарт не поддержан ведущими производителями ПЛК, и известные в настоящий момент реализации стандарта носят скорее исследовательский характер.

        Для преодоления ограничений языков МЭК61131-3 на сложность алгоритма и недостатков прямого Си-подхода в Институте автоматики и электрометрии СО РАН был разработан специализированный язык программирования Reflex, который также может рассматриваться в качестве варианта. По своим свойствам язык вполне конкурентоспособен. При его разработке ставилась цель легкости освоения, сопровождения и соответствия задачам автоматизации. Язык Reflex выполнен как диалект Си, что обеспечивает его легкое освоение. В проекте Reflex язык Си расширен понятием процесса – циклически исполняемой, параллельной сущности. Программа описывается как совокупность взаимодействующих процессов. Процессы можно запускать, останавливать, проверять их текущее состояние. Поэтому язык Reflex иногда называют “Си с процессами”. Предусмотрена гибкая структуризация алгоритма управления. Событийность алгоритма обеспечивается через механизм состояний процесса. Язык позволяет абстрагироваться от УСО и описывать алгоритм в терминах технологического процесса. Синтаксис Си расширен средствами синхронизации. При программировании на языке Reflex пользователь освобожден от рутинных действий и может полностью сконцентрировать свое внимание на сути создаваемого алгоритма. Математическая модель программы терминологически ориентирована на современные тенденции в образовании, что позволяет снять психологические проблемы при освоении методики.

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

        Отладка программ ведется в текстовом режиме. Предоставлены базовые функции трассировки потока управления, которые открыты для развития пользователем. Язык (используется с 1990 г.) прошел серьезную проверку в серии проектов. В частности, в задаче автоматизации выращивания монокристаллического кремния, предполагающей работу с типичными для промышленной автоматизации устройствами (сетевые интеллектуальные датчики, 4-координатную систему перемещений, приводы, дублированную газовакуумную станцию, систему охлаждения, термосистему, контроль и упреждение аварийных ситуаций, набор аналоговых и дискретных входов). Аппаратная платформа – MicroPC (Fastwel), укомплектованная серийно выпускаемыми компонентами фирм Fastwel, Octagon Systems, Grayhill. В настоящее время рассматривается вопрос о передаче языка Reflex в свободный доступ.

         

        Использование OPC-сервера для подключения контроллеров к ПК

        Технология подключения контроллеров системы CoDeSys к компьютеру следующая.

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

        2. Во вкладке ресурсов (Resources) Организатора объектов CoDeSys выбирается утилита Target Settings (рис. 1).

         Выбор утилиты Target Settings во вкладке ресурсов CoDeSys

        Выбор утилиты Target Settings во вкладке ресурсов CoDeSys

        3. В открывшейся экранной форме Target Settings (рис. 2), во вкладке General устанавливается опция Download Symbol File и подтверждается выбор нажатием клавиши ОК.

        4. В главном меню CoDeSys (рис. 3) выбирается пункт Project и, в появляющемся контекстном меню, команда Options.

        Выбор команды Project=> Options

        Выбор команды Project => Options

        5. В открывшейся экранной форме Options (рис. 4) в списке Category выбирается опция Symbol Configuration, а в поле параметров устанавливается флаг в поле Dump symbol entries, после чего нажимается кнопка Configure symbol file.

         Переход к списку параметров переменных проекта

        Переход к списку параметров переменных проекта

        6. В открывшемся списке параметров переменных проекта (рис. 5) выбираются нужные объекты проекта, из которых требуется экспортировать переменные, и устанавливаются для них флаги в полях опций. Для обеспечения экспорта переменных в пространство имен OPC_сервера необходимо установить флаг в поле опции Export variables of object . В случае, если требуется изменять значения переменных, необходимо установить флаг в поле опции Write access.

        Выбор параметров переменных проекта

        Выбор параметров переменных проекта

        7. Проект сохраняется.

        8. Выбирается команда меню Project Rebuild all…, и перекомпилируется проект.

        9. Вызывается команда Login, и загружается проект на контроллер.

        10. Запускается OPC Configurator последовательным выбором команд:

        Пуск => Программы => 3S Software => Communication => CoDeSys OPC Configurator

        11. В открывшейся экранной форме OPC Config (рис. 6) в иерархической структуре (в левом поле) выделяется пункт Server и, в поле параметров справа, устанавливается время обновления данных Update Rate,ms (ввод цифр).

        Экранная форма OPC Configurator

        Экранная форма OPC Configurator

        12. Правой кнопкой манипулятора «мышь» вызывается контекстное меню, и выбирается опция Append PLC (рис. 6). В открывшейся экранной форме (рис. 7) в иерархической структуре (в левом поле) для появившегося PLC1 выбирается пункт (папка) Connection и, в поле параметров справа, нажимается кнопку Edit, после чего устанавливаются параметры подключения ПЛК Communication Parameters.

        13. Пользователь подтверждает свой выбор нажатием клавиши ОК, после чего OPC_сервер сконфигурирован и готов к работе под управлением SCADA_системы.

        Подключение ПЛК

        Подключение ПЛК

         

        Настройка конфигурации связи ПЛК с модемом

        Файл “modem.cfg” содержит группу параметров, определяющих настройки модемного драйвера при работе в режиме протокола Gateway (например, со средой CoDeSys).
        Одна строка в файле может содержать определение только одного параметра, например:
        TestPeriod=5
        Если после знака “=” ничего не стоит, то значение параметра принимается по умолчанию, если какогото параметра в файле нет, то его значение также принимается по умолчанию.
        Описание параметров
        MaxAnswerTime – максимальное время ожидания ответа на звонок, задаёт максимальную продолжительность попытки установить связь. При входящем звонке это время вычисляется с момента поступления входящего звонка до момента установления соединения (которое может произойти не сразу после «снятия трубки»). Значения устанавливаются в секундах в
        диапазоне от 0 до 65535, значение по умолчанию – 40.
        TestPeriod – время опроса работоспособности модема, задаёт период посылки модему тестирующих команд. Если модем на посланную команду не ответил или ответил неправильно, то в переменную «Modem fault» записывается значение 1. Значения устанавливаются в секундах в диапазоне от 0 до 65535, значение по умолчанию – 5. Значение параметра 0 означает, что работоспособность модема не надо опрашивать.
        RequestTimeout — время ожидания ответов модема на команды, задают время ожидания ответов от модема на любую команду. Обычно ответы на большинство команд выдаются модемом быстрее 1 секунды, но бывает, что ответы на команды приходят медленнее, для этих случаев необходимо настраивать данный параметр. Если за «время ожидания» ответ не
        был получен, то считается что модем не ответил и посылается следующая команда. Значения устанавливаются в секундах в диапазоне от 0 до 65535, значение по умолчанию – 1.
        IdleDisconnectionTime – время простоя до разъединения, задают время, прошедшее с последнего обмена пакетами между ПЛК и Gateway OPC.сервером (или средой Codesys) при установленном соединении, через которое
        ПЛК разорвет связь. Значения устанавливаются в секундах в диапазоне от 0 до 65535, значение по умолчанию – 60. Значение 0 означает связь при простое не разрывать.
        SoftwareFlowControl – программный контроль потока, в параметре включают или выключают программное управление потоком модема. При включенном программном контроле потока ПЛК обрабатывает модемные команды Xon / Xoff. Чтобы программный контроль потока работал, необходимо также включить программный контроль потока у модема соответствующей AT-командой (см.описание АТ-команд на конкретный модем). Если необходимо включить программный контроль потока, то параметру задают значение 1, если необходимо выключить, то задают значение 0. Значение по умолчанию – 0(выключен).
        ModemInitFilename – файл инициализации модема, параметр позволяет задать имя файла инициализации и путь к нему в энергонезависимой памяти ПЛК. В файле пользователь может описать дополнительные специфичные для подключенного модема строки инициализации (строки инициализации — это последовательность AT!команд в указанном файле, каждая следующая команда должна быть расположена на новой строке). Каждый раз при сбросе подключенного модема по питанию будет происходить инициализация модема из указанного файла. Если параметр не задан или указанного файла нет в памяти ПЛК, то инициализация будет происходить только AT!командой ATZ. По умолчанию путь и имя файла не заданы.
        Пример:
        ModemInitFilename=extconf.cfg
        Пример файла “modem.cfg”
        MaxAnswerTime=40
        TestPeriod=10
        IdleDisconnectionTime=65535
        SoftwareFlowControl=0
        ModemInitFilename=extconf.cfg
        Параметр RequestTimeout в файле не указан, он будет принят по умолчанию.

         

        Конфигурация ОВЕН ПЛК 63 для связи с модулем МДВВ

        В отличие от своих старших братьев – линейки ОВЕН ПЛК 1ХХ, ПЛК 63 не имеет такого замечательного инструмента подключения дополнительных модулей как Univercal modbus device. Это вызывает некоторые проблемы с расширением числа входов-выходов этого устройства. Есть конечно модуль МР1 и в большинстве приложений набора ПЛК63+МР1 достаточно, но отнюдь не везде и не всегда.

        Решением задачи является написание специализированного программного модуля позволяющего через работу с  портами опрашивать и управлять модулем дискретного ввода-вывода МДВВ программно. Основные этапы создания этой программы Вы можете наблюдать ниже.

        Итак, этап 1. Создадим подпрограмму для модуля МДВВ и назовем ее например PLC_Modbus.

        Входами программы будут параметры связи (№ slave- устройства и скорость обмена) и параметры входов устройства

        Выходными переменными будут счетчики и собственно входы устройства

        Для реализации алгоритма нам понадобятся специализированные функции Modbus для работы с портом.

        На этом завершим описание области переменных.

        Программа открытия Com-порта представлена ниже.

        Производим запись значений ШИМ программно.

        Читаем состояние входов:

        Опрашиваем счетчики по входам.

        Ну и обязательная проверка на ошибки

        Ну и наконец ниже показано как этот монстр выглядит при использовании в программе на языке LD.

         

        Работа ПЛК+модули. Ограничения по памяти

        Потребность в памяти ввода/вывода (%I и %Q) в контроллерах ОВЕН ПЛК при работе с различными модулями ввода/вывода.

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

        Контроллеры с лицензионным ограничением размера памяти ввода/вывода в 360байт обозначаются латинской буквой «L» при заказе.

        Контроллеры, не имеющие такого ограничения обозначаются букой «М» при заказе. Для  них не имеет смысл считать потребность в памяти ввода/вывода, т.к. она не ограничена.

        1. Для подсчета потребности в памяти ввода/вывода, необходимой для работы с приборами ОВЕН  удобнее воспользоваться таблицей 1.

        Прибор ОВЕН Modbus DCON
        %I %Q %I %Q %I %Q
        МВА8Один аналоговый вход 8 байт от 2 до 8 байт* 4 байта
        МВУ8Один аналоговый выход 2 байта 2 байта 4 байта
        МДВВОдин дискретный выход в режиме ШИМ 4 байта 2 байта
        МДВВ Один счетчик дискретного входа 2 байта 2 байта 2 байта
        МДВВ Битовая маска всех входов 2 байта 1 байт 2 байта
        МДВВ Битовая маска всех выходов 1 байт 1 байт
        ТРМ2ххОдин аналоговый вход 4 байта
        ТРМ151, ТРМ148, ТРМ133Один аналоговый вход 8 байта
        ИП320 Одна переменная на чтение с ПЛК 2 байта
        ИП320 Одна переменная на запись в  ПЛК 2 байта

        * При работе с МВА8 можно считывать только измеренные значения (только два байта), а можно дополнительно считывать время измерения и статус ошибки (до 8 байт информации).

        2. При использовании приборов других производителей, работающих по протоколам Modbus или DCON необходимо по руководствам на эти приборы определить, сколько байт данных содержат команды, посылаемые по сети. При работе с приборами ввода количество этих байт надо приплюсовать к размеру области %I, при работе с приборами вывода количество надо приплюсовать к размеру области %Q.

        3. Для дискретных модулей ввода/вывода сторонних производителей, работающих по протоколу Modbus, как правило, значение одного входа или одного выхода кодируется одним битом. Соответственно занимаемый размер памяти в области ввода/вывода надо считать в битах, но с учетом того, что на один модуль тратится целое число байт. Т.е. на 12-ти канальный модуль дискретного ввода потребуется два байта, из 16 бит которых только 12 будут значащими.

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

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

        6. При использовании модулей Master сетевых протоколов (т.е. модулей, организующих обмен с внешними устройствами и модулями) дополнительно надо учесть, что эти модули содержат ряд служебных переменных, также расположенных в области памяти вывода %Q. Один модуль Master одного сетевого протокола дополнительно требует от 4 до 8 байт.

        7. После подсчета необходимого размера областей памяти %I и %Q необходимо провести проверку, посмотрев, хватит ли доступной памяти каждого типа. При этом надо учитывать, что часть памяти занимается собственными входами и выходами. Сводные данные приведены в таблице 2.

        Контроллер %I всего 122 байта %Q всего 234 байта
        Занято Доступно Занято Доступно
        ПЛК100 4 байта 118 байт 8 байт 226 байт
        ПЛК150 36 байт 86 байт 12 байт 222 байта
        ПЛК154 36 байт 86 байт 20 байт 214 байт

        8. Если получилось, что памяти хватает «в притык», то лучше приобретать контроллер без ограничения области памяти ввода/вывода. Дополнительный неучтенный расход памяти может возникнуть из-за принятого в CoDeSys способа выравнивания переменных в памяти ввода/вывода. Подробно алгоритм выравнивания описан в документе PLC_Configuration_OWEN.pdf, но учитывать особенности выравнивания при расчете потребности в памяти ввода/вывода не рекомендуется из-за высокой сложности.

        Альтернативным способом, который позволяет точно проверить, хватит ли доступного объема памяти ввода/вывода, является способ создания проекта. Не приобретая контроллер,  но установив на компьютере CoDeSys и Target-файл можно создать в проект, в котором  в  окне PLC_Configuration подключить все необходимые модули. При компиляции проекта CoDeSys выдаст ошибку, если памяти недостаточно, или компиляция пройдет успешно. При этом в будут учтены все особенности, в том числе требования по выравниванию переменных. Для осуществления подобной проверки собственно программу контроллера писать не требуется.