BSEND/BRCV - Idee Was hier Falsch ist ?

shadowdb

Level-1
Beiträge
115
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
[GELÖST] BSEND/BRCV - Idee Was hier Falsch ist ?

Moin,
vielleicht seh' ich mal wieder den Wald vor lauter Bäumen nicht...:confused:
Vielleicht sieht ein Kollege auf den ersten Blick was hier falsch geht. :oops:
Ich will DB36 von 0 ... 22 Byte übertragen auf Ziel SPS, dort ebenfalls DB 36 0...22 Byte.
Die DBs existieren in genau der Form und Größe.
Die Verbindung ist aufgebaut und hat auf beiden Seiten die ID W#16#1 - identisch wie in NetPro projektiert und angegeben.

Sendeseite
Code:
      L     22
      T     "Sendlänge" // MW190
[...]
      CALL  "BSEND" , "IDB-FB12-BSEND"

       REQ   :=M1.7 // 2sec Blinker
       R     := "VKE0" // Permanent 0
       ID    :=W#16#1
       R_ID  :=DW#16#1
       DONE  :="gesendet"
       ERROR :="SendeError"
       STATUS:=#status
       SD_1  :=P#DB36.DBX0.0 BYTE 22
       LEN   :="Sendlänge"

Auf der Sende Seite Sehe ich keinen Fehler. Allerdings sehe ich auch nie ein "done"/"gesendet".

Empfangsseite
Code:
      L     22
      T     "Empfangslänge" // MW190

      CALL  "BRCV" , "IDB-FB13-BRCV"
       EN_R  :="VKE1" // Permanent 1
       ID    :=W#16#1
       R_ID  :=DW#16#1
       NDR   :="NDR"
       ERROR :="EmpfangsFehler"
       STATUS:=#status
       RD_1  :=P#DB36.DBX0.0 BYTE 22
       LEN   :="Empfangslänge"

Als Ergebnis auf der Empfangsseite sehe/fange ich bei "Empfangsfehler"=1 einen Error/Status Code 1. Lt. Doku soll das bedeuten:
"Maximale Anzahl paralleler Aufträge/Instanzen ist überschritten.", was allerdings nicht der Fall sein kann. Es gibt noch 2 andere Verbindungen aber das war's. Die anderen Möglichkeiten kann man ausschliessen. Verbindung steht (lt. NetPro Online). R_ID ist gleich .... ???

Hat da Irgendwer eine Erleuchtung für mich ?

Grüße aus der Steiermark, Euer Schatten ...

PS: Nachtrag, es handelt sich um 2 VIPA CPUs 315-4NE12
http://www.vipa.de/nc/de/produkte/system-300s/cpus/?tx_sbinclude_pi1[page]=315-4NE12.html
 
Zuletzt bearbeitet:
Hi shadowdb,

erstmal würd ich die Empfangslänge nicht mit einem Wert vordefinieren!
Die Länge wird nämlich vom Baustein geschrieben um dir zu sagen "ich hab so viele daten erhalten".

Das du den Done nicht siehst kann gut sein, je nach Zykluszeit der CPU (wird nur für 1 Zyklus ausgegeben).
Überprüf das am besten mal in dem du dir, falls der Done kommt, mal irgend nen Schmiermerker setzt!

Ansonsten würd ich mal mit der R_ID rumspielen!
Die hat bei mir auch schon ein wenig gehangen manchmal!
Ich benutzte im Regelfall DW#16#500, hat damit immer auf anhieb geklappt.

Vielleicht hilft dir das ja schon weiter.
Code-Mäßig ist ansonsten nichts falsch!

Grüße,
Martin
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Für 1 gibt es noch en paar andere Möglichkeiten:

1 1 Kommunikationsprobleme, z. B.·

Verbindungsbeschreibung nicht geladen (lokal oder remote)·
Verbindung unterbrochen (z.B. Kabel, CPU ausgeschaltet, CP in STOP)·
Verbindung zum Partner noch nicht aufgebaut·
FB ist auf einer S7-400-CPU nicht ablauffähig·
zusätzlich S7-300:- Maximale Anzahl paralleler Aufträge/Instanzen ist überschritten.
 
