Tag Archives: ОВЕН ПЛК

Программирование ОВЕН ПЛК (Связь с ПЛК по Ethernet).

 

Спасибо Кириллу Гайнутдинову за пример. Материал взят с сайта www.owen.ru

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

Отправка СМС сообщений из программы ОВЕН ПЛК

Добавим к предыдущему примеру (http://plc24.ru/otkrytie-porta-i-nastrojka-modema-dlya-oven-plk/) переменную (var1), которая будет постоянно расти и по достижению ею определенного уровня (var1_Alarm) необходимо отправить сообщение. Текстом сообщения будет служить значение этой переменной, номер получателя заранее жестко задан.

Программа ПЛК

Алгоритм работы программы.

Список переменных

PROGRAM PLC_PRG

VAR

Com                      : OpenPort;

cfg                         :FB_SMS_CFG;

sms                       :FB_SMS_SR;

 

cfg_ok                  :BOOL;

DevNum             :WORD :=0;

 

var1                      :WORD; (*переменная, которая будет расти*)

var1_Alarm       :WORD :=5000; (*ее аварийный уровень*)

END_VAR

 

После открытия порта и конфигурирования модема начинает работать блок отправки и получения СМС. Так как режим CSD передачи данных в данном примере не используется на вход «CsdClose» подается сигнал False (все входящие вызовы будут сброшены). Входящие СМС сообщения так же не используются, поэтому на входа «CheckNumList» и «CheckNum» можно ничего не подавать.

На вход «SendSmsNum» подается десятизначный номер получателя в формате строки (String). На вход «SendSmsText» подается преобразованной к типу String значение переменной  «var1». По приходу на вход «SendSms» значения True, значения на двух предыдущих входах будут зафиксированы внутри ФБ. Как только сообщение будет отправлено на выход «SmsSend» будет подан единичный импульс (значение True будет установлено на один цикл).

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

Состав библиотеки SmsOwenLib.

Данная библиотека предназначена для работы на контроллерах ОВЕН с внешним модемом: для отправки и получения СМС сообщений, фиксации входящего вызова и первоначальной конфигурации самого модема.

Блок «OpenPort» захвата/освобождения интерфейса

Рисунок 1 – Структурная схема

Таблица 1

Имя программного компонента OpenPort
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы требуется установка в проекте библиотеки UNM
Применение на контроллерах ПЛК100, ПЛК150, ПЛК154, ПЛК110, ПЛК160.

 

Входная переменная:

Тип данных

Пояснения

Enable

BOOL

разрешение на работу
DeviceNumber

WORD

номер модуля UNM – нумерация идет с 0 по порядку сверху вниз как расположены модули UNM в конфигурации, первый сверху модуль UNM имеет номер 0, следующий номер UNM – 1, и так далее
Выходная переменная:

Тип данных

Пояснения

Out

BOOL

состояние открытия порта, после окончания включен постоянно

 

Описание

До начала передачи/приема в интерфейс данных из программы CoDeSys нужно «захватить» интерфейс и приостановить работу с этим интерфейсом модулей протоколов, подключенных в PLC Configuration. Для использования нужно создать в конфигурации контроллера один (или несколько)  модулей Universal Network Module. Внутри каждого модуля нужно настроить параметры порта передачи данных (для последовательных портов это скорость, четность, биты данных, биты стопа, время задержки).

Блок «FB_SMS_CFG» конфигурирования модема

Рисунок 2 – Структурная схема

Таблица 2

Имя программного компонента FB_SMS_CFG
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы требуется установка в проекте библиотеки UNM
Применение на контроллерах ПЛК100, ПЛК150, ПЛК154, ПЛК110, ПЛК160.

 

Входная переменная:

Тип данных

Пояснения

Enable

BOOL

разрешение на работу
Handle

WORD

номер модуля UNM, порт открывается с помощью ФБ «OpenPort»
PortCfg

BOOL

разрешение на настройку порта модема, по умолчанию False (выкл.)
SaveCfg

BOOL

сохранение параметров в модеме после конфигурирования, по умолчанию False (не сохранять)
ModemART

BOOL

включение/отключение автоподъема трубки, по умолчанию False (выкл.),
PortBaudrate

STRING(6)

параметр настройки порта — скорость, по умолчанию ‘0’
PortParity

BYTE

параметр настройки порта — четность, 0- нет 1-нечет 2-чет, по умолчанию 0-нет
PortStopBits

BYTE

параметр настройки порта – число стоп-бит, 1-1бит, 3-2бита, по умолчанию1-1бит
PortByteSize

BYTE

параметр настройки порта — Биты данных, по умолчанию 8-8 бит
PortFlowCtrl

BYTE

параметр настройки порта — управление потоком, 0 – отключено, 1-XON/XOFF, 2-аппаратный, по умолчанию 0-отключено
Выходная переменная:

Тип данных

Пояснения

Done

BOOL

флаг окончания настройки, после окончания включен постоянно
ErrCode

BYTE

код ошибки

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

Необходим для конфигурирования модема. Должен вызываться до блока FB_SMS_SR. Если модем уже был настроен ранее (вручную или с помощью данного ФБ с SaveCfg:=TRUE) и в ходе работы настройки модема меняться не будут, то разрешается не использовать данный ФБ в программе.

Блок «FB_SMS_SR» отправки/ получения СМС

Рисунок 3 – Структурная схема

Таблица 3

Имя программного компонента FB_SMS_SR
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы требуется установка в проекте библиотеки UNM
Применение на контроллерах ПЛК100, ПЛК150, ПЛК154, ПЛК110, ПЛК160.

 

Входная переменная:

Тип данных

Пояснения

Enable

BOOL

разрешение на работу
Handle

WORD

номер модуля UNM, порт открывается с помощью ФБ «OpenPort»
CsdClose

BOOL

запрет входящих вызовов: определяет поведение при входящем звонке, если True(вкл.), то всегда вешает трубку, если False(выкл.), то выставляет флаг NewInRing, по умолчанию True (вкл.)
SendSms

BOOL

команда на отправку SMS сообщения, срабатывает по фронту
SendSmsText

STRING

текст отправляемого сообщения (на русском макс 70 символов, на латинице макс 140 символов)
SendSmsNum

STRING

номер абонента, кому отправить СМС, пишется целиком с кодом страны без скобок и «+», например «79012345678»
CheckNum

BOOL

включить/отключить проверку номера отправителя СМС (для входящих сообщений), по умолчанию False (выкл)
CheckNumList

STRING

список разрешенных номеров, фомат: «ххххххххххх;ххххххххххх;» номер пишется целиком без скобок и «+», через точку с запятой, если функция выключена то не используется, по умолчанию ‘’
Выходная переменная:

Тип данных

Пояснения

Busy

BOOL

флаг указывающий, что блок выполняет в данный момент какие либо операции
ErrCode

BYTE

код ошибки
SmsSend

BOOL

флаг успешной отправки СМС сообщения, включается на 1н цикл
NewInSms

BOOL

флаг наличия нового входящего СМС сообщения, включается на 1н цикл
NewInRing

BOOL

флаг наличия входящего вызова
NewInSmsText

STRING

текст последнего принятого СМС сообщения
NewInSmsTime

STRING

время отправки последнего входящего СМС сообщения
NewInSmsNum

STRING

номер отправителя последнего входящего СМС сообщения, 10 цифр

 

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

Необходим для отправки/получения СМС сообщений и индикации входящих вызовов

Блок «FB_SMS_SL» вспомогательный для отправки сообщения группе абонентов

Рисунок 4 – Структурная схема

Таблица 4

Имя программного компонента FB_SMS_SL
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы не требуется установка в проекте дополнительных библиотек
Применение на контроллерах ПЛК63, ПЛК73, ПЛК410

 

Входная переменная:

Тип данных

Пояснения

SendGroup

BOOL

команда на отправку группе
NumCount

BYTE

количество адресатов
SmsTextIn

STRING

текст отправляемого сообщения
SmsSend

BOOL

контроль за отправкой сообщений
Выходная переменная:

Тип данных

Пояснения

SendSms

BOOL

команда на отправку сообщения
NumCur

BYTE

текущий номер адресата
SmsTextOut

STRING

текст отправляемого сообщения
Done

BOOL

флаг завершения работы, включается на 1н цикл

 

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

По фронту сигнала на входе «SendGroup» БФ запоминает текст отправляемого сообщения, который подается на вход «SmsTextIn», и выдает его на выход «SmsTextOut» (после этого значение на входе «SmsTextIn» может меняться – на работу блока это никак не повлияет). Вход «SmsSend» и выход «SendSms» необходимо соединить с одноименными входами и выходами ФБ «FB_SMS_SR» — с их помощью будет осуществляться управление отправкой сообщений. Выход «NumCur» определяет порядковый номер текущего адресата, нумерация начинается с нуля. Когда сообщение будет разослано, на выход «Done» будет подан единичный импульс.

 

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

Перепрограммирование ядра ПЛК без разборки контроллера

Реализована возможность перепрограммирования ядра ПЛК в процессе эксплуатации контроллера без его разборки (не снимая корпус).

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

Порядок действий при подготовке контроллера к возможности перепрограммирования ядра ПЛК без разборки контроллера следующий:

1) снимается корпус контроллера;

