domingo, 4 de dezembro de 2022

U-BLOX NINA W106 (ESP32) e MODBUS TCP - CLIENTE VISUINO

 U-BLOX NINA W106 (ESP32) e MODBUS TCP - CLIENTE VISUINO


O objetivo deste BLOG é demonstrar como é possível utilizar o VISUINO para programar o módulo U-BLOX NINA W106 para então via TCP/IP acessar um servidor MODBUS. Foi utilizado o EVK-NINA-W para os testes e então solicitadas leituras (HOLDING REGISTERS em diferentes ID) a um emulador de servidor MODBUS TCP/IP.

MODBUS

Modbus é um Protocolo de comunicação de dados utilizado em sistemas de automação industrial. Criado originalmente no final da década de 1970, mais especificamente em 1979, pela fabricante de equipamentos Modicon. É um dos mais antigos e até hoje mais utilizados[2] protocolos em redes de Controladores lógicos programáveis (PLC) para aquisição de sinais(0 ou 1) de instrumentos e comandar atuadores. A Schneider Electric (atual controladora da Modicon) transferiu os direitos do protocolo para a Modbus Organization em 2004 e a utilização é livre de taxas de licenciamento.Por esta razão, e também por se adequar facilmente a diversos meios físicos, é utilizado em milhares de equipamentos existentes e é uma das soluções de rede mais baratas a serem utilizadas em Automação Industrial.

Originalmente implementado como um protocolo de nível de aplicação destinado a transferir dados por uma camada serial, o Modbus foi ampliado para incluir implementações em comunicações seriais, TCP/IP e UDP (user datagram protocol). 

O Modbus é um protocolo de requisição-resposta que utiliza um relacionamento mestre-escravo. Em um relacionamento mestre-escravo, a comunicação sempre ocorre em pares — um dispositivo deve iniciar a requisição e então aguardar por uma resposta — e o dispositivo iniciador (o mestre) é responsável por iniciar cada interação. Tipicamente, o mestre é uma interface homem-máquina (IHM) ou sistema SCADA (Supervisory Control and Data Acquisition) e o escravo é um sensor, controlador lógico programável (CLP) ou controlador programável para automação (CPA). O conteúdo dessas requisições e respostas e as camadas de rede pelas quais essas mensagens são enviadas são definidos pelas diferentes camadas do protocolo.

Acesso aos dados no Modbus e o modelo de dados do Modbus

Os dados que podem ser acessados pelo Modbus são armazenados, de forma geral, em um dos quatro bancos de dados, ou faixas de endereço: coils, entradas discretas, registradores holding e registradores de entrada. Como ocorre com muitas partes da especificação, esses nomes podem variar, dependendo da indústria ou aplicação. Por exemplo, os registradores holding podem ser denominados registradores de saída, e os coils podem ser referidos como saídas digitais ou discretas. Esses bancos de dados definem o tipo e os direitos de acesso dos dados contidos. Os dispositivos escravos têm acesso direto a esses dados, que são hospedados localmente nos dispositivos. Os dados que podem ser acessados pelo Modbus são de forma geral um subconjunto da memória principal do dispositivo. Por outro lado, os mestres Modbus precisam solicitar acesso a esses dados, utilizando diversos códigos de função

Endereçamento do modelo de dados

A especificação define que cada bloco contém um espaço de endereçamento de até 65.536 (216) elementos. Com a definição da PDU, o Modbus define o endereço de cada elemento de dados na faixa de 0 a 65.535. Entretanto, cada elemento de dados é numerado de 1 a n, onde n tem o valor máximo de 65.536. Assim, o coil 1 está no endereço 0 do bloco de coils, enquanto que o registrador holding 54 está no endereço 53 da seção de memória reservada pelo escravo para os registradores holding.

Não é obrigatório implementar as faixas completas permitidas pela especificação no dispositivo. Por exemplo, pode ser escolhido para um dado dispositivo não implementar coils, entradas discretas ou registradores de entrada e, em vez disso, utilizar registradores holding de 150 a 175 e 200 a 225. Isso é perfeitamente aceitável; nesse caso, tentativas de acesso inválidas seriam tratadas por exceções.

Faixas de endereçamento de dados

