Si pour une raison quelconque calaos-server ne peut plus communiquer avec l'automate, par exemple en cas de panne du réseau Ethernet, l'automate va passer du mode “serveur” au mode “dégradé” après un certain temps (30 s). Les points lumineux ainsi que les volets pourront continuer à être pilotés par les interrupteurs mais le mode dégradé ne peut pas gérer toutes les règles du mode serveur, seulement quelques règles simples.
La LED USR de l'automate est verte en mode serveur et orange en mode dégradé.
Les règles du mode dégradé sont automatiquement générées par le logiciel Calaos Installer lors de l'envoi de la configuration dans l'automate. Il n'y a donc pas besoin en général d'aller plus loin. Cependant, dans certains cas, il peut être intéressant de savoir qu'il est également possible de programmer ces règles avec le logiciel wago_test ou même directement en ajoutant du code dans l'automate via le port série si le port Ethernet est défectueux.
En mode dégradé, chaque entrée est associée à une action du _type_:
Ensuite chaque entrée est associée à 3 paramètres :
Par exemple, on peut avoir cette série de règles :
Input 0 -> NONE Input 0 -> out1=0 out2=0 SameAs=-1 Input 1 -> TELERUPTEUR Input 1 -> out1=25 out2=0 SameAs=-1 Input 2 -> VOLET Input 2 -> out1=30 out2=31 SameAs=-1 Input 3 -> TELERUPTEUR Input 3 -> out1=0 out2=0 SameAs=1
Ici on a l'entrée 0 qui ne fait rien. L'entrée 1 pilote une lumière sur la sortie 25. L'entrée 2 pilote un volet avec la montée à l'adresse 30 et la descente à l'adresse 31. L'entrée 3 est particulière. Elle est configurée comme un télérupteur (comme l'entrée 1) mais les adresses sont à 0 et le SameAs est à 1. Cela signifie que l'entrée 3 va piloter la même lumière que l'entrée 1. En utilisant le même bloc fonction (et le même état de la lampe). Ça permet d'avoir plusieurs inter qui pilotent la même lampe/volet. Attention, il faut que le SameAs soit -1 si il n'est pas utilisé.
Calaos Installer génère donc cette mini config à partir de la config normale (et donc élimine une bonne partie de ce qui n'est pas faisable en mode dégradé) et envoie ça en UDP à l'automate.
Dans calaos-os il y a un outil qui permet de faire ça à la main : wago_test
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 la configuration depuis l'automate dans un fichier :
wago_test host 192.168.0.xxx action save_config failsafe_config.txt
Le fichier contient la config :
WAGO_SET_OUTTYPE 0 0 WAGO_SET_OUTADDR 0 0 0 -1 WAGO_SET_OUTTYPE 1 1 WAGO_SET_OUTADDR 1 25 0 -1 WAGO_SET_OUTTYPE 2 3 WAGO_SET_OUTADDR 2 30 31 -1 WAGO_SET_OUTTYPE 3 1 WAGO_SET_OUTADDR 3 0 0 1
Puis renvoyer la config à l'automate :
wago_test host 192.168.0.xxx action load_config failsafe_config.txt
On peut aussi changer juste la config d'une entrée :
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 ça ne fonctionne que si l'automate est accessible par le réseau Ethernet. Si le port Ethernet de l'automate est défectueux mais que celui-ci est accessible via le port série, il y a moyen de programmer ces règles directement dans le code de l'automate avec CodeSys. Il faut ouvrir le code source de Config (PRG) et insérer les règles après la ligne “IF (ConfigDone = FALSE)”:
Code à insérer :
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[2] := VOLET; output_addr[2].ADDR1 := 30; output_addr[2].ADDR2 := 31; output_addr[2].SameAs := -1; output_type[3] := TELERUPTEUR; output_addr[3].ADDR1 := 0; output_addr[3].ADDR2 := 0; output_addr[3].SameAs := 1;
Ensuite il faut recompiler.