S7 313+cp342+TP177A+SEW MOVIEDRIVE mit Profibusanschluss

mädde

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo spsler,
da ich neu hier bin, bitte um gnade! :) habe folgendes problem. ich habe eine s7-313 ohne profibusschnittstelle, an diese wurde nun eine cp342 profibusschnittstelle angeschlossen. soweit kein problem, jetzt hängt am profibus ein fu der marke SEW Moviedrive mdx61B mit profibuskarte und dahinter wiederum ein TP177A touchpanel. die kommunikation zwischen TP und S7 funktioniert ohne probleme, werte werden einfach über die systemvariablen ausgetauscht.
mein problem ist die kommunikation zwischen s7 und dem umrichter. die adressierung stimmt und der fu erkennt auch die richtige baudrate. es ist am fu auch alles eingestellt was eingestellt sein sollte, ich kenne mich mit dem fu sehr gut aus, das ist nicht der erste. das erste ist aber die s7, da kenn ich mich halt nicht so gut aus! :( ich weiß nicht woran es liegt! ich habe ein funktionierendes beispiel von SEW bekommen um mit einer s7 auf den fu zugreifen zu können, nur wurde im beispiel keine cp342 profibusbaugruppe verwendet, sondern eine 315er cpu mit dp onboard. ich gehe davon aus, dass die cp342 mein problem darstellt. wie muss ich denn zum beispiel die eingangs und ausgangsadressen beim cp342 festlegen und wie muss ich die vom fu festlegen? vom fu bekomme ich 6 worte und ich schicke 6 worte. ich habe schon alle möglichen unterschiedlichen szenarien und adressen probiert! habe auch schon alle gsd dateien die es von sew gibt versucht, kein erfolg. ich gehe davon aus, dass die gsd datei stimmt, meine vermutung liegt eher wie gesagt am cp342 mit den richtigen adress einstellungen zum fu.
gibt es vielleicht adressüberschneidungen mit dem TP177A??
bitte um eure hilfe! :)
ich kriegs einfach ned hin!
danke
mädde
 
Wenn Du das Beispielprogramm nehmen willst, musst Du auf jeden fall die Adressen des FU's im Programm prüfen. Da ich die Bausteine nicht kenne weiss ich nicht ob die Adresse als Parameter angelegt wird, oder ob mit dem S7 Baustein der Bus ausgelesen wird.

Es wäre vieleicht sehr hilfreich zur Diagnos wenn Du das Programm ma hier reinstellst.

Hast Du denn den Busfehler weg ? Damit wäre dann klar ob die GSD passt.
Dann mal den FU abmachen und sehen ob ein Busfehler kommt, um sicherzustellen das er im Bus eingebunden ist, alternativ über die Diagnose im Hardwaremanager den FU mal prüfen.
 
danke mal für die schnellen antworten!
ich habe überhaupt noch nix mit FC1 und FC2 für die CP342 gemacht, also denke ich, wird es daran liegen! ich muss mir das dann mal anschauen mit den FCs!
gibts es da beispiele um die fc's direkt einbinden zu können, dass die stimmen??

danke
mädde
 
hallo zusammen,
ich habe jetzt mal die fc1 und fc2 eingebunden und auch parametriert! das hat das eine oder andere mal funktioniert!
es ist auch so, dass der busfehler weg ist, zumindest die LED BUSF leuchtet nicht mehr und die LED am umrichter leuchtet auch nicht mehr.
wenn ich dann die verbindung zwischen fu und cp342 unterbreche kommen beide leds wieder gehen auch wieder aus, wenn ich den stecker wieder stecke, also soweit ganz gut!

hier mal die aufrufe der fcs:

CALL "DP_SEND"
CPLADDR:=W#16#100
SEND :=P#A 30.0 WORD 6
DONE :=M178.0
ERROR :=M178.1
STATUS :=MW180

CALL "DP_RECV"
CPLADDR :=W#16#100
RECV :=P#E 30.0 WORD 6
NDR :=M178.2
ERROR :=M178.3
STATUS :=MW182
DPSTATUS:=MB184

jetzt müsste ich doch aber im RECV := PE 30 statuswerte vom bus bekommen??? da steht aber immer eine 0 drin??
und der fu schickt werte über seine statusworte. ich krieg aber nix!
hat jemand ne idee???
danke
mädde
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich vermute mal, du hast den FU in der HW-Konfig auf Adresse 30ff. gelegt.
Wenn das stimmt, dann hast du SEND und RECV falsch parametriert.
Die Adressen liegen im CP und FC1/FC2 lesen/schreiben immer ab Adresse 0, d.h. du müsstest 41 Bytes lesen/schreiben.
Häufig werden für SEND/RECV auch DBs benutzt. Das hat den Vorteil, dass man so die Adressen 1:1 legen kann (EB30 ist dann z.B. DB100.DBB30) und es kann so auch keine Probleme/Überschneidungen mit der direkt an der CPU angeschlossenen Peripherie geben.
Hier war das Problem ganz ähnlich ...

