Automation in Motion Blog created by Domedia to share experiences about automation products and audiovisual integration.

23 May 2010

[lang_fr]Forum de discussion sur la Domotique / Intégration[/lang_fr][lang_en]Automation forum avalaible now ![/lang_en]

[lang_fr]Après avoir utilisé les services de Google pour la mailing list consacrée à l’Automation, l’Intégration et toutes les problématiques qui tournent autour, nous avons décidé d’en faire un forum afin que les discussions soient plus ouvertes, archivées et accessibles au plus grand nombre !

Le forum est donc d’ores et déja disponible sur cette page, n’hésitez pas à vous inscrire et à participer, en respectant les règles de courtoisie et du forum :)

La section Protocoles vous permet de partager toutes les infos dont vous disposez sur le pilotage de différents appareils, et également de profiter des documents apportés par les autres membres :) Plus de monde participera, plus la base de données s’enrichira 😀

A bientôt sur le forum et bon week-end de Pentecôte…[/lang_fr][lang_en]This article is not avalaible in english as it concerns a french forum only.[/lang_en]

16 March 2008

[lang_en]Easy Modbus interface with HVAC system of Sauter :)[/lang_en][lang_fr]Interfaçage Modbus aisé avec une régul. de clim Sauter[/lang_fr]

Filed under: AMX — Tags: , , , , , , , , , , , , — vincen @ 9:24 am

[lang_en]So today I went on site for interfacing a NetLinx AMX system with Sauter HVAC system. The HVAC system is interfaced through a PC that translates internal bus to more regular Modbus/Jbus protocol.

Modbus is a pretty simple protocol but its implementation is not so simple due to three facts:

  1. It uses a pretty complex system to calculate a mandatory checksum at end of each message. But with help of a friend Jon, and also piece of code made by Crestron for their Modbus module, I was able to automate creation of Modbus messages in my NetLinx program. Here is result for exemple for a read command:
  2. STACK_VAR
    CHAR TEMP[6]
    CHAR INTERRO_A_ENVOYER[8]
    LONG TEMP_1
    LONG XFLG
    LONG I
    LONG J
    LONG CRC
    {
    TEMP = “1,3,0,((ETAPE-1)*4),0,2”
    CRC = $FFFF
    FOR(I=1;I<7;I++)
    {
    TEMP_1 = TEMP[I]
    FOR(J=1;J<9;J++)
    {
    XFLG = (CRC^TEMP_1) & $0001
    CRC = CRC >> 1
    IF(XFLG<>0)
    {
    CRC = CRC ^ $A001
    }
    TEMP_1 = TEMP_1 / 2
    }
    }
    I = CRC / 256
    J = CRC – (I*256)
    INTERRO_A_ENVOYER = “TEMP,J,I”
    SEND_STRING dvCLIM,INTERRO_A_ENVOYER
    }

    That sample computes automatically checksum for a read message of two bytes :)

  3. Second problem is for answer you get back from HVAC as temperature value is coded with IEEE system. I looked at it on internet but it looks pretty complex to encode, so for now I just do a comparison between know values and it allows me to get correct value, at price of extra comparison work but it functions perfect :) If someone already did a piece of code in NetLinx to encode/decode IEEE value, I’m interested in !
  4. Last point very important with Modbus protocol is that it doesn’t speak by itself :( So each time you want to know something you have to issue a read command. So best way is to use a timeline you run in background that continuously asks values at system so you keep always value up to date :)

Hope it helped you, and feel free to ask questions you might have in comments ![/lang_en]

[lang_fr]Je me suis donc rendu aujourd’hui sur site pour la mise en route de l’interfaçage d’un système NetLinx AMX avec une régulation de climatisation fabriquée par Sauter. La clim. Sauter est équipé d’un ordinateur de type PC qui sert de passerelle entre le bus interne du système Sauter et le protocole à la norme Modbus/Jbus.