Die Fangschaltung mit dem Schmiermerker steht. :)
Ich spiel mal mit der R_ID rum. In anderen Anlagen lief es ja auch so ... :(

Scheint immer wieder ein wackeliges Geschäft zu sein....

Euer Schatten
 
Es ist eine S7-300. Daher fällt "FB ist auf einer S7-400-CPU nicht ablauffähig" wohl aus.

"Verbindung zum Partner noch nicht aufgebaut", kann auch nicht sein, NEtPro Online meint auf beiden Systemen, "Grünes Dreieck", Verbindung steht.

"Verbindung unterbrochen (z.B. Kabel, CPU ausgeschaltet, CP in STOP)" - kann auch nicht sein, beide IPs Pingen und lt. Diagnose in "Run".

Der CP kann auch nicht "STOP" sein, der in der Vipa CPU integrierte Vipa CP hat so eine Fehlerquelle nicht. :)
Aber dennoch habe ich das eben extra vor ORt gechecked. :)Schweiss abwisch:) Anlagenrundgang... KRan rauf, Runter etc. :)

Wäre schön, wenn es so einfach wäre.

Euer Schatten



 
Zuviel Werbung?
-> Hier kostenlos registrieren
VIPA hat ein Firmwareproblem

Hallo Shadowdb

Ich weiß nicht, ob Deine Kommunikation mittlerweile schon funktioniert ??
Aber ich habe auch einen Rat.
Die VIPA-CPU's haben ein BESTÄTIGTES Firmware-Problem beim Datenaustausch mit anderen CPU's.
Mit der Firmwareversion 3.54.6 ist das noch NICHT behoben !!!!!!
Eine VIPA-CPU braucht zum bidirektionalen Datenaustausch ZWEI GETRENNTE ID's.
Du musst also ZWEI Verbindungen im NetPro anlegen.
Eine Verdindungs-ID ist dann für SENDEN.
Die ZWEITE Verbindungs-ID ist dann für EMPFANGEN.
Dann funktioniert das Ganze.

Nochmals:
Das Ganze ist von VIPA bestätigt !!!

Achtung:
Die VIPA-CPU's habe noch JEDE MENGE anderer Überraschungen bereit !!!
Nachdem wir jede Menge solcher VIPA-CPU's verbaut (meist 317-4NE12) haben,kann ich davon LIEDER singen.
So eine CPU möchte ich nicht mal geschenkt haben. :sm12:
 
Würd gern noch einen Punkt von Ralle aufgreifen ...

Wie viele parallele Kommunikationen fährst du in der CPU? Bzw. viel mehr, wie sieht deine Kommunikation aus?

über die ID W#16#1 sendest du nur an die eine CPU oder antwortet die CPU auch?
Sprich
CPU1 -> CPU2
und
CPU2 -> CPU1 ?
Dann musst du für jeden Sende/Empfangs-Weg über die selbe ID eine ANDERE R_ID benutzen! Sprich du kannst in der CPU2 nicht mit der R_ID DW#16#1 antworten wenn du diese R_ID bereits bei dem Empfangsauftrag der Daten von CPU1 benutzt hast!

Hoffe das ist für dich verständlich o_O .... vielleicht sollt ich mir nochmal nen Kaffee holen ...
 
@ALL, Danke erstmal :)
Moin,
vorweg, nein die Verbindung funktioniert noch nicht. :(

Es gibt zur Zeit nur eine S7(mobil)->S7(fest) Verbindung, zur jetztigen IBN Zeit.

Ich hab ansonsten noch keine anderen Wiedrigkeiten mit den Vipa-CPUs festgestellt.

Wenn BSEND/BCRV nicht wirklich tut, kann ich ja zur not noch das OpenCommunikation (notfalls sogar via
OC Wizzard) einsetzen.
... und geht es so nicht, dann geht es anders ... :)

Ansonsten kann ich mich bei diesem Projekt über Vipa und die Vipa CPUs nicht beklagen, wirklich (noch) nicht.

