Navigation:  SPS > Unterschiede der TrySim-SPS zur S7 > Abweichend implementierte Eigenschaften >

Parameter-Aktualisierung bei Funktionen

Vorherige SeiteKapitelübersichtNächste Seite

 

Die folgenden Unterschiede betreffen nur Funktionen, nicht Funktionsbausteine.

In einer S7 wird bei einer Zuweisung an einen Out- oder In-Out-Parameter, dessen Aktualparameter nicht ein weiterer Parameter des aufrufenden Bausteins, sondern ein direkter Operand (Ein-/Ausgang, Merker, Datenwort) ist, der Aktualparameter im Moment der Zuweisung verändert. Genauso wird beim Zugriff auf einen In-Parameter, an den ein direkter Operand angeschlossen ist, der tatsächliche Zustand dieses Operanden erkannt, auch wenn sich dieser seit Aufruf des Bausteins geändert hat.

In TrySim erfolgt die Aktualisierung der an Out- und In-Out-Parameter angeschlossenen Aktualparameter erst bei der Rückkehr zum aufrufenden Baustein. Die In- und In‑Out-Parameter werden einmal beim Aufruf des Bausteins aktualisiert, danach werden die Aktual-Parameter nicht mehr gelesen.

Die dadurch bedingten Unterschiede treten aber nur zu Tage, wenn Sie auf einen Operanden sowohl direkt als auch über Parameter zugreifen.

 

Betrachten Sie dieses Programmbeispiel:

 

 

S7       TrySim

 

OB 1



OB 1





Status



Status


SET

1


SET

1


= M 1.2

1


= M 1.2

1


CALL FC 2



CALL FC 2



Par1: M 1.2



Par1: M 1.2



U M 1.2

0


U M 1.2

0

 

FC 2



FC 2



OUT

Par1

BOOL

OUT

Par1

BOOL









Status



Status


U #Par1

1


U #Par1

1


U M 1.2

1


U M 1.2

1


CLR

0


CLR

0


= #Par1

0


= #Par1

0


U #Par1

0


U #Par1

0


U M 1.2

0


U M 1.2

1

 

Vermeiden Sie daher solche gemischten Zugriffe, die im Übrigen zu schwer zu lokalisierenden Programmfehlern führen können. Im obrigen Beispiel hat sich auf der linken Seite der Zustand des Merkers M 1.2 während der Programmbearbeitung von 1 nach 0 geändert, ohne dass dies durch eine explizite Zuweisung zu erkennen wäre.

 

Abweichend implementierte Eigenschaften

Out-Paramter von Funktionen

 

S7-300 und S7-400 sind eingetragene Warenzeichen der Siemens AG.