Modbus est un protocole relativement simple mais son implémentation n’est pas si simple pour trois raisons:

  1. Le protocole utilise un système plutôt complexe de calcul du checksum qui est obligatoire à la fin de chaque message transmis. Mais avec l’aide d’un ami, Jon, et avec l’aide également d’un bout de code fait par Crestron pour leur module Modbus, j’ai réussi à automatiser la construction des trames Modbus dans mon programme NetLinx. Voilà le résultat pour une commande de lecture:
  2. STACK_VAR
    CHAR TEMP[6]
    CHAR INTERRO_A_ENVOYER[8]
    LONG TEMP_1
    LONG XFLG
    LONG I
    LONG J
    LONG CRC
    {
    TEMP = “1,3,0,((ETAPE-1)*4),0,2”
    CRC = $FFFF
    FOR(I=1;I<7;I++)
    {
    TEMP_1 = TEMP[I]
    FOR(J=1;J<9;J++)
    {
    XFLG = (CRC^TEMP_1) & $0001
    CRC = CRC >> 1
    IF(XFLG<>0)
    {
    CRC = CRC ^ $A001
    }
    TEMP_1 = TEMP_1 / 2
    }
    }
    I = CRC / 256
    J = CRC – (I*256)
    INTERRO_A_ENVOYER = “TEMP,J,I”
    SEND_STRING dvCLIM,INTERRO_A_ENVOYER
    }

    Ce bout de code calcule automatiquement le checksum pour un message d’interrogation de deux octets :)

  3. Le deuxième problème est la lecture de la réponse obtenue du système de clim car les valeurs sont codées au format IEEE. Je me suis renseigné sur Internet mais ce système a l’air plutôt complexe pour l’encodage, donc pour le moment, j’ai réalisé un test en dur dans mon programme avec des valeurs connues pour savoir par approximation la valeur retournée par la clim. Cela nécessite un traitement un peu fastidieux mais ça fonctionne parfaitement :) Si quelqu’un a déja fait un bout de code en NetLinx pour encoder/décoder des valeurs IEEE, je suis intéressé !
  4. Le dernier point très inportant avec le protocole Modbus est qu’il ne parle pas par lui-même :( Donc chaque fois que vous voulez savoir quelque chose vous devez émettre une commande de lecture. Donc la meilleure façon de travailler est de faire tourner une timeline en tâche de fond qui périodiquement interroge les valeurs du système de clim afin de garder l’AMX synchrone avec le système de clim :)

En espérant que cela vous ait aidé, et n’hésitez pas à poser des questions dans les commentaires si besoin est ![/lang_fr]

13 February 2008

[lang_en]My first Adagio programmation: wow :)[/lang_en][lang_fr]Mon premier système Adagio: wow :)[/lang_fr]

[lang_en]So here we are, I have to go on site to program an Adagio system in emergency for a customer that didn’t realise some few things :(
He bought an Adagio System with five iPod docks. He learned lesson from manufacturer stating you can install an Adagio directly out of the box without computer neither programming work :) Unhappy it’s not true if you use five docks as you need to attribute each dock at a room ! So I have been called in emergency to go on site and program system. Unhappy I had never used previously an Adagio, yet less programmed one but Crestron told me it was really simple with Adagio Designer, so let’s go….
Here I’m few days later on site, in a nice place in french Alps with my Macbook ready to program (well I read all manuals of equipment few days before, downloaded all firmwares of products used and checked I had latest version of System Builder installed).
First thing, I check quickly wiring made by the dealer (correct wiring between iPod dock, Abar, Adagio, and loudspeakers). It looks fine. So now I connect my computer with program cable to program port of Adagio and set up its network with Toolbox. Once setup and one reboot later of Adagio, I’m able to connect to it with Toolbox directly through Ethernet :) Looks to be on good way !
Now let’s start Adagio Designer, it’s really simple, select number of zones, name of each one, output used, number of accessories (so I declare my five iPod docks), which input I use for each one, number of keypads used (five APAD here), and then it generates everything for me, and it flips to System Builder directly ! Wow, I did nothing special, very simple and straighforward 😀
I just check quickly what system has done for me and it looks fine, so I decide download everything, it first starts to download keypads (slowly, not very nice for that), then Adagio program, and Adagio restarts at the end.
I go to first APAD, put my iPod in dock, and it works great :) and so on for the other four zones !
So I must confess it’s really simple to program (well it’s not programming when you do so few things) and quickly avalaible for use by end user 😀
It looks to be really a great product as it includes also a bunch of control ports as a regular controller so you can get a whole multizone audio system with also control of other sources or equipments such as lights, HVAC.. without additional equipments for automation !

Thanks CRESTRON to make it so simple !

P-S: I also did update of firmware of all equipments before first upload of program to be sure everything is well up to date :)[/lang_en]

