Arduino et OPC, RSView32

Bonjour, tout d'abord, je me présente:

Je suis Normand, un "patenteux" du Québec, au Canada. (Un patenteux ça signifie une personne qui invente des
choses, un bricoleur ambitieux dans le jargon Québécois)

Je suis technicien en électronique Industrielle dans la vie (certains appellent ça "Automaticien") et j'ai une bonne
connaîssance du domaine de l'électronique. Ma grosse lacune: les protocoles de communication... C'est ici que
j'ai besoin du génie des autres!

Je suis tombé sur l'Arduino il y a un an et j'en ai tout de suite commandé un (version Mega) pour faire des tests.

C'est très amusant, mais il reste que sans HMI, c'est un peu limité... J'ai une version étudiante de la suite
Rockwell Software complète qu'on avait obtenu durant mon cours. J'aimerais utiliser RSView32 et RSlinx pour
communiquer avec l'arduino et contrôler ses entrées/sorties. Le problème est que je n'ai aucune idée comment
faire et que ça fait déjà 12 heures que je cherche sur le sujet sur le net.. j'ai mal à la tête et je n'ai même pas
commencé à coder! :frowning:

Si quelqu'un est prêt à m'aider, cela me sera d'un grand secours! Je mettrai en ligne tous mon travail au fur et
à mesure. En passant, je veux utiliser l'Arduino pour contrôler ma maison que je suis en voie de transformer en
maison verte autonome (Serre, récupération de l'eau, gestion de l'énergie, chauffage solaire etc.)

Merci!

Bonjour,

Normand_Nadon:
C'est très amusant, mais il reste que sans HMI, c'est un peu limité... J'ai une version étudiante de la suite
Rockwell Software complète qu'on avait obtenu durant mon cours. J'aimerais utiliser RSView32 et RSlinx pour
communiquer avec l'arduino et contrôler ses entrées/sorties.

D'abord, mauvaise nouvelle, je ne connais pas ces programmes, et je crains que sans les avoir sous la main cela nous sera difficile de t'aider (en plus ça à l'air d'être que sous windows only, et je suis sous linux). Si j'ai bien compris, cela permet graphiquement de visualiser des capteurs, contrôler des interrupteurs, des processus...

Quels sont tes besoins ? Aurais-tu un exemple de ce que tu voudrais obtenir avec ces programmes. Peut-être une solution alternative existe-t-elle ?

churchill

Bonjour Churchill et merci de t'intéresser à ce sujet!

Bon, pour ce qui est des logiciels, qui dit protocole OPC dit Windows! Malheureusement!

Le logiciel RSView est un logiciel Allen Bradley pour créer des HMI. RsLinx Assure la
communication entre les divers équipements physiques et le PC.

Au fond, il peut gérer pas mal tous les types de communications "industrielles" allant du
RS485 au DeviceNet en passant par l'Ethernet.

La question est surtout de savoir si l'Arduino peut être contrôlé à distance par réseau...
Ensuite, un coup les tags créés, il me sera très facile de créer une interface utilisateur
(HMI) avec RSView. Je ne suis juste pas programmeur informatique et les protocoles de
communication c'est très flou pour moi! Je lis beaucoup mais j'ai peine à tout comprendre.

En gros, l'idée sera de pouvoir avoir une interface visuelle que ma conjointe pourra elle-
même utiliser et aussi la capacité de sortir des graphiques des différents éléments de
l'environnement de la serre et de la maison

Je ne peux que te conseiller d'aller faire un tour sur le playground ou tu trouveras un tas d'exemples pour différents protocoles. Il s'en trouvera bien un qui sera compatible avec ton programme !

churchill

Je fouine là dedans... Y'a beaucoup de matériel!

Du moment que je tombe sur une solution viable, je saute dessus!

Normand_Nadon, ton post m'a interpellé...
En effet, ma maison est actuellement piloté par un ControlLogix. J'avais dans l'idée de superviser tout ça avec RSView ou Intouch via OPC. J'avais même commencé à développer une solution web, qui marchait pas mal, en faisant une passerelle en VB entre RSLinx et une base de donnée MySQL.
Mais force est de constater qu'un automate industrielle, pour piloter une maison, c'est un peu surdimensionné (mais très fiable), et surtout pas souple du tout. RSView, pas trop adapté non plus et... "payant".
Puis Arduino est arrivé dans ma vie :slight_smile:
Et l'esprit de l'open source avec.
Je développe donc ma solution domotique à base d'arduino, que j'espère coupler à un IHM libre et évolutif (Domogik)
Bref. En ce qui concerne la communication entre RSLinx et Arduino, ça doit bien sur être possible. Soit par la liaison série, soit par Ethernet, via OPC ou pourquoi pas DDE. Mais bon courage pour te procurer les protocoles. Tu peux glaner des informations sur OPC sur www.mrplc.com par exemple.
Il existe des DLL qui marchent bien pour récupérer dans un programme windows des tag OPC.
Une piste: Modbus. Tu trouveras peut-être plus facilement une passerelle Arduino-Modbus-OPC ?

