SCADA, АСУ ТП, контроллеры – основная тематика журнала «ИСУП»
Журнал «Информатизация и Системы Управления в Промышленности» публикует тематические материалы посвященные SCADA, АСУ ТП, контроллерам, автоматизации в промышленности.

Новые интегрированные возможности GSM-модемов TELEOFIS

В статье подробно раскрыты расширенные функциональные возможности GSM-модемов производства компании «Телеофис», показано, что этими устройствами можно управлять удаленно, а также можно запрограммировать их под задачи сбора, обработки и передачи информации через GPRS.

ОАО «Телеофис», г. Москва

Teleofis-stamp.png

GSM-модемы давно стали привычным элементом систем автоматизации и телеметрии. Но пока еще не все интеграторы и пользователи знают, что современные GSM-модемы уже превысили стандартный и знакомый функционал. Рассмотрим новые полезные функ­ции на примере модемов марки TELEOFIS.

Одна из основных трудностей, которые возникают при обслуживании систем, включающих в себя GSM-модемы, связана с удаленным администрированием. Например, невозможно удаленно переза­грузить модем, настроить скорость порта и проч. Модемы TELEOFIS*  (на базе GSM-модулей TELIT GL868‑DUAL, начало выпуска – сентябрь 2011 года) имеют два режима удаленного администрирования – посредством TCP-соединения либо SMS.

Рис.1.png

Рис. GSM-модем TELEOFIS RX608‑R2 (со встроенным блоком питания)

Другой часто возникающей проблемой является сложность программирования GSM-модема под задачи сбора, обработки и передачи информации через GPRS. Модемы TELEOFIS имеют встроенный интерпретатор языка Python, что позволяет реализовывать решение задач пользователя непосредственно в GSM-модуле.

Для передачи данных по TCP через GPRS скрипт на языке Python использует встроенный в GSM-модуль TCP/IP-стек, предназначенный для обеспечения простой процедуры управления TCP-со­единениями и передачей данных. Управление TCP-стеком осуществляется расширенным набором AT-команд, включающим в себя команды настройки, управления со­единениями и др.

Ниже мы рассмотрим подробнее эти и другие возможности новых модемов TELEOFIS.


Удаленное управление по TCP

Кроме обычного режима работы с AT-командами через COM-порт, GSM-модемы TELEOFIS имеют возможность удаленного управления через TCP-соединение в режиме TCPATRUN. При этом логический интерфейс обработки AT-команд подключается напрямую к TCP-соединению.

Использование удаленного управления позволяет:
- оперативно и без выезда на место установки изменять параметры работы модуля;
- проверять баланс;
- проверять и устанавливать скорость порта;
- настраивать TCP-соединение;
- управлять роумингом (выбор оператора);
- удаленно перезагружать модуль.

TCP-соединение с GSM-модемом устанавливается через GPRS и может работать в двух режимах: «Сервер» либо «Клиент». В режиме «Сервер» модем подключается к GPRS и ожидает входящего соединения. В режиме «Клиент» модем сам устанавливает TCP-соединение с заданным IP-адресом.

Для работы с входящими соединениями необходимо подключить к SIM-карте статический IP-адрес, после чего можно будет установить соединение с модемом, например с помощью программы Telnet. В режиме «Сервер» можно использовать авторизацию входящего соединения по логину и паролю.

Более простым и интересным представляется режим, когда модем подключается по TCP к заданному серверу. На компьютере можно установить виртуальные TCP-COM-порты и принимать на них TCP-соединения от GSM-модема. При значительном количестве подключаемых устройств рекомендуется применение специализированного серверного ПО, например m2m.teleofis.ru.

Рассмотрим процедуру работы с TCPATRUN. Прежде всего необходимо установить соединение GPRS. Для этого контекст PDP должен быть активирован:

AT#SGACT=1,1
#SGACT: 10.182.37.26
OK

Рекомендуется включить автоматический режим установки соединения GPRS:

AT#SGACTCFG=1,15,180
OK

