Step 7 Werte über Profibus Abfragen.

dabene

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

bitte für die Frage nicht Steinigen.

Ich mache mit S7 200 und S7 300 nur ganz einfache Aufzugssteuerungen. Ein Kunde möchte nun über ein CP (Profibus) Bool, Byte, Dinteger Werte Abfragen. Er möchte nun Modul und Kanalnummern der Werte haben? Was ist hiermit gemeint habe noch nie mit Profibus gearbeitet. Sämtliche Werte schreibe ich aber schon in einen DB für das ( nicht lachen ) OP 73.

Danke für die Hilfe.

Grüße db
 
Zuletzt bearbeitet:
"Modul und Kanalnummer" scheint mir eine nicht-Siemens-Terminologie zu sein... Womit will der Kunde per Profibus auf Deine SPS zugreifen? Welche SPS hast Du konkret?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,

es ist eine 6ES7 312-1AE13-0AB0 gefolgt von 4 X 6ES7 323-1BL00-0AA0, 2 X 6ES7 321-1BH02-0AA0 und dem CP 6GK7 342-5DA03-0EX0. Habe heute noch mal mit dem Kunden Telefoniert, dieser meinte er will die Werte über Profibus zb so abfragen 73.3 und dies soll dann je den Wert aus dem DB übermiteln?

Gruß db
 
Nochmal: Womit will der Kunde auf Deine SPS zugreifen?
Ist das eine Visualisierung? WinCC, WinCC flexible oder welche Software?
Oder ist das eine Steuerung? Siemens ... oder andere Steuerung ... ? Was für ein Profibus-Modul?
Hast Du schon was an dem Profibus Deines CP342-5 hängen oder ist der total frei für den Kunde?

Die Informationen sind wichtig dafür was geht und wie. Ob es eine Master-Slave-Beziehung wird, wo nur auf projektierte Datenpunkte zugegriffen werden kann. Oder ob es eine BuB-Beziehung ist oder ob der Kunde S7-Verbindungen nutzen will. Oder ...

Harald
 
Hallo,

der Kunde will die Daten mit seiner Visualisierung abfragen. Das CP ist nur für den Kunden seine Visualisierung. S7 Verbindungen will er nicht nutzen.

Grüße db
 
Sämtliche Werte schreibe ich aber schon in einen DB für das ( nicht lachen ) OP 73.
der Kunde will die Daten mit seiner Visualisierung abfragen. Das CP ist nur für den Kunden seine Visualisierung.
Dann wird es ja ziemlich einfach für Dich.

Erstelle einen extra Visu-"Koppel"-DB mit den vom Kunde gewünschten Daten-Variablen und kopiere die Daten in diese Visu-Variablen. Drucke den Koppel-DB mit der Adress-Spalte aus (kann auch eine PDF sein) (*) und gib dem Kunde den Ausdruck bzw. die PDF. Wie der Kunde mit seiner Visu auf die Variablen in dem DB zugreift und ob das bei seiner (uns unbekannten) Visu "Modul und Kanalnummer" oder "DB 101 DX 123.4" oder sonstwie heißt, ist nicht Dein Problem. Der Kunde muß nur die DB-Nummer, die Adress-Offsets, den Datentyp und die Zugriffsbreite wissen. (und er muß natürlich Ahnung von seiner Visu haben)
Der Kunde erstellt in seiner Visu Variablen auf die durch Dich bekanntgegebenen Adressen und die Visu liest die Werte direkt aus diesen Adressen, also aus Deinem Visu-Koppel-DB.

(*) falls da Structs und Arrays verwendet sind, kann es hilfreich sein, den Ausdruck in der "Datensicht" zu machen


Theoretisch könntest Du auch den bereits vorhandenen DB des OP73 für die Visu mitnutzen, das ist aber nicht zu empfehlen.
Die Visu sollte nicht kreuz und quer in dem SPS-Programm rumlesen oder gar -schreiben. Die Visu-Zugriffe sieht man nicht automatisch im Programm. Man erstellt extra Koppel-DBs als Schnittstelle zur Visu, weil dadurch die Visu-Variablen bzw. die Schnittstellen dokumentiert sind. Und weil dadurch die Visu-Variablen vom restlichen SPS-Programm entkoppelt sind (Adressen, Datentyp, Werte/Inhalt). Außerdem bekommt die Visu so nur Kopien der original-Variablen - ein (versehentliches) Schreiben der Visu auf die Visu-Variablen hat keinen Einfluß auf das SPS-Programm.

