terça-feira, 20 de julho de 2021

u-BLOX NINA W106 SENDO PROGRAMADO EM BASIC ANNEX RDS - FAZENDO LED PISCAR A QUANTIDADE DE VEZES SOLICITADA PELO GOOGLE ASSISTANT

u-BLOX NINA W106 SENDO PROGRAMADO EM BASIC ANNEX RDS  - FAZENDO LED PISCAR A QUANTIDADE DE VEZES SOLICITADA PELO GOOGLE ASSISTANT


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 BASIC ANNEX WiFi RDS (1.43 Beta) e então fazer um LED piscar em uma quantidade solicitada pelo GOOGLE ASSISTANT, este dado estará armazenado no  servidor ThingSpeak.

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


IFTTT

Abreviação de "If This, Then That", IFTTT é uma maneira fácil de automatizar tarefas que podem ser repetitivas ou incapazes de falar entre si. Funciona assim: os usuários são guiados através de um processo para fazer scripts simples, também conhecidos como "receitas", onde algum tipo de evento em um dispositivo ou serviço aciona automaticamente uma ação em outro.

SOBRE A LINGUAGEM BASIC

BASIC (acrônimo para Beginner's All-purpose Symbolic Instruction Code; em português: Código de Instruções Simbólicas de Uso Geral para Principiantes) é uma linguagem de programação, criada com fins didáticos, pelos professores John George Kemeny, Thomas Eugene Kurtz e Mary Kenneth Keller em 1964 no Dartmouth College.

Basic pode ser uma opção de linguagem para se aprender lógica, uma vez que foi desenvolvida em alto nível (próxima da linguagem humana). Além da sua relativa facilidade de criar aplicações de forma simples e rápida.

BASIC também é o nome genérico dado a uma grande família de linguagens de programação derivadas do BASIC original. Provavelmente existem mais variações de BASIC do que de qualquer outra linguagem de programação.

BASIC ANNEX RDS

ESP-NOW, BLE, MQTT...ÓTIMO PARA IoT

Veja o HELP  do BASIC ANNEX RDS

Veja também FAQ



THINGSPEAK


Thingspeak é uma plataforma de análise IoT (Internet of Things) que permite agregar, visualizar e analisar streams de dados, de uma forma muito simples. Uma das grandes vantagens da plataforma Thingspeak é que nos permite visualizar os dados enviados pelos nossos dispositivos, em tempo real, mas também a possibilidade de analisar os mesmo recorrendo ao poderoso Matlab.


INTERPRETADOR ?

O interpretador básico funciona através da leitura de um arquivo de script salvo no sistema de arquivamento em disco local esp.

Este é o modo padrão se nenhum SDcard externo estiver conectado ao u-BLOX NINA W106.

Além disso, o Annex32 pode usar um SDcard externo como sistema de arquivos, permitindo até 16 Gbytes de espaço em disco.

Durante a inicialização, se um SDcard externo for detectado, ele será conectado automaticamente e usado como o sistema de arquivos padrão, caso em que o sistema de arquivo interno não será usado.

Como o u-BLOX NINA W106 contém uma boa quantidade de RAM, o script do usuário é copiado do disco para uma área dedicada na memória RAM onde é executado, junto com a lista das linhas do programa, os rótulos dos ramos e a lista do usuário definido sub-rotinas ..

Isso usa mais RAM em comparação com outras abordagens, mas permite uma execução mais rápida do programa.

Outra consideração de desempenho é que o 
u-BLOX NINA W106 deve ser capaz de executar várias atividades em segundo plano (servidor web, servidor de arquivos, etc.), portanto, precisa de memória livre suficiente para executar tais tarefas, e essas tarefas paralelas obviamente terão um impacto no desempenho do script ..

Portanto, em termos de desempenho, o interpretador não é particularmente rápido, mas deve ser rápido o suficiente para a maioria das tarefas que você pode exigir. 

Solicitações de dados do servidor (GET e POST)
O ANNEX inclui a funcionalidade de solicitar / enviar dados de / para o servidor usando solicitações HTTP GET e POST.

O GET é o método HTTP mais comum, geralmente usado para solicitar (GET) dados de um servidor, mas também pode ser usado para enviar dados ao servidor.

Isso é o que seu navegador faz ao digitar um url na barra de endereço.

Este método usa a url para incluir todos os dados a serem transferidos para o servidor e retorna a resposta do servidor.

Exemplo:

' do an HTTP GET request

a$ = WGET$("jsonplaceholder.typicode.com/comments?id=1&id=4", 80)

IFTTT e GOOGLE ASSISTANT

Configurando IFTTT




If This: Selecione a opção dois, onde # vai representar o número falado no Google Assistant




Then: defina que você deseja fazer um WebHock com ThingSpeak (NumberField será o número que Google Assistant irá retornar)



A URL acima deve ser obtida no Site ThingSpeak
GET https://api.thingspeak.com/update?api_key=xxxxxxxxxxxxxxxxx&field1=NumberField




Pronto!


Agora com o App do Google Assistant (usar mesma conta utilizado para entrar no IFTTT), diga uma frase com:

OK GOOGLE, please blink lamp 11 times

Veja o que será publicado no ThingSpeak




Google Assistant





Annex ESP32

A cada 15 segundos, ANNEX acessará o último registro publicado pelo IFTTT no ThingSpeak e fará um LED a quantidade de vezes solicitada no Google Assistant.

Ele filtrará o seguinte JSON
{"channel":{"id":1368213,"name":"ELETIVA II","description":"Demonstração Disciplina Eletiva II - BCC - SIS - FURB","latitude":"0.0","longitude":"0.0","field1":"annex","created_at":"2021-04-22T22:17:35Z","updated_at":"2021-07-20T17:02:54Z","last_entry_id":101},"feeds":[{"created_at":"2021-07-20T19:00:38Z","entry_id":101,"field1":" 11"}]}

pin.mode 18, OUTPUT pin(18) = 0 'comece apagado led wlog "Start" while 1=1 a$ = WGET$("https://api.thingspeak.com/channels/xxxxxxx/feeds.json?results=1", 80) b$ = JSON$(a$, "feeds[1].field1") 'separando campo field1 blink=val(b$) for l=1 to blink 'fazendo piscar "campo field1" vezes pin(18) = 1 pause 300 pin(18) = 0 pause 300 next l pause 15000 wend end

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.

quinta-feira, 8 de julho de 2021

U-BLOX NINA W106 e MODBUS TCP + SCADA LAquis - VISUINO

 U-BLOX NINA W106 e MODBUS TCP + SCADA LAquis - VISUINO


O objetivo deste BLOG é demonstrar como é possível utilizar o VISUINO para programar o módulo U-BLOX NINA W106 para ser acessado via MODBUS TCP, ou seja, tornando-o em um servidor MODBUS. Foi utilizado o EVK-NINA-W para o testes e somente efetuado leituras (READ INPUT REGISTER) com o software SCADA LAquis.

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 escravo 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.


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

 LAquis

O que significa o SCADA?

SCADA significa: Supervisory Control and Data Acquisition. Os sistemas SCADA são usados ​​principalmente para aquisição de dados de automação industrial e controle de processos usando tecnologia PLC ou equipamento RTU com comunicação em um sistema de controle distribuído (DCS) dentro do sistema de controle industrial (ICS). Essa tecnologia auxilia o gerenciamento do processo industrial em tempo real. No software SCADA, uma interface de usuário é projetada em um computador para monitorar e controlar o processo. Relatórios personalizados podem ser gerados com os dados de armazenamento para mostrar o cálculo e as informações estatísticas de gerenciamento e a qualidade do processo. Os sistemas SCADA devem ter um alto nível de segurança. A segurança é uma questão importante dentro dos sistemas SCADA, de forma que tanto a rede quanto o sistema tenham proteções sobre o processo industrial. Eles reúnem os dados da rede de equipamentos industriais em tempo real e fornecem monitoramento, alarmes e relatórios estatísticos e de qualidade. Cada projeto pode ser editado por um usuário ou projetado por um engenheiro. Esses dados de processo também podem ser distribuídos na rede de computadores usando o conceito de internet das coisas industrial (IIOT).

A solução do sistema LAquis SCADA é uma ferramenta e software de linguagem para aquisição de dados, controle, supervisão de processos, automação, armazenamento, geração de relatórios e desenvolvimento de aplicações. Definir tags (pontos de I / O), equipamentos (módulos, dispositivos, PLC, IIOT, ...), DCS (sistema de controle distribuído), variáveis, bancos de dados, propriedades customizáveis, interfaces visuais HMI SCADA, relatórios customizáveis ​​até processos avançados através de um linguagem de programação de scripts orientada para automação industrial. Baixe o LAquis SCADA aqui.

Configurando INPUT REGISTER e Interface Visual


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 Server para Porta 502

Configuração para Colocar U-BLOX NINA W106 como MODBUS TCP (SERVER)

No exemplo abaixo, são criados dois INPUT REGISTERS os quais recebem números aleatórios para serem lidos pelo MODBUS TCP (CLIENT).


Input Registers com endereços 0 e 2 atribuídos pelo VISUINO


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.

Execute o aplicativo SCADA LAquis e configure os dois READ INPUT REGISTER (Tags)


Associe Tags aos Objetos Visuais


No Visuino, os INPUT REGISTERS estão nos registros 0 e 2, que correspondem
W30x0000 e W30x0002

Projeto lendo RANDOM para os 2 INPUT REGISTER,


Questões: suporte@smartcore.com.br

FONTES: 
SCADA software - LAquis 4.3 - Supervisory Control and Data Acquisition system (laquisscada.com)

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

U-BLOX NINA W106 e MODBUS TCP - VISUINO

U-BLOX NINA W106 e MODBUS TCP - VISUINO


O objetivo deste BLOG é demonstrar como é possível utilizar o VISUINO para programar o módulo U-BLOX NINA W106 para ser acessado via MODBUS TCP, ou seja, tornando-o em um servidor MODBUS. Foi utilizado o EVK-NINA-W para o testes e somente efetuado leituras (READ INPUT REGISTER) com o software EasyModbus.

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 escravo 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.


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

MODBUS TCP CLIENT

Biblioteca cliente/servidor Modbus TCP, Modbus UDP e Modbus RTU e Simuladores para JAVA

Adequado para troca de dados entre JAVA-Applications e PLCs como Schneider-electric; Siemens S7; Wago; Bosch-Rexroth; Dispositivos CoDeSys e muitos mais.

Suporta códigos de função:

- Ler bobinas (FC1)
- Ler entradas discretas (FC2)
- Ler registros de retenção (FC3)
- Ler registros de entrada (FC4)
- Grava Bobina Única (FC5)
- Gravar registro único (FC6)
- Grave várias bobinas (FC15)
- Gravar registros múltiplos (FC16)
- Ler / Gravar Registros Múltiplos (FC23)


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.