03-13-2017, 03:46 PM
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":
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
On peut lire et ecrire cette configuration depuis/vers l'automate dans un fichier par ex:
Puis renvoyer la config au wago:
On peut aussi changer juste la config d'une entrée:
Tout ca fonctionne que via UDP bien sur et donc avec du reseau qui marche
@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:
Ensuite tu recompiles, tu flash comme d'habitude, et ca roule.
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)
- 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
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
@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.
Raoul,
Calaos Core Dev.
Calaos git sur NUC NUC5PPYH | Wago 750-849 | DALI RGB | Sondes NTC sur 750-464 | Sondes 1Wire DS18B20 avec adaptateur USB DS9490R | Nodes MySensors avec gateway USB | Ecran tactile ELO avec adaptateur USB/RS232 | Squeezebox Duet et Radio | Logitech Harmony Ultimate | Ampli Pioneer VSX921
Calaos Core Dev.
Calaos git sur NUC NUC5PPYH | Wago 750-849 | DALI RGB | Sondes NTC sur 750-464 | Sondes 1Wire DS18B20 avec adaptateur USB DS9490R | Nodes MySensors avec gateway USB | Ecran tactile ELO avec adaptateur USB/RS232 | Squeezebox Duet et Radio | Logitech Harmony Ultimate | Ampli Pioneer VSX921