Gib dem Kunde blos nicht die Adressen von anderen Variablen in anderen DB oder womöglich gar E/A-Adressen. Wenn der Kunde mehr Daten will, dann erstelle eine Variable in dem Visu-Koppel-DB und kopiere den Wert der gewünschten original-Variable in die Visu-Variable.

Harald
 
@Harald:
aus dem Beitrag #3 des TE lese ich allerdings eher heraus, dass sich der Kunde etwas in der Art eines Handshakes vorstellt.
Also vielleicht so : Kunde schreibt 27 in Adresse 1 und erwartet dann in Adresse 2 den Wert xyz zurück. Kunde schreibt 29 in Adresse 1 und erwartet dann in Adresse 2 den Wert äöü aus der Steuerung zurück.

@TE:
Du solltest nach meiner Meinung erst einmal mit deinem Kunden/Auftraggeber klären, ob er das, was da laufen soll, in dieser Form schon einmal irgendwo mit dieser Steuerung gemacht hat.

Es kann aber auch sein, dass mich meine Glaskugel gerade mal im Stich läßt ... 8)

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Hier die gewünschten Infos:
Es muss eine Kommunikation zum ABB-Leitsystem Melody mit Controller PM876 über Profibus DP aufgebaut werden.
Die S7-Steuerung am Aufzug muss dabei Slave sein. (Ggf. Kommunikationsmodul einsetzen).
Es werden keine S7-Verbindungen benötigt.
Auf die in der beiliegenden Excel-Liste grün markierten Variablen soll lesend zugegriffen werden. Dazu müssen diese auf PB-Ausgangsmodule zugewiesen werden. Die entsprechenden Adressen müssen Sie uns übergeben.
Es findet kein schreibender Zugriff statt.

Grüße db
 
@db:
Hast du meinen Beitrag gelesen ? Hat dein Kunde das schon mal gemacht ?
Ich habe ein bißchen das Gefühl, dass sich dein Kunde etwas zu machen vorstellt, dass in dieser Form entweder gar nicht oder nur schwierig umsetzbar ist.

Gruß
Larry
 
Es muss eine Kommunikation zum ABB-Leitsystem Melody mit Controller PM876 über Profibus DP aufgebaut werden.
Die S7-Steuerung am Aufzug muss dabei Slave sein. [...]
Auf die in der beiliegenden Excel-Liste grün markierten Variablen soll lesend zugegriffen werden. Dazu müssen diese auf PB-Ausgangsmodule zugewiesen werden. Die entsprechenden Adressen müssen Sie uns übergeben.
Also meine Glaskugel kann da nichts Schwieriges mit Handshake oder Multiplex erkennen..

Ich verstehe den TE nun endlich so, daß seine S7-300 als DP-Slave Werte für irgendeinen (nicht-Siemens) DP-Master zur Verfügung stellen soll. Für eine ganz normale zyklische Master-Slave-DP-Kommunikation.


Auch für diese Kommuikationsvariante erstellst Du einen Koppel-DB, legst darin die Variablen(-Kopien) für die "grün markierten Variablen" an, kopierst im Programm die Werte der gewünschten Variablen in die Variablen im Koppel-DB und sendest den Koppel-DB per DP_SEND an Deinen CP342-5. Das war es schon von Deiner Seite.

Dem Programmierer des Leitsystems drückst Du einen Ausdruck Deines Koppel-DB in die Hand. Damit hat er die Variablen-Struktur und kann daraus eine passende Modulstruktur in seinen DP-Master projektieren/programmieren.
Die DB-Nummer braucht der Partner nicht wissen, die nützt ihm nirgendwo was. Er braucht nur die Variablen-Struktur. Die geforderten "Adressen" sind die Offsets im Koppel-DB.

