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

Step 7 SFC67 X_Get -> Fehler 80C0

$
0
0
Guten Morgen,

ich habe hier ein "kleines" Problem. Vielleicht kann mir ja jemand helfen. ;)

Grundaufbau:

1x S7 CPU317
2x Vipa Speed 7


Die CPU´s sind per MPI Bus verbunden.

Die beiden Vipa´s holen sich per X_GET 240 Bytes an Daten von der S7
Die S7 holt sich ebenfalls per X_GET Daten von den beiden Vipa SPS

Das funktioniert aber nur sporadisch, manchmal kommen 20 Sekunden lang keine neuen Daten!
Mir ist aufgefallen das bei RET_Val sehr oft der Fehler 80C0 ausgegeben wird.
Also: "Die angegebene Verbindung ist durch einen anderen Auftrag bereits belegt"

Woran kann das liegen? Habe schon mal testweise eine der Vipas gestoppt, das macht es aber auch nicht besser...
Außerdem mal zwischen den Aufträgen die Verbindung abgebaut(also Cont auf 0), macht es nur langsamer nicht besser.

Hier der Programmcode von einer VIPA, die andere ist genau so programmiert.
Req wird immer erst gesetzt wenn der vorige Auftrag beendet ist und beginnt dann wieder von vorne wenn alle 4 Aufträge bearbeitet sind.

Code:

NETWORK
TITLE =Kommunikation mit Server MPI 2
//      SPA  M001

      CALL "X_GET" (
          REQ                      := DB8.DBX  20.0,//DB8.DBX20.0  M2.3
          CONT                    := "Daten Allgemein".DB_VAR19,//Verbindung aufrecht erhalten (Ja/Nein)? 
          DEST_ID                  := W#16#2,//Empfängeradresse
          VAR_ADDR                := P#DB33.DBX0.0 BYTE 60,//Variablenadresse im Kommunikationspartner
          RET_VAL                  := "Transfer Text PC --> SPS".DB_VAR6841,//Statusanzeige, negativ wenn ein Fehler auftritt
          BUSY                    := DB8.DBX  20.1,//SFC aktiv?
          RD                      := P#DB33.DBX0.0 BYTE 60);//Pointer auf die Adresse, in die die Empfangsdaten geschrieben werden
      U    DB8.DBX  20.1;
      FN    DB8.DBX  20.2;
      S    DB8.DBX  20.3;
      R    DB8.DBX  20.0;
 
      CALL "X_GET" (
          REQ                      := DB8.DBX  20.3,
          CONT                    := "Daten Allgemein".DB_VAR19,//Verbindung aufrecht erhalten (Ja/Nein)? 
          DEST_ID                  := W#16#2,//Empfängeradresse
          VAR_ADDR                := P#DB33.DBX60.0 BYTE 60,//Variablenadresse im Kommunikationspartner
          RET_VAL                  := "Transfer Text PC --> SPS".DB_VAR6841,//Statusanzeige, negativ wenn ein Fehler auftritt
          BUSY                    := DB8.DBX  20.4,//SFC aktiv?
          RD                      := P#DB33.DBX60.0 BYTE 60);//Pointer auf die Adresse, in die die Empfangsdaten geschrieben werden
      U    DB8.DBX  20.4;
      FN    DB8.DBX  20.5;
      S    DB8.DBX  20.6;
      R    DB8.DBX  20.3;

      CALL "X_GET" (
          REQ                      := DB8.DBX  20.6,
          CONT                    := "Daten Allgemein".DB_VAR19,//Verbindung aufrecht erhalten (Ja/Nein)? 
          DEST_ID                  := W#16#2,//Empfängeradresse
          VAR_ADDR                := P#DB33.DBX120.0 BYTE 60,//Variablenadresse im Kommunikationspartner
          RET_VAL                  := "Transfer Text PC --> SPS".DB_VAR6841,//Statusanzeige, negativ wenn ein Fehler auftritt
          BUSY                    := DB8.DBX  20.7,//SFC aktiv?
          RD                      := P#DB33.DBX120.0 BYTE 60);//Pointer auf die Adresse, in die die Empfangsdaten geschrieben werden
 
      U    DB8.DBX  20.7;
      FN    DB8.DBX  21.0;
      R    DB8.DBX  20.6;
      S    DB8.DBX  21.1;

      CALL "X_GET" (
          REQ                      := DB8.DBX  21.1,
          CONT                    := "Daten Allgemein".DB_VAR19,//Verbindung aufrecht erhalten (Ja/Nein)? 
          DEST_ID                  := W#16#2,//Empfängeradresse
          VAR_ADDR                := P#DB37.DBX0.0 BYTE 60,//Variablenadresse im Kommunikationspartner
          RET_VAL                  := "Transfer Text PC --> SPS".DB_VAR6841,//Statusanzeige, negativ wenn ein Fehler auftritt
          BUSY                    := DB8.DBX  21.2,//SFC aktiv?
          RD                      := P#DB37.DBX0.0 BYTE 60);//Pointer auf die Adresse, in die die Empfangsdaten geschrieben werden
      U    DB8.DBX  21.2;
      FN    DB8.DBX  21.3;
      R    DB8.DBX  21.1;
//    S    DB8.DBX  20.0
      NOP  0;

Irgendwer eine Idee woran es liegen könnte? :idea:


Danke für eure Zeit!

Viewing all articles
Browse latest Browse all 46422


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>