31 lines
1.9 KiB
Markdown
31 lines
1.9 KiB
Markdown
+++
|
|
title = "IMEMA"
|
|
description = "Interface Modbus pour l'Enregistrement des Mesures d'Automates"
|
|
|
|
[extra]
|
|
keywords = ["IMEMA", "Modbus", "PLC", "Automate", "DB", "Hatmos", "hatmos"]
|
|
+++
|
|
|
|
Interface Modbus pour l'Enregistrement des Mesures d'Automates
|
|
|
|
J'ai travaille sur ce projet dans le cadre de mon travail en tant que technicien en automatisme pour le service de la Maitrise de l'Energie de la ville de Besancon.
|
|
|
|
Ce projet consiste a journaliser des valeurs recueillies dans des automates utilises pour les chaufferies et centrales de traitement de l'air present sur le reseau informatique de la ville.
|
|
Pour realiser cet objectif j'ai fais appel a mes connaissances en langage de programmation Rust, pour la partie PC, et Structure, pour la partie automate.
|
|
|
|
Pour la partie PC en Rust, j'ai utilise les crates tokio_modbus, tokio, chrono et csv.
|
|
Le programme s'articule ainsi :
|
|
- Le processus ouvre un fichier de configuration qui contient les adresses IP v4 de tout le reseau automate ainsi que le nom des sites physique et la quantite de registre modbus a lire.
|
|
|
|
- Le processus etabli une connexion avec un automate via son IP
|
|
- Les valeurs de registre sont lues dans le DataBlock expose par l'automate
|
|
- Ces valeurs sont parsees puis ecrite dans une nouvelle entree du fichier .csv propre au site
|
|
|
|
Le programme itere sur les adresses IP en suivant cette boucle jusqu'a ce que toutes les adresses soient traitees.
|
|
Apres une pause de 15 minutes, le processus relance un nouveau cycle de lecture des registres sur tout le reseau automate.
|
|
|
|
|
|
Pour la partie Automate, j'ai mis en place un serveur modbus grace au bloc fourni par le constructeur et ai expose les registres voulu avec un DataBlock dedie.
|
|
|
|
Il reste des modifications a operer et des fonctionnalites a rajouter, mais le coeur du programme est la et repond a besoin de securite des donnees avec une duplication des format et des localites.
|