Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Usando um controlador PLCnext como um dispositivo doméstico inteligente através do Home Assistant


Este pequeno projeto de demonstração mostra como usar facilmente um controlador PLCnext como um dispositivo doméstico inteligente no software de automação residencial de código aberto Home Assistant através da API REST e Modbus TCP. Com o controlador PLCnext você pode usar os componentes Axioline em sua automação para adicionar facilmente saídas mais potentes que os pinos GPIO do Raspberry Pi, sensores de temperatura como Pt100 e sistemas de barramento como DALI. Tudo que você precisa é uma instalação do Home Assistant funcional e um controlador PLCnext com um projeto PLCnext pequeno, mas executável.

Pré-requisitos


Bibliotecas:

Serviços de Assistente Doméstico:

Descrição da funcionalidade


Para dar uma breve visão geral das possibilidades de usar um controlador PLCnext como um dispositivo doméstico inteligente, existe um projeto PLCnext que pode reinicializar outros dispositivos controlando sua tensão de alimentação com relés. As redefinições são acionadas por comandos que são enviados para um Telegram Bot, antes que um email seja enviado com a informação de que uma reinicialização foi iniciada. Este exemplo será mostrado com duas maneiras diferentes de conectar o controlador PLCnext ao ambiente Home Assistant.

Arquitetura

Conexão via Modbus TCP


A partir da conexão Modbus TCP, um servidor Modbus é adicionado ao projeto PLCnext utilizando a biblioteca Modbus TCPl. A configuração é a mesma do exemplo da biblioteca. A escolha do registro Modbus correto depende do tipo de dados e de como eles devem ser usados. Neste caso as variáveis ​​são mapeadas para o registro da bobina.

Por favor, preste atenção ao fato de que o servidor Modbus não suporta mais de uma conexão no momento. Portanto, se uma conexão não for encerrada corretamente, o que infelizmente acontece às vezes durante o teste da conexão, o servidor entrará em um estado de erro e precisará ser reiniciado manualmente. Para evitar isso, é recomendável programar um reinício automático do servidor Modbus no projeto PLCnext.

Para o cliente Modbus, existem duas possibilidades principais no Home Assistant e cabe a você escolher a sua favorita. A primeira é usar o add-on Node-RED e uma das bibliotecas Modbus que estão disponíveis lá. O mais intuitivo é configurar uma entidade no configuration.yaml do seu ambiente Home Assistant (mais informações). Conforme mostrado abaixo, o serviço switch padrão é usado, que é uma maneira comum de trabalhar com variáveis ​​booleanas, pois implementou funcionalidades turn_on/turn_off para definir ou redefinir as variáveis.
modbus: 
    type: tcp           # using Modbus TCP 
    host: YOUR_SERVER_IP    # fill the server ip address  
    port: 502 
    name: hub1          # could be changed  
switch: 
  - platform: modbus 
    coils: 
      - name: restartMB     # could be changed 
        hub: hub1 
        slave: 1 
        coil: 13            # the register position of the variable 

Se você escolher a possibilidade Node-RED, fique atento ao fato de que normalmente ele inicia diferentes conexões para leitura e escrita com Modbus TCP, de modo que o servidor Modbus entre em estado de erro conforme mencionado acima. Para evitar isso, você pode utilizar Modbus UDP ou dois servidores Modbus em seu projeto PLCnext, um para leitura e outro para escrita.

Conexão via API REST


A segunda possibilidade de conexão é a interface de dados PLCnext REST. Esta interface está relacionada com a HMI PLCnext, pelo que é necessário ter pelo menos uma página HMI no seu projeto PLCnext, mesmo que esteja vazia, para poder disponibilizar a API REST. Além disso, as variáveis ​​devem ser assinadas com o sinalizador HMI. Para informações mais detalhadas consulte o PLCnext Info Center.

Nesse caso, o complemento Node-RED é usado para gerar solicitações HTTP no lado do Home Assistant. A instalação do add-on é feita seguindo esta e estas instruções. Certifique-se de ter feito as duas etapas antes de continuar.

Se a autenticação HMI-user no projeto PLCnext estiver ativada, a autenticação em Node-RED poderia ficar assim:

O fluxo executa a autenticação e armazena o token de acesso para usá-lo nas solicitações posteriores. Para a estrutura exata das solicitações HTTP, verifique também a documentação no PLCnext Info Center.

