Tag Archives: модем

Состав библиотеки SmsOwenLib.

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

Блок «OpenPort» захвата/освобождения интерфейса

Рисунок 1 – Структурная схема

Таблица 1

Имя программного компонента OpenPort
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы требуется установка в проекте библиотеки UNM
Применение на контроллерах ПЛК100, ПЛК150, ПЛК154, ПЛК110, ПЛК160.

 

Входная переменная:

Тип данных

Пояснения

Enable

BOOL

разрешение на работу
DeviceNumber

WORD

номер модуля UNM – нумерация идет с 0 по порядку сверху вниз как расположены модули UNM в конфигурации, первый сверху модуль UNM имеет номер 0, следующий номер UNM – 1, и так далее
Выходная переменная:

Тип данных

Пояснения

Out

BOOL

состояние открытия порта, после окончания включен постоянно

 

Описание

До начала передачи/приема в интерфейс данных из программы CoDeSys нужно «захватить» интерфейс и приостановить работу с этим интерфейсом модулей протоколов, подключенных в PLC Configuration. Для использования нужно создать в конфигурации контроллера один (или несколько)  модулей Universal Network Module. Внутри каждого модуля нужно настроить параметры порта передачи данных (для последовательных портов это скорость, четность, биты данных, биты стопа, время задержки).

Блок «FB_SMS_CFG» конфигурирования модема

Рисунок 2 – Структурная схема

Таблица 2

Имя программного компонента FB_SMS_CFG
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы требуется установка в проекте библиотеки UNM
Применение на контроллерах ПЛК100, ПЛК150, ПЛК154, ПЛК110, ПЛК160.

 

Входная переменная:

Тип данных

Пояснения

Enable

BOOL

разрешение на работу
Handle

WORD

номер модуля UNM, порт открывается с помощью ФБ «OpenPort»
PortCfg

BOOL

разрешение на настройку порта модема, по умолчанию False (выкл.)
SaveCfg

BOOL

сохранение параметров в модеме после конфигурирования, по умолчанию False (не сохранять)
ModemART

BOOL

включение/отключение автоподъема трубки, по умолчанию False (выкл.),
PortBaudrate

STRING(6)

параметр настройки порта — скорость, по умолчанию ‘0’
PortParity

BYTE

параметр настройки порта — четность, 0- нет 1-нечет 2-чет, по умолчанию 0-нет
PortStopBits

BYTE

параметр настройки порта – число стоп-бит, 1-1бит, 3-2бита, по умолчанию1-1бит
PortByteSize

BYTE

параметр настройки порта — Биты данных, по умолчанию 8-8 бит
PortFlowCtrl

BYTE

параметр настройки порта — управление потоком, 0 – отключено, 1-XON/XOFF, 2-аппаратный, по умолчанию 0-отключено
Выходная переменная:

Тип данных

Пояснения

Done

BOOL

флаг окончания настройки, после окончания включен постоянно
ErrCode

BYTE

код ошибки

Описание работы

Необходим для конфигурирования модема. Должен вызываться до блока FB_SMS_SR. Если модем уже был настроен ранее (вручную или с помощью данного ФБ с SaveCfg:=TRUE) и в ходе работы настройки модема меняться не будут, то разрешается не использовать данный ФБ в программе.

Блок «FB_SMS_SR» отправки/ получения СМС

Рисунок 3 – Структурная схема

Таблица 3

Имя программного компонента FB_SMS_SR
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы требуется установка в проекте библиотеки UNM
Применение на контроллерах ПЛК100, ПЛК150, ПЛК154, ПЛК110, ПЛК160.

 

Входная переменная:

Тип данных

Пояснения

Enable

BOOL

разрешение на работу
Handle

WORD

номер модуля UNM, порт открывается с помощью ФБ «OpenPort»
CsdClose

BOOL

запрет входящих вызовов: определяет поведение при входящем звонке, если True(вкл.), то всегда вешает трубку, если False(выкл.), то выставляет флаг NewInRing, по умолчанию True (вкл.)
SendSms

BOOL

команда на отправку SMS сообщения, срабатывает по фронту
SendSmsText

STRING

текст отправляемого сообщения (на русском макс 70 символов, на латинице макс 140 символов)
SendSmsNum

STRING

номер абонента, кому отправить СМС, пишется целиком с кодом страны без скобок и «+», например «79012345678»
CheckNum

BOOL

включить/отключить проверку номера отправителя СМС (для входящих сообщений), по умолчанию False (выкл)
CheckNumList

STRING

список разрешенных номеров, фомат: «ххххххххххх;ххххххххххх;» номер пишется целиком без скобок и «+», через точку с запятой, если функция выключена то не используется, по умолчанию ‘’
Выходная переменная:

Тип данных

Пояснения

Busy

BOOL

флаг указывающий, что блок выполняет в данный момент какие либо операции
ErrCode

BYTE