Mais je trouve quand même qu'il y a une certaine contradiction à utiliser un logiciel comme RSView (plusieurs milliers de $ et fermé) avec une plateforme comme arduino (quelques $ et open) ]:smiley:
Ceci dit, c'est avec plaisir que je suis prêt à t'aider dans ta quête de l'impossible !

Gromain

Hey! Bonjour Gromain! J'ai épluché pas mal tous tes posts car tu es celui
qui est le plus près de ce que je tente de faire du côté francophone! (Je
comprend parfaitement l'anglais, mais travailler dans ma langue innée est
beaucoup plus agréable!)

Tu as utilisé un ControlLogix! Wow! Ça c'est "overkill".. Mais c'est sûr que
ça ne plantera jamais! Avoir les moyens, j'y serais allé avec un CompacLogix
ou un FlexLogix... Mais je n'ai pas ce genre de budjet!!!

Pour ce qui est des logiciels, j'ai acheté pour environ 200$ au Cégep (Lycée)
la suite COMPLÈTE de toute la gamme de logiciel AllenBradley. Je ne sais pas
s'il s'agit d'une erreur ou si c'était volontaire de leur part, mais la lisence n'a
pas de date de fin... Bien sûr, ça doit être utilisé pour des fins personnelles ou
éducatives et non-commerciales. La seule limitation que j'ai dans la suite est
au niveau de RSView32 qui a un nombre limité de Tag externes (internes
illimités) Mais nous avons trouvé le moyen de contourner ça en utiliseant des
"DWord" pour y dissimuler plusieurs addresses ce qui fait en sorte qu'il est possible
d'avoir des milliers d'addresses externes!

Je vais aller voir du côté de Domogik... Peut-être que je vais y trouver mon compte!

Merci

Et meeeerde... je réalise que ça roule sous linux ce truc là!

Ok... "crash course" SVP.. quelle version de Linux est-ce que
je dois utiliser... J'ai un Disque dur vite que je peux mettre
dans mon ordinateur portable et rouler en Linux...

Je ne suis vraiment pas habitué à cette plate-forme... j'avais
déjà essayé de faire la transition il y a 5-6 ans, mais je suis
resté sur Windows....

Domogik semble très bien... je veux l'essayer!

Salut,

pour le ControlLogix, c'est de la récup d'un chantier de rétrofit...
Dans mon job, j'ai eu affaire à quasiment toute la gamme Rockwell (SLC500, PLC5, ControlLogix, CompactLogix...)
Pour ton projet, il faudrait savoir ce que tu veux faire exactement: avoir une centrale domotique polyvalente ou utiliser absolument un IHM RSView ?
Pour Domogik, tu peux te rendre sur l'IRC: #domogik@irc.freenode.net, tu pourras converser -dans ta langue natale- avec les concepteurs. Attention, il est encore en version Alpha, donc pas encore pleinement fonctionnel.
Comme tu as pu voir, ça fonctionne sous Linux Ubuntu. J'ai moi-même sauté le pas il y a quelques mois, sans trop de problème. J'aurais du mal à revenir en arrière maintenant...
A noter que l'IDE Arduino fonctionne très bien sur cette plateforme.

@+

Gromain

Que veux tu dire par "IDE arduino" ???

Normand_Nadon:
Que veux tu dire par "IDE arduino" ???

C'est tout simplement l'environnement de développement de l'Arduino.

churchill

Comment as tu fais pour créer le pont entre l'Arduino et Domogik?

De ce que je vois, Domogik est conçu pour brancher les éléments terminaux direct au PC...

Voici un diagramme (très enfant de 5 ans!) qui représente ce vers quoi je veux me diriger

En noir, la "phase 1";
En rouge, la "Phase 2";
En bleu/vert, la "Phase peut-être plus tard" !

Je veux que l'Arduino gère les PID lui-même, mais le PC sera là pour ajuster le tir.
L'heure sera également reprogrammée par le PC en cas de besoin (pas besoin de
RTC ici.. ce n'est pas la NASA!)

