Comment pouvons-nous aider ?
Communication avec Siemens S7-400 et fonction de redondance avec S7-400H
Configuration Ethernet IP S7-400/300 et IHM
Utiliser HMI-Tool V7.0.0.14 ou supérieur
Sélectionnez le protocole correct et définissez l’adresse IP Ethernet de l’IHM. Si nécessaire, voir aussi Adresse IP Ethernet de l’IHM
Définissez l’adresse IP Ethernet du S7-400. En cas de redondance, définissez la deuxième adresse IP.
Définissez les numéros de station, de rack et d’emplacement dans les registres spéciaux LW pour le protocole S7-400.
- Numéro de station « plcsta »
- Plage de numéros de station « plcsta » (0-255), si elle dépasse cette plage, la valeur par défaut est 2.
- Numéro de rack
- LocalWord[45000 plcsta*2] : Contient le numéro de rack de la station. La plage est comprise entre 0 et 7 ; si elle est supérieure, la valeur par défaut est 0.
- Numéro d’emplacement
- LocalWord[45001 plcsta*2] : Contient le numéro d’emplacement de la station. La plage est comprise entre 1 et 31 ; si elle est supérieure, la valeur par défaut est 1.
Exemple, pour le numéro de station 2 : Entrez le numéro de la station dans LW[45004] et le numéro de l’emplacement dans LocalWord[45005]
Ces mots locaux[45xxx] peuvent être définis à l’aide d’une macro dans « Init Script » :

Exécuter le script une fois au démarrage

Fonction de redondance pour l’unité centrale en cas de S7-400H
Utiliser HMI-Tool V7.0.0.14 ou plus et utiliser « forced update HMI » avant de télécharger votre projet pour tous les HMI Ethernet
La fonction de redondance permet de passer automatiquement d’une IP à l’autre en cas d’échec de la communication.
Mais pour le S7-400, il faut au moins changer le numéro de Slot. Pour cela, nous allons utiliser une macro pour changer également le numéro de Slot si l’IP actuel change.
Macro dans « Global Script », appeler la macro toutes les 1000 ms comme exemple :
#include "MacroInit.h"
void Macro_main(IN *p)
{
MarcoInit
//ToDo
int plcsta=0 ; Numéro de la station PLC
if(192 == MotLocal
{
// 192.168.10.1
LocalWord[45000 plcsta*2] = 0 ; // Numéro de rack
LocalWord[45001 plcsta*2] = 2 ; // Numéro d'emplacement
}
else if(192 == MotLocal
{
// 192.168.10.2
LocalWord[45000 plcsta*2] = 1 ; // Numéro de rack
LocalWord[45001 plcsta*2] = 2 ; // Numéro d'emplacement
}
}


