quinta-feira, 30 de agosto de 2018

Problema de comunicação S7-1200 com SCADA

Para quem trabalha, já trabalhou ou teve necessidade de se comunicar com um CLP, sabe que é necessário configurar a base de dados do sistema supervisório ou qualquer outro cliente da comunicação corretamente. Sem esta configuração básica, é certo de que haverá problemas.

No entanto, CLP's da série 1200 da Siemens (mais especificamente os S7-1214C) podem trazer uma dificuldade a mais. Este CLP, naturalmente trabalha com uma opção desabilitada (por padrão), que bloqueia o acesso de clientes externos à sua base. Ou seja, não é possível estabelecer comunicação através de sua porta 102 (padrão) e enviar os frames de requisição.

Para estabelecer comunicação, portanto, é necessário habilitar a opção "Permit access with PUT/GET communication from remote partner". Esta opção, pode ser encontrada através da "Device View". Para tanto, clique na CPU, acesse sua aba General -> Protection & Security -> Connection mechanisms.

Ao habilitar esta opção, reinicie a CPU (STOP - RUN) e logo em seguida seu SCADA estará comunicando perfeitamente.



Sem isso, será impossível realizar comunicação por qualquer client, seja ele Elipse E3, IGS, Matrikon entre outros. Faça bom proveito!

quarta-feira, 15 de agosto de 2018

Consumo de energia - Raspberry Pi + MySQL + NodeRED + ESP8266 + MQTT


Finalizada mais uma funcionalidade do meu projeto pessoal! Integrados Raspberry Pi + MySQL + NodeMCU, utilizando o protocolo de comunicação MQTT para publicar dados de energia.

Inicialmente elaborei uma interface, utilizando NodeRED, que supervisionava temperatura e umidade da cidade. Como me mudei há poucos meses para Natal-RN, me surgiu a curiosidade de saber a amplitude da temperatura utilizando minhas próprias mãos (e não indicações vindas dos aplicativos de Tempo).

Pois bem, implementada a primeira etapa, comprei um TC (transformador de corrente) e um NodeMCU para iniciar a implementação de um sistema de medição de consumo da minha residência. Estava acostumado a implementar outros tipos de protocolos (Modbus, por exemplo) e para este projeto,não haveria necessidade de um protocolo deste tipo. Pesquisando sobre tendências de IOT e protocolos utilizados neste meio, conheci o MQTT.

Apartir deste ponto, decidi utilizar meu Raspberry Pi que já estava fazendo aquisição de dados de temperatura e umidade, como Broker MQTT. Para quem não conhece, o Broker é uma espécie de servidor de dados, que escuta as informações que estão sendo disponibilidades pelo "Publisher" e disponibiliza esta mesma informação para um "Subscriber" interessado em utilizá-las.

Com o broker funcionando, foi a vez de programar o NodeMCU para publicar a corrente e cálculo de energia ativa acumulada. Nesta etapa enfrentei problemas razoáveis, com relação a estabilidade da conexão MQTT. Inicialmente o NodeMCU (Publisher) deixava de enviar dados sempre após 24h dado o primeiro envio. Fiz algumas correções sugeridas na WEB, na biblioteca MQTT e precisei fazer alguns rearranjos para garantir que o NodeMCU nunca deixasse de se conectar ao meu Raspberry P.

Por fim o resultado é o mostrado abaixo. Em breve irei implementar novas funcionalidades, mas até o momento o portal me atende perfeitamente para o dia a dia!


O sistema pode ser visualizado no link acima. Se tiver dúvidas sobre o que foi utilizado para desenvolvimento, fique a vontade em perguntar e me mandar um email.