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

Тема: ПМ01 и СМС

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Exclamation ПМ01 и СМС

    Подскажите пожалуйста рабочий пример для отправки и приема СМС!!!

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

    По умолчанию

    http://www.owen.ru/forum/showthread.php?t=11277
    а почему здесь не рабочие примеры, можете объяснить, что не устраивает?

    PS задайте вопрос создателю темы http://www.owen.ru/forum/showthread....ewpost&t=12853 где он взял библиотеку, у него там несущественные трудности, но как я понял бибка должна быть вполне рабочая
    Последний раз редактировалось capzap; 18.06.2012 в 16:29.

  3. #3

    По умолчанию

    В программе видно что модем принимает **** а вот на выходе блока текста нет.

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

    По умолчанию

    Цитата Сообщение от maks-tver Посмотреть сообщение
    В программе видно что модем принимает **** а вот на выходе блока текста нет.
    мне лично это не о чем не говорит, работу связки плк+пм01 с смс я писал самостоятельно, поэтому что там у Вас за блок, который не выдает текст, со всеми своими телепатическими возможностями не могу увидеть

  5. #5

    По умолчанию

    а для примера не могли бы поделиться?

  6. #6

    По умолчанию

    Цитата Сообщение от maks-tver Посмотреть сообщение
    В программе видно что модем принимает **** а вот на выходе блока текста нет.


    Столкнулся с похожей проблемой.
    Переделал функциональный блок расшифровывающий PDU смс.
    Работает только с латиницей и не возвращает дату.

    В FB GSM_Modem_SMS вместо

    DB(pBuf:=ADR(rcvStr),str_sender=>rcvedPhonNum,str_ time=>rcvedTm,str_message=>rcvedSMS);

    вставил
    _DPDU(msg:=rcvStr,txt=>rcved****num=>rcvedPhonNum) ;

    где
    _DPDUecodePDU;

    Вот код DecodePDU:

    FUNCTION_BLOCK DecodePDU
    VAR_INPUT
    msg:STRING(256);
    END_VAR
    VAR_OUTPUT
    txt:STRING(256);
    num:STRING(256);
    END_VAR
    VAR
    dw0WORD;
    bt0:BYTE;
    s0:STRING(256);
    s1:STRING(256);
    s2:STRING(16);
    bt1:BYTE;
    b0:ARRAY[0..7] OF BOOL;
    b1:ARRAY[0..7] OF BOOL;
    _UP:UNPACK;
    END_VAR


    s0:=LEFT(msg,2);
    bt0:=HEX_TO_BYTE(s0);
    s0:=DELETE(msg,bt0*2+4,1);
    s1:=LEFT(s0,2);
    bt0:=HEX_TO_BYTE(s1);
    s0:=DELETE(s0,4,1);
    IF (bt0 MOD 2)=1 THEN bt0:=bt0+1; END_IF
    s1:='';
    s1:=MID(s0,bt0,1);
    num:='';
    FOR dw0:=1 TO TRUNC(bt0/2) DO
    s2:=LEFT(s1,1);
    IF s2='F' THEN s2:=''; END_IF
    s1:=DELETE(s1,1,1);
    s2:=CONCAT(LEFT(s1,1),s2);
    s1:=DELETE(s1,1,1);
    num:=CONCAT(num,s2);
    END_FOR
    s1:=LEFT(num,1);
    IF s1<>'7' AND s1<>'8' THEN
    num:='';
    END_IF
    s0:=DELETE(s0,bt0+18,1);
    s1:=LEFT(s0,2);
    bt0:=HEX_TO_BYTE(s1);
    s0:=DELETE(s0,2,1);
    txt:='';
    bt1:=1;
    WHILE LEN(txt)<bt0 DO
    IF bt1=8 THEN
    bt0:=PACK(b1[1],b1[2],b1[3],b1[4],b1[5],b1[6],b1[7],0);
    bt1:=1;
    ELSE
    s2:=LEFT(s0,2);
    s0:=DELETE(s0,2,1);
    bt0:=HEX_TO_BYTE(s2);
    _UP(B:=bt0,B0=>b0[0],B1=>b0[1],B2=>b0[2],B3=>b0[3],B4=>b0[4],B5=>b0[5],B6=>b0[6],B7=>b0[7]);
    bt0:=SHL(bt0,bt1);
    bt0:=SHR(bt0,bt1);
    IF bt1>1 THEN
    bt0:=SHL(bt0,bt1-1);
    FOR dw0:=0 TO bt1-2 DO
    IF b1[7-dw0] THEN bt0:=SET_BIT_BT(VAL:=bt0,BIT:=DWORD_TO_BYTE(bt1-2-dw0)); END_IF
    END_FOR
    END_IF
    b1[0]:=b0[0];b1[1]:=b0[1];b1[2]:=b0[2];b1[3]:=b0[3];
    b1[4]:=b0[4];b1[5]:=b0[5];b1[6]:=b0[6];b1[7]:=b0[7];
    bt1:=bt1+1;
    END_IF
    txt:=CONCAT(txt,CHR_TO_STRING(bt0));
    END_WHILE

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

    По умолчанию

    не-а, не поделюсь. Во первых за основу я брал те же примеры которые есть на сайте и на дисках поэтому ни чего гениального у меня нет, во вторых тема для меня была новая, я сам еще не все ньюансы разобрал, что же касается отправки и чтения, так это точно такая же работа как с модбасом, чуть по сложнее только упаковка/распаковка массива байт

  8. #8

    По умолчанию

    А запись и чтение из порта обязательно производить в разных циклах, а то при чтениии из порта у меня какая то абра кадабра (набор непонятных символов) вылазит

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

    По умолчанию

    соединение по какому порту, у меня мусор бывает, если я опрашиваю модем с помощью плк по 485 и невыключил работу другой программы типа гипертерминала.
    И кстати не доходя до программирования плк, как читаются и пишутся смс с ПК?

  10. #10

    По умолчанию

    Порт СОМ1, с ПК не пробовал.

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

Похожие темы

  1. Связка МВА8-ПЛК100-ПМ01-GPRS-ПМ01-LectusOPC-SCADA
    от vapik в разделе Сетевые технологии
    Ответов: 14
    Последнее сообщение: 20.05.2014, 22:48
  2. Связка: Реле-ПМ01 ПМ01- Мастер Скада
    от Polluks в разделе Программируемые реле
    Ответов: 6
    Последнее сообщение: 06.06.2012, 17:57
  3. связь модем ПМ01-ПМ01 по GPRS
    от kycua в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 22.12.2011, 16:16
  4. МВА8-ПЛК100-ПМ01-ПМ01-CodeSyS
    от Александр Ч. в разделе Эксплуатация
    Ответов: 55
    Последнее сообщение: 03.03.2011, 07:07

Ваши права

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