Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 47324

Step 7 AG_SEND mit Fehler 0x7000

$
0
0
Hallo,
zwischen zwei S7-400 CPU’en (414-3) soll eine TCP-Kopplung aufgebaut werden (mit CP443-1). Dazu nutze ich das vorgegebene Siemens-Beispiel.
https://support.industry.siemens.com...dti=0&lc=de-WW
Die Verbindung funktioniert zwar und es werden Daten gesendet und empfangen, aber am FC250 (umbenannt von FC50) steht immer das Error-Signal auf „1“,mit dem Fehler „0x7000“. Der Status "0x7000" signalisiert zwar keinen Fehler am Baustein, sondern zeigt „nur“ an, dass der AG_SEND-Baustein mit ACT=0 aufgerufen wurde, ohne dass vorher ein Auftrag mit ACT=TRUE angestoßen wurde. (Was für die Fehlerauswertung schwierig ist) In der Doku zum CP443-1 steht aber auch, dass der FC50 mit ACT=0 aufgerufen werden kann um den Status abzufragen.
Das Thema ist schon öfter behandelt worden, die Lösungen waren aber nie umfassend. Alle meine Versuche dieses Problem zu umgehen, führten nicht zum gewünschten fehlerfreien Betrieb. Ich wende mich nun an dieses Forum mit der Bitte sich das Thema anzuschauen und eine mögliche Lösung zu zeigen. :confused::confused::confused:

NETWORK 1 // Löschen des SEND BUSY nach Power-On-Reset

U "JD01IMP";
R "1_SND_BUSY";

NETWORK 2 // Start AG_SEND Funktion (Taktmerkerbyte 19)

UN "1_CONNECTION_BROKEN";
U( ;
U M 19.5; //Taktmerker
FP "1_EDGE_CTRL";
) ;
UN "1_SND_BUSY";
= "1_ACT_SEND";
S "1_SND_BUSY";

NETWORK 3 TITLE =Invoke AG_SEND function block ...

U "1_ACT_SEND";
= L 9.0;
BLD 103;
CALL "==AG_SEND" (
ACT := L 9.0,
ID := 4,
LADDR := W#16#1FFD,
SEND := P#DB190.DBX0.0 BYTE 118,
LEN := 50,
DONE := "1_SND_DONE",
ERROR := "1_SND ERR",
STATUS := "1_SND_STAT");

NETWORK 4 TITLE =

CLR ;
= "1_ACT_SEND";

NETWORK 5 // Busy rücksetzen

U "1_SND_DONE";
U "1_SND_BUSY";
R "1_SND_BUSY";

NETWORK 6 // Busy rücksetzen bei Fehler

U( ;
U "1_SND ERR";
SPBNB _001;
L "1_SND_STAT";
T #SND_STAT_SAVE;
SET ;
SAVE ;
CLR ;
_001: U BIE;
) ;
U( ;
L #SND_STAT_SAVE;
L 28672;
<>I ;
) ;
R "1_SND_BUSY";

NETWORK 7 // =Restart (start-up -> TRUE only once)

U "JD01IMP";
R "JD01IMP";

Viewing all articles
Browse latest Browse all 47324