Comment pouvons-nous aider ?

Print

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[63192] && 168 == MotLocal[63193] && 10 == MotLocal[63194] && 1 == MotLocal[63195])
{
// 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[63192] && 168 == MotLocal[63193] && 10 == MotLocal[63194] && 2 == MotLocal[63195])
{
// 192.168.10.2
LocalWord[45000 plcsta*2] = 1 ; // Numéro de rack
LocalWord[45001 plcsta*2] = 2 ; // Numéro d'emplacement
}
}