Come possiamo aiutarti?

Print

Comunicazione con Siemens S7-400 e funzione di ridondanza con S7-400H


Configurazione IP Ethernet S7-400/300 e HMI

Utilizzare HMI-Tool V7.0.0.14 o superiore

Selezionare il protocollo corretto e impostare l’indirizzo IP Ethernet dell’HMI. Se necessario, vedere anche l‘indirizzo IP Ethernet dell’HMI

Impostare l’IP Ethernet dell’S7-400. In caso di ridondanza, impostare il secondo indirizzo IP.

Impostare i numeri di stazione, rack e slot nei registri speciali LW per il protocollo S7-400.

  • Numero di stazione “plcsta
    • Intervallo del numero di stazione “plcsta” (0-255); se supera questo intervallo, il valore predefinito sarà 2.
  • Numero di rack
    • LocalWord[45000 plcsta*2]: Contiene il numero di rack della stazione. L’intervallo va da 0 a 7; se superiore, il valore predefinito sarà 0.
  • Numero di slot
    • LocalWord[45001 plcsta*2]: Contiene il numero di slot della stazione. L’intervallo è compreso tra 1 e 31; se superiore, il valore predefinito sarà 1.

Esempio: per la stazione numero 2 : Inserire il numero di stazione in LW[45004] e il numero di slot in LocalWord[45005]

Queste LocalWord[45xxx] possono essere impostate con una macro in “Init Script”:

Eseguire lo script una volta all’avvio

Funzione di ridondanza, per la CPU in caso di S7-400H

Utilizzare HMI-Tool V7.0.0.14 o superiore e utilizzare “aggiornamento forzato HMI” prima di scaricare il progetto per tutti gli HMI Ethernet

La funzione di ridondanza consente di passare automaticamente da un IP all’altro in caso di interruzione della comunicazione.

Per l’S7-400, tuttavia, è necessario modificare almeno il numero di slot. A tale scopo, utilizzeremo una macro per modificare anche il numero di slot se l’IP corrente cambia.

Macro in “Global Script”, richiamare la macro ogni 1000 ms come esempio:

#include "MacroInit.h"
void Macro_main(IN *p)
{
MarcoInit
//ToDo
int plcsta=0; Numero di stazione PLC
if(192 == LocalWord[63192] && 168 == LocalWord[63193] && 10 = LocalWord[63194] && 1 = LocalWord[63195])
{
// 192.168.10.1
LocalWord[45000 plcsta*2] = 0; // Numero di rack
LocalWord[45001 plcsta*2] = 2; // Numero di slot
}
else if(192 == LocalWord[63192] && 168 == LocalWord[63193] && 10 = LocalWord[63194] && 2 == LocalWord[63195])
{
// 192.168.10.2
LocalWord[45000 plcsta*2] = 1; // Numero di rack
LocalWord[45001 plcsta*2] = 2; // Numero di slot
}
}