Interview Davide Nardella French

Créateur librairie open source SNAP7 pour la communication PC/Automate Siemens

"Je suis Software manager chez MASMEC SPA,une entreprise italienne travaillant dans le domaine de l'automatisation industrielle et des technologies biomédicales"

Davide nardella 1

Pouvez-vous vous présenter?

Je suis Software manager chez MASMEC SPA, une entreprise italienne travaillant dans le domaine de l'automatisation industrielle et des technologies biomédicales.
Notre cœur de métier est la construction de lignes d'assemblage grande vitesse pour l'industrie automobile. Le département logiciel que je coordonne se compose de 20 employés.
Nos clients sont de grandes entreprises qui produisent des voitures et des composants  pour l'automobile dans le monde entier.

Quelle est l'origine du projet snap7?

Snap7 est né pour répondre aux exigences haute-vitesse de notre production. En effet,nous disposons d'une station dans notre usine produisant un ratio de 3,5 sec / pièce ne prenant  pas plus de 100 ms pour se connecter au serveur et connaître  si une pièce doit être usiné ou pas,nous avons mis sur pied la librairie Snap7 pour répondre à ce besoin.
Après deux ans d'usage interne, j'ai décidé de publier snap7 comme bibliothèque open source premièrement parce que j'utilise actuellement des logiciels open source et je voulais contribuer à la communauté, deuxièment pour avoir l'avis des utilisateurs sur les bugs et les améliorations qui m'aideront à améliorer le produit .

C'est quoi Snap7?

Snap7 est une bibliothèque de communication qui permet à votre application d'échanger des données avec des automates Siemens.
Il est multi-plateforme, actuellement, Windows, Linux, BSD, Solaris, OSX sont pris en charge et il est multi-architecture, 32/64 bits pour Intel / AMD / Sparc et 32 ​​bits pour ARM et MIPS.
Il est entièrement sûr et  permet l'échange de données asynchrone.
Snap7 n'est pas uniquement un driver de communication, c'est à dire un client qui se connecte à un automate, il contient aussi deux autres objet: le "server" et le "partner".


Le premier simule un processeur de communication (CP), accepte les connexions S7 par des clients externes, et répond à leurs demandes.
Cela signifie que les zones de données de votre application, tableau, structs et ainsi de suite, peuvent être vus par un HMI / OPC / SCADA du commerce comme un DB (bloc de données) standard.
Cela signifie que vous pouvez connecter un écran IHM du commerce à votre PC / Raspberry Pi qui sera reconnu (aussi par Simatic Manager) comme un CPU S7 315-2PN / DP.
Le partner implémente le protocole BSEND / BRECV pour obtenir des données non sollicités provenant de l'automate, cela signifie que l'automate envoie les données quand il veut. Ceci est utile lorsque des centaines d'automates auront besoin de conserver leur données de la manière la plus efficace.

Enfin snap7 est déployé avec de nombreux wrapper de haut niveau qui vous aident à importer les fonctions dans votre langue préférée. Actuellement, vous pouvez trouver des wrappers pour C, C ++, Delphi / Lazarus, .NET (C # / VB), LabVIEW, Python, Node.js. Il est également un utilisateur qui travaille actuellement sur un wrapper Ruby.

Il ya deux autres projets liés à snap7: Moka7 et Settimino.
Le premier est le portage de Snap7 sur Java, ce n'est pas un wrapper, mais un ensemble de classes standard pur Java  qui peut être utilisé dans votre programme sous toutes les plateformes qui supportent Java, y compris Android.
La seconde est la partie réécrit du client pour Arduino, optimisé pour un faible encombrement. Vous pouvez le trouver à http://settimino.sourceforge.net/.

Quelles sont les principales caractéristiques de la nouvelle version de Snap7?

Dans la dernière version, mis à part de petites corrections de bogues et améliorations, ont été introduits:
- Le soutien à l'architecture big-endian (SPARC et MIPS).
- Le support pour Arduino-YUN.
- Certaines classes d'assistance à la carte types S7 en .NET / types natifs C / Pascal et vice versa, et qui exécutent les big-endian / conversion little-endian.
- Des tests approfondis sous Windows 10
Snap7 est un projet actif, j'ai l'intention  d'ajouter le support de nouvelles architectures comme ARM-V8 (64 bits) quand j'aurais le matériel pour travailler avec et aussi le support de nouveau système d'exploitation comme iOS si j'ai un peu de temps libre ...

Quel modèle d'automate pouvons-nous utiliser avec snap7?

Snap7 peut communiquer avec tous les automates Siemens de la famille S7, avec quelques petites limitations, S71200, S71500 et LOGO 0BA7 / 0BA8.
Il fonctionne et est  100% compatible avec les  S7 CPU de  VIPA.

Quelles sont les différences entre le serveur OPC et pilote snap7?

Un serveur OPC est un objet OLE / COM / DCOM  qui offre une interface standard pour communiquer avec tous les automates programmables.
Son modèle est une norme industrielle éprouvée et offre à votre application une couche de haut niveau pour faire abstraction des structures de données spécifiques des fournisseurs d'automates.
Si vous concevez  une application de  SCADA/HMI avec collecte de données via un API Siemens S7 et que vous décidez plutard de  passer à la famille d'automate Rockwell au détriment de Siemens (achat d'un autre serveur OPC) vous n'aurez pas besoin de modifier le code source , si vous vous apercevez que quelques adaptations sont nécessaires, c'est parce que vous avez mal conçu votre modèle de données.