Embora a especificação defina que diferentes tipos de dados devem existir em blocos diferentes e atribua uma faixa de endereços local para cada tipo, isso não implica que haverá necessariamente um esquema de endereçamento intuitivo ou facilmente compreensível para a documentação da memória que pode ser acessada pelo Modbus para um determinado dispositivo. Para simplificar a discussão sobre as posições dos blocos de memória, foi introduzido um esquema de numeração que inclui prefixos ao endereço dos dados em questão.

Por exemplo, em vez de se referir a um item como registrador holding 14 no endereço 13, o manual do dispositivo pode se referir a um item de dados no endereço 4.014, 40.014 ou 400.014. Em todos esses casos, o primeiro número especificado é 4, que representa os registradores holding; os demais números especificam um endereço. A diferença entre 4XXX, 4XXXX e 4XXXXX depende do espaço de endereços utilizado pelo dispositivo. Se todos os 65.536 registradores estiverem em uso, utilizaremos a notação 4XXXXX, pois ela permite o uso da faixa de 400.001 a 465.536. Se apenas alguns registradores forem usados, uma prática comum é usar a faixa de 4.001 a 4.999.

Maiores detalhes neste excelente LINK


MODBUS TCP (Utilizado)

Modbus TCP/IP, também conhecido como Modbus-TCP é simplesmente o protocolo Modbus RTU com uma interface TCP que é executada na Ethernet.
TCP/IP chamado de Protocolo de Controle de Transmissão e Protocolo de Internet, que fornece o meio de transmissão para mensagens Modbus TCP/IP.
O TCP/IP facilita um grande número de conexões simultâneas, por isso é a escolha do iniciador se reconectar uma conexão ou reutilizar uma conexão vivida.


SOFTWARE SIMULADOR SERVER (PORTA 502)


Requer o Microsoft Visual C++ Redistributable para Visual Studio 2010.

Para sistemas operacionais de 32 bits e 64 bits

u-BLOX NINA W106

Wi-Fi 802.11b/g/n
Dual-Mode Bluetooth v4.2
Poderoso suporte de CPU aberta para aplicativos personalizados
Tamanho pequeno e várias opções de antena
Pino compatível com outros módulos NINA
Certificação global
Módulo baseado no ESP32, com 4MB FLASH
ANATEL

VISUINO

Visuino é o mais recente software inovador da Mitov Software. Um ambiente de programação visual que permite programar suas placas Arduino. ... Os componentes encontrados no software Visuino representam seus componentes de hardware e você pode criar e projetar facilmente seus programas usando o recurso de arrastar e soltar.

Instalação do VISUINO

Baixe em https://www.visuino.com/ e instale


Abra o VISUINO e monte o projeto

Configure Socket Client para Porta 502, o IP é o MODBUS SERVER

Configuração para colocar U-BLOX NINA W106 como MODBUS TCP (Client)

Criação de Socket Client para acessar porta 502

Na imagem abaixo, são criados 4 ID com vários HOLDING REGISTERS cada um, os quais serão solicitados pelo MODBUS TCP /IP (CLIENT) ao MODBUS TCP/IP (SERVER - EMULADOR).

É a fila de transações máximas, quantas solicitações podem estar aguardando em uma fila para resposta
Usa memória, então você deve ter cuidado
ID e ENDEREÇOS SOLICITADOS

Formatted Text mandando dados (Modbus Server) pela UART 


DADOS 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 (32 Bits) colocados nos ENDEREÇOS 0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60
IP: 192.168.100.112

ID 1,2,3,4

Configure o U-BLOX NINA W106 para acesso à Internet


Coloque dados do seu AP

Escolha u-blox NINA-W106 series (ESP32)

Compile,Grave e resete o U-BLOX NINA W106

Execute o programa no U-BLOX NINA W106 

No terminal aparecerá o IP.

No aplicativo Emulador, não esquecer de configurar para TCP/IP

TCP/IP
Execução



Projeto Visuino


TIP

Buffer
Hardware


Questões: suporte@smartcore.com.br

FONTES: 

Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.

Mais detalhes em www.smartcore.com.br 

sexta-feira, 10 de junho de 2022

