This is topic Использование GSM-шлюза для передачи SMS-оповещений пользователю in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Мы хотели протестировать работу GSM-шлюза и использовать его как GSM-модем. Почему используем именно его? В связи с отсутствием у нас полноценного GSM-модема для производственных целей.
Для тестирования использовали: - OPC-сервер Lectus для опроса TraceMode'ом панели оператора по Modbus TCP; - GSM-шлюз RCom SPRUT Universal;
Шлюз имеет порт RS-232 и USB. В нашем случае подключение по USB. В оборудовании шлюз определяется как COM-порт. Тестовый проект сделали, создали словарь сообщений, создали пользователя с номером мобильного телефона.
Во время работы профайлера в логе пишется modem not ready при возникновении аварийных и предупредительных событий.
11:37:21 0000 00000000[0] 08.02.2018 11:37:21 0000 00000000[1] login ok 11:37:28 0000 00000001[198152] Start 11:37:31 0020 00000000[0] modem not ready 11:37:41 0020 00000000[0] modem not ready 11:37:44 0020 00000000[0] modem not ready 11:37:49 0020 00000000[0] modem not ready 11:46:59 0000 00000000[1] logout auto 11:47:00 0000 00000007[0] Stop
Настройки порта перепроверили в TraceMode и в оборудовании ОС - всё совпадает. Уровень сигнала связи на шлюзе хороший, сим-карта разблокирована, дозвон с мобильного на сим-карту шлюза идёт. СМС-оповещение же на телефон не приходит со шлюза.
В чём может быть проблема?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Установите в папке узла проекта в файл *.CNF (его описание есть в справке: Приложения -> Задание параметров работы мониторов -> Задание параметров работы мониторов -> Файл CNF)(редактируется в блокноте) ключи:
После чего запустите проект, в этой же папке появятся профайлерный протокол <имя проекта>_<№ узла>.txt с логами по COM-порту и расшифровками смс и wdep.log с логами обмена с модемом. Если данные логи не прояснят ситуацию - сделайте перехват данных по COM-порту и смотрите на каком этапе возникает проблема.
Posted by Умнов Сергей (Участник № / Member № 7580) on :
Обновил TraceMode до версии 6.10.1. Сделал, как было Вами сказано. Создал отдельный файл TMcom_test1_1.cnf в папке с исполнительным файлом узла с указанными командами. После запуска профайлера и узла в логе узла появляется строка:
ERR_MODEM:COM31 MODEM ERR=1
Файл wdep.log при этом не создаётся
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
"TMcom_test1_1.cnf" - неверное название файла. Если номер узла 1, то файл должен называться "TMcom_1.cnf". Поэтому файл wdep.log и не создался.
В строку инициализации модема в редакторе узла установить через точку с запятой ключ:
;NO_DSR
и повторите тестирование. Этот ключ отключает проверку DSR при обмене по GSM. Он актуален, т.к. модем подключается через USB.
Posted by Умнов Сергей (Участник № / Member № 7580) on :
В строке инициализации, помимо PIN:0000;SCA:+79037011111 добавил ;NO_DSR. Протестировал и вот, что есть в логах.
9-02-2018 18:01:50.046 INFO (COM31):Initialization complete successfully 9-02-2018 18:01:50.046 INFO (GSM MODEM(+7963xxxxxxx)):SMS processor started 9-02-2018 18:01:50.046 INFO (GSM MODEM(+7963xxxxxxx)):Modem initialization started 9-02-2018 18:01:50.062 INFO (COM31):Deinitialized 9-02-2018 18:01:50.093 INFO (COM31):Initialization complete successfully 9-02-2018 18:01:50.093 INFO (COM31):Initialization complete successfully 9-02-2018 18:01:51:093 DEBUG (GSM MODEM(+7963xxxxxxx)):Output: ate0v1x0&d2 | 61 74 65 30 76 31 78 30 26 64 32 9-02-2018 18:01:51:093 DEBUG (GSM MODEM(+7963xxxxxxx)):Input: .te0v. | FF 74 65 30 76 EC 9-02-2018 18:02:51.109 ERROR (GSM MODEM(+7963xxxxxxx)):Failed to setup modem mode
Posted by Умнов Сергей (Участник № / Member № 7580) on :
Пробовал менять номер COM-порта на 1-ый - без изменений. Вопрос остаётся актуальным.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Скорее всего модем некорректно принимает строку с АТ-командами "ate0v1x0&d2". Некоторые модемы несколько АТ-команд одной строкой могут не распознавать. Напишите на адрес технической поддержки hotline@adastra.ru и Вам вышлют вариант решения данной проблемы.
Posted by Умнов Сергей (Участник № / Member № 7580) on :
Письмо отправлено
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Ответ выслан электронной почтой.
Posted by Умнов Сергей (Участник № / Member № 7580) on :
Рекомендации опробовали. Опробовали также другой тип модема. Появившиеся вопросы отправлены на почту техподдержки
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Направили Вам письмо с рекомендациями.
Posted by Умнов Сергей (Участник № / Member № 7580) on :
Большое спасибо. Рекомендации опробовали, всё получилось
Posted by Умнов Сергей (Участник № / Member № 7580) on :
Здравствуйте. СМС-оповещения теперь приходят при возникновении аварийных и предаварийных ситуаций, но только одному пользователю. Поясню, что для отправки СМС-оповещений было создано ещё 2 пользователя, помимо того пользователя, к которому СМС приходят. Как можно сделать рассылку нескольким пользователям?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Автоматическая рассылка SMS-сообщений нескольким пользователям осуществляется в том случае, если это сообщения словарей ОТ с заданным направлением GSM. Сообщения рассылается пользователям, у которых установлен флажок "Рассылка" и задан номер мобильного телефона. Текущему пользователю SMS не посылается.
Программно можно разослать одно и то же сообщение нескольким пользователям через STRING-аргументы, привязанные к атрибутам 29 (S_Mail) соответствующих каналов ПОЛЬЗОВАТЕЛЬ.
Posted by Умнов Сергей (Участник № / Member № 7580) on :
Автоматическая рассылка сделана как раз через словари сообщений ОТ. В аргументах словарей ОТ выбрано AR+G+GSM для аварийных и предупредительных собитый. Пользователь, который входит в МРВ, рассылку не получает, номер телефона у него не указан, галочка "Рассылка" снята. Остальные пользователи (3 пользователя), имеют номера телефонов, галочка "Рассылка" в настройках этих пользователей установлена. Только один из трёх пользователей, которым установлена "Рассылка", получает СМС.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Проще всего будет сделать список для рассылки. Для этого в файл *.cnf установите ключ с телефонами для рассылки:
SMS_ALARME_PHONE_LIST=<phone>;..<phone>;
Описано в справке: Обмен с контроллерами и УСО - Обмен по встроенным протоколам - Пользовательские SMS.
Posted by Умнов Сергей (Участник № / Member № 7580) on :
Попробовали сделать по Вашему последнему предложению рассылку SMS, всё получилось. Интересует только вопрос: можно ли как-то сделать разделение между списками пользователей, кому и какие оповещения рассылать? То есть одни сообщения одной группе пользователей, другие сообщения - другой группе пользователей, и всё это из одного узла. Или такое разделение можно сделать только программно? Имеются ли примеры реализации чего-то подобного? Если имеются, буду рад ознакомиться
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Тогда необходимо будет создавать пользователей для рассылки смс и им программно через атрибут message рассылать сообщения. Уточните, а для каких целей требуется такое разделение? Опишите Вашу задачу детально письмом на адрес техподдержки hotline@adastra.ru
Posted by Умнов Сергей (Участник № / Member № 7580) on :
Письмо на указанный адрес выслано
Posted by Умнов Сергей (Участник № / Member № 7580) on :
Может ли команда MOVE языка FBD применяться для записи значений в переменные типа STRING? Если да, то в каком виде задавать значение на входе блока данной команды? Указываю в кавычках значение, которое должно присваиваться переменной на выходе блока, но компилятор определяет значение на входе блока как переменную. Всё ли я делаю верно?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Язык FBD не работает с переменными типа STRING. Надо использовать язык ST.