Calaos, Home Automation Forum
Impossible d'accéder a l'automate - Printable Version

+- Calaos, Home Automation Forum (https://calaos.fr/forum)
+-- Forum: Général (https://calaos.fr/forum/forumdisplay.php?fid=1)
+--- Forum: Discussions Générales (https://calaos.fr/forum/forumdisplay.php?fid=3)
+--- Thread: Impossible d'accéder a l'automate (/showthread.php?tid=666)

Pages: 1 2 3 4 5


RE: Impossible d'accéder a l'automate - gwarf - 03-13-2017

Super Mifrey, bon je suis un peu circonspect quand je regarde mon c^able a 50 euros, merci Wink
Si on pouvait faire/avoir un beau connecteur pour le cote automat ca serait top Smile

Yes Raoulh, il y a la tete, trois bornes de 16 entrr'ees, trois bornes de 16 sorties, et la borne de fin.
Ma prog "manuelle" marche en plus, il y a vraiment que le reseau qui ne veut vraiment pas, c'est etrange je sais.

Rien n'a change sur l'automate, il est en production depuis des annees et je l'ai utilis'e pendant un long moment avec la centrale.

Je vais contacter InSystems, mais bon j'en attend pas grand chose, de toute facon a priori je vais devoir en racheter un, yahou, 400 euros... Mon paternel arrete pas de me vanner avec mon super automate (entre le coup du cablage supplemenaire, le coup de l'automate, et la le moment ou j'avais plus rien et ou j'ai du bricoler un programme pour le wago dans la journee, et tout ,ca pour m'amuser... C'est moqueur les anciens des fois Big Grin )

Bon sinon tu connais une doc sympa sur ST? J'ai trouv'e des trucs, mais ca aborde/utilse pas les entreess %IX0 et sorties %QX0.
Comment je peux faire pour reussir a passer en param une sortie? (car a priori ca passe un bool, pas la sortie, il y a un systeme de pointeur/references?) ou concatener la sortie pour pouvoir faire un truc du genre (I etant le param d'une fonction) :

Code:
I: STRING;

%QX0. + I := TRUE;

Merc !


RE: Impossible d'accéder a l'automate - raoulh - 03-13-2017

Essaye de contacter Wago france plutot. Ils ont un bon support et pourront peut t'etre t'aider.

Sinon pour ce que tu veux faire, non ca marche pas ca. C'est le but de la norme de programation sur les automates qui veut ca. C'est pas possible de faire des trucs dynamiques comme ca avec les IO. C'est pour que ce soit reproducible a 100%. Quand t'as des machines derrieres c'est de la securité niveau soft.
Mais ca nous fait bien chier Wink
Du coup dans calaos_wago je fais en tappant directement aux addresses memoire en utilisant des workarounds. C'est pas genial mais ca marche a peu pret.

Ce que tu peux faire par contre, c'est de prendre calaos_wago, de le charger dans l'automate, et de modifier les variables globales qui contiennent la "programation calaos". Par defaut c'est vide, calaos installer charge chaque entrée de config dans les variables, et ca roule. Vu que t'as pas de reseau tu peux le faire a la main en affectant ces var la a la main.
Des que j'ai 5 min, je te fait un post pour t'expliquer ou et comment faut faire.
Au moins t'auras une prog de base de nouveau...


RE: Impossible d'accéder a l'automate - gwarf - 03-13-2017

Arf, OK les joies de la prog PLC... Smile Remarque finalament que ca soit pas possible ça me rassure sur le fait que je n'ai pas réussi a le faire Wink

J'ai fait un mail a InSystems, je vais contacter Wago France aussi. Tu sais quel est la durée de garantie? Bon j'imagines que c'est pas 10 ans évidemment...

OK, en fait j'ai commencé par reagarder calaos_wago, mais il y a beaucoup (trop) de choses a intégrer pour moi Smile Et de ce que j'ai compris je peux pas si simplement bidouiller en utilsant les adresses des I/O.


Pour l'instant ma prog est a base de:
Code:
B_RTRIG.CLK := %IX0.23;

B_RTRIG();
IF(B_RTRIG.Q) THEN
   B_doLamp := NOT(B_doLamp);
END_IF

IF B_doLamp THEN
   %QX0.13 := TRUE;
   %QX0.14 := TRUE;
   %QX0.33 := TRUE;
ELSE
   %QX0.13 := FALSE;
   %QX0.14 := FALSE;
   %QX0.33 := FALSE;
END_IF

C'est pas beau du tout (et en gros j'ai un X_RTRIG par inter et un X_doLamp par lampe), mais du coup ca semble marcher et je peux gérer plusieurs lampes avec un bouton, alors que du coup avec le mode dégradé calaos_wago je ne pourrais pas, c'est ça ?

Te prend pas la tete pour documenter pour moi (enfin ça pourrai peut être servir pour d'autres), la ca marche suffisemment pour le moment, il me manque juste la partie pour les volets roulants, mais c'est pas dramatique, je les ferme plus depuis un an... Apres si t'as un bloc de code que je peux utiliser simplement pour ca en utilisant les I/O direct...


RE: Impossible d'accéder a l'automate - gwarf - 03-13-2017

J'ai eu Wago au tel, en effet le support semble etre de qualité (sympa et dispo c'est cool).
Je vais tenter un flashage du firmware pour voir, apres ça pas grand chose a faire a priori...
Et la garantie c'est deux ans.


RE: Impossible d'accéder a l'automate - mifrey - 03-13-2017

(03-13-2017, 11:26 AM)raoulh Wrote: ...
Ce que tu peux faire par contre, c'est de prendre calaos_wago, de le charger dans l'automate, et de modifier les variables globales qui contiennent la "programation calaos". Par defaut c'est vide, calaos installer charge chaque entrée de config dans les variables, et ca roule. Vu que t'as pas de reseau tu peux le faire a la main en affectant ces var la a la main.
Des que j'ai 5 min, je te fait un post pour t'expliquer ou et comment faut faire.
Au moins t'auras une prog de base de nouveau...

Ca ca serait interessant ! Ca permettrait par la meme occasion de comprendre un peu mieux comment l'automate et en particulier le mode degrade fonctionnent.


RE: Impossible d'accéder a l'automate - gwarf - 03-13-2017

Bon du coup j'ai pu flasher le firmware, je suis maintenant en version 10 (j'etais en 04), au milieu du flashage il y a eu un gros moment de stress car il n'a pas redémarré et que la LED I/O était rouge... Encore un soucis du au reseau qui marche mal: il faut que je mette le DIP sur une IP fixe, que je branche un cable reseau sur le switch, mais qu'il n'y est pas de serveur DHCP pour que ca veuille bien finir le démarrage (mais le reseau ne marche pas et du coup apres je peux le debrancher)! Du coup c'est bon pour le flashage, mais toujours le même soucis. Un détail que je n'avais pas remarhqué et qu'on a vérifié avec le support : les leds sur les prises RJ$% elles mêmes ne s'allument pas du tout.
Don du coup j'ai commandé un autre Wago, ça permettra j'esperes de valider que c'est bien ça le soucis.

Si vous voulez flasher un 750-881 j'ai donc le soft et le dernier firmware. (j'ai aussi le dernier firmware du 750-880).
C'est en acces public a priori, donc a la limite on peut le mettre sur le Wiki, non ? Avec un warning a la limite.