где параметры – <номер контекста PDP>, <количество попыток соединения>, <тайм-аут между попытками>. Данный режим позволит модему автоматически соединяться с GPRS после включения или перезагрузки.

Далее необходимо настроить TCP-сокет, через который будет устанавливаться соединение:

AT#SCFG=1,1,300,300,600,1
OK

где параметры – <номер сокета>, <номер контекста PDP>, <размер TCP-пакета>, <таймер разрыва по тишине>, <тайм-аут установки TCP-соединения>, <тайм-аут отправки данных>.

AT#TCPATRUNCFG=1,2,12345,6020,"m2m.teleofis.ru",1,5,0,5,1
OK

где параметры – <номер сокета>, <номер парсера AT-команд>, <порт для входящих соединений>, <порт назначения  для исходящего соединения>, <IP-адрес или имя сервера>, <отображение статуса подключения>, <тайм-аут выполнения команды>, <настройка авторизации в режиме «сервер»>, <количества попыток переподключения к хосту (серверу)>, <время между попытками>.

Включаем режим TCPATRUN в режиме «Клиент»:

AT#TCPATRUND=1
OK

Соединение установлено:

TCPATRUN: <m2m.teleofis.ru>

В установленном TCP-соединении вы осуществляете работу с модемом через AT-команды, как при подключении через последовательный порт.
Таким образом, режим TCPATRUN позволяет удаленное управление, контроль и изменение настроек GSM-модема, что является очень полезной функцией для администратора модема.