(Bei Profinet würde man die Konfiguration als GSD-Datei exportieren und der Partner könnte sie einfach in seinem System importieren. Bei Step7-Profibus gibt es diese Komfortfunktion nicht.)

Hier Beispiele, wie Du Deinen CP342-5 als DP-Slave konfigurierst und programmierst:
DP-Kopplung CP 342-5 (Slave) und S7-300/400 (Master)
Wie konfigurieren Sie einen CP342-5 als DP-Slave an einem CP342-5 als DP-Master?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also meine Glaskugel kann da nichts Schwieriges mit Handshake oder Multiplex erkennen..
Es kann ja auch sein, dass meine Glaskugel nicht mehr korrekt justiert ist ... 8)
Schlussendlich klären können wir das nur, wenn wir (relativ) genau wissen, wie der Kunde sich da ankoppeln möchte und welche Funktionalitäten ihm da zur Verfügung stehen.
Ich habe aber irgendwie das Gefühl (kann ich nicht begründen), dass der Kunde nicht einfach einen DB auslesen will ...

Gruß
Larry
 
Hallo ,

erstmal danke für die Infos. Der Kunde hat mir nun nach langer Zeit noch mal infos zukommen lassen.

Im ABB-Leitsystem Melody wird der Profibusteilnehmer an einen Controller angebunden.
Danach werden die benötigten bzw. vorhandenen Module angelegt.
Jedes Modul hat je nach Typ verschiedene Kanäle. Diese werden mit den MSR-Stellen belegt.
Im Funktionsplan können die MSR-Stellen dann angesprochen werden.
Man kann den Inhalt einer bereits projektierten Station als csv-Datei exportieren. Ein Beispiel habe ich beigefügt.
Der Teilnehmer ist eine S7, die über einen CP 343-2 an das Leitsystem angebunden ist.

Anhang anzeigen PB Konfi 0QEA10 Tln 17.csv.zip

Ist das dann so Realisierbar bei mir über Profibus mit Koppel DP ?

Vielen Dank

Grüße db
 
Auch für diese Kommuikationsvariante erstellst Du einen Koppel-DB, legst darin die Variablen(-Kopien) für die "grün markierten Variablen" an, kopierst im Programm die Werte der gewünschten Variablen in die Variablen im Koppel-DB und sendest den Koppel-DB per DP_SEND an Deinen CP342-5. Das war es schon von Deiner Seite.

Harald

Letztendlich funktioniert es, wie Harald es sagt. Nach der csv-Datei will der Kunde einfach die gesamte Übertragungsbreite des CP nutzen.

Dein Koppel-DB hat die Struktur wie in der csv-Datei, also erst viele Wörter, dann viele BITs. Dein CP hat eine Anfangsadresse. Du sendest den Inhalt des Koppel-DB mit DP_SEND an den CP.
Eine Beschreibung gibt's über F1 oder Harald's Link.

Die einzelnen Werte, also was jetzt in welchem WORD oder BYTE steht, musst dann nach Kundenwunsch entsprechend in deinen DB schieben

MfG Nico
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wahrscheinlich sagt dein Kunde dann nur sowas wie: ich möchte auf der Variablen "M1_014" die Temperatur XY lesen. Oder Bit "M8_007" soll mit Zustand XY belegt sein.
Dann schreibst du den Wert als WORD bzw. den anderen als BIT in deinen Koppel-DB und gut ist.

Nach der csv gibt es auch Sendedaten zu deiner S7. Wichtig beim CP ist, dass die Struktur beider Partner von der Datenbreite gleich ist!
Also wenn dein Partner X Byte sendet, MUSST du X Byte empfangen! Wenn dein Partner Y Byte empfangen will, musst du Y Byte senden!
 
Zuletzt bearbeitet:
Hallo,

ich habe mich nun wieder mit dem Thema befasst und habe es mal Probiert, stimmt das so möchte den Kompletten DB 22 übergeben an das Leitsystem.

DB22.jpgDB22.1.jpgDB 22 Profibus.JPG

?

Danke für die Hilfe

Grüße db
 
Der DB ist 44 Byte lang, nicht 40. Wenn der CP in der Hardwarekonfig die Anfangsadresse 272 hat, sollte es passen.
 
Zurück
Oben