S5 115 - Profibus - S7 312

Zuviel Werbung?
-> Hier kostenlos registrieren
Holzweg?

Hallo Alxel S.
Du hast nicht gesagt, wie die Daten auf dem Ethernet weiter verwendet werden sollen.

Vielleicht geht es ja einfacher:

Falls nämlich die Merker/DBs/E/A aus der S5 über Netzwerk auf einen PC mit Siemens OPC-Server übertragen werden sollen, brauchst Du keine einzige Zeile Code.

Du kannst in SIMATIC NetPro die Verbindung zusammenklicken.
Im OPC-Server trägst Du dann die Stationen ein, von denen übertragen werden soll, und schon stehen Dir per OPC alle Daten der S5 zur Verfügung.

Die S7 mit DP und CP343 fungiert dann als reiner Profibus-Ethernetadapter.

Nur wenn Du die Werte von der S5 in der S7 irgendwie verändern/verknüpfen/berechnen wolltest, müsstest Du im S7-Programm die Daten auslesen. Als reiner Profibus-Ethernetadapter brauchst Du das nicht.

Dass das ganze so einfach geht hat einen einfachen Hintergrund:
In den meisten CPs sitzt ein eigener Prozessor und eine Firmware, die das Protokoll verarbeitet.

grx
hr
 
Geht leider nicht.

Auf dem Leitsystem läuft kein Windows (sondern QNX), also keine OPC-Möglicheit.
Also werd ich weiterexperimentieren müssen.

Gruß,
Aksels
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auf dem Leitsystem läuft kein Windows (sondern QNX), also keine OPC-Möglicheit.
Also werd ich weiterexperimentieren müssen.

Gruß,
Aksels
Kennst du Nautsilus. Das ist eine OPC Software für QNX® RTOS.:rolleyes:
Das war zumindest einer der ersten Links die ich in google gefunden habe.
 
Auf dem Leitsystem läuft kein Windows (sondern QNX), also keine OPC-Möglicheit.
Ja, das ist wahr.

Mit fremden OPC-Servern (die es für S5/S7 gibt) kann man nicht in NetPro alles durchschalten, die haben ein eigenes Konfigurationstool. Ob die dann zu dem Routing in der Lage sind, weiss ich nicht.


Über welches Protokoll willst Du die Daten aus der S7 nach QNX rüberholen?


grx
hr
 
Mhhhh.....

@hr333 das soll dann über den Lean Ethernet-Baustein gehen.

Ich bekomme immer den Fehler
Funktion FMSSender
Ereignis: OV nicht vorhanden auf FMS Verbindung 2 währen des FMS-Auftragzugriffs 2 mit FMS-Index 120

Aus Step5:
VFD-Variableneditor
Index Typ ZGRF Passw S5-Adresse ANZW SSNR
120 AR 32 _ _ DB202 0 DB202 50 0
IN 16
121 AR 50 _ _ DB222 0 DB222 50 0
IN 16
122 AR 32 _ _ DB232 0 DB232 50 0
IN 16
123 AR 32 _ _ DB212 0 DB212 50 0
IN 16
124 AR 32 _ _ DB242 0 DB242 50 0
IN 16

Sollte es also doch gehen.
Wenn ich an irgendwelchen Parametern Spiele hab ich immer gleich keinen Verbindungsaufbau.


@Bitverbieger
Kann es daran liegen (Zitat):
2. Für die internen Einstellungen im CP5431 wird ein Teil der GSD-Datei
vom CP 342-5, sowie eine HEX Einstellungen (USR Param Daten)benötigt.
Die Software COM Profibus V5.1 liefert die entsprechenden Einstellungen

Ich kann COM Profibus 5.1 leider nicht benutzen da er mir nicht erlaubt die PG/PC-Schnittstelle einzustellen. Da steht immer nur "keine". Klicke ich auf "Auswählen" sehe ich auf der Installierten Seite alle Schnittstellen wie in Step7. Mist!





