Формирование 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!