код ошибки
SmsSend

BOOL

флаг успешной отправки СМС сообщения, включается на 1н цикл
NewInSms

BOOL

флаг наличия нового входящего СМС сообщения, включается на 1н цикл
NewInRing

BOOL

флаг наличия входящего вызова
NewInSmsText

STRING

текст последнего принятого СМС сообщения
NewInSmsTime

STRING

время отправки последнего входящего СМС сообщения
NewInSmsNum

STRING

номер отправителя последнего входящего СМС сообщения, 10 цифр

 

Описание работы

Необходим для отправки/получения СМС сообщений и индикации входящих вызовов

Блок «FB_SMS_SL» вспомогательный для отправки сообщения группе абонентов

Рисунок 4 – Структурная схема

Таблица 4

Имя программного компонента FB_SMS_SL
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы не требуется установка в проекте дополнительных библиотек
Применение на контроллерах ПЛК63, ПЛК73, ПЛК410

 

Входная переменная:

Тип данных

Пояснения

SendGroup

BOOL

команда на отправку группе
NumCount

BYTE

количество адресатов
SmsTextIn

STRING

текст отправляемого сообщения
SmsSend

BOOL

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

Тип данных

Пояснения

SendSms

BOOL

команда на отправку сообщения
NumCur

BYTE

текущий номер адресата
SmsTextOut

STRING

текст отправляемого сообщения
Done

BOOL

флаг завершения работы, включается на 1н цикл

 

Описание работы

По фронту сигнала на входе «SendGroup» БФ запоминает текст отправляемого сообщения, который подается на вход «SmsTextIn», и выдает его на выход «SmsTextOut» (после этого значение на входе «SmsTextIn» может меняться – на работу блока это никак не повлияет). Вход «SmsSend» и выход «SendSms» необходимо соединить с одноименными входами и выходами ФБ «FB_SMS_SR» — с их помощью будет осуществляться управление отправкой сообщений. Выход «NumCur» определяет порядковый номер текущего адресата, нумерация начинается с нуля. Когда сообщение будет разослано, на выход «Done» будет подан единичный импульс.

 

Мой блог находят по следующим фразам

Настройка подмодуля «Modem» в режиме «ожидания вызова»

Окно конфигурирования подмодуля «Modem», подключенного к модулю Modbus (slave) проиллюстрировано на рисунке 1.

Рисунок 1 – Окно конфигурирования подмодуля «Modem» в режиме «ожидания вызова»

В режиме «ожидания вызова» параметр «Block incoming calls» имеет значение «No», при этом ПЛК будет отвечать на все входящие звонки. При входящем звонке ПЛК «снимет трубку» и, если все правильно настроено, должен начаться обмен Modbus-пакетами. Когда обмен по протоколу Modbus остановится, подмодуль «Modem» спустя время «Idle disconnection time» разорвет соединение («положит трубку») и будет ожидать следующий вызов. Для корректной работы в режиме «ожидания вызова» необходимо отключить дозвон, для этого нужно установить «Amount repeat» равным 0.

Параметры «Tel number1», «Tel number2», «Tel number3», «Enable alternate numbers», «Connect time», «Repeat time», «Polling resume time» в режиме «ожидания вызова» не используются.

Мой блог находят по следующим фразам

Настройка подмодуля «Modem» в режиме «дозвона»

Окно конфигурирования подмодуля «Modem», подключенного к модулю Modbus (Master) проиллюстрировано на рисунке

Рисунок 1 Окно конфигурирования подмодуля «Modem» в режиме «дозвона»

В параметрах «Tel number1», «Tel number2», «Tel number3» заданы 3 разных телефонных номера, причем дозвон разрешен на все 3 номера (параметр «Enable alternate numbers» установлен в «Yes»). Параметр «Block incoming calls» установлен в «Yes», что запрещает отвечать на входящие звонки.

После включения ПЛК подмодуль «Modem» будет звонить с периодом 60 секунд (параметр «Repeat time»). После успешного соединения подмодуль «Modem» передаст управление модулю Modbus (Master), при этом должен начаться обмен Modbus-пакетами. Через 180 секунд после успешного соединения подмодуль «Modem» разорвет соединение (параметр «Connect time») и продолжит дозвон через 60 сек и т.д.

Когда пользователю необходимо самостоятельно считать состояние переменных протокола Modbus, он должен в своем программном обеспечении подать команду включения дозвона, записав в переменную «Start auto dial» значение «1», а затем контролировать состояние переменной «Line status» (когда соединение установлено она должна стать равной «2»). Если соединение установлено, должен начаться обмен Modbus-пакетами (если в подмодуле Universal Modbus Device установлен параметр «Work mode» = By command, то пользователь дополнительно должен подать подмодулю Universal Modbus Device команду на чтение Modbus-переменных). В случае, если обмен по протоколу Modbus остановится (как, например, в случае параметра «Work mode» = By command, если не подавать постоянно команды), подмодуль «Modem» спустя время «Idle disconnection time» разорвет соединение («положит трубку»). Для принудительного разрыва соединения пользователь должен подать команду разрыва соединения, записав в переменную «Stop dial» значение «1».