Von seiten Siemens hiess es, das läge an dem MRCC 3. Die S7-300 kann dort nur 1!
Der Supportler meinte dann ich solle es unter Step5 mit dem NCM-Programm für COM5431 anders einstellen. Wunderte sich dann, daß da gar nichts drinsteht an der stelle wo die 3 stehen sollte.
Hernach meinte er ich müsse mit den Parametern SCC RCC rumspielen einer müsse auf 1 einer auf 0 stehen.
Das wollte Step7 abernicht so haben und hat die Parameter ummer wieder korrigiert.
Ich geh jetzt erstmal heim drüber schlafen und mach morgen weiter.

Vielleicht hat ja noch jemand ne Idee. Sonst stelle ich morgen Screenshots ein mit meinen Einstellungen.

Gruß,
Aksels
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@hr333 das soll dann über den Lean Ethernet-Baustein gehen.

Ja, dachte ich.
Du verbindest den CP343-1 Lean über Eurer Netzwerk mit dem QNX-PC.

Als Transportprotokoll kommunizieren die beiden dann wahlweise direkt auf Ethernet-Basis (also direkt über die MAC-Adresse, Siemens nennt das ISO), oder über TCP/IP.

Aber welches höhere Übertragungsprotokoll wirst Du auf QNX-Seite verwenden? (z.Bsp. ProfiNet IO, Profinet CBA, FTP, S7-Kommunikation,...?)

grx
hr
 
Ethernet Höheres Protokoll.

Tja, wahrscheinlich brauche ich mir darüber gar keine Gedanken machen.
Ich hab nicht mehr viel Zeit (1 Woche) dann fordern die Verantwortlichen eine andere Lösung.
Heute nachmittag werd ich nochmal mit Siemens telefonieren. Wenn die es nicht hinbekommen, weiß ich auch nicht mehr weiter.
Ich stelle dann alles was ich habe hier ein. Ich habe ja immeroch Hoffnung, daß hier im Forum jemand eine zündende Idee hat.

Gruß,
Aksels
 
Zitat Aksels
Ich kann COM Profibus 5.1 leider nicht benutzen da er mir nicht erlaubt die PG/PC-Schnittstelle einzustellen. Da steht immer nur "keine". Klicke ich auf "Auswählen" sehe ich auf der Installierten Seite alle Schnittstellen wie in Step7. Mist!
COM Profibus braucht ein schnittstelle die das Com Profibus protocol unterstuts, z.b. ein CP5512.
In Step7 konte sie bei PG/PC-Schittstelle einstellen sehe of sie eine schnittestelle auf ihre rechner had die das protocoll unterstuts. Z.b ein MPI II fon Process Informatik unter stutz unter S7 MPI und Profibus aber keine COM Profibus.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Juhuu!

Ich habe zum erstenmal Daten bekommen ohne Fehlermeldung.
Hab die Höchste Profibusadresse auf 31 gestellt (keine Ahnung, ob das ausschlaggebend war) und dann mit den andere Sachen gespielt.
In den Verbindungsparametern -> Optionen der beiden FMS-Verbindungen gibt es einen Reiter Variablen des Partners.
Dort stand Auslesen: Keine.
Ich nahm an daß diese Einstellung für das Auslesen mittels der Einstellungen unter "Variable Melden" gilt und habe dem erst keine Bedeutung beigemessen.
Nun hab ichs aber mal auf "Alle" auslesen gestellt, und siehe da, der "nicht vorhanden" Fehler ist weg.
Ich mach heute noch das Programm zum auslesen aller Daten fertig und berichte dann über den Ethernet-Teil...
Dank an alle, die mitgeholfen haben.

Gruß,
Aksels
 
Weiter mit TCP/IP

So. Nach kleiner Pause geht es nun weiter.
Habe folgende Verbindungen erstellt:
IP-Adresse: 192.168.0.102
S7 Subnetz ID: 0025 000B
Verbindungspartner unspez.