2) удаляется перемычка на средней плате;

3) устанавливается корпус контроллера.

Перепрограммирование ядра – прошивка новой версии – осуществляется путем записи в ПЛК файла вида UpdatePLCxxx.bin (xxx – марка ПЛК) с использованием стандартных функций среды разработки или через утилиту PLC_IO.exe.

Для прошивки новой версии ядра в ПЛК ПК соединяется с контроллером с помощью среды разработки через порт отладки (COM_порт) или USB, в PLC_Browser инициируется команда UpdateCore.

Выполнение обновления без разборки контроллера при соединении ПК с контроллером через TCP IP или через модем невозможно. В этом случае UpdateCore выдает сообщение, что обновление невозможно.

Утилита PLC_IO.exe позволяет частично автоматизировать процесс перепрошивки ПЛК. Утилита используется совместно с файлами UpdatePLCxxx.bin, которые пользователь может скопировать с сайта ОВЕН для конкретного ПЛК (или для всех ОВЕН ПЛК), следующим образом:

1) утилита PLC_IO.exe и файл UpdatePLCxxx.bin для конкретного ПЛК (или для всех ОВЕН ПЛК) копируются на жесткий диск ПК;

2) в командном файле PLC_IO.bat модифицируются IP адрес или номер COM-порта, по которому утилита будет загружать файл в ПЛК;