Quelqu'un a une idée ou un lien vers quelque chose qui pourrait m'éclairer?

Salut,

Une question. Comment comptes-tu relier les capteurs et autres relais à "la centrale". As-tu déjà câblé ta maison ou est-ce que cela fait partie du projet ?
Si tu as déjà de l'ethernet partout, peut-être le plus simple est de l'utiliser, une carte (ou plus) par pièces.

Dispose-tu d'un serveur qui orchestrera tout ça, ou veux tu quelque chose de totalement autonome, genre si capteur 1>50%, fermer les volets ?

churchill

Pour l'instant, je n'ai rien de câblé... Je préfère bien planifier mon projet et faire des tests à petite échèle avant d'investir temps et argent dans une solution non viable...

L'idée est que l'arduino soit autonome si le PC n'est pas connecté mais que si je me connecte, je puisse changer des variables à distance...

Pour ce qui est du réseau, j'ai déjà un réseau sans fil qui couvre ma maison et encore bien des espaces pour ajouter des connections directes au routeur. Comme mon sous-sol n'est pas fini, je peux passer n'importe quel câble aisément.

Salut,

Voici l'architecture que j'ai finalement retenu:

Les échanges entre arduinos et entre arduino-domogik se font par des messages XPL, transporté par UDP.
C'est ce que tu peux mettre en place chez toi. J'ai implémenté le protocole XPL dans les arduinos.
Reste juste à adapter en fonctions des schémas de message dont tu as besoin.
Et côté Domogik, à créer les fichiers xml qui font la liaison (pas encore fait pour mon projet).

Gromain

La boîte bleue qui gère les XPL, c'est quoi? un routeur standard?

Et le hub, c'est un PC serveur?

En passant je continue un peu plus loin sur la piste du OPC et ça semble pouvoir fonctionner...
Il me faudrait passer la comm en RS232 ou RS485, créer un serveur OPC sur le PC (celui de
RS linx n'est pas indispensable au fonctionnement de RSView32)

Je veux quand même approfondir la piste Domogik... j'ai hâte de voir le développement de
ton système Gromain!

Pour ma part, le fait que je ne sois pas programmeur informatique ralenti énormément ma
progression dans le domaine de l'Arduino et des communictions! Mais je lis à peu près l'équivalent
de 3 botins téléphoniques d'infos par semaine sur le sujet pour m'instruire... je vais y arriver!

Le hub est un soft inclus dans domogik. Son rôle est d'écouter le port XPL et de transferer aux autres soft l'information. Tu trouveras une explication du principe de fonctionnement ici: xPL Monkey - Home Automation - xPL Primer Diagram
La boite bleu est un simple switch. L'idée est que l'arduino envoyant un message UDP vers l'adresse broadcast (càd adresse IP terminant pas 255), le switch se charge alors de retransmettre le message à tous les équipements connectés (autre arduino, serveur domogik...)
L'ambition du XPL est d'offrir une interropérabilité entre des équipements de différents type (sonde de température, RFXCom, arduino...)

Concernant l'aspect programmeur, je n'en suis moi-même pas un. A la base je suis aussi automaticien :wink: autant dire que arduino est à ta portée !
Tiens moi au courant pour OPC, je suis preneur.

Bon, je suis en train de monter mon ordinateur portable en Dual Boot WindowsXp/Linux
et d'installer tout ce dont j'ai besoin pour faire des tests... (J'étais en Windows7, ce n'est
pas compatible avec mes soft.)

Dès que j'ai fini les installations, je me fais un gros backup avec Acronis et je commence
l'exploration!

Je te tiens au courant Gromain. Content qu'on soit 2 à rechercher sensiblement la même
chose! C'est plus facile d'avancer en équipe!

La clé pour RSView32 est peut-être BEAUCOUP plus facile que je pensais....

OPC n'est pas obligatoire... Je peux utiliser DDE pour communiquer entre
RSView et un spreadsheet Excel (Je travaille là dessus en ce moment)
Puis j'utiliserai un des nombreux exemples de comm. entre Excel et port
série disponnibles sur le playground.

Si ça ne fonctionne pas, j'ai trouvé un serveur OPC assez cool qui "jase"
avec pas mal n'importe quoi... mais ce sera plus difficile pour moi à
configurer...

Je me souviens que RSView est capable d'écrire dans une BDD SQL.
Si il est aussi capable de lire des valeurs dans une telle base, pourquoi ne pas faire écrire l'arduino dans une base de données commune ?
Ça ferait une sorte de table d'échange.

Gromain