Für DB500:
Betriebsart: Send/Receive
ID (Hex): 0001 A050
Aktiver Verbindungsaufbau ist nicht angehakt.
Port 2000
Ich habe bei meinem AG_Send-Aufruf folgende Daten:
Connection ID : 1
LADDR : W#16#110

Länge : 356




Für DB501:
Betriebsart: Send/Receive
ID (Hex): 0002 A050
Aktiver Verbindungsaufbau ist nicht angehakt.
Port 2001
Ich habe bei meinem AG_Send-Aufruf folgende Daten:
Connection ID : 2
LADDR : W#16#110
Gesendet wird der DB500

Länge : 356

Programm sieht so aus:
CALL "AG_SEND"
ACT :=M50.0
ID :=1
LADDR :=W#16#110
SEND :=DB500
LEN :=356
DONE :=M1.2
ERROR :=M1.3
STATUS:=MW200

CALL "AG_SEND"
ACT :=M50.1
ID :=2
LADDR :=W#16#110
SEND :=DB501
LEN :=356
DONE :=M1.4
ERROR :=M1.5
STATUS:=MW202





Ich hoffe das klapp so.
Was mich noch interessieren würde: Ich habe in dem Netz wo die S7 mit dem Lean-Baustein drinhängt einen Internetzugang.
Habe Port 2000 von außen an die SPS weitergeleitet. So müsste ich doch von ünerall aus das Ding programmieren können (unsicher ich weiß, aber bis das Programm fertig ist...). Problem: wo stelle ich in der S7-Software die adnere IP-Adresse ein, an die er sich verbinden soll? DIe heisst ja nciht mehr 192.168.0.102 sondern ist eine vom Provider vergebene.
S7-Lean hat den Router eingestellt, nmap meldet Port Ok. Nur an Step7 hakts.

Gruß,
Aksels
 
da weiss ich was :rolleyes:

Du musst in deinem Step7-Projekt die IP von deinem CP 343-1 auf die aktuelle vom Provider einstellen. Die hält ja normalerweise 24h.
Du darfst aber nicht die Hardwarekonfig hochladen, sonst ändert er die IP im realen CP 343-1 und schon hast Du keine Verbindung mehr :)

Die Kommunikation geht nur über Port 102 (bin ich ziemlich sicher).

gruss
:twisted:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Weiter geht's!

Guten Tag, zusammen.
@ hr333: Das mit der IP hat gepklappt. Muss jetzt halt nur reinfahren, wenn ich was an den Verbindungen ändere. Ein riesen Vorteil. Danke.

Ich habe die kommunikationsparameter noch anpassen müssen:

Betriebsart Fetch Passiv auf Connection ID 1

Betriebsart Write Passiv auf Connection ID 2

Damit hat das andere System eine Verbindung Aufbauen können und Daten lesen können.

Nun habe ich die Daten auf vier DBs aufteilen müssen.
Zwei sind zu senden zwei zu empfangen.
1. Frage:
Muss ich die beiden Sendungen und/oder auch die Empfangs-Teile gegeneinander verriegeln, oder kann der CP das alles über die TCP-Verbindungen gleichzeitig verarbeiten?

Die Sendungen gehen beide über ID 1 Port 2000.
Die beiden Empfangs-Vorgänge sollen über ID2 Port 2001 laufen.

2. Frage Die Beispiele sind alle nur zum Empfangen oder Senden von einem DB.
Kennt jemand ein Demoprogramm bei dem man nur noch einen InstanzDB braucht und die ID und LADDR als Parameter übergeben kann (Mehrfachaufrufe!)?


Gruß,
Aksels
 
Zuletzt bearbeitet:
1. Frage:
Muss ich die beiden Sendungen und/oder auch die Empfangs-Teile gegeneinander verriegeln, oder kann der CP das alles über die TCP-Verbindungen gleichzeitig verarbeiten?

Die Sendungen gehen beide über ID 1 Port 2000.
Die beiden Empfangs-Vorgänge sollen über ID2 Port 2001 laufen.

Da musst Du nichts mehr verriegeln, denke ich.
 