RE: Impossible d'accéder a l'automate - raoulh - 03-13-2017

Donc le prog wago en mode degradé marche comme ceci:

Il y a un tableau avec toutes les entrées. Chaque entrée peut avoir une "action":
  • Aucune action (ne fait rien, valeur par defaut)
  • Telerupteur (agit comme un telerupteur et bascule la sortie a 0 ou 1 a chaque appui)
  • Direct (Mets la sortie a 1 tant que l'entrée est a 1 et a 0 des qu'on relache)
  • Volet (volet classique montée/descente)
  • Volet impulsion (volet qui se pilote avec une impulsion au lieu d'un maintient des relais)
  • Telerupteur DALI (pilote une lumiere DALI au lieu d'une sortie relais)
  • Telerupteur DALI Groupe (idem mais un groupe DALI)
  • Telerupteur KNX (pilote une sortie KNX, seulement pour les 849)
  • Telerupteur KNX Direct (Idem que Direct mais pour du KNX)
Donc chaque entrée peut etre configuré avec un de ces types d'actions. En plus il faut donner des parametres:
  • ADDR1: Addresse utilisé, par exemple si telerupteur: la sortie. Si volet: la sortie pour la montée, DALI: addresse DALI, ...
  • ADDR2: 2eme addresse si besoin (que pour les volets pour la descente)
  • SameAs: Fonction speciale expliqué plus loin
On peut donc pour chaque entrée faire une action. Ex:

Code:
Input 0 -> Rien
Input 0 -> Addr1: 0 Addr2: 0 SameAs: -1
Input 1 -> Telerupteur
Input 1 -> Addr1: 25 Addr2: 0 SameAs: -1
Input 2 -> Volet
Input 2 -> Addr1: 30 Addr2: 31 SameAs: -1
Input 3 -> Telerupteur
Input 3 -> Addr1: 0 Addr2: 0 SameAs: 1

Ici on a l'entrée 0 qui ne fait rien. L'entrée 1 pilote une lumiere sur la sortie 25. L'entrée 2 pilote un volet avec la montée addresse 30 et la descente addresse 31.
L'entrée 3 est particuliere. Elle est configurée comme un telerupteur (comme l'entrée 1) mais les addresses sont a 0 et le SameAs est a 1.
Cela signifie que l'entrée 3 va piloter la meme lumiere que l'entrée 1. En utilisant le meme bloc fonction (et le meme etat de la lampe). Ca permet d'avoir plusieurs inter qui pilote la meme lampe/volet. Attention, il faut que le SameAs soit -1 si il n'est pas utilisé.

Calaos Installer genere donc c'est mini config a partir de la config normale (et donc elimine une bonne partie de ce qui est pas faisable en mode degradé) et envoit ca en UDP au wago.

Dans calaos-os il y a un outil qui permet de faire ca a la main, wago_test


Code:
root@intel-corei7-64:~# wago_test

Calaos Wago Utility.
Copyright (c) 2006-2017, Calaos. All Rights Reserved.

config_wago Usage:
        wago_test host <ip address> action <action> [Action options]

        Where action:
                set_outtype: <address> <type> (type=NONE, TELERUPTEUR, DIRECT, VOLET, VOLET_IMPULSE, TELERUPTEUR_DALI, TELERUPTEUR_DALI_GROUP, TELERUPTEUR_KNX_OUTPUT, DIRECT_KNX_OUTPUT)
                get_outtype: <address>
                set_outaddr: <address> <out1> <out2> <SameAs>
                get_outaddr: <address>
                get_version
                get_info
                get_info_module: <module>
                get_volet_positions: <var_save>
                set_server_ip: <ip>
                set_output: <out> <boolean>
                set_knx_output: <out> <boolean>
                heartbeat (send heartbeat to the PLC)
                set_dali: <dali_line> <group?> <address> <value> <fade_time>
                get_dali: <dali_line> <address>
                dali_search_devices: <dali_line>
                dali_get_device_info: <dali_line> <address>
                dali_get_device_group: <dali_line> <group>
                dali_device_add_group: <dali_line> <address> <group>
                dali_device_del_group: <dali_line> <address> <group>
                dali_central: <dali_line> <boolean> (switch on/off all DALI lamps)
                dali_blink: <dali_line> <address> <group?> <blink_time>
                dali_blink_stop: <dali_line>
                dali_set_device_config: <dali_line> <address> <fade_rate> <fade_time> <max_level> <min_level> <system_failure_level> <power_on_level>
                dali_addressing_new: <dali_line> <reset?>
                dali_addressing_add: <dali_line>
                dali_addressing_status: <dali_line>
                dali_addressing_change: <dali_line> <old_address> <new_address>
                dali_addressing_del: <dali_line> <address_to_delete>

                save_config: <file>
                load_config: <file>

On peut lire et ecrire cette configuration depuis/vers l'automate dans un fichier par ex:

Code:
wago_test host 192.168.0.xxx action save_config ma_config.txt

Puis renvoyer la config au wago:

Code:
wago_test host 192.168.0.xxx action save_config ma_config.txt

On peut aussi changer juste la config d'une entrée:

Code:
wago_test host 192.168.0.xxx action set_outtype 2 VOLET
wago_test host 192.168.0.xxx action set_outaddr 2 1 2 -1

Tout ca fonctionne que via UDP bien sur et donc avec du reseau qui marche Wink
@gwarf: Concernant maintenant ton cas. Tu peux ajouter du code directement dans le programe codesys pour y mettre cette config par defaut. Ca evitera de passer par UDP vu que tu ne peux pas...
Tu peux faire ca:
  • Tu ouvres le source de Config (PRG)
  • Dans la partie haute tu ne fait rien c'est les declarations
  • Dans la partie basse, apres la ligne "IF (ConfigDone = FALSE)":
  • Tu peux rajouter juste apres la config comme ca:
Code:
IF (ConfigDone = FALSE) THEN

output_type[0] := NONE;
output_addr[0].ADDR1 := 0;
output_addr[0].ADDR2 := 0;
output_addr[0].SameAs := -1;

output_type[1] := TELERUPTEUR;
output_addr[1].ADDR1 := 25;
output_addr[1].ADDR2 := 0;
output_addr[1].SameAs := -1;

output_type[0] := VOLET;
output_addr[0].ADDR1 := 30;
output_addr[0].ADDR2 := 31;
output_addr[0].SameAs := -1;

output_type[0] := TELERUPTEUR;
output_addr[0].ADDR1 := 0;
output_addr[0].ADDR2 := 0;
output_addr[0].SameAs := 1;

Ensuite tu recompiles, tu flash comme d'habitude, et ca roule.


RE: Impossible d'accéder a l'automate - gwarf - 03-13-2017

Merci Raoul, je vais regarder pour tester ça (histoire de valider que mes volets roulants (impulsion) marchent encore Smile ).

A priori avec ça il n'est pas possible d'avoir un inter pour plusieurs sorties, n'est ce pas ? (Par exemple j'ai des lampes regulux plusieurs intensités et je voudrais les allumer a fond (donc en activant deux sorties) en appuyant une seule fois).

Ça pourrait valoir le coup d'avoir ça dans le Wiki aussi, en tant que référence, non ?

Merci encore pour l'explication et les exemples.


RE: Impossible d'accéder a l'automate - raoulh - 03-13-2017

Non ce n'est pas possible d'avoir plusieurs sortie sur un inter... Ca complexifie beaucoup trop le code qui est deja bien trop compliqué. Et ce choix etait aussi du au fait qu'on veut que calaos_server tourne et gere la maison, pas le wago. Ca reste un mode dégradé.

Si t'as le temps je veux bien que quelqu'un ajoute ca au wiki Wink


RE: Impossible d'accéder a l'automate - gwarf - 03-13-2017

OK, je confirme, pas besoin de complexifier encore plus, l'état actuel du dégradé est tout a fait acceptable.

Je regarderai pour ajouter ça au wiki.