Contrairement au standard OPC,Snap7 est un pilote natif, il ne communique qu'avec la famille d'automate S7. Il est déployé en tant que bibliothèque binaire que vous pouvez lier, statiquement ou dynamiquement avec votre application.
Snap7 est lié à Siemens, il communique avec les DB, Merkers etc..., si vous avez besoin de réutiliser votre application pour communiquer avec une autre famille d'automate, vous devez changer la couche de communication.

Quel est l'avantage de la librairie Snap7 face au serveur OPC?



OPC est un produit commercial (et parfois cher), également,ses spécifications officielles ne sont pas libres.
OPC est lourd, dans sa mise en œuvre la plus simple, il est composé d'une couche d'abstraction et un pilote natif, son efficacité est spécifique au fournisseur.
Le rythme industriel est différent du rythme de logiciels grand public, le choix d'adoption de la norme Microsoft "volatile" (OLE) fait de l'OPC une architecture  fortement conditionnée.
Aujourd'hui,les modèles OLE / COM / DCOM de Microsoft sur lesquels se base OPC commencent à être obsolètes.
Pour surmonter ces limitations et permettre une architechture multi-plateforme, de nouvelles technologies ont été introduites comme OPC UA et OPC XML-DA, encore plus lourde.

Descrizione: C:\Deploy-1.2.0-02-01-2014\www 1.2\news_file\logo.png

Snap7 est rapide, il peut échanger un télégramme en 5 ms, il a été conçu dès le départ pour être multi-plateforme et multi-architecture, il ne peut communiquer qu'avec des automates Siemens S7 mais cela peut être fait avec pratiquement n'importe quel système d'exploitation qui prend en charge la couche Ethernet.
Snap7 est léger, aucune installation / administration est n'est nécessaire, pas besoin de bibliothèques tierces, vous pouvez écrire des applications portables qui fonctionne à partir d'une clé USB et permettant une reprise en cas de catastrophe, aussi, un technicien débutant peut configurer votre application. Si l'OS est stable snap7 fonctionne correctement.
Enfin, snap7 est gratuit et open source avec une licence flexible qui vous permet de l'utiliser sans limites dans votre application commerciale.
Je sais pertinemment que certaines grandes entreprises (que je ne peux pas nommer ici) migrent leurs racks de serveurs de l'OPC à snap7, à cause des coûts(serveur OPC) pour des centaines de licences.

Quelle application pouvons-nous faire avec le Node Js et snap7?

Désolé mais je ne connais pas trop  Node Js mais il y'a un membre de la communauté open source expert en la matière qui a écrit un wrapper Snap7 pour elle.
La meilleure façon est de visiter le lien https://github.com/mathiask88/node-snap7
Vous trouverez le code source et beaucoup de documentation.

Comment pouvons-nous utiliser snap7 avec Arduino ou le Raspberry Pi ?

Raspberry Pi et presque tous les autres petits PC  basés ARM et Linux sont entièrement pris en charge par snap7.
Il n'y a aucune différence en utilisant snap7 sous Ubuntu ou Raspbian ou Windows, si votre application, ou une partie de celui-ci, est multi-plate-forme, vous pouvez utiliser la bibliothèque snap7 sans changer une ligne de code.
Pour Arduino, comme je l'ai énnoncé plus haut, il ya le projet Settimino, une bibliothèque Arduino  que vous pouvez importer avec l'IDE de Arduino.

Propos recueillis par B.M

  • 3 votes. Moyenne 4 sur 5.

Commentaires

  • si amer
    • 1. si amer Le 26/08/2015
    svp comment communiquer avec un automate siemens

Ajouter un commentaire

 

7 choses à savoir si Tu débutes en automatisme...

7 choses que tu dois savoir si tu debutes en automatismeCliquez ici pour télécharger le guide PDF

Superv 3