Archives par mot-clé : Ethernet/IP

Raspberry Pi 3 / SenseHAT / netHAT / netPi

Bonjour,

Je cherchais pour mes expériences une solution qui soit ludique, et aussi accessible à tout un chacun, et mes tribulations m’ont conduit à sélectionner un combo Raspberry Pi 3 + SenseHAT.

Hilscher France a donc fait l’acquisition de ces éléments chez KUBII :

Starter Kit Officiel Pi3
https://www.kubii.fr/fr/kits-raspberry-pi/1637-kit-demarrage-raspberry-pi3-3272496004207.html

Raspberry Pi Sense Hat
https://www.kubii.fr/fr/cartes-extension-cameras-raspberry-pi/1081-raspberry-pi-sense-hat-640522710799.html

Pourquoi donc un tel investissement me direz vous ?

Sans doute parce que depuis quelques temps cette plateforme économique et performante permet d’imaginer tout un tas d’utilisations dans ce qu’il est convenu d’appeler l’IoT, l’IIoT, Industry 4.0, etc…

Aussi, à l’instar de certains confrères, la société Hilscher a développé certains produits autour de cette plateforme comme le netHAT, le netPi et le Edge Gateway « Connect » :
https://www.netiot.com/interface/nethat/
https://www.netiot.com/netpi/industrial-raspberry-pi-3/
https://www.netiot.com/edge/

Hilscher innove en testant le canal de vente Amazon et l’on peut y acheter le netHAT et le netPi :
https://www.amazon.fr/Hilscher-NXHAT52-RTE-nethat-52-de-RTE/dp/B01MFH0FP9
https://www.amazon.fr/Industrial-Raspberry-Industry-Communication-4×1-2Ghz-Real-Time-Ethernet/dp/B0756XD2CN

Pour ces produits, Hilscher France n’assure pas de support.
Cependant, l’on peut vous proposer une formation !

Le netHAT est fourni avec un pilote Linux compilé, des firmwares en version limitée à 32 octets d’E/S pour EtherCAT, Ethernet/IP et PROFINET IO Device et bien sûr de la documentation.

Le tout s’installe sans encombre sur la Raspbian et ça tombe en marche comme sur le plan.

Vous pouvez donc vous familiariser avec la technologie Hilscher pour une quarantaine d’euros, ce qui est modique vous en conviendrez aisément.

Bien sûr, « Ada for Automation » peut tout à fait être utilisé avec le netHAT. J’y reviendrai bien sûr.

Avec un Raspberry Pi + un netHAT, on peut aussi tester le concept netPi et développer des applications qui tourneront sur le netPi sans modification.

Bref, je souhaitais monter une manipulation avec un Rasberry Pi 3, un SenseHAT pour des capteurs pas chers et un netHAT pour connecter ce bijou de technologie à votre automate préféré.

En fait, le SenseHAT et le netHAT ne peuvent pas se monter l’un sur l’autre comme on pourrait le penser de prime abord.

Je pensais développer un binding Ada pour le SenseHAT mais ce n’est pas si simple.
Le langage choisi par l’équipe Raspberry est plutôt le Python et la plupart des bibliothèques fournies pour les « HAT » sont en Python.
La bibliothèque disponible pour le SenseHAT est donc en Python aussi et utilise d’une part une bibliothèque en C++ qui gère nombre de capteurs et d’autre part le framebuffer pour les LEDs et un IO device pour le joystick.

Monsieur Phil Munts, que je remercie, m’a bien fait part de sa librairie :
http://git.munts.com/libsimpleio/ada/

Mais je voulais quelque chose de super vite fait et j’ai penché pour une solution mettant en œuvre un framework Modbus développé par un collègue, Monsieur Luc JEAN, que je remercie chaleureusement :
https://github.com/ljean/modbus-tk

Pourquoi donc ? « Ada for Automation » disposant de la fonctionnalité Modbus TCP Client et le framework permettant de réaliser très simplement un serveur Modbus TCP, il suffisait donc de raccrocher les données des capteurs dans les registres du serveur.