Aber soooo mega aufwendig ist das Projkt ja auch wieder nicht.... :)
Schaun mer mal. Die Infos habe erstmal geholfen, besonders der Hinweis mit der FW.
Da habe ich erstmal wieder was zu checken.

Euer Schatten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Würd gern noch einen Punkt von Ralle aufgreifen ...

Wie viele parallele Kommunikationen fährst du in der CPU? Bzw. viel mehr, wie sieht deine Kommunikation aus?
S7-S7 bisher eine einzige. Einen Rückkanal DB wird es auch noch geben, aber erst, wenn der Hinkanal tut wie er soll. Step-4-Step :)
CPU1 sendet via ID: W16#1 -> will hier DB36 mit 22 bytes verschubsen. CPU2 soll via ID: W#16#1 diesen empfangen.


über die ID W#16#1 sendest du nur an die eine CPU oder antwortet die CPU auch?
Sprich
CPU1 -> CPU2
und
CPU2 -> CPU1 ?
Dann musst du für jeden Sende/Empfangs-Weg über die selbe ID eine ANDERE R_ID benutzen! Sprich du kannst in der CPU2 nicht mit der R_ID DW#16#1 antworten wenn du diese R_ID bereits bei dem Empfangsauftrag der Daten von CPU1 benutzt hast!
So schaut das bislang aus. Mit der R_ID hab ich entsprechend der Antworten hier rumgespielt. Gleich - verschieden, auf 500 gesetzt, beide "1" ...
beobachtenbsend,brcv.jpg

MAl sehn was mir noch so einfällt
Euer Schatten
 
Die VIPA 317-4NE12 und 315-4NE12 sind ja noch klassisch als 318-2AJ00 zu projektieren. Diese 318er ist eine verkappte 400er. Somit sind in dieser CPU nicht FB12 & 13 sondern SFB12 & 13 zu verwenden. Die ursprüngliche Fehlermeldung ist also vollkommen richtig (1 ist u.a.: FB ist auf einer S7-400-CPU nicht ablauffähig). Einfach mal den Baugruppenzustand öffnen, Leistungsdaten und dann finden sich da unter Systembausteinen u.a SFB12 & 13.

<Edit> Und noch was: Auf dem Bild in deinem letzten Beitrag sind jetzt R_ID auf Sende- und Empfangsseite verschieden - das klappt nciht.</Edit>


Viel Erfolg!
 
Zuletzt bearbeitet:
GELÖST: BSEND/BRCV - mit Vipa CPU315-4PN12 - so geht's

Gelöst. Ob der Hinweis von hovonlo funktioniert, kann ich nicht sagen, jedoch hat der Vipa Support hier glänzend gearbeitet. Meinen Dank an die Vipa Kollegen!


Hier kann man durchaus eine Lanze für die Vipa Kollegen im dortigen Support brechen. Miniprojekt hingeschickt, analysiert und funktionstüchtig zurück bekommen innerhalb von 24 Std. Gebremst hatte ich dabei, wollte auch Feierabend haben.... am nächsten Nachmittag war'S gegessen. Inbetriebnahmen sind ja auch so anstrengend genug.

So was war's?
Hier die genaue Antwort.


Wie hovonlo angemerkt hat, sind die 318er abgespeckte 400er CPUs. Jedoch sind die diese von Vipa funktions kompatible Geräte, die über die Siemens Kisten hinausgehen. z.B. haben die 315-4PN12 Kisten zusätzlliche Ethernet Ports und enthalten neben der CPU mit ihrem PN Port auch noch einen CP343-1 Advanced CP auf dem Mutterbrett.
Der Fehler war, die Original, für Siemens Hardware geschriebenen FB12/FB13 aus der SIEMENS Std Library zu verwenden.
Korrekt wäre gewesen, die für die VIPA Hardware geschriebenen Vipa FB12/FB13 aus der Vipa System Library zu nehmen!

Eine einfache Regel Siemens Firmwareabhängige Software/SPFB/FB auch aus der Siemens Std Lib, und Vipa Firmware abhängige Software aus der Vipa Lib. Kann man so verstehen, verschiedene Hersteller, verschiedene "Treiber". Man kann einen Ati Grafiktreiber ja auch nicht mit einem Nvidia Karte laufen lassen. Passt einfach nicht und funktionieren schon gar nicht.

