Недавно обнаружил проблему. Посчитал, что раз уж на нее за 2 года никто не напоролся, то она не критична, поскольку в планах новая библиотека.
Вид для печати
александр 64, Ваши сообщения выделил в отдельную тему http://www.owen.ru/forum/showthread.php?t=26233 поскольку проблема не относится непосредственно к использованию библиотеки
А что тогда планируется?Цитата:
Известные проблемы библиотеки:
При входящем вызове модем перестает отвечать на команды.
Исправление не планируется.
Здравствуйте.
При проверке баланса (CheckModemBalans ) приходит сообщение с иероглифами какими то.
Подскажите, пожалуйста, что можно с этим сделать?
Используется симка МТС и СПК-207.
Контроллер сейчас на объекте, завтра смогу посмотреть, что он точно пишет.
Там 5-6 каких то непонятных символов. Может это из за того, что текст с балансом приходит на русском языке?
Спасибо. Попробую
Здравствуйте.
Был сегодня на объекте.
Если изменить номер на *100* или #100* то приходит сообщение ERROR: No answer
Если номер #100# то приходит 2-3 каких то символа
Если номер *100# то приходит сообщение на русском языке, в программе оно видится нормально, а в визуализации такое же по длине сообщение, только с непонятными символами.
Если убрать галочки Unicode, то все русские надписи в визуализациях превращаются в иероглифы, а сообщение с балансом отображается как надо.
В программе есть другие надписи на русском которые выводятся в визуализациях, они выводятся нормально, но они STRING, а баланс WSTRING. Пробовал конвертировать WSTRING в STRING и получается, что надпись в программе тоже превращается в иероглифы.
Чтобы вывести WSTRING и STRING в визуализацию надо писать %s или для WSTRING надо какую то другую букву ставить?
Вложение 30030
Вложение 30031
Для "правильной" конвертации используйте эту библиотеку:
http://www.owen.ru/forum/showthread.php?t=25981
В шапке той темы есть описание.
Алексей скажите в PRG "SmsSender" выход "xDone" о чём сигнализирует, на нём появляется импульс после завершения рассылки смс?
И будет ли актуален пример групповой рассылки после выхода новой библиотеки?
укажите в заполнителях(placeholders) конкретную версию библиотеки , что помечена у вас восклицательным знаком
скажите в PRG "SmsSender" выход "xDone" о чём сигнализирует, на нём появляется импульс после завершения рассылки смс?
И будет ли актуален пример групповой рассылки после выхода новой библиотеки?
Загрузил наконец пример групповой рассылки в СПК. При этом модем не подключил к СПК, а текущее состояние в визуализации показывает готовность модема при уровне сигнала 99 и "последними ошибками": не прошла команда АТ и т.д.
Всем добрый день.
Интересует такой момент, можно ли отправлять свои АТ команды?
Если да, то как это сделать? метод проверяющий прохождение АТ команд, только лишь говорит, что они проходят, не более того.
Прошу прощения за долгий ответ.
На текущий момент нет возможности выполнить пользовательские команды и, как следствие, нет возможности использовать HTTP/FTP.
Но подключившись к GPRS есть возможность выполнять HTTP-запросы посредством библиотеки CODESYS HTTP Client Example из магазина CODESYS (библиотека бесплатная).
http://store.codesys.com/http-client-example.html
В приложении к посту Вы найдете пример и библиотеку.
Мы планируем разработку новой библиотеки модема. Подумаем, как можно включить в нее возможность выполнения пользовательских AT-команд.
Если у Вас есть идеи и предложения к новой библиотеке - сообщите об этом пожалуйста.
А есть подобная библиотека для Codesys2.3?
Если конкретнее, то мне нужно из среды Codesys слать AT команды модему ПМ01 для удаления СМС. Может туплю, уже второй чай копаю, а все найти не могу.
Здравствуйте! А что означает ошибка 44 на выходе блока FB_GPRS?
Запускаю интернет, проходят команды
AT
OK
++++++ATH0
OK
небольшая пауза и на выходе блока ошибка 44
затем опять те же команды и так 3 раза
после этого ничего не происходит
СПК207.03.00.CS.WEB с прошивкой 3.945
таргет 3.5.4.23
CoDeSys 3.5 sp4 path4 (изначально пробовал на v3.5 sp5 path5)
пробовалась версия библиотеки 3.5.2.11, 3.5.2.7, 3.5.2.5 (результат везде одинаков)
с SMS все нормально работает (программа шлет и принимает) - проверял ради эксперимента - нужен именно GPRS, при этом симка с динамическим IP (СПК должен выступать в качестве мастера и слать запросы на ПК со статическим адресом).
ошибка 44 говорит о том, что в ОС СПК не появляется pppd , отвечающий за установление соединения и передачу данных.
подключитесь к контроллеру терминальной программой и посмотрите что происходит в процессах (команда ps ) после подачи команды /mnt/ufs/root/имя_вашего_оператора.gprs
я попробовал обновить прошивку СПК207 с 3.945 до 4.828 (СПК207.03.SC.00.WEB[M02]) и пошло подключение:
AT
OK
++++++ATH0
OK
AT
OK
AT+CGDCONT=1,"IP","internet.mts.ru"
OK
ATD*99***1#
CONNECT
~ }#A!}!}!} }.}"}&} }*} } }#}$A#oM~~ }#A!}$}!} }.}%}&0µI†}'}"}(}"E?~~ }#A!}!}"}
}/}"}&} }*} } }#}%A#}%aI~~ }#A!}"}"} }*}"}&} } } } 6U~~ }#A!}!}#} }*}"}&} }*} }
O“~~ €!
AEf?~~ €!
-†?~~ €!
~~ €! mJ??ea?eni
mJ??ea?en?“~
После CONNECT выводится часть абраканабры, появляется ошибка 44, еще выводится часть абраканабры и появляется ошибка 13. При этом после CONNECT индикатор начинает моргать в состоянии "подключен к GPRS". Это состояние продолжается бесконечно и модем не отвечает на команды. Модем должен использоваться в качестве мастера с динамическим IP. Было добавлено устройство Ethernet->Modbus_TCP_Master->Modbus_TCP_Slave. В последнем прописан IP слэйва (ПК с OPC). Обмен не пошел. На выходе блока FB_GPRS "IP" пустой. ОРС и проброс порта (502) настроено правильно (проверялось c другим модемом и другим оборудованием).
В терминале СПК не вижу команды /mnt/ufs/root/имя_вашего_оператора.gprs (в моем случае "mts.gprs" как я понимаю). Если вручную ввести, то линукс говорит, что не знает про mts.gprs.
В новой прошивке в терминале СПК появляется дополнительная строка, которой нет в старой прошивке:
pppd /dev/ttyS2 ...........................
Прикладываю две картинки для версии 3.945 и 4.828: там можно видеть CoDeSys, подключенный к СПК, терминал Putty (СПК после команды ps) и гипертерминал модема (подключен по 485 интерфейсу в одну линию с СПК и модемом).
Что я делаю не так? Может есть рекомендации к версиям прошивок, библиотек, CoDeSys и т.п.?
Вложение 32117
рис 1. прошивка 3.945
Вложение 32118
рис 2. прошивка 4.828
PS: я все же нашел mts.gprs - на старой прошивке как я уже писал не выполнялась команда из этого файла.
К предыдущему посту: увидел, что команда "pppd /dev......" пишет лог-файл. Вот его содержание (не все понимаю, что там написано, но я так понял, что соединение устанавливается и IP присваиваются):
Script /usr/sbin/chat -v -f /mnt/ufs/root/mts.gprs.chat finished (pid 773), status = 0x0
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS2
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x2fc8680c> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0xa0000> <auth pap>]
No auth is possible
sent [LCP ConfRej id=0x1 <auth pap>]
rcvd [LCP ConfRej id=0x1 <magic 0x2fc8680c> <pcomp> <accomp>]
sent [LCP ConfReq id=0x2 <asyncmap 0x0>]
rcvd [LCP ConfRej id=0x1 <auth pap>]
rcvd [LCP ConfReq id=0x2 <asyncmap 0xa0000> <auth chap MD5>]
No auth is possible
sent [LCP ConfRej id=0x2 <auth chap MD5>]
rcvd [LCP ConfAck id=0x2 <asyncmap 0x0>]
rcvd [LCP ConfReq id=0x3 <asyncmap 0xa0000>]
sent [LCP ConfAck id=0x3 <asyncmap 0xa0000>]
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 192.200.1.21>]
sent [IPCP ConfAck id=0x1 <addr 192.200.1.21>]
rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [IPCP ConfAck id=0x1 <addr 192.200.1.21>]
rcvd [IPCP ConfNak id=0x2 <addr 10.160.198.179> <ms-dns1 217.8.235.225> <ms-dns2 217.8.235.241>]
sent [IPCP ConfReq id=0x3 <addr 10.160.198.179> <ms-dns1 217.8.235.225> <ms-dns2 217.8.235.241>]
rcvd [IPCP ConfAck id=0x3 <addr 10.160.198.179> <ms-dns1 217.8.235.225> <ms-dns2 217.8.235.241>]
not replacing existing default route via 192.168.0.10
local IP address 10.160.198.179
remote IP address 192.200.1.21
primary DNS address 217.8.235.225
secondary DNS address 217.8.235.241
Script /etc/ppp/ip-up started (pid 780)
Script /etc/ppp/ip-up finished (pid 780), status = 0x0
немного смущает строка "not replacing existing default route via 192.168.0.10"
на СПК у меня такие сетевые настройки:
IP 192.168.0.204
маска 255.255.255.0
шлюз 192.168.0.10
остальное по умолчанию
текст лога обрезан - вот картинка:
Вложение 32120
Продолжаю разбираться дальше: модем у меня выходит в интернет - после подачи Enable на блок FB_GPRS идут АТ команды ..... CONNECT, индикатор GSM на модеме начинает моргать, что связь установлена и после этого в Putty ввожу команду /sbin/ifconfig и вижу, что появилось соединение ррр0, также начинает пинговаться внешний мир (на примере ya.ru). Это все хорошо, но блок FB_GPRS стоит в "стопе" - после появления CONNECT выводится ошибка 44, спустя некоторое время ошибка 13 и Stoped=true. Что с этим делать ума не приложу (библиотека компилированная....). И второй момент, который смущает - не могу разорвать соединение GPRS. Предполагаю, что он должно рваться при Enable=false на блоке FB_GPRS, но этого не происходит.
Есть какие то решения описанного?
Подскажите в библиотеке стабильно работает GPRS режим?
Доразбирался.... Я написал своё: программа устанавливает GPRS соединение, проверяет появление ppp0 соединения, пингует и выдает заключение есть ли интернет или нет. Туда же включил работу с АТ-командами записью/чтением СОМ-порта (проверку баланса, отправку смс и пр.) - правда для выполнения команд на это время нужно рвать связь по GPRS, но меня это устраивает. Теперь у меня адекватно работающая программа СПК207+ПМ01 Modbus TCP (master) - OPC (slave), которую к тому же я могу сам дорабатывать и отлаживать....
Библиотеки на модем из-за SIM800 для КДС 2 изменили, как с библиотеками под КДС 3 обстоят дела?
Пересмотрел множество тем на форуме, перегуглил полинтернета и нигде нет простого ответа
как со связки контроллер ОВЕН (СПК110,CDS3.5) + RS232 модем отправить SMS?
На ПК в терминале для этого нужно подать две простые "AT"-команды.
Тут библиотека с супернавороченными функциональными блоками, нет нормальных примеров, нет ST-функций, в описании на модем до сих пор описывается работа только с CDS2.
8 лет назад вышел CODESYS3, до сих пор вся документация на древний CODESYS2.
Мне достаточно, чтобы в контроллере ОВЕН "нащупать" RS232 COM-порт и получить возможность отправлять туда AT-команды. Как это сделать?
На первую страничку этой темы заглядывали?
Есть следующий код. Ошибок нет, но и СМС не отправляется. Все ли правильно?
Спасибо
Код:VAR
con : ComConn;
portHandle:SysCom.RTS_IEC_HANDLE;
modem:FB_SMS_CSD;
Основной гиперцикл
-------------------------
con(enable:=TRUE, PortNum:=2, PortBaudrate:=9600, PortParity:=0, PortStopBits:=1, PortByteSize:=8, Port_Mode:=0,
Handle=>portHandle, Done=>modemStat, errCode=>modemErr);
IF modemErr>0 THEN errorMsg:="Modem init error"; END_IF
modem.enable:=modemStat;
modem.handle:=portHandle;
IF bSendSMS THEN
PLC_PRG.modem.SMS_Send(send_sms:=TRUE,sms_num:='380501234567',sms_text:='hello world',sms_mode:=TRUE, SMS_send=>modemStat);
IF modemStat>0 THEN errorMsg:="SMS send error"; END_IF
END_IF
-------------------------
Недостатки библиотеки с моей точки зрения:
1 Когда на модем не подано питания, команда "отправить СМС" проходит, последующая функция считывания последней ошибки выдает 0 (ошибок нет). флаг отправки "false", но почему не понятно.
2 Нет примеров с ST языком. Громоздко использовать библиотеку в ST.
3 Зачем нужно дублирование настройки COM-порта в функции SetModemPort ?
4 Зачем номер телефона обязательно должен начинаться с "7" а например с "+" уже не работает? Терминал кажется кушал без проблем. С 38 (Украина) работает?
В HyperTerminal отправил СМС за 1 минуту, с библиотекой второй день не могу заставить.
Существуют ли для Овна альтернативные библиотеки работы с модемом?
Заранее спасибо
Подозреваю, что такое положение с библиотеками модема для КДС2 и КДС3 потому что они не официальные и на них производители смотрят сквозь пальцы.