В рамках тестовой версии корректность работы всего функционала не гарантируется. !!! Начиная с версии 3.5.2.12 библиотека поддерживает как модули SIM800, так и SIM900. При работе с модулем SIM800 рекомендуется использовать интерфейс RS-232 для стабильной работы библиотеки.
Библиотека содержит следующие функциональные блоки:
1) Функциональный блок работы в GPRS режиме
2) Функциональный блок открытия порта Comconn (Работает в связке с функциональным блоком звонков и смс)
3) Функциональный блок звонков и смс(FB_SMS_CSD)
Функциональный блок звонков и смс (FB_SMS_CSD) содержит следующие методы:
1) метод проверки CSD соединения
2) метод завершения CSD соединения
3) метод запуска CSD соединения
4) метод проверки регистрации модема в сети
5) метод проверки уровня сигнала
6) метод проверки прохождения АТ команд
7) метод проверки баланса
8) метод получения последней ошибки библиотеки
9) метод выдачи номера последнего входящего звонка
10) метод проверки статуса модема (в работа, свободен и т.д.)
11) метод включения/выключения проверки номера для CSD входящего
12) метод задания листа разрешённых номеров для CDS соединения
13) метод конфигурации модема
14) метод включения/выключения проверки номеров для СМС
15) метод задания листа разрешённый номеров для СМС
16) метод получения СМС
17) метод отправки СМС
Известные проблемы библиотеки:
При входящем вызове модем перестает отвечать на команды.
Исправление не планируется.
Решение: отклонять все входящие вызовы
Код:
// Задав пустой перечень разрешенных номеров
m_fb_Sms.SetCSDNumList ('');
// И включив контроль списка номеров
m_fb_Sms.SetCSDNumCheck (TRUE);
Добавлена поддержка модемов ПМ01 с модулями SIM800.
3.5.2.11
18.01.2017
ФБ FB_SMS_CSD
Исправлена ошибка, при которой после проверки баланса переменная NewInSmsText содержала текст предыдущей SMS
3.5.2.10
27.12.2016
ФБ FB_SMS_CSD
Теперь регистрация в сети, уровень сигнала и присутствие модема опрашиваются автоматически во время бездействия модема
Интерфейс методов CheckModemREG, CheckModemSignal оставлен без изменений для обратной совместимости, но методы всегда возвращают необходимые значения вне зависимости от входных переменных
CheckModemSignal может вернуть значения 0-31 (уровень сигнала модема) и 99 - ошибка измерения
Исправлена ошибка, при которой модем не удалял входящие SMS
FB_SMS_CSD.SMS_Send:
Исправлена ошибка, при которой метод мог вернуть True, хотя SMS еще не была отправлена
Все ФБ
Теперь, если эхо включено, из ответа модема автоматически удаляется эхо
Если эхо было включено - после получения полного ответа модема эхо будет отключено автоматически
Теперь выполнение команды контролируется не только по таймауту, но и по признаку конца команды $r$nOK$r$n за счет чего выросла скорость работы ФБ
по поводу рестарта вопрос понятен и в разработке, это конечно недочет циклограммы работы.
13.03.2015, 14:08
sil18
Хотелось бы увидеть версию этой библиотеки без включенного ФБ ComConn, т.к. при использовании этой версии совместно с ModulsOwenLib возникает конфликт: "ambigous use of name 'ComConn'"
12.05.2015, 23:30
Votrj1
Люди для инфо:
Не сочтите что я рекламирую продукт, но только купил 2шт ПМ01 и выкинул под стол, не в обиду но детсад.
Взял Irz АТМ3-485, летает 3G и куча наворотов,ModBus мастер,слейв через TCP и ...., которые даже не использовал и не дорого.
13.05.2015, 10:35
vnkorol
Цитата:
Сообщение от Votrj1
Люди для инфо:
Не сочтите что я рекламирую продукт, но только купил 2шт ПМ01 и выкинул под стол, не в обиду но детсад.
Взял Irz АТМ3-485, летает 3G и куча наворотов,ModBus мастер,слейв через TCP и ...., которые даже не использовал и не дорого.
Скажите, Вы в принципе осознаете, для чего подавляющее большинство использует модемы в системах промышленной автоматизации?
17.05.2015, 08:43
SA104
Доброго времени суток. Вопрос к модератору.
Объясните пожалуйста, почему в файле примера задействован порт Ethernet, а на ПМ01 только COM и RS485 присутствуют?
И если можно, такой же простой пример для СПК207 хотелось бы увидеть.
18.05.2015, 11:00
Трофимов Артем
пример для спк207 аналогичный. просто замените таргет.
после необходимых операций ОС контроллера защёлкивает интерфейс используемый и поднимает PPP Драйвер, который сам обрабатывает передачу данных между модемом и СПК по последовательному порту. Вы же работаете с ethernet устройством в ОС контроллера.
05.06.2015, 00:14
Sergey666
При переключении порта модема в режим РРР драйвера , не важно библиотечным ФБ или командой sysexecute();, после пересброса модема и закрытия-открытия порта ФБ отправки-приема СМС не работают . По ходу ОС не отпускает порт ...
Есть ли команда на "отрыв" порта модема от РРРшного драйвера ОС ?
Это необходимо для прерывания основной работы модема в качестве доступа gprs , переключения в режим отправки смс и возврата обратно в основной режим работы .
ПЛК 323 если чего.
05.06.2015, 09:38
Трофимов Артем
вы библиотеку GPRS остановили? по заднему фронту enable производится завершение процесса PPPD драйвера, после чего проверяется работа модема АТ командами , после чего порт закрывается и освобождается. на это требуется около 15 секунд.
сейчас ФБ GPRS перерабатывается, будет более гибким в подключении.
можете посмотреть, когда сталкиваетесь с проблемой доступа к модему, в ОС ПЛК поднят PPP драйвер или процесс?
01.07.2015, 09:39
timurt
Не могу отправить **** прием идет, а пытаюсь отправить все виснет.(СПК207web). Если можно поподробнее, как отправлять SMS?
01.07.2015, 10:49
Трофимов Артем
конфигурирование модема проводили блоком set_modem_port? и , надеюсь, Вы не используете одновременно и GPRS и блок SMS_CSD?
01.07.2015, 19:51
timurt
Пробовал по всякому, ничего не выходит. Если нетрудно, подскажите как ???
01.07.2015, 22:08
timurt
Сори. На карте не было денег. Но почему он зависает? Подскажите, пожалуйста, как это лечится?
01.07.2015, 23:58
timurt
Артем, что может быть? Две карты одного оператора, одна работает нормально, вторая принимает, но когда пытаешься отправить смс виснет модем,хотя на телефоне все работает.
02.07.2015, 14:20
Трофимов Артем
какого оператора сим карты? давно приобретали их?
23.07.2015, 17:20
piccoola
а как библиотеку в проекте добавить??? у нее же расширение не lib?
23.07.2015, 18:03
murdemon
это для СПК207 для Codesys 3 только
28.08.2015, 09:48
эл.монтёр
Прошу помощи!
Не могу связать СПК207 и ПК по GPRS используя библиотеку ModemOwenLib.
Cхема: СПК207+ПМ01+GPRS+Лектус(ПК).
Отправление СМС получается, а связь по GPRS нет.
При подключении Гипертерминалом к ПМ01 на ПК вижу ,что то вроде,
+++ATH0
ОК
три раза и тишина.
Схема ПЛК150+ПМ01+GPRS+Лектус работает, однако конвертировать программу CoDeSys2 в CoDeSys3 не получилось.
Использую следующие компоненты:
СПК207.03.CS.WEB
прошивка 3.945
CodeSys v3.5 SP5 Patch5
Target 3.5.4.20
ModemOwenLib v3.5.1.3(GPRS)
21.10.2015, 09:07
Maxim_nullmodem
Цитата:
Сообщение от эл.монтёр
Прошу помощи!
Не могу связать СПК207 и ПК по GPRS используя библиотеку ModemOwenLib.
Cхема: СПК207+ПМ01+GPRS+Лектус(ПК).
Отправление СМС получается, а связь по GPRS нет.
При подключении Гипертерминалом к ПМ01 на ПК вижу ,что то вроде,
+++ATH0
ОК
три раза и тишина.
Схема ПЛК150+ПМ01+GPRS+Лектус работает, однако конвертировать программу CoDeSys2 в CoDeSys3 не получилось.
Использую следующие компоненты:
СПК207.03.CS.WEB
прошивка 3.945
CodeSys v3.5 SP5 Patch5
Target 3.5.4.20
ModemOwenLib v3.5.1.3(GPRS)
Помощи не будет..... все тут поляжем...
29.01.2016, 15:12
energvk
Вложений: 1
Добрый день! Есть проблема с подключением gprs режима: в момент соединения происходит вылет спк по исключению. Тестировал уже с разным временем цикла, вплоть до свободного (с watchdog'ом на 10 сек).
Подключаюсь по 485-му на скорости 115200 (в модеме скорость введена, эхо отключено).
В логе подключения с модемом:
Пару месяцев назад тестировал - работало, правда не помню точно, кажется это было на RS-232. А так тоже самое.
Что можно проверить?
29.01.2016, 16:11
energvk
Создал чистый проект, добавил только одну библиотеку для gprs, задача - 10 мс. Подключение выполняется. Не понимаю...
В общем, добавил в главную задачу с PLC_PRG и убрал с него сторожевой таймер - заработало. Что не ясно, почему сторожевой таймер основной задачи срабатывал, если программа для gprs крутилась в отдельной задаче и нормально, если без сторожевого таймера останется, а то как то смущает. Хотя не понятен принцип его работы, мне казалось, что при его срабатывании СПК должно перезагружаться, однако этого не происходит.
Установил сторожевой таймер основной задачи на 2000 мс и вынес программу gprs в отдельную задачу - работает. Думаю, неплохо бы в мануал включить информацию по watchdog'у.
02.02.2016, 16:59
energvk
Цитата:
Сообщение от Трофимов Артем
можете посмотреть, когда сталкиваетесь с проблемой доступа к модему, в ОС ПЛК поднят PPP драйвер или процесс?
не подскажите, каким образом можно контролировать этот процесс? пытаюсь решить аналогичную задачу...
03.02.2016, 09:42
energvk
И ещё у меня вопросик по библиотеке. Работает gprs по RS-232 интерфейсу? Переключил интерфейс (СПК-107) в режим 232-го, поменял подключение на модеме, но не вижу даже обмена по лампочкам.
Разобрался. Нашел на форуме информацию по поводу использования интерфейса и задержки времени
06.02.2016, 01:09
energvk
Что означает, когда отключаешь команду enable, выход ФБ отключается, драйвер pppd останавливается (проверяю через sysexecute), но модем моргает, как будто подлючен к gprs?
08.02.2016, 18:31
energvk
Более менее разобрался с работой библиотеки (кроме проблемы в посте выше, которую лечу перезагрузкой питания модема,что не есть хорошо). Но есть ещё один вопрос: как понять, что Фб GPRS завершил работу и главное - освободил порт?
12.02.2016, 13:46
energvk
Хоть и разработчики библиотеки видимо игнорируют эту тему, но опять же задам очередной вопрос. После недели ковыряния с библиотекой, выяснил таки проблему, почему нормально не работает переключение работы с смс на gprs. В обратную сторону всё работает как нужно. Но если поработал с FB_SMS_CSD или его методами, то всё, туши свет (то бишь перезагружай модем). В случае если вход enable FB_SMS_CSD из true перевести в false или оставить в true, но закрыть порт, то с модемом работать больше нельзя, он либо не отвечает на запросы, либо даже запросы не идут (если смотреть по лампам RXD, TXD модема). Что с этим делать, ума не приложу.
12.02.2016, 16:30
Трофимов Артем
добрый день, а чем Вы открываете порт для отправки смс? через Com_Conn?
если да, то как закрываете? сталкивался с такой ошибкой, что снимают флаг enable на входе, считая, что порт закрывается. на самом деле надо сделать так:
вот после этого действия порт будет закрыт и можно инициировать GPRS.
13.02.2016, 15:38
energvk
Цитата:
Сообщение от Трофимов Артем
добрый день, а чем Вы открываете порт для отправки смс? через Com_Conn?
если да, то как закрываете? сталкивался с такой ошибкой, что снимают флаг enable на входе, считая, что порт закрывается. на самом деле надо сделать так:
вот после этого действия порт будет закрыт и можно инициировать GPRS.
Добрый.
Да, работал через ComConn, потом уже пробовал через ComService, разницы нет. Порт закрывал именно через
port_control(enable:= TRUE,Port_CloseOn:=TRUE );
port_control(enable:=FALSE);
Порт нормально открывается и закрывается. Пока тестировал работу смс+гпрс в основной программе, не мог понять почему идут сбои. Когда уже создал новую программу для тестирования именно этой библиотеки, тогда и нашел точку преткновения в FB_SMS_CSD. То есть пока с этого ФБ не снять флаг enable - всё нормально, но если его отключить и потом включить - начинается беда. И не только в попытке работы GPRS. Допустим для примера я открыл порт (GPRS вообще исключил и не работаю с ним), запустил данный ФБ, отправил сколько нужно и куда нужно сообщений и снял флаг enable (с закрытием порта или без - неважно). Если вдруг я надумал снова работать с модемом (проверить ли связь с модемом, отправить ли или принять сообщения и т.п.), по идее я должен снова открыть порт (если его закрывал), подать enable на FB_SMS_CSD и вызывать нужные мне методы. Но... в модем команды больше не идут пока не сбросить СПК (возможно просто перезагрузить модем, отдельно не проверял, питание модема и СПК связано, но сброс или холодный сброс СПК помогает). При этом переключаю модем на ББ и с гипертерминалом спокойно работаю, т.е. модем не висит и с ним можно работать. Как то так. В общем почти написать свой блок отправки **** как закончу - проверю с ним.
14.02.2016, 10:40
energvk
Вложений: 1
capzap да нечего то выкладывать, просто повторил пример из руководства Вложение 22620
Не знаю, имеет ли значение, но работа на скорости 115200 по RS-232
15.02.2016, 18:42
energvk
Написал свой блок отправки сообщений и проверил связку gprs+sms с ним. Всё отлично работает :) Ещё бы решить проблему, указанную в посте 26 и периодические сбои корректного завершения сеанса gprs (бывает, что при снятии флага enable сессия не завершается), было бы вообще супер. Подумываю о написании своего ФБ работы с внутренним tcp/ip стеком, но полного понимания пока нет. После поднятия сессии gprs что делать дальше не очень понятно (например принцип пингования и т.п.),да и какое соединение брать в основу,если непрозрачный режим, то как с ним работать. Может кто подскажет нюансы ? :rolleyes:
16.02.2016, 10:30
Трофимов Артем
библиотека после снятия влага enable сканирует подаёт команду убить pppd , после этого сканируется наличие pppd как соединения, так и процесса , его инициирующего, когда всё закрыто, для доп проверки открывается порт, модем переводится в режим приёма АТ команд , шлётся ATH , порт закрывается.
вот после закрытия порта уже ставится флаг stoped - и его надо дождаться. этот процесс может занять время.
17.02.2016, 01:10
energvk
Ну алгоритм то мне понятен был в принципе, единственно, что я не подумал про
Цитата:
процесса , его инициирующего
. Вот флаг stoped уже интересно, как бы его вытащить наружу? Или это тоже самое, что флаг Done в режиме FALSE? (хотя не похоже). У меня ситуация (описанная в посте №26) всё же непонятная: порт Done в FALSE, соединение ppp0 нет (пишу в файл и проверяю его содержание), вот насчёт инициирующего процесса, не знаю, не проверял. При этом модем моргает как в режиме gprs (ждал несколько минут) и не доступен AT командами, можно ли при этом открыть порт (не проверял) и принудительно перевести в режим команд пока тоже не пробовал (будет время - проверю) (по идее можно с компа подключиться при этом). По сути, если на модем не смотреть, то такое событие можно отследить по недоступности AT-команд, что через заданное время можно проверять. В общем много костылей, на которые нужно время. И что неприятно - такая ситуация возникает весьма часто.
Плюс к этому, часто процесс не завершается после снятия флага enable (тоже ждал минутами), но это хотя бы можно по флагу done понять и по наличию ip и ppp0.
И что ещё не нравится, что бывает соединение с оператором устанавливается, но интернет остается недоступен (как я догадываюсь, не выполняется ppp авторизация). И на этом всё заканчивается, реконнектов никаких нет. Ну и ещё было несколько раз, обнаруживал на утро разрыв соединения, хотя опять же вопрос к рекконектам, где они? В общем к библиотеке очень много вопросов. Если выбрать что-то одно: отправку сообщений или gprs, то их поменьше, но вот комплексная работа - это вообще без комментариев
18.02.2016, 10:36
Трофимов Артем
извиняюсь, у Вас версия библиотеки с форума, а я подумал что обновленная.
ФБ GPRS перерабатывался. к сожалению , у него есть недостаток в современной версии - не вычитывается IP симки(фильтрацию не успел доделать корректную). но алгоритм был переработан и сделан более гибким. также были добавлены инструкции изменять MTU и MRU размеры в экзотических случаях настроек у операторов.
если интересно, напишите в личку Вашу почту, скину обновленный вариант. т.к. есть этот недочёт, библиотека не выкладывалась в общий доступ
21.02.2016, 01:00
energvk
Спасибо, получил, протестирую, тем более пока успехов с применением внутреннего tcp стека, кроме подключения, не получено, будем тестировать и пользоваться. Насчёт того, что ip-адрес не вычитывается: он же будет прописан в файле в который вывести информацию командой '/sbin/ifconfig ppp0'? Для интереса думаю вычитку самому сделать (хотя она и не нужна пока), до СПК просто несколько дней не доберусь,чтобы проверить.
24.02.2016, 15:53
energvk
Ещё вопросик: в вашей библиотеке используется CAA File версии 3.5.0.0, где её взять? у меня куча вариантов установлена, но этой версии нет. А проект без неё не компилируется ,соответственно
P.S. Как выяснилось, на домашнем компе всё есть, на рабочем значит разберусь куда она делась...
25.02.2016, 16:39
energvk
Всё установил. Блок работает, в интернет выходит. Но... не могу подключится opc-сервером. При этом модем пингуется. Что может быть не так?
После перезагрузки СПК всё заработало.
05.03.2016, 06:29
ИванД
добрый день.
Подскажите с чем связана такая ошибка [FATAL ERROR] Неразрешённая ссылка: 'SYSEXECUTE2__MAIN'
при использовании блока FB_GPRS в момент загрузки программы в плк, вылезает такая ошибка.
05.03.2016, 08:39
ИванД
323. пытаюсь настроить передачу данных с плк323 на статичный ip. если использовать выше описанный блок, то ругается этой ошибкой при загрузке. если пытаюсь работать через конфигурацию ethernet-modbus_master - modbus_slave - задаю адрес Ip и порт. загружаю, запускаю- все окей. Как только создаю канал и присваиваю переменную, которую надо переслать - при переводе в режим run, slave выдает ошибку шины (шина не запущена)
05.03.2016, 09:08
ИванД
использую в менеджере версию 1.0.0.2 этой библиотеки. как только добавляю основной блок GPRS, задаю ему переменные и загружаю, при загрузке снова вылазит эта ошибка.