3) выполняется командный файл PLC_IO.bat. После запуска, если ПЛК правильно подсоединен и правильно указаны его настройки в PLC_IO.bat, программа соединится с контроллером и запишет соответствующий файл обновления. Для завершения процесса обновления необходимо соединиться с контроллером с помощью среды разработки через порт отладки (COM_порт) или USB и в PLC_Browser инициировать команду UpdateCore.

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

 

Изменение сетевых настроек контроллера ОВЕН ПЛК

Использование несколько контроллеров в одной Ethernet-сети требует, чтобы их IP-адреса были уникальными. При помощи утилиты PLC_Browser можно при работающем программном соединении узнать имеющиеся сетевые настройки в контроллере и внести в них необходимые изменения. Для этих целей физическое и программное соединение со всеми контроллерами фирмы ОВЕН удобнее устанавливать через COM-порт компьютера. Порядок действий следующий:

1) физическое соединение устройств – интерфейсным кабелем из комплекта поставки контроллера связывается COM-порт компьютера с гнездом (RS232), расположенным на лицевой панели контроллера (при этом должно быть включено питание);

2) выбор вида программного соединения – запускается созданный проект программы в CoDeSys, в главном меню дается команда Online

 

Подключение ОВЕН ПЛК к Lectus OPC через GSM-модем (часть 2)

Проект LectusOPC

Для работы LectusOPC используя модемное соединение, необходимо:

1) Подключить второй модем к компьютеру с установленным Lectus OPC, через специальный кабель или используя преобразователь интерфейса (например: ОВЕН АС3-М, АС4).

2) Запустить LectusOPC, удалить ранее созданные узлы, после чего сохранить проект под новым именем — тем самым создать новый проект.

3) Добавить к текущим данным новый Modbus-узел (Рис.1).

Рис.1

 

4) В появившемся окне задать параметры modbus-узла (Рис.2). Lectus будет опрашивать прибор по адресу 1 с периодом 3 минуты. Подробное описание параметров смотрите в справке LectusOPC.

 

Рис.2

5) Не закрывая окно «Добавить узел», нажать на кнопку «Настройка..», где указать COM-порт, к которому присоединён модем, а так же телефонный номер SIM-карты, установленной в другой модем (модем, подключенный к ПЛК). (Рис.3).

 

Рис.3

6) После добавления узла, необходимо задать настройки используемого COM-порта. Для этого в меню «Настройка» главного окна программы выбрать «COM порт» или нажать соответствующую пиктограмму на панели, появиться окно настройки. Для заводских настроек модема ПМ01, настройки порта представлены на Рис.4.

 

Рис.4

7) Добавить переменные в Modbus-узел, для этого нажать правой кнопкой мыши на узел и выбрать пункт меню «Добавить переменную» (Рис.5).

 