В случае недоступности сервера модем будет несколько раз пытаться установить соединение (количество попыток задано командой AT#SGACTCFG), после чего новый цикл установки соединения будет осуществлен только после перезагрузки модема. При этом введенные настройки сохранятся.

Таймер перезагрузки устанавливается командой AT#ENHRST, кроме того, перезагрузку модема можно осуществить с помощью режима SMSATRUN, отправив команду в модем через SMS.


Прозрачное соединение с COM-портом в режиме TCPATRUN

Режим TCPATRUN позволяет осуществлять прямое соединение с COM-портом в прозрачном режиме. Применение доступа к COM-порту по TCP может быть удобно при удаленном администрировании оборудования с портами RS‑232 или RS‑485. При этом данные, отправленные в COM-порт, будут переданы через TCP удаленному хосту и таким же образом в обратном направлении. Для выхода обратно в командный режим используется сочетание «+++».

AT#TCPATCONSER=0,115200
OK

где 115200 – скорость порта модема.
По умолчанию на последовательном порту включено управление потоком. Его можно отключить:

AT&K0
OK

Доступ к COM-порту по TCP возможен в обоих режимах TCPATRUN – «Сервер» и «Клиент», но необходимо отметить, что алгоритм работы TCPATRUN достаточно прост и не предполагает большого числа настроек или расширения функционала. Если вас заинтересует применение возможностей GPRS TCP-соединений для удаленного администрирования оборудования с портами RS‑232/RS‑485, рекомендуем ознакомиться с параграфами «Скрипты пользователя. Встроенный интерпретатор языка Python» и «IP Easy – встроенный TCP/IP-стек». Пример реализации скрипта для работы с TCP и COM-портом представлен на сайте wrx100.teleofis.ru.


Удаленное администрирование через SMS

GSM-модемом можно удаленно управлять с помощью SMS-сообщений в режиме SMSATRUN. Устройство наделено функцией, которая позволяет ему удаленно выполнять AT-команды, отосланные в SMS-сообщении. Ответы на команды тоже приходят по каналу SMS.

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

Включение режима дистанционной работы по SMS выполняется командой:

AT#SMSATRUN=1
OK

Кроме команды настройки AT#SMSATRUNCFG, значения которой по умолчанию не требуют изменений, необходимо настроить «белый список» доступа по SMS. Всего в белом списке 8 записей, содержащих либо маску номера телефона, либо пароль доступа. Не более двух из восьми записей могут содержать пароль.

AT#SMSATWL=0,1,0,"+749595058*"
OK

где параметры – <добавить/удалить/вывести на экран>, <номер строки>, <тип записи – номер телефона/пароль>, <строка>. Строка, содержащая номер телефона, должна состоять из цифр и может иметь знак «+» в начале и/или знак «*» в конце. Пароль должен содержать 16 символов. Строка в любом случае должна быть заключена в кавычки.

Текст SMS-сообщения необходимо набирать символами в верх­нем регистре, добавлять перевод строки (Enter) в конце текста не нужно. При поступлении SMS в зависимости от настроек команды AT#SMSATRUNCFG в порт будет выведено сообщение. Например, при отправке «AT»:

#SMSATRUN: AT

Ответ (ОК) на команду приходит в ответном сообщении от GSM-модема.
Применяя режим SMSATRUN, вы всегда будете иметь доступ к настройкам GSM-модема и сможете управлять модемом удаленно.


Рис.2.png

Рис. Интерфейсы взаимодействия Python-скриптов с функциями GSM-модема: 
MDM, MDM2 – два логических интерфейса между скриптом и обработчиками АТ-команд; SER, SER2 – доступ к физическим последовательным портам ASC0 и ASC1 соответственно; GPIO – управление линиями ввода/вывода; 
MOD – служебные функции; IIC, SPI – реализация интерфейсов IIC и SPI на свободных линиях ввода/вывода



Скрипты пользователя. Встроенный интерпретатор языка Python

GSM-модемы TELEOFIS способны реализовать логику управления без использования внешнего микроконтроллера, путем загрузки пользовательских скриптов на языке высокого уровня Python. Пользовательские скрипты являются текстовыми файлами, которые хранятся в энергонезависимой памяти модема. Память представляет собой файловую систему, которая позволяет записывать и считывать файлы с разными именами на единственном уровне (директории не поддерживаются).

Технически пользовательский скрипт выполняется в виде задачи встроенной операционной системы, которая имеет самый низкий приоритет, чтобы не оказывать влияния на основные функции GSM/GPRS. Пользовательские Python-скрипты могут взаимодействовать с функциями GSM-модема посредством специальных встроенных интерфейсов, описание которых представлено на схеме.

Пользовательские скрипты могут применяться для следующих задач:
- мониторинг состояния линий ввода/вывода и уровня сигнала на входе АЦП, а также управление ими с помощью SMS-сообщений, голосового вызова или через TCP-соединение;
- мониторинг местоположения GSM-модема;
- организация прозрачного канала связи с устройствами, имеющими последовательные интерфейсы (RS‑232, RS‑485), через сеть Интернет или CSD-соединение;
- удаленное конфигурирование GSM/GPRS-модема.

Приведем пример простой функ­ции на языке Python, выполняющей управление LED индикатором:

def init_led (led_stat):
a = MDM.send ('AT#SLED='+led_stat+'\r', 1)
if (a<1):
return (-1)
return (1)

С готовым проектом скрипта для передачи данных последовательного порта через GPRS-сеть можно ознакомиться на сайте wrx100.teleofis.ru.


IP Easy – встроенный TCP/IP-стек

Управление приложением через Интернет, посредством GPRS-модема, позволяет получить доступ к нему в любой точке земного шара по стоимости GPRS-соединения. Стоимость эта рассчитывается исходя из объема переданных данных, а не времени соединения, что позволяет приложению оставаться на связи постоянно и всегда быть готовым к приему и передаче данных.

Однако у технологии GPRS есть и недостаток. Поскольку передача данных осуществляется через сеть Интернет, устройству необходимо иметь собственную реализацию стека протоколов TCP/IP.

GSM-модемы TELEOFIS имеют встроенный TCP/IP-стек, который позволяет пользователям устанавливать соединение с интернет-узлом для обмена данными. Эту функцию можно сравнить с «виртуальным» последовательным соединением между ПО приложения и интернет-узлом. Интересной особенностью является возможность одновременного подключения нескольких соединений, что позволяет пользователю иметь два различных IP-адреса и до шести активных соединений. Каждое соединение может быть связано со своим IP-адресом.

Кроме стандартного набора протоколов TCP/IP, GSM-модемы также содержат клиенты для протоколов HTTP, FTP и E‑MAIL.
Пример установки TCP-соединения с адресом m2m.teleofis.ru на порт 5000:

AT#SGACT=1,1
#SGACT: 10.182.119.182
OK
AT#SCFG=1,1,300,300,600,1
OK
AT#SD=1,0,5000,"m2m.teleofis.ru",0,1,0
CONNECT


Мультиплексор порта

GSM-модемы TELEOFIS имеют встроенную поддержку мультиплексирования последовательного порта. Это позволяет разделить задачи пользователя по трем разным каналам обработки АТ-команд, а также получить один дополнительный порт для получения отладочной информации, и всё это на основе одного физического последовательного порта. Например, можно вести передачу данных или голосовой вызов в одном канале и одновременно работать с АТ-командами по другим каналам (работать с SMS, проводить мониторинг уровня сигнала сети и др.) без применения второго канала RS‑232.

Обычно закрытие соединения CSD происходит в два этапа: сначала GSM-модуль переводится из режима передачи данных в командный режим, а затем посылается АТ-команда «повесить трубку» (ATH). Перевод модуля из режима данных в командный режим осуществляется специальной последовательностью {1,5 секунды пауза}+++{1,5 секунды пауза}. Таким образом, на закрытие соединения уходит примерно 3 с. В случае применения мультиплексного протокола нет необходимости переходить в командный режим, чтобы послать АТH-команду, поскольку ее можно послать по второму виртуальному каналу и завершить соединение практически мгновенно.

Еще одним большим плюсом при использовании мультиплексирования порта является возможность параллельно получать данные сразу с нескольких каналов. Например, по одному мультиплексированному порту идет прием файла большого размера с FTP-сервера, а на другой виртуальный порт пришло SMS-сообщение, которое необходимо обработать. Таким образом, мультиплексирование в GSM-модемах TELEOFIS позволяет построить систему, где данные, поступающие с разных каналов, обрабатываются с высокой скоростью, где пользователю обеспечены гибкие возможности в работе с источниками данных.


Встроенный таймер перезагрузки

Основная причина зависания GSM-модемов – это переподключение между базовыми станциями. Даже если модем установить на неподвижном объекте, он будет периодически менять базовые станции. Дело в том, что модем подключается к конкретной соте не только из-за уровня сигнала, но и из-за ее загруженности в конкретный момент времени. Эта и некоторые другие причины могут привести к зависанию GSM-модема.

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

В модемах TELEOFIS периодическая перезагрузка производится с помощью встроенного в GSM-модуль таймера перезагрузки. Контроллер таймера перезагрузки независим от RF-части GSM-модуля, поэтому в случае зависания последнего контроллер остается работоспособным и перезагружает модем.

Рис.3.png

Рис. GSM-модуль Telit GL868-DUAL

Настройка таймера перезагрузки осуществляется с помощью AT-команды AT#ENHRST. По умолчанию модемы настроены на переза­грузку 1 раз в сутки.

AT#ENHRST=2,1440
OK

Периодическая перезагрузка модема не только уменьшает вероятность зависания GSM-модема, но и позволяет вернуть работоспособность в случае возникновения нештатной ситуации.

В статье мы постарались познакомить читателей с новыми современными функциями GSM-модемов TELEOFIS, которые действительно нужны и дают интеграторам и пользователям дополнительные возможности в работе с оборудованием.

_________________________
*TELEOFIS RX100-R(V.6); RX100-R2; RX600-R2; RX108-R(V.6); RX108-L(V.6); RX608-R2; RX102-R(V.6); RX102-R2; RX101-R; RX400(Telit); RX112-L(V.6). Розничная стоимость RX100-R2 на 01.10.2012 г. составляет 2100 руб.

Статья опубликована в журнале «ИСУП», № 5(41)_2012

А.А. Колесников, президент
ОАО «Телеофис», г. Москва,
тел.: 8 800 200-58-95,
e‑mail: post@teleofis.ru,