Para obter acesso aos dados do seu ambiente do Home Assistant no Node-RED, existem vários nós que vêm com o complemento Node-RED. O fluxo curto na parte inferior da figura a seguir cria uma nova entidade no Home Assistant e no fluxo acima essa entidade é verificada quanto a alterações. Se a entidade estiver configurada para true, uma variável no controlador PLCnext também será configurada para true e acionará um reset. Como a variável de reinício no projeto PLCnext é automaticamente definida como falsa após a reinicialização, a entidade no Home Assistant também é definida como falsa após um atraso de 5 segundos.

Telegram Bot


Para se comunicar com o Home Assistant, a API do Telegram Bot é usada. Para usar isso, um novo bot deve ser registrado seguindo esta instrução.
telegram_bot:
  - platform: polling
    api_key: YOUR_API_TOKEN
    allowed_chat_ids:
      - YOUR_CHAT_ID_1
      - YOUR_CHAT_ID_2 

A maneira mais fácil de encontrar seu ID de bate-papo é escrever uma mensagem para seu bot e iniciar a solicitação http:
https://api.telegram.org/botYOUR_API_TOKEN/getUpdates
Um exemplo útil para o Telegram Bot pode ser que ele informa todas as manhãs sobre as condições climáticas de hoje, para que você tenha uma indicação do que deve vestir neste dia. Neste projeto ele recebe outra tarefa, fazer hard reset em um CLP (pressionar o botão nos registradores Modbus) por um comando no Telegram. O comando “/MBrestartPLC” é enviado para o bot e inicia um script de automação no Home Assistant, que finalmente altera o valor do registro da bobina Modbus e “/RESTrestartPLC” faz o mesmo usando a API REST.

SMTP


No Home Assistant o Simple Mail Transfer Protocol (SMTP) pode ser utilizado para enviar emails com uma seleção dos dados disponíveis na sua domótica. O serviço pode ser implementado adicionando o seguinte código ao configuration.yaml :
notify:
  - name: SMTP_MESSENGER # could be changed
    platform: smtp
    server: SMTP_SERVER # e.g. smtp.gmail.com
    port: 587
    timeout: 15
    sender: YOUR_EMAIL_ADRESS
    encryption: starttls
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    recipient:
      - EMAIL_ADRESS_OF_THE_RECIPIENT
    sender_name: My Home Assistant # could be changed 

Clique aqui para obter mais informações sobre o serviço SMTP no Home Assistant.

Automações


Se todos os serviços e bibliotecas forem implementados e preparados, eles devem ser combinados. Isso é feito pelas automações que são programadas no automations.yaml do ambiente do Home Assistant. A estrutura de uma automação é muito simples como mostra a tabela abaixo. O alias é apenas o nome da automação no Home Assistant. O gatilho é a condição que tem que ser verdadeira para executar a automação, como um determinado comando de telegrama usado neste caso, e a ação é a tarefa, como neste caso, definir uma variável para true e enviar um email.
Modbus TCP API REST
- id: '1' alias: 'Trigger a reset of a controller via modbus' trigger: platform: event event_type: telegram_command event_data: command: '/MBrestartPLC' action: - service: switch.turn_on entity_id: switch.restartMB - service: notify.SMTP_MESSENGER data: title: 'PLC message' message: 'PLC restart initiated via modbus!' - id: '2' alias: 'Trigger a reset of a controller via rest api' trigger: platform: event event_type: telegram_command event_data: command: '/RESTrestartPLC' action: - service: switch.turn_on entity_id: switch.restartREST - service: notify.SMTP_MESSENGER data: title: 'PLC message' message: 'PLC restart initiated via rest!'

Conclusão


Este pequeno projeto de demonstração prova que é bastante simples integrar um controlador PLCnext numa domótica. A disponibilidade de todos os dados do PLC no Home Assistant abre caminho para aplicações muito mais poderosas do que este exemplo. Pense em programas PLC mais complexos que podem ser controlados e monitorados dependendo do clima ou de outros dados disponíveis no Home Assistant.

Tecnologia industrial

  1. Gerenciamento de dispositivos:acompanhando milhões de medidores inteligentes
  2. Aplicações de automação residencial
  3. Usando um gateway IIoT de código aberto para acelerar a integração do dispositivo Modbus
  4. Controlador Smart Home de 433 MHz com Sensorflare e RaspberryPi
  5. A lacuna de habilidades da casa inteligente
  6. Vantagens de usar VIA em eletrodos
  7. Usando uma máquina CNC acessível para corte de metal em casa
  8. gRPC remoto usando grpcurl
  9. Gerenciando um dispositivo PLCnext Control via SNMP
  10. Instalando o gerenciador de pacotes apt(-get) no PLCnext