Прием и отправка SMS-сообщений с панелей оператора ELHART (пример работы с асинхронным интерфейсом)

Введение

В настоящее время в промышленности применяется широкий спектр способов связи технологических объектов. в качестве примера можно привести одни из наиболее распространённых — беспроводная связь по стандартам GPRS, 3G, 4G и проводные способы по интерфейсам RS-485 или Ethernet.

Они позволяют передавать относительно большие объёмы данных за малые промежутки времени. Однако, не всегда возможно применение указанных способов по разным причинам. К числу таких ограничений можно отнести технические (невозможность прокладки кабеля на местности или низкий уровень сигнала по стандарту GPRS/3G) или экономические (цена автоматических GPRS/3G роутеров выше чем цена GSM-модемов).

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

Панели оператора ELHART имеют возможность программирования на языке С (написание макросов), что позволит в рамках конкретного примера исключить применение ПЛК для управления GSM-модемом. При помощи макросов панель оператора может получать прямой доступ к любому из интерфейсов и записывать в него последовательность символов в определённой кодировке. Расширением данного применения может быть использование макросов для установки соединения панелей оператора ELHART с устройствами, использующими нестандартные протоколы.

1 Настройка ПЛК и GSM-модема

Настройка оборудования заключается в настройке GSM-модема Cinterion BGS2T-RS485+MC1,5/6-ST-3,81 и панели оператора ELHART ЕСР-07. Для реализации данного примера возможно использование любого GSM-модема.

1.1 Настройка GSM-модема

Настройка GSM-модема заключается в настройке скорости обмена, количества битов данных, длины интервала стоп-бита и контроля чётности по используемому интерфейсу. Модем должен быть подключен к персональному компьютеру (ПК) по интерфейсу RS-485 через преобразователь интерфейсов RS-485/USB (например, Delta IFD6500), одновременно он может быть подключен и к панели оператора по тому же интерфейсу. Интерфейс RS-485 выбран для удобства, возможно использование RS-232 и, соответственно, модема с таким интерфейсом.

Схема подключения модема к панели оператора и ПК
Рисунок 1 — Схема подключения модема к панели оператора и ПК

Для настройки модема возможно использовать любую программу для ПК, позволяющую записывать данные непосредственно в СОМ-порт (в данном примере используется ComPUMP).

Подача АТ-команды в интерфейс модема
Рисунок 2 — Подача АТ-команды в интерфейс модема

Настройка скорости обмена GSM-модулей модемов, как правило, заключается в подаче АТ-команды «AT+IPR=9600». После последнего символа (в данном случае это «0») необходимо добавить символы возврата каретки и перевода строки, их коды в таблице ASCII - 0D и 0A соответственно. Программа ComPUMP должна изначально иметь настройки скорости обмена, количества битов данных, длины интервала стоп-бита и контроля чётности, соответствующие настройкам модема. в случае успешного приёма и исполнения команды модем ответит «AT+IPR=OK». Скорость обмена 9600 бод выбрана для примера и будет использоваться далее при настройке интерфейса RS-485 панели оператора.

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

Настройка модема завершена.

1.2 Настройка сенсорной панели оператора ELHART

Настройка сенсорной панели оператора производится на примере модели ECP-07 и в данном случае сводится к написанию макроса. Графический интерфейс используется для визуализации процесса. Основными задачами при отправке SMS являются:

  • открытие указанного интерфейса,
  • запись символов в интерфейс из буфера отправки,
  • ожидание ответа (пауза),
  • получение символов из интерфейса в буфер приёма;

Основными задачами при приёме:

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

для создания макроса необходимо перейти в пункт меню «Макросы» - «Главный макрос» - «Создать макрос»:

Создание макроса
Рисунок 3 — Создание макроса

Для макросов панелей оператора ELHART существуют понятия внешних и внутренних переменных. Внешними переменными являются все переменные из области памяти панели (например, область памяти LW). Внутренние переменные объявляются в теле макроса.

1.2.1 Объявление внешних переменных макроса

Объявление необходимых внешних переменных
Рисунок 4 — Объявление необходимых внешних переменных

Внешними переменными в данном примере являются:

1. error_com_param: возвращает значение «0» в случае ошибки установки параметров интерфейса, «1» - в случае удачной передачи; адрес

2. error_outport: возвращает значение «-1» в случае ошибки передачи, в случае удачной передачи возвращает число переданных байтов;

3. error_inport: возвращает значение «-1» в случае ошибки приёма, в случае удачного приёма возвращает число принятых байтов;

4. Imm_alarm: стартовый адрес внешних битов регистров панели, запускающих цикл отправки SMS;

5. modemok: стартовый адрес байтовых регистров для записи строки признака успешной настройки модема;

6. LB50: битовый адрес, изменяемый по команде в SMS-сообщении;

7. Pressure: стартовый адрес байтовых регистров для записи значений в отправляемое SMS-сообщение;

8. number_input: байтовый регистр (тип данных «string») для ввода номера телефона.

1.2.2 Элементы визуализации экрана операторской панели

Соответственно указанным на Рисунке 4 адресам регистров необходимо создать элементы визуализации на экране панели:

Пример визуализации экрана панели оператора
Рисунок 5 — Пример визуализации экрана панели оператора

Элементу ввода «Ввод телефонного номера без +7» соответствует адрес LW3 (тип данных «строка», количество символов — 10, кодировки ASCII и Unicode), элементу «Имитация события No1» - LB0, «Значение параметра No1» - LW16 (тип данных «целое число», 1 разряд до запятой, 2 после), «Значение параметра No2» - LW17 (тип данных «целое число»), «Имитация события No4» - LB3, элементу отображения «Включение/выключение бита по СМС-команде» - LB50, элементу «Настройка модема прошла успешно» - LW18 (тип данных «строка», количество символов — 11, кодировки ASCII и Unicode).

1.2.3 Листинг кода макроса с комментариями

Макрос решает следующие задачи:

1. Распознавание внешнего признака отправки SMS в виде битовой переменной памяти панели, в данном примере реализовано 10 признаков.

2. Запуск алгоритма отправки SMS по одному из внешних признаков. Если в один момент времени активно несколько признаков, они будут отработаны по очереди. СМС отправляется в текстовом режиме (латиница, кодировка ASCII). Ð