После подачи команды включения дозвона («Start auto dial» = «1») подмодуль «Modem» будет пытаться дозваниваться по последнему успешно соединенному номеру или, если такого нет, то по номеру, указанному в параметре «Tel number1». Если первая попытка дозвона была безуспешной, то подмодуль будет пробовать звонить по следующему номеру («Tel number2», затем «Tel number3») каждые 60 секунд (параметр «Repeat time»), пока не будут исчерпаны все попытки. Когда все попытки исчерпаны, подмодуль «Modem» будет пытаться возобновить дозвон с периодом, указанным в параметре «Polling resume time», т.е. через каждые 600 секунд. Если при возобновлении попыток дозвона подмодуль «Modem» успешно дозвонится, то следующие попытки дозвона будут делаться с периодом, указанным в параметре «Repeat time».

В данном примере включен программный контроль потока (параметр «Software flow control»), при этом подразумевается, что в модеме также включен программный контроль потока (иначе возможны ошибки при работе с модемом).

 P.S. Вам необходим ремонт ноутбуков Acer? Тогда добро пожаловать на наш сайт.

Мой блог находят по следующим фразам

Настройка конфигурации связи ПЛК с модемом

Файл “modem.cfg” содержит группу параметров, определяющих настройки модемного драйвера при работе в режиме протокола Gateway (например, со средой CoDeSys).
Одна строка в файле может содержать определение только одного параметра, например:
TestPeriod=5
Если после знака “=” ничего не стоит, то значение параметра принимается по умолчанию, если какогото параметра в файле нет, то его значение также принимается по умолчанию.
Описание параметров
MaxAnswerTime – максимальное время ожидания ответа на звонок, задаёт максимальную продолжительность попытки установить связь. При входящем звонке это время вычисляется с момента поступления входящего звонка до момента установления соединения (которое может произойти не сразу после «снятия трубки»). Значения устанавливаются в секундах в
диапазоне от 0 до 65535, значение по умолчанию – 40.
TestPeriod – время опроса работоспособности модема, задаёт период посылки модему тестирующих команд. Если модем на посланную команду не ответил или ответил неправильно, то в переменную «Modem fault» записывается значение 1. Значения устанавливаются в секундах в диапазоне от 0 до 65535, значение по умолчанию – 5. Значение параметра 0 означает, что работоспособность модема не надо опрашивать.
RequestTimeout — время ожидания ответов модема на команды, задают время ожидания ответов от модема на любую команду. Обычно ответы на большинство команд выдаются модемом быстрее 1 секунды, но бывает, что ответы на команды приходят медленнее, для этих случаев необходимо настраивать данный параметр. Если за «время ожидания» ответ не
был получен, то считается что модем не ответил и посылается следующая команда. Значения устанавливаются в секундах в диапазоне от 0 до 65535, значение по умолчанию – 1.
IdleDisconnectionTime – время простоя до разъединения, задают время, прошедшее с последнего обмена пакетами между ПЛК и Gateway OPC.сервером (или средой Codesys) при установленном соединении, через которое
ПЛК разорвет связь. Значения устанавливаются в секундах в диапазоне от 0 до 65535, значение по умолчанию – 60. Значение 0 означает связь при простое не разрывать.
SoftwareFlowControl – программный контроль потока, в параметре включают или выключают программное управление потоком модема. При включенном программном контроле потока ПЛК обрабатывает модемные команды Xon / Xoff. Чтобы программный контроль потока работал, необходимо также включить программный контроль потока у модема соответствующей AT-командой (см.описание АТ-команд на конкретный модем). Если необходимо включить программный контроль потока, то параметру задают значение 1, если необходимо выключить, то задают значение 0. Значение по умолчанию – 0(выключен).
ModemInitFilename – файл инициализации модема, параметр позволяет задать имя файла инициализации и путь к нему в энергонезависимой памяти ПЛК. В файле пользователь может описать дополнительные специфичные для подключенного модема строки инициализации (строки инициализации — это последовательность AT!команд в указанном файле, каждая следующая команда должна быть расположена на новой строке). Каждый раз при сбросе подключенного модема по питанию будет происходить инициализация модема из указанного файла. Если параметр не задан или указанного файла нет в памяти ПЛК, то инициализация будет происходить только AT!командой ATZ. По умолчанию путь и имя файла не заданы.
Пример:
ModemInitFilename=extconf.cfg
Пример файла “modem.cfg”
MaxAnswerTime=40
TestPeriod=10
IdleDisconnectionTime=65535
SoftwareFlowControl=0
ModemInitFilename=extconf.cfg
Параметр RequestTimeout в файле не указан, он будет принят по умолчанию.