Формирование SMS сообщения средствами языка ST.



ХT-6-T-RU РАСШИРЕННЫЙ КУРС РАЗРАБОТКИ АСУТП В TRACE MODE 6

Занятие десятое

 

 

Москва, 2010

AdAstra Research Group, Ltd.



ЗАНЯТИЕ ДЕСЯТОЕ

Использование технологии GSM SMS

Цель занятия – создать систему оповещения персонала на базе GSM сети с использованием службы коротких сообщений (SMS). Система оповещения должна включать различные виды взаимодействия с мобильным пользователем:

· отсылку произвольных сообщений (SMS) на телефон мобильного пользователя с АРМ оператора;

· отсылку сообщения, сформированного средствами языка ST и содержащего информацию о текущем состоянии технологического объекта;

· обработку входящих SMS средствами языка ST, отсылка ответного сообщения SMS по запросу мобильного пользователя;

· рассылку сообщений из отчета тревог на мобильные телефоны.

Настройка узла RTM

Создайте в новом проекте TRACE MODE узел RTM. В настройках узла укажите следующие параметры:

· номер телефона SIM-карты, установленной в GSM-модеме – в поле «Телефон №1»;

· PIN-код и номер SMS-центра – в поле «Строка инициализации», как это показано на рисунке:

 

 

Настройка мобильного пользователя ТМ

В том же узле RTM_1 создайте группу «Пользователи_ТМ» и в ней одного пользователя. В его настройках обязательно укажите:

· логин;

· пароль;

· номер мобильного телефона (можете ввести свой личный).

Если Вы хотите, чтобы данный пользователь принимал SMS-рассылки из отчета тревог данного узла, установите флаг «Рассылка».

 

 

Настройка последовательного (COM) порта.

В том же узле RTM_1 создайте группу «COM-порты», при этом в ней автоматически создастся первый COM-порт. В его настройках укажите:

· номер порта (COM1);

· назначение (Gsm- Sms);

· скорость передачи данных (в данном случае 115200);

· базовый адрес COM-порта (определяется автоматически, достаточно установить его отличным от нуля);

· контроль четности (в данном случае 8-1-n).

 

Отправка произвольного сообщения с АРМ на мобильный телефон.

 

Отсылка произвольных сообщений на мобильный телефон осуществляется через запись строки сообщения в атрибут №28 Сообщение компонента Пользователь.

Подключите GSM-модем к указанному последовательному порту Вашего ПК.

Сохраните Ваш проект для МРВ и запустите его с помощью профайлера (для этого потребуется ввести логин и пароль, которые Вы задали в настройках пользователя). Из меню профайлера вызовите просмотр компонентов (Вид -> Компоненты). В появившемся диалоге найдите атрибут Message (сообщение – англ.) единственного пользователя системы, как показано на рисунке:

Попробуйте отправить сообщение!

¨ *Самостоятельная работа: добавьте в проект экран, на котором отобразите значение атрибута “Message” и поместите кнопку с функцией «Ввод и посылка» в этот атрибут. Таким образом, оператор АРМ получит удобное средство для ручного оповещения мобильного сотрудника.

 

Формирование SMS сообщения средствами языка ST.

 

Для формирования сообщения о состоянии технологического процесса удобнее всего использовать язык ST. Создайте новую программу под названием Исходящее как это показано на рисунке:

В данной программе формируется сообщение (выходной аргумент типа STRING) о трех параметрах: Температуре, Давлении, и Уровне. Чтобы не перегружать SMS сообщение, в программе используется вложенная функция округления NDGT, которая написана на FBD и состоит всего из одного блока Округление (из группы Алгебраические). Вложенная функция отображена на рисунке:

 

Откомпилируйте программу Исходящее и создайте для нее вызов в узле RTM_1.

 

ВНИМАНИЕ! В настройках вызова программы Исходящее обязательно измените тип канала на Output. Иначе данная программа будет вызываться на каждом такте пересчета узла RTM_1 и на каждом же такте посылать новое SMS сообщение.

 

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

· свяжите выходной аргумент Сообщение с атрибутом №28 (Сообщение) компонента Пользователь как показано на рисунке.

· для входных аргументов Температура, Давление, Уровень выполните автопостроение каналов по аргументам.

 

 

Чтобы пример был нагляднее, создайте три генератора сигналов в слое Источники/Приемники, например, Пила, Синусоида, Случайное число и свяжите их с каналами Температура, Давление, Уровень соответственно.

 

 

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

 

Запишите во входной атрибут канала вызова программы Исходящее единицу:

 

Если все было сделано правильно на Ваш телефон (т.е. на телефон указанный в настройках компонента Пользователь) поступит SMS сообщение следующего вида: “T=36 P=72.0908 L=88.56”.

Такие сообщения будут передаваться при каждом изменении входного атрибута вызова программы Исходящее.

 

¨ *Самостоятельная работа: добавьте в проект экран, на котором отобразите значение технологических параметров и поместите кнопку «Послать отчет» с функцией «передать значение (НЕ-ИЛИ)» константы 1 в вызов программы.. (Исключающее ИЛИ в данном случае используется для того, чтобы значение входного атрибута менялась при каждом нажатии кнопки.)

 

Обработка входящих SMS

 

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

 

Формат SMS-сообщения для задания значения атрибута канала:

<имя канала>.<номер атрибута>=<строка>

В качестве параметра <строка> может использоваться строковое выражение или число. Указание номера атрибута In в сообщении необязательно.

 

Для более детальной настройки алгоритма обработки SMS сообщений необходимо использовать системный канал @RTM_Parameter.Так, например, для разрешения приема sms-сообщений в узле, необходимо создать канал типа OUTPUT, связанный с системной переменной @RTM_Parameter с параметром SMS_Parameter, значением На старте 8 и флагом Отработать:

 

 

 

Итак, чтобы обработать входящее SMS сообщение, создадим канал Прием и программу Входящее. Поставим задачу обработки сообщения следующим образом: если в канал Прием записано значение 1, то выполнить программу Исходящее. Таким образом, отослав сообщение «Прием=1» на номер GSM-модема АРМ, мы должны в ответ получить сообщение о состоянии технологических параметров.

 

Программу Входящее оформим следующим образом:

 

Создайте для нее вызов в узле RTM_1 и выполните привязки аргументов:

 

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

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

 

Сохраните проект для МРВ и запустите профайлер. Откройте диалог просмотра компонентов, чтобы следить за работой программ. Пошлите SMS сообщение «Прием=1» на номер GSM-модема узла RTM_1. В ответ Вы должны получить еще одно сообщение вида “T=36 P=72.0908 L=88.56”.

 

¨ *Самостоятельная работа: попробуйте сделать еще одну программу формирования исходящего сообщения Исходящее2. В программе Входящее добавьте обработку еще одного запроса, например, «Прием=2», по которому отсылайте новое сообщение. Таким образом, мобильный пользователь получает возможность запрашивать различные данные по своему желанию.


Дата добавления: 2019-11-16; просмотров: 199; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!