Grüße von HaDi

[edit]
Es müssten natürlich 42 Bytes sein.
[/edit]
 
Zuletzt bearbeitet:
hallo hadi,
nein der fu hat adresse 4???
was meinst du mit 30ff ist ja eine rißen zahl!
was habe ich falsch gemacht??
 
HaDi meint nicht die Profibusadresse des Umrichters, sondern den ihm zugewiesenen E/A-Bereich. Er geht mal davon aus, daß du die E-Adressen ab 30 und die A-Adressen ab 30 in der Hardwarekonfig beim Umrichter eingetragen hast.

Du solltest folgendes machen. Dem Umrichter in der Hardwarekonfig die EA-Adressen ab 0 zuordnen. Dann liest du 6 Word ein und schreibst 6 Word.
Die Daten landen im E/A-Bereiche ab 30.

Wenn du 30 einträgst (so, wie du das gemacht hast) müßtest du mit dem FC1/2 15+6 Word lesen/schreiben, also 42 Byte. So wie du das dann ablegst, landet das ganze ab EW 30 +30 also EW 60 in E/A-Breich deiner SPS.

Was HaDi noch erwähnt:

Einen Send-DB mit 42 Byte, einen Receive-DB mit 42 Byte:
Der SEW beommt den EA-Bereich ab 30 zugewiesen.

Code:
CALL "DP_SEND"
CPLADDR:=W#16#100
SEND :=P#DB100.DBX 0.0 WORD 21
DONE :=M178.0
ERROR :=M178.1
STATUS :=MW180

CALL "DP_RECV"
CPLADDR :=W#16#100
RECV :=P#DB101.DBX0.0 WORD 21
NDR :=M178.2
ERROR :=M178.3
STATUS :=MW182
DPSTATUS:=MB184

Dann schreibst du deine Daten in DB100 ab DW30 und liest sie im DB101 ab DW30.

Oder noch besser:
Einen Send-DB mit 12 Byte, einen Receive-DB mit 12 Byte:
Der SEW beommt den EA-Bereich ab 0 zugewiesen.

Code:
CALL "DP_SEND"
CPLADDR:=W#16#100
SEND :=P#DB100.DBX 0.0 WORD 6
DONE :=M178.0
ERROR :=M178.1
STATUS :=MW180

CALL "DP_RECV"
CPLADDR :=W#16#100
RECV :=P#DB101.DBX0.0 WORD 6
NDR :=M178.2
ERROR :=M178.3
STATUS :=MW182
DPSTATUS:=MB184

Dann schreibst du deine Daten in DB100 ab DW0 und liest sie im DB101 ab DW0.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo, danke für die schnelle antworten!
ich hab jetzt die ea des fus auf 0 anfang gesetzt!
das ging, dann hab ich deine version der fc1 und fc2 genommen mit den db's, wobei ich sagen muss, dass ich mich mit den dbs nicht auskenne!
auf jeden fall habe ich jetzt wieder meine busfehler leds am blinken wie verrückt! :(
ich dreh hier noch durch?? warum ist denn immer alles so kompliziert??
danke
mädde
 
Wenn du die E/A-Adresse auf 0 gelegt hast, dann darfst du auch nur 12 Bytes bzw. 6 Word lesen/schreiben.
Der SEND/RECV wird so parametriert, dass er den Bereich von 0 bis zur höchsten verwendeten Adresse abdeckt. In diesem Bereich darf es Lücken geben, aber er darf nicht länger sein.
Außerdem müssen natürlich die DBs in entsprechender Länge angelegt und in der Steuerung vorhanden sein.
Wenn´s dann immer noch nicht geht würd ich mal den STATUS von FC1/FC2 (MW180, MW182) begutachten bzw. mal im Diagnosepuffer nachsehen. In der HW-Konfig kann man auf den CP gehen und eine "Spezialdiagnose" aufrufen, vielleicht hilft das auch weiter.

Grüße von HaDi
 
danke männer,
hat jetzt endlich funktioniert! seid mir nicht böse, aber ich liebe einfach die vorzüge von codesys! bin halt einfach kein siemensler!:)
danke für die hilfe!
 
Zurück
Oben