Ich habe hier für alle die der Suchfunktion mächtig sind eine Lösung als Kochbuch geschrieben, vielleicht taugt das ja auch als Eintrag für die FAQs.

Achtung Vipa CPU Datenkopplung BSEND/BRCV.

Vipa BSEND/BRCV
In der Geräte Doku wird darauf hingewiesen, wie man mit den CPUs richtig umgeht.
Ist nicht wirklich besonders, jedoch gelten:
- als CPU318-2AJ00- konfigurieren
- am Ende des Racks einen "virtuellen" CP343-1EX11- einfügen
- rechts vom dem Ersten einen zweiten virtuellen CP343-1EX21- einfügen, das ist der Advanced Typ.

Somit kann diese 315-4PN12 Cpu wirklich alles. Luxus.

Als nächstes sollte man in NetPro die Verbindungen projektieren. Je CPU-CPU Übertragung eine.
Hinkanal Mobil -> Fest habe ich ID: W#16#1
Rückanal Fest -> Mobil habe ich ID: W#16#2

Nachdem NetPro die Daten in beide CPUs geladen hat, diese ihren obligatorischen Neustart gemacht haben,
sieht man in der Spezial Diagnose (CP343-1 Advanced auswählen, Strg-D, Dann Knopf Spezialdiagnose in Step7 V5.4), siehe Screenshots.

Nächster Schritt die Vipa Lib installieren (s.u. im Anhang) und von dort die BSEND/BRCV Blöcke (FB12/FB13) ins Projekt kopieren.
Hat man die schon von einem Siemens Std Lib einkopiert, diese einfach mit den Vipa FBs. Das ist gaanz wichtig. Auch hier das Laden der FBs nicht vergessen.


Als nächstes muss man den Daten DB bereitstellen.
Der wird einfach so wie er ist, auf die Partner/Empfänger CPU kopiert. (Noch hat der Empfangs DB Null-Inhalte)
Auf der Sendeseite mit Lebenden oder Demo Daten besalzen, nur Null Daten kommen nicht so gut, weil man nach erfolgreicher Übertragung kein Ergebnis sieht.


Nun kann man dort auf der Empfänger CPU sich ans Werk machen, den "Briefkasten anzuschrauben", sprich, BRCV zu aktivieren.
Im Demo Projekt FC10, hier als AWL Quelle, am Ende des Beitrages, in den Anhängen hab ich das Demo Projekt veröffentlicht.


BRCV
Code:
FUNCTION "Senden+Empfangen vonKran" : VOID
TITLE =DB 36 empfangen
VERSION : 0.1




VAR_TEMP
  done : BOOL ;    
  error : BOOL ;    
  ndr : BOOL ;    
  len : WORD ;    
  status : WORD ;    
  test : WORD ;    
END_VAR
BEGIN
NETWORK
TITLE =


      U     M      0.1; 
      =     L      8.0; 
      BLD   103; 
      U     M      0.1; 
      SPBNB _001; 
      CALL "BRCV" , "IDB-FB13-BRCV" (
           EN_R                     := L      8.0,
           ID                       := W#16#1,
           R_ID                     := DW#16#500,
           NDR                      := M     16.0,
           ERROR                    := M     16.1,
           STATUS                   := #status,
           RD_1                     := P#DB36.DBX0.0 BYTE 22,
           LEN                      := MW   190);
_001: NOP   0; 


NETWORK
TITLE =


      U     M     16.1; 
      SPBNB _002; 
      L     #status; 
      T     MW   192; 
_002: NOP   0; 
NETWORK
TITLE =


      L     DB40.DBD   20; 
      T     "Bodendaten".BSW_ist_x; 
      NOP   0; 
END_FUNCTION

Beim Laden nicht vergessen den Instanz-DB mit zu Laden

Nächster Schritt, den Sender aktivieren:
Der Merker M1.7 im FC10 ist ein Blinktakt, für den Anfang 2s Takt, um regelmäßig das Senden zu aktivieren. Am Schlluß hierzu mehr.
BSEND