Ok, keine Verriegelung.

Programm sieht jetzt so aus:
N1
CALL "AG_SEND"
ACT :=M50.0
ID :=1
LADDR :=W#16#110
SEND :="S5KR2Rd".Data
LEN :=228
DONE :=M50.1
ERROR :=M50.2
STATUS:=MW100


N2
R M 50.0

SET
U M 50.1
SPB don1
SET
U M 50.2

SPB err1

SPA end1

don1: S M 50.0
SPA end1

err1: NOP 1
NOP 1
S M 50.0
end1: NOP 1


N3
CALL "AG_SEND"
ACT :=M51.0
ID :=1
LADDR :=W#16#110
SEND :="S5KR3Rd".Data
LEN :=228
DONE :=M51.1
ERROR :=M51.2
STATUS:=MW102


N4
R M 51.0

SET
U M 51.1
SPB don2
SET
U M 51.2

SPB err2

SPA end2

don2: S M 51.0
SPA end2

err2: NOP 1
NOP 1
S M 51.0
end2: NOP 1



N5
CALL "AG_RECV"
ID :=2
LADDR :=W#16#110
RECV :="S5KR2Wr".Data
NDR :=M52.0
ERROR :=M52.1
STATUS:=MW104
LEN :=MW106


N6
CALL "AG_RECV"
ID :=2
LADDR :=W#16#110
RECV :="S5KR3Wr".Data
NDR :=M53.0
ERROR :=M53.1
STATUS:=MW108
LEN :=MW110



Schein bis jetzt zu klappen.

Gruß,
Aksels
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schreiben in S5 geht nicht

Sodele,
ich habe jetzt das meiste im Griff.
Es hapert nur noch am Schreiben in die S5.

CALL FB 6 , DB304
REQ :=DB104.DBX0.0
ID :=DB104.DBD2
VAR_1 :=DB104.Write_VAR_Index //124
SD_1 :="S5KR2Wr".Data.Soll
DONE :=DB104.DBX13.0
ERROR :=DB104.DBX13.1
STATUS:=DB104.DBW14

"S5KR2Wr".Data
Data.Bef[1] WORD W#16#0 W#16#0000
Data.Bef[2] WORD W#16#0 W#16#0000
Data.Bef[3] WORD W#16#0 W#16#0000
Data.Bef[4] WORD W#16#0 W#16#0000
Data.Bef[5] WORD W#16#0 W#16#0000
Data.Bef[6] WORD W#16#0 W#16#0000
...

nach 32 Words kommen 32 Soll-Werte.

Aus der S5 ausgelesen:
VFD-Variableneditor
Index Typ ZGRF Passw S5-Adresse ANZW SSNR
120 AR 32 _ _ DB202 0 DB202 50 0
IN 16
121 AR 50 _ _ DB222 0 DB222 50 0
IN 16
122 AR 32 _ _ DB232 0 DB232 50 0
IN 16
123 AR 32 _ _ DB212 0 DB212 50 0
IN 16
124 AR 32 _ _ DB242 0 DB242 50 0
IN 16


Das stimmt mit dem überein, was in NCM S7 in der Verbindung angezeigt ist.
Die Verbindung ist Read Write deklariert.
Ich habe auch schon versucht die Words in Integer16 zu ändern, aber der gleiche Effekt:
Ich bekomme einen Fehler mit Status 4 im Call FB6.
Das bedeutet
"Der Empfangsdatenbereich ist zu kurz oder die Datentypen stimmen nicht überein."
Es ist ein "Lokale" Fehlermeldung laut Hilfe. Bedeutet wohl das der Verbindungspartner noch nicht behelligt wurde?
Im NCM7 bekomme ich "P-Bus" "Protokollfehler im MiniProtokoll"
Der Empfangsdatenbereich kann es wohl nicht sein. Lief ja seit Jahren mit der alten Leittechnik.
Der Datentyp den ich genommen habe taugt aber fürs lesen, warum nicht fürs schreiben.
Kann das mit "Variable Melden" in der FMS-Verbindung zu tun haben? Da steht bei mir nichts drin.
Bin wieder Ratlos.