Рис.5

8) В появившемся окне задать параметры переменной (Рис.6). Описание параметров смотрите в справке LectusOPC. В данном примере значение переменной контроллера v1 будет считываться в opc-переменную var1, а значение opc-переменной var2 будет записываться в v2 ПЛК.

 

Рис.6

9) Настроить дополнительные параметры опроса. Вкладка «Настройка» главного окна программы «Параметры» (Рис.7).

 

Рис.7

10) После создания узла и добавления в него переменных сохраните проект и запустите LectusOPC, нажав на кнопку «Запустить опрос». Перейдите на вкладку «Лог», где можно отследить звонок и обмен посылками Modbus (Рис.8).

 

Рис.8

Описание лога: После запуска клиента Lectus звонит на удаленный модем, удачелнный модем поднимает трубку, после чего устанавливается связь, о чем свидетельствует — «Сonnect 9600». Затем Lectus посылает запрос по 03 modbus-функции (чтение регистров) для переменной v1 и получает ответ от ПЛК. Через полминуты Lectus отключается (параметр «Время простоя до разъединения» см. Рис 3.7).

11)Вернитесь на вкладку «Состояние», там появился узел, где будут отображены значения переданных переменных из модуля (Рис.9).

 

Рис.9

12) Записать значение в ПЛК. Выделить переменную var2 и нажать на пиктограмму кнопки Записи или через контекстное меню. Качество переменной var2 – неопределенно, потому что данная переменная работает только на запись в ПЛК. После нажатия появиться окно «Записать значение», где введите новое значение переменной (Рис.10).

 

Рис.10

13) Теперь перейдите на вкладку «Лог», там вы увидите результат произведенных вами действий. Lectus OPC после инициализации Записи (в данном случае в самом OPC) организует внеочередной обмен данными (не соответствующий периоду опроса переменной или узла), в рамках которого и записывает заданное значение (Modbus-функция 10, значение – 05) (Рис.11).

 

Рис.22

На этом организация передачи текущих данных из ОВЕН ПЛК в Lectus OPC через модемное соединение закончена. Теперь они доступны для любого OPC-клиента (например, SCADA системы).

Подключение ОВЕН ПЛК к Lectus OPC через GSM-модем (часть 1)

Данный пример реализован на ОВЕН ПЛК100R-L. CSD-соединение обеспечивают gsm-модемы ОВЕН ПМ01. Протокол обмена данными Modbus ASCII ПЛК – Slave, ПК с Lectus OPC – Master.

Для организации обмена данными необходимо создать проекты ОВЕН ПЛК и Lectus OPC настроенные на работу через CSD-соединение.

Проект ПЛК

Для работы ПЛК через CSD-соединение, необходимо:

1) Создать новый проект в CoDeSyS, указав соответствующий target.

2) На вкладке «Ресурсы» («Resources»), выбрать «Конфигурация ПЛК» («PLC_Configuration»), и добавьте модуль Modbus(slave) к базовой конфигурации (Рис.1.1).

рис.1.1

3) Задать адрес ПЛК в параметрах модуля (Рис.1.2).

Рис.1.2

4) В качестве интерфейса модуля добавить интерфейс «Modem» (Рис.1.3).

Рис.1.3

5) Настроить подмодуль «Modem» на работу в режиме «Ожидания вызова» (Рис.1.4).

Рис.1.4

6) Выбрать интерфейс подключения gsm-модема (Рис.1.5).

Рис.1.5

7) Задать параметры интерфейса в соответствии с настройками модема. В данном примере модем имеет заводские сетевые настройки (Рис.1.6).

Рис.1.6

8) Добавить переменные в проект (Рис.1.7).

Рис.1.7

9) Задать имена переменным, для последующего обращения к ним из программы ПЛК (Рис.1.8).

Рис.1.8

10) Создать программу ПЛК, например (Рис.1.9).

Рис.1.9

На этом создание проекта CoDeSys завершено, сохраните проект и загрузите его в ПЛК.

Подключите модем к ПЛК по выбранному интерфейсу.

 

Организация связи Lectus OPC с прибором ОВЕН через модемное соединение (часть 3).

Проект LectusOPC

Для работы LectusOPC используя модемное соединение, необходимо:

1) Подключить второй модем к компьютеру с установленным Lectus OPC, через специальный кабель или используя преобразователь интерфейса (например: ОВЕН АС3-М, АС4).3

2) Запустить LectusOPC, удалить ранее созданные узлы, после чего сохранить проект под новым именем — тем самым создать новый проект.

