Step 7 dp_send und CP342-5 PLCSIM

Abdabd789

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich bin gerade dabei eine Profibusverbindung zu einer ET200S über eine CP342-5 zu erstellen.

Dabei habe ich FC1 und FC2 im Einsatz.

Hier kurz die Eckdaten:
Aufruf des FC1 und FC2 in OB1
Daten stehen jeweils in DB1 und DB2, 4 Byte jeweils als Bool
DIe CP steckt auf Steckplatz 4 --> Adresse 256 --> 100 Hex

ET200S hat jeweils 8 Digitaleingabemodul DI 4xDC24V, Standard und jeweils 8 Digitalausgabemodul DO 4xDC24V/2A.
Die Module haben alle den Adressbereich 110.0 bis 113.7, Eingänge wie Ausgänge

Beim Aufruf der FC's übergebe ich nun

P#DB1.DBX0.0 BYTE 4 (Ausgänge) bzw
P#DB2.DBX0.0 BYTE 4 (Eingänge)

Da ich im Moment die Hardware nicht hier habe habe ich lediglich PLCSIM zur Verfügung.

Mein Problem besteht nun darin, dass das Einlesen, sprich FC2, funktioniert bzw als
STATUS 16#0000
DPSTATUS 16#00.
NDR ist "1"
ERROR ist "0".
CPLADDR lautet W#16#100 (100 Hex, 256 Dez, Steckplatz 4)

Hingegen bekomme ich beim Aufruf des FC1 beim Senden ein Problem:
CPLADDR: W#16#100
SEND: P#DB2.DBX0.0 BYTE 4 (Wird mir allerdings symbolisch angezeigt in FUP: P#DB2.DBX0.0 "DB2:Ausgänge".DP
DONE: "0"
ERROR: "1"
STATUS: 16#8093

Eben der Fehler 8093 steht nicht in der Onlinehilfe zum Baustein, dort geht es bis 8091.. danach ist Ende.

Liegt es jetzt an der Simulation mit PLCSIM oder was soll mir der Fehlerstatus 8093 sagen?
 
Das liegt an der Simulation mit PLCSIM. PLCSIM simuliert die CPU, aber nicht alle möglichen Baugruppen. PLCSIM simuliert nicht den CP342-5.

Der Fehlercode 8093 kommt von SFC58 "WR_REC" und bedeutet "Für die über LADDR und IOID ausgewählte Baugruppe ist diese SFC nicht zulässig."

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten morgen Harald,
Vielen Dank für Ihre Hilfe.

Noch eine frage bitte ... ich hatte das gleiche problem mit plcsim während eines DP MASTER DP SLAVE kommunikation mit SFC14 und SFC15, alles war nur ein fehlercode 8090H, also was kann ich dass Kommunikationsprobleme immer auf PLCSIM zurückzuführen sind? Es ist also nicht mein Fehler?

Danke noch einmal.
AMIRI.
 
Nein, das ist nicht Dein Fehler. PLCSIM simuliert nur die CPU und einfache E/A im zentralen Rack. IO-Funktionen werden feststellen, daß dezentrale Baugruppen und Kommunikationspartner nicht vorhanden sind.
Kommunikation kann nur S7-Kommunikation zwischen zwei simulierten CPU (über Schnittstellen der CPU) simuliert werden und bei S7-1500 geht wohl auch die Simulation von SEND/RECEIVE zwischen zwei simulierten CPU. Was PLCSIM Advanced kann oder mal können soll weiß ich nicht.
https://support.industry.siemens.co...leOfUse,Faq,Manual,ProductNote,Forum&lc=de-DE

Harald
 
Ich denke es gibt auch einen Adressfehler. Wenn ich eine gute Erinnerung bin, müssen Sie die E / A-Adressen der an den CP342 angeschlossenen Peripherie mit Adresse 0 starten. Wenn Sie die Adressen 110 bis 113.7 verwenden, müssen Sie den Adressbereich der Sende- und Empfangsbausteine von Byte 0 aus vergrößern bis einschließlich Byte 113.
Wenn Sie die HW-Konfig vornehmen, werden die Adressen in den Slaves auch automatisch ab Adresse 0 eingetragen, auch wenn Sie diese Adressen in Ihrer HW Ihrer SPS bereits vergeben haben.

Joop
 
ET200S hat jeweils 8 Digitaleingabemodul DI 4xDC24V, Standard und jeweils 8 Digitalausgabemodul DO 4xDC24V/2A.
Die Module haben alle den Adressbereich 110.0 bis 113.7, Eingänge wie Ausgänge

Beim Aufruf der FC's übergebe ich nun

P#DB1.DBX0.0 BYTE 4 (Ausgänge) bzw
P#DB2.DBX0.0 BYTE 4 (Eingänge)
Der CP342-5 hat für seine Profibus-Teilnehmer einen eigenen E/A-Adressbereich, der nichts mit dem E/A-Adressbereich der CPU 31x zu tun hat - siehe in HW Konfig > Ansicht > Adressübersicht. Die FC DP_SEND und DP_RECV kopieren die E/A-Daten der Profibus-Teilnehmer zwischen dem CP 342-5 und der CPU 31x. Dabei muß als Länge in dem ANY immer die gesamte Länge von der CP-E/A-Adresse 0 bis zur höchsten projektierten E/A-Adresse angegeben werden (und soviel wird dann auch kopiert!) - auch wenn am Anfang oder zwischendurch Adress-"Lücken" projektiert sind. Damit nun nicht so viel unbelegter Müll zwischen dem CP und der CPU kopiert werden muß, empfiehlt es sich, die E/A-Adressen von 0 an und möglichst zusammenhängend zu vergeben.

Du müsstest angeben:
P#DB1.DBX0.0 BYTE 114 (Ausgänge) bzw
P#DB2.DBX0.0 BYTE 114 (Eingänge)
d.h. es würden jeweils 110 Byte ohne Nutzen und lediglich 4 Byte Nutzdaten zwischen dem CP342-5 und CPU 31x kopiert werden.

Besser wäre Du projektierst die ET200-Module jeweils ab Adresse 0 und müsstest dann nur je 4 Byte kopieren.

Harald
 
Sie muste die adressen von der Eingangen und Ausganen welche von der slave's welche an der Profibus hinter der CP342-5 sitsen anfangen mit Adresse 0 (in deine gefal nicht mit 110.0 aber mit 0.0 Der FC 1 und FC 2 vangen mit diese adressen an mit lesen und schreiben. Wenn Sie Nur die ein und ausgangen die adressen 100.0 bis 113.7 gibt muste Sie die Sende und Entfangs bereich in Ihre DB's auch 114 byte gross machen ( von Byte 0 bis byte 113) Wenn Sie die 4 byte eingange und 4 byte ausgangen aber adressiert von E 0.0 bis E 3.7 und A 0.0 bis A 3.7 reichen 4 byte in der Db's.
Meine letste project mit ein 342-5 master war ende 90er jahre, aber an anfang habe ich auch die probleme mit der adresse von der I/O bekomme.
In Beilage ein beispiel mit der adressen ab 0.0 Test_CP3.zip ist ein S7 V5.5 arcive und Test_CP345_TiaV15 ist ein gezipt TIA V15 archive.

Joop

edit: Harald war schneller.
 

Anhänge

  • Test_cp3.zip
    1 MB · Aufrufe: 1
  • Test_CP345 TiaV15.zip
    242,2 KB · Aufrufe: 0
Zurück
Oben