Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: ПМ01 определить входящий вызов

  1. #1

    По умолчанию ПМ01 определить входящий вызов

    Подскажите, пожалуйста, возможно ли понять из ПЛК звонит ли кто в данный момент и определить номер звонящего.
    Я так понимаю после поступления 'RING' послать 'AT+CLCC' и разобрать номер из принятой после этого строки из буфера? Я прав?
    Модемы пока не пришли и опыто работы с gsm 0, поэтому пока хочу накидать программу примерную.
    Последний раз редактировалось PavelGO; 05.03.2013 в 17:21.

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,249

    По умолчанию

    AT+CLCC$R$N вроде так, а вообще послушайте постоянно порт и сделайте вызов и увидите какой вывод будет в терминале

  3. #3

    По умолчанию

    Спасибо. Там и будет видно. Подскажите еще вот что:
    Если я буду ждать ответа от модема после команды, не перезагрузится ли ПЛК из за превышения времени цикла. Сейчас стоит 10. Сей час он опрашивает модули и передаёт параметры и аварии в самописную скаду, что уже вызывает некоторые задержки.
    Вот и вопрос: Вызывать целиком проверку входящих и отправку смс в отдельных функциях или выполнять параллельно с основной программой.
    На сколько быстро, по вашему опыту, модем отвечает на команды?

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,249

    По умолчанию

    http://www.owen.ru/forum/showthread.php?t=13029
    прочтите про эту библиотеку: в первых трех постах - сама, описание и примеры. Кроме сообщений она проверяет наличие входящих звонков

  5. #5

    По умолчанию

    читал. факт поступления вызова есть, но номера нет.По этому syslibcom и хочу использовать.

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,249

    По умолчанию

    я команду назвал. А на какой библиотеке Вы сделаете, это лично Ваше дело. Суть проста, открыли порт, сделали запрос и начинаете каждый цикл ждать ответ, как что то приходит, преобразуете в строку и анализируете что получилось

  7. #7

    По умолчанию

    С отправкой смс syslibcom разобрался.Спасибо. Но
    Почему то на запрос CLLC сначала приходи в буффер
    '$R$N+CLCC: '
    потом
    ',"+7953950'
    т.е. кусками.
    Так и должно быть? По справочнику команд вроде строкой должно быть.
    Как считаете?
    Считываю как в примере:
    sz:=SysComRead(com_num,ADR(rcvBUF),1024,0);

    IF sz<>0 THEN (*&#247;&#242;&#229;&#237;&#232;&#229; &#239;&#238;&#240;&#242;&#224;*)
    rcvStr:='';
    (*&#197;&#241;&#235;&#232; &#247;&#242;&#238; &#242;&#238; &#239;&#240;&#232;&#248;&#235;&#238; &#238;&#242; &#236;&#238;&#228;&#229;&#236;&#224;*)
    FOR iter:=0 TO sz-1 DO
    a_char:=ADR(rcvBuf[iter]);
    rcvStr:=CONCAT(rcvStr,LEFT(a_char^,1));
    IF LEN(rcvStr)>250 THEN
    rcvStr:=DELETE(rcvStr,1,1);
    END_IF
    END_FOR
    obmen:=CONCAT(obmen,rcvStr);

  8. #8
    Пользователь Аватар для Olegis
    Регистрация
    24.07.2007
    Адрес
    Белгород
    Сообщений
    137

    По умолчанию

    Цитата Сообщение от PavelGO Посмотреть сообщение
    С отправкой смс syslibcom разобрался.Спасибо. Но
    Почему то на запрос CLLC сначала приходи в буффер
    '$R$N+CLCC: '
    потом
    ',"+7953950'
    т.е. кусками.
    Так и должно быть? По справочнику команд вроде строкой должно быть.
    Как считаете?
    Все правильно у вас приходит, у меня также работает. Приходит не кусками,а так задумано в ответе, как бы второй строкой. Не заморачивайтесь, просто обрабатывайте в своей программе.
    Пишу на Assembler-е за еду

  9. #9

    По умолчанию

    Остальные ответы он тоже присылает кусками:
    Например:K$R$N
    В строке ОК уже нет и предыдущий пример уже неверно работает.
    Может длина буфера где задаётся? Либо алгоритм усложнять придется.

    Дело всё было в не знании особенностей работы с портами. Модем не успевает передать в порт, а я его уже считываю.
    Последний раз редактировалось PavelGO; 14.03.2013 в 11:32.

  10. #10

    По умолчанию

    Реализовал всё что надо. Осталось проверять баланс. Но модем ничего кроме ок на команды не отвечает.
    Пробовал 'AT+CUSD=1,"*105#",15$R$N',
    'ATD*105#$R$N',
    'ATD#105#$R$N'
    Оператор Теле2.
    Знает кто дельную команду?

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Вызов POU на языке LD
    от ZPavel в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 28.02.2012, 00:55
  2. определить target
    от aven в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 29.03.2011, 17:52
  3. вызов программ
    от woffka в разделе ПЛК1хх
    Ответов: 13
    Последнее сообщение: 13.12.2010, 11:08

Ваши права

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