.. include:: glb_defs.txt .. |ico| image:: ../shared_img/_cmd/m7.png Gerenciamento de pacotes SMS ############################## +----------------------------------------------------------------------------------+ |:ref:`Bloco de Controle Padrão` | +--------------+-------------------------------------------------------------------+ |Função |Comunicação utilizando Modem GSM | +--------------+-------------------------------------------------------------------+ |Nro. da Função|**236** | +--------------+-------------------------------------------------------------------+ |Caminho |Programa/Editor Ladder/Elementos/Especiais/Bloco de controle Padrão| +--------------+-------------------------------------------------------------------+ |Grupo |Especiais | +--------------+-------------------------------------------------------------------+ |Ícone ||ico| | +--------------+-------------------------------------------------------------------+ .. only:: hitec +-----------------------------------+ |:ref:`compatibilidade de firmware` | +-------------------+---------------+ |Geração de Firmware|G3, G3S, G3R]] | +-------------------+---------------+ A função deste bloco é viabilizar o acesso a funções de comunicação utilizando modem GSM. Através destas funções é possível receber, enviar e tratar comandos SMS. .. note:: A execução deste comando pode levar vários ciclos de scan para ser concluído. Portanto, verifique a condição da saída do bloco para certificar-se que o processo está terminado e, avalie o valor para parâmetro P4 para identificar possíveis falhas. Para inseri-lo no programa, deve-se posicionar o cursor na posição desejada, selecionar no menu à esquerda o grupo "Especiais" e clicar no botão correspondente, |ico| Parâmetros ************* +-----------------------------------------------------------------------------+ |Receber SMS | +============+======+==========+==============================================+ |Parâmetros |Tipos |Valores |Descrição | +------------+------+----------+----------------------------------------------+ |P1 |K |0..Max(K) |Função do bloco SCB de comunicação | | | | |utilizando modem GSM.Deve ser uma constante | | | | |inteira (Knn) cujo valor deve ser 236. | +------------+------+----------+----------------------------------------------+ |P2 |M |M[x + 0] |Código da subfunção associada à recepção de | | | | |SMS, no caso a função "Read SMS" e cujo | | | | |código deve ser 1. Esta função de recepção | | | | |não possui **timeout** para aguardar o | | | | |término da recepção, ou seja, ao ativar a | | | | |função de recepção o controlador intervalo | | | | |de tempo basta ficará aguardando a mesma | | | | |por tempo indeterminado. Se a aplicação | | | | |Ladder necessitar aguardar pela recepção de | | | | |SMS por um tempo e criar um temporizador na | | | | |aplicação Ladder para **monitorar** o tempo | | | | |que o bloco SCB fica ativo aguardando pela | | | | |recepção do SMS. | | | +----------+----------------------------------------------+ | | |M[x + 1] |Número da porta de comunicação do | | | | |controlador na qual está conectado o modem | | | | |GSM a ser utilizado para a recepção do SMS, | | | | |onde: 0 – Porta COM1, 1 - Porta COM2, 2 - | | | | |Porta COM3 (verifique as portas de | | | | |comunicação disponíveis no controlador da | | | | |EMPRESA utilizado em seu projeto). | | | +----------+----------------------------------------------+ | | |M[x + 2] |Identificador da variável de texto inicial | | | | |do tipo X, a partir da qual serão armazenadas | | | | |as 4 informações associadas à mensagem SMS | | | | |recebida com as seguintes informações: |Z1| | +------------+------+----------+----------------------------------------------+ |P3 |M |M[y + 0] |Parâmetro não utilizado para esta função | | | | |(parâmetro dummy). | +------------+------+----------+----------------------------------------------+ |P4 |M |M[z + 0] |Código de retorno da execução da função, onde:| | | | |**Igual a 0** - Indica função executada com | | | | |sucesso **Diferente de 0** - Indica condição | | | | |de falha. Vide a lista de códigos de retorno. | +------------+------+----------+----------------------------------------------+ Informações |Z1| X + 0: Número do telefone que enviou o SMS X + 1: Nome de identificação do telefone que enviou o SMS, que em geral não possui identificação, e neste caso retorna uma string nula. X + 2: Data e hora de envio do SMS X + 3: Conteúdo efetivo da mensagem SMS Por exemplo, se for especificada a variável texto X5, as 4 informações são retornadas nas variáveis X5, X6, X7 e X8 respectivamente. +-------------------------------------------------------------------------------+ |Enviar SMS | +============+======+=========+=================================================+ |Parâmetros |Tipos |Valores |Descrição | +------------+------+---------+-------------------------------------------------+ |P1 |K |0..Max(K)|Função do bloco SCB de comunicação utilizando | | | | |modem GSM.Deve ser uma constante inteira (Knn) | | | | |cujo valor deve ser 236. | +------------+------+---------+-------------------------------------------------+ |P2 |M |M[x + 0] |Código da subfunção associada ao envio de SMS, | | | | |no caso a funçã0 **Send SMS** e cujo código | | | | |deve ser 2. | | | +---------+-------------------------------------------------+ | | |M[x + 1] |Número da porta de comunicação do controlador | | | | |na qual está conectado omodem GSM a ser | | | | |utilizado para o envio do SMS, onde: 0 – Porta | | | | |COM1, 1 – Porta COM2, 2 – Porta COM3 (verifique | | | | |as portas de comunicação disponíveis no | | | | |controlador da |EMPRESA| utilizado em seu | | | | |projeto) | | | +---------+-------------------------------------------------+ | | |M[x + 2] |Identificador da variável de texto do tipo X, | | | | |cujo conteúdo deve especificar o número do | | | | |telefone para o qual a mensagem SMS deve ser | | | | |enviada. | | | +---------+-------------------------------------------------+ | | |M[x + 3] |Identificador da variável de texto do tipo X, | | | | |cujo conteúdo deve especificar o texto associado | | | | |à mensagem SMS a ser enviada. | +------------+------+---------+-------------------------------------------------+ |P3 |M |M[y + 0] |Parâmetro não utilizado para esta função | | | | |(parâmetro dummy). | +------------+------+---------+-------------------------------------------------+ |P4 |M |M[z + 0] |Código de retorno da execução da função, onde: | | | | |**Igual a 0** - Indica função executada com | | | | |sucesso **Diferente de 0** - Indica condição de | | | | |falha. Vide a lista de códigos de retorno. | +------------+------+---------+-------------------------------------------------+ +-------------------------------------------------------------------------------+ |Execução de Comando SMS | +============+======+==========+================================================+ |Parâmetros |Tipos |Valores |Descrição | +------------+------+----------+------------------------------------------------+ |P1 |K |0..Max(K) |Função do bloco SCB de comunicação utilizando | | | | |modem GSM.Deve ser uma constante inteira (Knn) | | | | |cujo valor deve ser 236. | +------------+------+----------+------------------------------------------------+ |P2 |M |M[x + 0] |Código da subfunção associada à execução de SMS,| | | | |no caso a função "Exec SMS" e cujo código deve | | | | |ser 5. Esta função espera por uma mensagem SMS. | | | | |Quando a mensagem for recebida com sucesso a | | | | |mesma é interpretada e o comando associado é | | | | |executado. Em seguida uma mensagem de retorno é | | | | |enviada para o remetente. Esta mensagem pode | | | | |conter informações retornadas pelo comando | | | | |recebido ou apenas um código de retorno | | | | |associado à execução do mesmo. | | | +----------+------------------------------------------------+ | | |M[x + 1] |Número da porta de comunicação do controlador na| | | | |qual está conectado o modem GSM a serutilizado | | | | |para a recepção do SMS, onde: 0 – Porta COM1, | | | | |1 – Porta COM2, 2 – Porta COM3 (verifique as | | | | |portas de comunicação disponíveis no controlador| | | | |da |EMPRESA| utilizado em seu projeto). | | | +----------+------------------------------------------------+ | | |M[x + 2] |Identificador da constante de texto do tipo W | | | | |na qual inicia a tabela de comandos. | | | +----------+------------------------------------------------+ | | |M[x + 3] |Identificador da constante de texto do tipo W | | | | |na qual inicia a tabela de constantes. | | | +----------+------------------------------------------------+ | | |M[x + 4] |Identificador da constante de texto do tipo W | | | | |na qual inicia a tabela de celulares Se for um | | | | |valor negativo indica o índice de uma variável | | | | |de texto do tipo X na qual inicia a tabela | | | | |de celulares. | +------------+------+----------+------------------------------------------------+ |P3 |M |M[y + 0] |Parâmetro não utilizado para esta função | | | | |(parâmetro dummy). | +------------+------+----------+------------------------------------------------+ |P4 |M |M[z + 0] |Código de retorno da execução da função, onde: | | | | |**Igual a 0** - Indica função executada com | | | | |sucesso **Diferente de 0** - Indica condição de | | | | |falha. Vide a lista de códigos de retorno. | +------------+------+----------+------------------------------------------------+ Códigos de erros de P4 ========================= +----------------------------------------------------------------------------------------------+ |Códigos de Erros de P4 | +==============+===============================================================================+ |Código de erro|Descrição | +--------------+-------------------------------------------------------------------------------+ |**0** |Função executada com sucesso. Nenhuma falha identificada no processo. | +--------------+-------------------------------------------------------------------------------+ |**7** |Função não implementada. Exemplo: Código da função de acesso ao modem GSM | | |não disponível na versão corrente do firmware. | +--------------+-------------------------------------------------------------------------------+ |**8** |Subfunção inválida. Exemplo: Código da subfunção passada como parâmetro de | | |entrada para o bloco SCB é inválida. | +--------------+-------------------------------------------------------------------------------+ |**78** |Timeout de transmissão: não foi possível fazer alguma transmissão de dados, | | |pode indicar problemas de comunicação. | +--------------+-------------------------------------------------------------------------------+ |**79** |Timeout de recebimento: não foi recebida uma comunicação que era esperada, | | |pode indicar que o modem GSM não está conectado com o cabo correto. | +--------------+-------------------------------------------------------------------------------+ |**81** |Erro de protocolo: Houve algum erro na troca de mensagens entre o controlador | | |e modem, pode indicar que não foi feita a configuração prévia indicada na nota | | |de software PNS00031. | +--------------+-------------------------------------------------------------------------------+ |**93** |Atingido limite do tamanho da constante de texto. As mensagens devem ter menos | | |de 48 caracteres, caso contrário, não podem ser armazenadas em uma variável de | | |texto, pois excedem a sua capacidade. | +--------------+-------------------------------------------------------------------------------+ Entradas ========== +------------------------------------------------------------------------------------+ |Descrição das Entradas | +=========+============+========+====================================================+ |Entrada |Função |Estado |Descrição | +---------+------------+--------+----------------------------------------------------+ |A1 |Ativação |Inativo |Neste estado o bloco não executa nenhuma ação, | | | | |repassando apenas o estado inativo para a saída B1. | | | +--------+----------------------------------------------------+ | | |Ativo |Neste estado o bloco executa a funcionalidade | | | | |associada ao mesmo. OBS: Cabe ressaltar que, para | | | | |o bloco SCB, esta entrada opera por transição ou | | | | |seja, o bloco é executado apenas quando a entrada | | | | |A1 muda do estado inativo para o estado ativo. Uma | | | | |vez ativada, a entrada A1 deverá permanecer ativa | | | | |até o términoda execução da função que é sinalizado | | | | |através da ativação da saída B1 do bloco. | +---------+------------+--------+----------------------------------------------------+ Saída ======= +---------------------------------------------------------------------------------+ |Descrição das Saídas | +=======+================+=======+================================================+ |Saída | Função |Estado |Descrição | +-------+----------------+-------+------------------------------------------------+ |B1 |Ativação/Falha |Inativo|A saída B1 sempre estará inativa se a entrada | | | | |A1 estiver inativa. Quando a entrada A1 for | | | | |ativada a saída B1 permanecerá inativa enquando | | | | |o bloco estiver executando o comando associado | | | | |indicando que o processo ainda não terminou. | | | +-------+------------------------------------------------+ | | |Ativo |Indica fim de execução do processo associado ao | | | | |bloco. Para identificar se a função foi | | | | |executada com sucesso é necessário examinar o | | | | |parâmetro P4, que contém o código indicando o | | | | |resultado da execução do processo associado. | | | | |Para mais informações sobre os códigos | | | | |disponíveis para esta função consulte a | | | | |:ref:`tabela de códigos de erro`. | +-------+----------------+-------+------------------------------------------------+ O tamanho máximo de uma mensagem SMS a ser enviada ou recebida pelo controlador é de 48 caracteres Se o modem tiver feito uma conexão TCP em modo transparente, a função não será executada. O formato para especificação do telefone destino é o mesmo utilizado para enviar mensagens SMS a partir de um celular. No entanto, para evitar problemas, recomenda-se utilizar o formato completo, que tem o seguinte formato: +ppccffffffff onde: *. **pp**: código internacional do país. No caso do Brasil 55 *. **cc**: código da cidade onde se localiza o telefone destino *. **ffffffff**: numero do telefone destino da mensagem SMS Exemplo, considerando: *. **55**: código internacional do Brasil *. **19**: código da cidade de Campinas onde se localiza o telefone destino *. **21391700**': numero do telefone destino da mensagem SMS Teremos: **551921391700** .. note:: O conteúdo do texto não pode conter caracteres acentuados. Caracteres acentuados podem ser recebidos como outro caractere. .. raw:: pdf PageBreak