[lang_fr]Nous y voilà, je dois aller sur site chez un client en urgence pour programmer un système Adagio car le client avait un peu zappé le fait qu’une programmation est parfois nécessaire pour la bonne mise en route d’un Adagio :(
Le client a acheté un système Adagio avec cinq docks iPod. Il a bien écouté le fabricant qui lui a expliqué qu’un système Adagio marche directement au déballage sans aucun besoin d’ordinateur ni de programmation :) Malheureusement cela n’est pas tout à fait vrai si vous utilisez plus d’un dock iPod car il est alors nécessaire d’attribuer chaque dock à une zone ! De ce fait j’ai été appelé à la rescousse en catastrophe pour programmer ce système. Malheureusement je n’avais encore jamais touché un système Adagio, encore moins programmé un mais Crestron me dit que c’est vraiment très simple avec Adagio Designer, donc c’est parti pour l’aventure….
Me voici donc quelques jours plus tard sur site, dans un coin sympa des Alpes avec mon Macbook prêt à programmer le système (bon j’ai lu tous les manuels des produits les jours précédents, téléchargé tous les firmwares des appareils, et vérifié que j’avais la dernière version de System Builder sur mon ordinateur).
Première chose, je vérifie rapidement le cablâge réalisé par l’installateur (bon branchement entre les docks iPod, les Abars, l’Adagio et les hauts-parleurs). Tout a l’air correct. Je connecte donc mon ordinateur avec le câble de programmation au port de programmation de l’Adagio et je réalise sa configuration réseau avec Toolbox. Une fois paramétré et un redémarrage plus tard de l’Adagio, je m’y reconnecte avec Toolbox directement en Ethernet :) Pour le moment cela a l’air d’être un bon jour !
Maintenant on passe à Adagio Designer, c’est vraiment simple, je choisis le nombre de zones audio, je donne un nom à chaque zone, les sorties utilisées sur l’ampli, le nombre et le type d’accessoires utilisés (donc je déclare juste mes cinq docks iPod), les entrées sur lesquelles je les ai câblés, le nombre de claviers utilisés (cinq Apad dans le cas qui nous intéresse), et Adagio Designer se charge alors de faire tout ce qu’il faut pour moi, et je me retrouve alors dans System Builder directement ! Wow, j’ai rien fait de bien spécial, très simple et rapide 😀
Je jette un oeil rapidement sur ce qui a été automatiquement généré et cela a l’air correct, donc je décide de lancer le téléchargement, il démarre le téléchargement par les claviers (lentement, un peu bof bof sur ce point), puis le programme Adagio, et le tout se termine par un redémarrage de l’Adagio.
Je vais au premier clavier APAD, je mets mon iPod dans le dock, et ça fonctionne nickel :) et ainsi de suite pour les quatres autres zones !
Je dois bien reconnaitre que cela est vraiment simple à programmer (enfin c’est même pas de la programmation quand on a aussi peu de choses à faire) et rapide à fonctionner pour l’utilisateur 😀
Cela a vraiment l’air d’un produit très sympa d’autant plus qu’il inclue un paquet de ports de contrôle comme une centrale classique ce qui vous permet de disposer d’un système audio multizone complet avec pilotage des autres sources ou d’équipements tels que les éclairages ou la clim… sans matériel supplémentaire de pilotage !

Merci CRESTRON pour rendre cela aussi simple !

P-S: J’ai également fait la mise à jour firmware de tous les appareils avant le premier chargement du programme afin de m’assurer que tout est à jour :)[/lang_fr]

12 February 2008

[lang_en]Welcome here ;)[/lang_en][lang_fr]Bienvenue ici ;)[/lang_fr]

[lang_en]Hello,

Welcome on that new blog but why that new blog on Internet ? One more you’ll say ! that’s right but that one will be focused on automation markets for audiovisual and conferencing rooms (typically AMX and Crestron systems) but we’ll also speak about Cue, Control4, Pronto, Vity, Dataton and all others I forgot to name 😉
It’s free from any manufacturers so we are free to speak about what we thing so long it keeps polite and true.
We’ll publish some articles dedicated at new products of these manufacturers, but also some tips for installation, programmation, bugs, issues….. so we hope it’ll become an enjoyable ressource for all people concerned by these products for installation and use :)

Welcome on board

Vincèn[/lang_en]

[lang_fr]Bonjour,

Bienvenue sur ce nouveau blog mais pourquoi un nouveau blog sur Internet ? Un de plus vous allez dire ! et c’est vrai mais celui-ci est consacré au marché de l’automation pour les salles de conférence et l’audiovisuel (classiquement les systèmes AMX et Crestron) mais nous parlerons également de Cue, Control4, Pronto, Vity, Dataton et tous ceux dont j’ai oublié de citer le nom 😉
Nous ne sommes affiliés à aucun fabricant et sommes donc libres de nos propos, dans la mesure où ils restent polis et basés sur la réalité.
Nous publierons des articles dédiés aux nouveaux produits de ces fabricants, mais aussi des conseils et astuces pour l’installation, la programmation, les problèmes rencontrés….. . Nous espérons que ce site deviendra une ressource utile pour toutes les personnes concernées par ces produits aussi bien pour l’installation que l’utilisation :)

Bienvenue à bord

Vincèn[/lang_fr]

Powered by WordPress