Code:
FUNCTION "Kopplung Bodenstation" : VOID
TITLE =Datenbaustein DB 36 zum Boden Senden
VERSION : 0.1


VAR_TEMP
  done : BOOL ;    
  error : BOOL ;    
  ndr : BOOL ;    
  len : WORD ;    
  status : WORD ;    
END_VAR
BEGIN
NETWORK
TITLE =


      L     22; 
      T     MW   190; 
      NOP   0; 
NETWORK
TITLE =


      U     M      1.7; 
      =     L      6.0; 
      BLD   103; 
      U     M     15.3; 
      =     L      6.1; 
      BLD   103; 
      U     M      0.1; 
      SPBNB _001; 
      CALL "BSEND" , "IDB-FB12-BSEND" (
           REQ                      := L      6.0,
           R                        := L      6.1,
           ID                       := W#16#1,
           R_ID                     := DW#16#500,
           DONE                     := M     15.1,
           ERROR                    := M     15.2,
           STATUS                   := #status,
           SD_1                     := P#DB36.DBX0.0 BYTE 22,
           LEN                      := MW   190);
_001: NOP   0; 








NETWORK
TITLE =


      U     M     15.2; 
      SPBNB _002; 
      L     #status; 
      T     MW   192; 
_002: NOP   0; 
NETWORK
TITLE =


      U(    ; 
      U     M     15.1; 
      BLD   100; 
      FP    M     15.4; 
      )     ; 
      S     M     15.4; 
      U     M     15.5; 
      R     M     15.4; 
      NOP   0; 
END_FUNCTION

Auch diesen Laden und den Instanzdatenbausten (IDB) nicht vergessen. Sobald alles an seinem Platz ist, kann man den Empfangsbaustein beobachen und sieht das Daten ankommen.

Performance Betrachtung
Anmerkung noch zum Sende Takt Merker. Man kann auch Die Rückker "Done" auswerten und mit selbigem nach einer Zeit wieder einen Sende Auftrag starten. Aber Vorsicht hierbei! Man müllt leicht das Ethernet zu. Eine so schnelle CPU wie die Vipa 315 mit ihren am SpeedBus hängenden CPs heizen ordentlich. Die schaffen es den Ethernet zuzuschmeissen.


Verglichen mit einer ähnlichen Anordnung mit 2 CPU 315 + CP343-1EX11 oder CP343-1EX10 hat das Vipa Gespann sehr deutliche Performancegewinne bei sehr viel weniger Kosten.
Des weiteren benutzen wir über den CP343 eine TCP-Fetch/TCP-Write Verbindung zu unserem Krancontroller, quasi ein "MCP" - eine Kranführeremulation in Silizium. Die Vipa CPUs schaffen deutlich mehr Poll Cyclen pro Sekunde. Der reine Siemens Aufbau machte max. 3-5 Polls pro Sekunden, mit diesem disktuiertem Vipa Gespann liegt es bei ca. 30.


So ich denke ich habe alles zusammengestellt, um anderen bei dieser Aktion zu helfen.
Das Demo Beispiel funktioniert nur mit eine Vipa Hardware!
Um das als BSEND/BRCV Demo mit Siemens zu nutzen, muß man die FBs wieder gegen Siemens FBs austauschen und selbstverständlich im Hardware Projekt die richtigen Komponenten eintragen.


Euer Schatten


Anlagen
Vipa Handbücher: http://www.vipa.com/de/service-support/handbuecher/
Vipa Lib: http://www.vipa.com/uploads/tx_sbdownloader/Vipa_Bibliothek_V131_02.zip
Funktionierendes Demo Projekt: http://www.automatix.de/jojo/Vipa_CPU315-4PN12_BSEND-BRCV-Demo.zip

Edit 18.07.2013, Links repariert
 

Anhänge

  • beobachtenbsend,brcv1.jpeg
    beobachtenbsend,brcv1.jpeg
    130,2 KB · Aufrufe: 35
  • beobachtenbsend,brcv2.jpeg
    beobachtenbsend,brcv2.jpeg
    55,7 KB · Aufrufe: 25
Zuletzt bearbeitet:
Zurück
Oben