u-BLOX NINA W106 SENDO PROGRAMADO EM ARDUINO - MANDANDO HORÁRIO GMT-0300 PARA O SERVIDOR AZURE IoT HUB

  u-BLOX NINA W106 SENDO PROGRAMADO EM ARDUINO - MANDANDO HORÁRIO GMT-0300 PARA O SERVIDOR AZURE IoT HUB


O objetivo deste BLOG é demonstrar como é possível programar o módulo u-BLOX NINA W106 (ESP32) no starter kit EVK-NINA-W1 com a linguagem Arduino e transmitir horário GMT-0300 para o servidor AZURE IoT HUB da Microsoft, veja abaixo:
{
  "body": {
    "msgCount": 751
  },
  "enqueuedTime": "Fri Jun 10 2022 14:22:11 GMT-0300 (Horário Padrão de Brasília)",
  "properties": {}
}

u-BLOX NINA W106

Wi-Fi 802.11b/g/n
Dual-Mode Bluetooth v4.2
Poderoso suporte de CPU aberta para aplicativos personalizados
Tamanho pequeno e várias opções de antena
Pino compatível com outros módulos NINA
Certificação global
Módulo baseado no ESP32, com 4MB FLASH

SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portifólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS/GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br

Microsoft Azure

O Azure IoT (Internet das Coisas) é uma coleção de serviços de nuvem gerenciados pela Microsoft que conectam, monitoram e controlam bilhões de ativos de IoT. Simplificando, uma solução de IoT é composta por um ou mais dispositivos IoT que se comunicam com um ou mais serviços de back-end hospedados na nuvem.


O Hub IoT do Azure oferece uma solução de back-end hospedada na nuvem para conectar-se virtualmente a qualquer dispositivo. Amplie sua solução da nuvem para a borda com autenticação por dispositivo, gerenciamento de dispositivo interno e provisionamento escalonado.


IoT

IoT permite que você resolva seus problemas empresariais usando seus próprios dados. A Internet das Coisas não tem a ver apenas com dispositivos conectados – tem a ver com as informações que esses dispositivos coletam e com os insights poderosos e imediatos que podem ser obtidos com essas informações. Esses insights podem ser usados para transformar seus negócios e reduzir os custos por meio de aprimoramentos, como a redução de materiais desperdiçados, processos operacionais e mecânicos simplificados, ou a expansão para novas linhas empresariais que só se tornam possíveis usando dados confiáveis em tempo real. Crie uma vantagem competitiva real usando a IoT para transformar seus dados em insights e transformar esses insights em ação.


Configurando Azure IoT Hub

Abaixo um roteiro básico
  • Crie uma conta do Azure grátis (para usuários novos)


  • Crie um Hub IoT do Azure.
  • Tenha um dispositivo lógico criado em seu Hub IoT do Azure usando o tipo de autenticação "Chave Simétrica".
NOTA: As chaves do dispositivo são usadas para gerar automaticamente um token
SAS para autenticação.

Imagens do Roteiro de Configuração














INSTALE ARDUINO E ESP32


Instale a LIB 


Abra o projeto Azure_IoT_Hub_ESP32

Enter your Azure IoT Hub and device information into the sample's iot_configs.h:

  • Add your Wi-Fi SSID to IOT_CONFIG_WIFI_SSID
  • Add your Wi-Fi password to IOT_CONFIG_WIFI_PASSWORD
  • Add you IoTHub Name to IOT_CONFIG_IOTHUB_FQDN


  • Add your Device ID to IOT_CONFIG_DEVICE_ID
  • If using X.509 Cert:
    • Uncomment the #define IOT_CONFIG_USE_X509_CERT
    • Add your cert to IOT_CONFIG_USE_X509_CERT
    • Add your cert PK to IOT_CONFIG_DEVICE_CERT_PRIVATE_KEY
  • If using Symmetric Key:
    • Add your device key to IOT_CONFIG_DEVICE_KEY


Instale o Azure IoT explorer e monitore o Azure Iot HUB criado.

Releases · Azure/azure-iot-explorer (github.com)


As credenciais do Azure IoT explorer devem ser obtidas aqui:

copiar

Executando Azure Iot Explorer

colar


Start







Vídeo


DÚVIDAS

suporte@smartcore.com.br

REFERÊNCIAS

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.

Mais detalhes em www.smartcore.com.br