Gruß,
Aksels
 
Zuletzt bearbeitet:
Boa ey!

Muahahahahahaha!
Ganz alleine rausbekommen *schlulterklopf* *bauchpinsel* *bruststolzschwell* *nichtvorhandenehaarezurückwerf*


Jetzt zum peinlichen Teil:
Falsche Version vom FB6 in der S7. Sollte man ja immer zuerst prüfen.
:rolleyes:

Besten Dank an alle!

Gruß,

Aksels
 
Glitches.

Liebe Mitstreiter,

ich habe hier leider noch Glitches. Auf dem Gerät, das die Daten von der S7 über TCP liest, sieht man ab und an Glitches. Das bedeutet, das Gerät empfängt immer wieder abartig hohe Werte bei den ersten 6-8 Worten (von 32). Dabei handelt es sich um Zählwerte (sollten sich also nur langsam und linear ändern). Beim nächsten Lesezyklus sind die Werte dann wieder normal. Wenn man sich die Zahlen in Buchstaben umrechnet dann kommt man auf Spitze Klammern auf oder Zu (<>) und ein paar weitere Buchstaben. Der Kollege meint nun, das wären Strings, die von der Kommunikation herrühren und in irgendeiner Weise verschoben als Zahlwerte interpretiert werden.
Ich vermute, daß bei Ihm ein Programmierfehler im Echtzeitbetriebsystem vorliegt, wollte aber mal fragen, ob es doch an der S7 liegen kann?
Gibt es da irgendwelche Timingprobleme? Oder Pufferlöschungen im CP Lean, während denen man nicht lesen darf?

Gruß,
Aksels
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Glückwunsch!

Was ich nicht verstanden habe:
Wie hast Du denn die Kommunikation S7<==>PC gelöst?

  • Du hast oben von TCP-Ports 2000 und 2001 geschrieben, ich nehme an, das gehört zur Verbindung mit dem PC.
  • Eingangs hast Du von einem PC mit QNX geschrieben.
    - Ist das der Kommunikationspartner mit der S7?
    - Welche Software auf dem QNX-PC kommuniziert mit der S7?
    - Oder ist es dein Programmiergerät (Windows)?
    - Hat das Übertragungsprotokoll einen Namen (außer "TCP")?

mfg
hr
:twisted:
 
Zuletzt bearbeitet:
Kommunikation QNX

Über den CP343-1 Lean habe ich eine neue Verbindung mit Typ TCP-Verbindung angelegt. NetPro nimmt hierfür automatisch den Port 2000. Die "Station", also der Verbindungspartner ist unspezifiziert also keine IP und kein Port eingetragen. Betriebsart für Verbindung 1 ist Fetch Passiv mit S7 Adressierungsmodus, LADDR W#16#0110 ID1.
Die Verbindung ID2 ist Write Passiv auf Port 2001, sonst gleich.


Gruß,
Aksels
 
Hmm, OK, aber was ist der Verbindungspartner zur S7?
- Ist das der PC mit QNX?
- Wenn ja, welche Soft verwendest Du auf dem QNX-PC?
(bspw. ein Perl-Script, welches direkt einen TCP-Port zur S7 öffnet? Oder libnodave (vermute ich mal wegen "Fetch Passiv mit S7 Adressierungsmodus")?

Wäre schön, wenn Du das sagen könntest.


Über den CP343-1 Lean habe ich eine neue Verbindung mit Typ TCP-Verbindung angelegt. NetPro nimmt hierfür automatisch den Port 2000. Die "Station", also der Verbindungspartner ist unspezifiziert also keine IP und kein Port eingetragen. Betriebsart für Verbindung 1 ist Fetch Passiv mit S7 Adressierungsmodus, LADDR W#16#0110 ID1.
Die Verbindung ID2 ist Write Passiv auf Port 2001, sonst gleich.


Gruß,
Aksels
 
Zurück
Oben