J’ai utilisé également ce bout de code qui m’a bien aidé, je remercie aussi son auteur :
https://frank-deng.github.io/python-kbhit.en.html

Le SenseHAT dispose d’une application de simulation avec interface graphique et il est possible d’utiliser celle-ci en lieu et place du matériel tel que dans l’exemple suivant.

SenseHAT Simu GUI
SenseHAT Simu GUI

On y démarre depuis un terminal :

python 3 sense-omb.py
python 3 sense-omb.py

Et on teste par exemple avec Modbus Poll :

Modbus Poll Example
Modbus Poll Example

En Python, c’est une vingtaine de lignes de code pour remonter température, pression, hygrométrie et cap :

#!/usr/bin/env python
# -*- coding: utf_8 -*-
"""
 Modbus TestKit: Implementation of Modbus protocol in python

 (C)2009 - Luc Jean - luc.jean@gmail.com
 (C)2009 - Apidev - http://www.apidev.fr

 This is distributed under GNU LGPL license, see license.txt
"""


import sys
import struct

import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_tcp

from sense_emu import SenseHat

import kbhit, time;

sense = SenseHat()

def main():
    """main"""

    kbhit.init();
    running = True;

    logger = modbus_tk.utils.create_logger(name="console", record_format="%(message)s")

    try:
        #Create the server
        server = modbus_tcp.TcpServer(port=1502)
        logger.info("running...")
        logger.info("enter 'q' for closing the server")

        server.start()

        slave_1 = server.add_slave(1)
        slave_1.add_block('0', cst.HOLDING_REGISTERS, 0, 100)

        while running:
            if kbhit.kbhit():
                ch = kbhit.getch();
                if 'q' == ch:
                    running = False;

            slave_1.set_values('0', 0, struct.unpack('>HH', struct.pack('>f', sense.temp)))
            slave_1.set_values('0', 2, struct.unpack('>HH', struct.pack('>f', sense.pressure)))
            slave_1.set_values('0', 4, struct.unpack('>HH', struct.pack('>f', sense.humidity)))
            slave_1.set_values('0', 6, struct.unpack('>HH', struct.pack('>f', sense.compass)))

            time.sleep(0.1);

    finally:
        server.stop()
        kbhit.restore();

if __name__ == "__main__":
    main()

C’est naturellement pas très temps réel mais c’est très bien pour mon cas d’école.

Et en plus, on peut facilement imaginer de reproduire ce schéma avec d’autres HATs comme le « Automation HAT » par exemple :
https://shop.pimoroni.com/products/automation-hat

Vous pouvez donc remonter les données du SenseHAT vers votre automate préféré disposant d’une connectivité Modbus TCP Client.
Bon, en travaillant un peu, ça doit fonctionner dans les deux sens, hein !

Quid du netHAT ? Si on utilise l’application de simulation SenseHAT on peut bien sûr le mettre sur le même Raspberry Pi et se connecter en local.
Si l’on souhaite de vraies données physiques, il faudra l’installer sur un autre Raspberry Pi, et le faire communiquer avec le premier, toujours en Modbus TCP.
C’est trivial avec « Ada for Automation » et je vous le montrerai ce tantôt.

Cordialement,
Stéphane

netIC : netIC Test Tool

Bonjour,

J’introduis aujourd’hui le netIC, une passerelle Hilscher pour l’embarqué :
http://www.hilscher.com/en/products/product-groups/embedded-modules/dil-32-communication-ic

C’est donc une passerelle au format DIL32, présentant d’un côté une interface vers tous les bus de terrain conventionnels ou sur Ethernet Temps Réel et de l’autre une connexion Modbus RTU Maitre ou Esclave, sur UART ou SPI.

Cette passerelle est fournie avec un outil de configuration, le « netX Configuration Tool », outil que l’on retrouve pour la configuration des cartes cifX.