3) Добавить к текущим данным новый Modbus-узел (Рис.3.1).

Рис.3.1

4) В появившемся окне задать параметры modbus-узла (Рис.3.2). Lectus будет опрашивать прибор по адресу 16 с периодом 1с. В примере показан постоянный опрос, т.к. период опроса заведомо меньше параметра «Время простоя до разъединения» (Меню «Настройка» главного окна программы-

«Параметры»-«Modbus»-«Телефонное подключение»). Подробное описание параметров смотрите в справке LectusOPC.

Рис.3.2

5) Не закрывая окно «Добавить узел», нажать на кнопку «Настройка..», где указать COM-порт, к которому присоединён модем, а так же телефонный номер SIM-карты, установленной в другой модем (модем, подключенный к модулю). (Рис.3.3).

Рис.3.3

6) После добавления узла, необходимо задать настройки используемого COM-порта. Для этого в меню «Настройка» главного окна программы выбрать «COM порт» или нажать соответствующую пиктограмму на панели, появиться окно настройки. Для заводских настроек модема ПМ01, настройки порта представлены на Рис.3.4.

Рис.3.4

7) Добавить переменные в Modbus-узел, для этого нажать правой кнопкой мыши на узел и выбрать пункт меню «Добавить переменную». В появившемся окне задать параметры переменной (Рис.3.5). Описание параметров смотрите в справке LectusOPC.

Рис.3.5

8) После создания узла и добавления в него переменных сохраните проект и запустите LectusOPC, нажав на кнопку «Запустить опрос». Перейдите на вкладку «Log», где можно отследить звонок и обмен посылками Modbus (Рис.3.6).

Рис.3.6

9) Вернитесь на вкладку «Состояние», там появился узел, где будут отображены значения переданных переменных из модуля (Рис.3.7).

Рис.3.7

В данный проект были добавлены переменные из прибора с адресами регистров 0 – измеренное целочисленное значение с первого входа и 1 – смещение точки для целочисленного значения с первого входа (см. Обмен по Modbus в РЭ прибора МВ110-224.2А).

Отсюда видно, что температура измеренная датчиком на первом входе модуля равна 27,4 градуса.

На этом организация передачи текущих данных из прибора ОВЕН в Lectus OPC через модемное соединение закончена. Теперь они доступны для любого OPC-клиента (например, SCADA системы).

 

Проект ПЛК для работы с Leptus OPC (часть3)

Чтение данных OPC-клиентом

В качестве OPC-клиента в данном проекте выступает Matrikon OPC Explorer. Данная программа бесплатна и доступна на сайте производителя: http://www.matrikon.com/ .

Для настройки Matrikon OPC Explorer на чтение переменных нужно выполнить последовательно следующие действия:

1) Соединиться с LectusOPC;

 

2) Добавить новую группу для переменных;

 

3) В появившемся окне задать имя группы;

 

4) Добавить к новой группе, переменные;

 

5) В появившемся окне, добавить к новой группе, нужные, переменные Lectus;

 

6) После добавления переменных, зафиксировать изменения;

 

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

 

На этом организация передачи текущих данных из ОВЕН ПЛК в Lectus OPC по протоколу Modbus TCP для их последующей передачи OPC-клиенту закончена.

Проект ПЛК для работы с Leptus OPC (часть2)

Проект LectusOPC

Для работы LectusOPC по протоколу Modbus TCP, необходимо:

1) Запустить LectusOPC, удалить ранее созданные узлы, после чего сохранить проект под новым именем — тем самым создать новый проект.

2) Добавить к текущим данным новый Modbus-узел (Рис.2.1).

 

Рис.2.1

3) В появившемся окне задать параметры modbus-узла (Рис.2.2). Описание параметров смотрите в справке LectusOPC.

Рис.2.2

 

4) Не закрывая окно «Добавить узел», нажать на кнопку «Настройка..», где указать IP-адрес ПЛК.2 (Рис.2.3).

 

Рис.2.3

5) После добавления узла, добавить переменные в Modbus-узел (Рис.2.4).

 

Рис.2.4

6) В появившемся окне задать параметры переменной (Рис.2.5). Описание параметров смотрите в справке LectusOPC.

 

Рис.2.5

7) После создания узла и добавления в него переменных сохраните проект и запустите LectusOPC, нажав на кнопку «Запустить опрос». Появится узел, где будут отображены значения переданных из контроллера переменных (Рис.2.6).

 

Рис.2.6

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