Cet outil permet ainsi la configuration, le test et le diagnostic de la passerelle via la connexion UART0 réservée très justement à la configuration, au chargement du firmware, et au diagnostic.

Côté Hôte, il est également possible de faire un certain nombre de choses et l’outil de test et de démonstration que votre zélé serviteur a développé en C++, avec libmodbus et gtkmm, le binding C++ du toolkit graphique GTK+, a pour ambition de vous montrer cela via la connexion UART1.

Vous pouvez trouver ce fabuleux outil ici :
http://www.hf-news.fr/download/netIC/netIC_TestTool%20V1.2.0.7z

Il suffit d’exécuter « Setup.exe », l’installeur réalisé avec http://nsis.sourceforge.net/Main_Page.

Ayez un Anti Virus à jour, sait-on jamais !

Vous avez donc acheté une carte d’évaluation pour votre netIC et vous avez raccordé tout ça. Attention à bien positionner les jumpers…

Lorsque vous exécutez « netIC Test Tool », la fenêtre de trace vous montre les requêtes Modbus et les réponses obtenues du netIC.

nic_tt00

Il est nécessaire en premier lieu de vérifier les paramètres de connexion sur l’interface série que vous réglerez bien sûr à l’identique de ceux affectés avec le « netX Configuration Tool ».

Puis il faut se connecter, ce que l’on fait en cliquant sur le bouton idoine :

nic_tt01

Une fois connecté, on a accès à toute l’interface dédiée, que les onglets présentent dans l’ordre du modèle de données, cf. la documentation.

Ainsi on peut lire les informations systèmes, qui sont là pour vous permettre d’identifier le matériel et le firmware s’exécutant sur le netIC, ici un netIC 50-RE avec firmware Ethernet/IP Adapter :

nic_tt02

On peut lire et éventuellement modifier les réglages système :

nic_tt03

Pour certains bus de terrain, un état étendu est disponible, ce qui n’est pas le cas pour le firmware chargé :

nic_tt04

Il est aussi possible de modifier le paramétrage du côté bus de terrain :

nic_tt05

On peut consulter l’état du système :

nic_tt06

On peut agir sur les drapeaux et ainsi piloter le firmware :

nic_tt07

Et bien sûr jouer avec les entrées et sorties :

nic_tt08

Cherry on the cake, une superbe horloge Hilscher vous est offerte ! 😉

Hilscher-Clock

Nos clients obtiennent le code source sur demande pour en faire ce qu’ils souhaitent.

Cordialement,
Stéphane

cifX : Siemens WinAC RTX – Application de test – Configuration EIS

Bonjour,

Un petit ping pour indiquer une nouvelle version de l’application de test pour le pilote cifX pour WinAC RTX®, décrite ici et déjà.

La version de l’application de test libérée ce jour, et que vous pouvez vous procurer dès maintenant, montre la configuration d’une carte Hilscher cifX 50E-RE avec les firmwares suivants :

  • Open Modbus TCP en IO Server,
  • PROFINET IO IRT Device,
  • et Ethernet/IP Adapter.

J’ai donc ajouté le bloc fonction qui fournit la configuration Ethernet/IP Adapter :

FB46 CIFX_CNL_SCNFEIS0_0 Hilscher cifX Driver : Messaging / Set Configuration Ethernet/IP Slave (Adapter)

Vous pouvez également télécharger l’application de test mettant en œuvre une CPU 340-10 Modbus (BMX P34 1000) et un Coupleur Ethernet/IP et Modbus TCP (BMX NOC 0401) ici :
http://www.hf-news.fr/download/cifX/WinACRTX2009/Demo/SchneiderElectric/cifx-eis.auto.sta

Ainsi, vous pouvez aisément faire communiquer votre NanoBox Siemens avec un automate Schneider Electric par exemple, configuré en Maitre ou Scanner Ethernet/IP.

Comme à l’accoutumée, vous pouvez toujours nous solliciter pour obtenir un exemple de code convenant à votre besoin.

Cordialement,
Stéphane