Bitstatus von 2 SPS Modulen über einer Abfragen - wie?

sleepless

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

ich habe 2 SPS Module (2x CPU 318-2) und diese sind über den Profibus verbunden.
Nun verarbeite ich in jeder SPS eine Sammelstörung (Ein Bit).

Ich möchte nun dieses Bit, was in der SPS A verarbeitet wird, in der SPS B ebendfalls verwenden, sowie auch das Bit aus der SPS B und daraus praktisch eine große Sammelstörung machen.

Wie praktiziere ich nun, das die SPS B es schafft, das eine Statusbit aus SPS A mit zulesen?
Gibt es so etwas wie einen "überglobalen" DB?

Geproggt wird mit Step7 V5.3 SP2. V5.4 Steht ebendfalls zur Verfügung.
gruß&Danke
 
Zuletzt bearbeitet:
Hey,

ich habe 2 SPS Module (2x CPU 318-2) und diese sind über den Profibus verbunden.
Nun verarbeite ich in jeder SPS eine Sammelstörung (Ein Bit).

Ich möchte nun dieses Bit, was in der SPS A verarbeitet wird, in der SPS B ebendfalls verwenden, sowie auch das Bit aus der SPS B und daraus praktisch eine große Sammelstörung machen.

Wie praktiziere ich nun, das die SPS B es schafft, das eine Statusbit aus SPS A mit zulesen?
Gibt es so etwas wie einen "überglobalen" DB?

Geproggt wird mit Step7 V5.3 SP2. V5.4 Steht ebendfalls zur Verfügung.
gruß&Danke

Wenn Profibus, dann brauchst du einen DP-DP Koppler sonst reden die zwei DP Master nicht miteinander.

Du könntest aber die CPUen über MPI verbinden und dann die Signale über die Globaldatentabelle austauschen
 
MPI-Verbindung mit Globaldaten-Austausch

Da der MPI-BUS etwas langsam ist kann ich aus eigener Erfahrung nur hierzu raten wenn die Signale nicht so zeitkritisch benötigt werden! Wir haben auch schon mal Anlagen in einer Linie über MPI vernetzt und wollten die Übergabesignale per MPI Globaldaten austuschen, aber das war viel zu träge hierfür! Haben dann auf Koppelrelauis für die 2 Signale gesetzt.

Grüße
Michael

und der Helmut war wieder schneller ;-)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
wenn es ganz einfach sein soll und wirklich nur ein Bit ist, könnte man das
ganz schnell mit 1 Ausgang und 1 Eingang auf beiden Seiten lösen.
Problem ist: Zwischen den beiden SPS sind etliche meter, Treppen und Wände.
Ich wollte nicht extra eine Strippe deswegen ziehen :ROFLMAO:

DP-DP Kopller sind ebendfalls vorhanden - jedoch dienen diese einem ganz anderem Zweck.
Ich muss sagen, das ich euch zum Schutze der verwirrung nur 10% des Aufbaues erzählt habe.
Das ganze ist ein komplexes Hochregallager mit allem Schnick schnack drum herum.
Es gibt mehrere Störmeldungen, die zu einer Störmeldung als Leuchte ausgegeben werden. Detaillierte Störungen werden nur im Rechner protokolliert.

Um es kurz zu erklären: Die beiden SPS sind jeweils für eine ein/Auslager Seite verantwortlich. Sie kümmern sich nur um den Transport des ganzen - das ein/auslagern in den Regalen übernimmt eine andere separate Station. (Deshalb die Strecke dazwischen).
Kommunizieren tun diese über insgesamt 3-4 Verbindungen.
Einmal untereinander per PB -> und dieser endet bei einem WinCC Rechner. Einmal per DP Koppler mit dem Verwaltungsrechner. Und einmal geben diese weitere Befehle an externe Module der jeweiligen Linie weiter.

Wie ihr merkt, es ist nicht privat :ROFLMAO:

Eine Verbindung von solchen "Bit austausch" muss es schon geben. Denn wenn die Robotorwagen des eigentlichen Ein/auslagern in den Regalen einen Fehler haben, geht auf beiden Seiten die Sammelstörungs-leuchte an.
In dem Programm ist allerdings nicht ersichtlich, wie das von statten geht. Wesentlich wahrscheinlicher ist, das der Verwaltungsrechner eine art "schnittstelle" bildet. Nur ist das reine Software - und da läuft nichts von Step 7, WinCC etc. drauf. Ein Progger meinte, das würde über sogenannten "SFC-Bausteine" gehen. Ich habe aber weder mit den Dingern schon mal gearbeitet sonst noch wie...
Vorhanden sind die Dinger aber... (diese sind sogar "Know-How" geschützt worden). Und in einem FC kann man diese auch aufrufen / einbinden...
Einer eine Idee?
Oder doch nur blödsinn?
 
Hi,

ich hätte auch gesagt, die zwei SPSen über MPI verbinden (Adressen müssen unterschiedlich sein). Dann mittels SFC65 "X_SEND" und SFC66 "X_RECV" oder SFC68 "X_PUT" und SFC69 "X_GET" die Daten übertragen. Das geht ohne eine Verbindung in Net-Pro einzurichten, einfach Baustein beschalten und ab gehts. Maximal sind da 76 Byte bei den 300er und 84 Byte (X_GET u. X_PUT) bei 400er Steuerungen möglich.

Ein Beispiel findest Du hier http://support.automation.siemens.com/WW/view/de/20989875

Gruss Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey,
Ich muss mich doch korrigieren. Dieser Austausch funktioniert doch über get / Put per FB, daher ich zwar SFC's da drinne habe, aber keinen mit "Rec" oder "Rsv" sehe.
also ich kann diese ja in einem FC mit aufrufen. Allerdings habe ich dort ein paar Anschlüsse, die ich mit irgendetwas belegen muss.
Ich hab aber kein Peil was das betrifft.
Kann mir da jemand bei helfen, ohne das ich 200 Seiten lesen muss?

Ich habe mal die Net-pro und ein paar Projekt übersichten angehängt, damit es euch einfacher fällt.
 

Anhänge

  • Unbenannt1.JPG
    Unbenannt1.JPG
    108,2 KB · Aufrufe: 36
  • Unbenannt2.JPG
    Unbenannt2.JPG
    71,8 KB · Aufrufe: 32
  • Unbenannt.JPG
    Unbenannt.JPG
    71,2 KB · Aufrufe: 32

In den 3 Tagen hättest du dir die 200 Seiten Dokumentation sowieo alle Siemens Beispiele zu den diversen Profibus Kommunikationsvarianten ansehen können.

Davon abgesehen, kann man in deinem Netpro Screenshot leider nicht die Verbindung sehen die du (hoffentlich) angelegt hast. Davon hängt letztenendes ab welche Bausteine du in deinem Programm aufzurufen hast.
Die Put/Get-Bausteine die man in deinen Bildern sehen kann sind zumindest nur für eine S7-Verbindung zuständig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In den 3 Tagen hättest du dir die 200 Seiten Dokumentation sowieo alle Siemens Beispiele zu den diversen Profibus Kommunikationsvarianten ansehen können.
Herzlichen Dank für diese Info. Auf son Blödsinn hätte mich herr Google auch bringen können.
Ich frage hier extra in einem Forum an, weil ich mir den scheiß sparen will, 199 Nutzlose seiten zu lesen, nur um eine zu finden, die anährungsweise passt. Ich habe dazu auch keine Zeit.
Deshalb frage ich ja euch, weil ihr wisst (oder wohl doch nicht..???!!), wie man so etwas im Handumdrehen macht.
Mir ist klar, das ich immer etwas anpassen muss - aber ich gehe nicht im Forum nachfragen, um mir seitenweise links mit 200 Seiten wälzern geben zu lassen -> wiegesagt, da komm ich auch selbst drauf.

Wenn ich noch etwas an Infos oder Bildern nachreichen soll, dann sagt mir bescheid, ansonsten fühl ich mir nichts schlauer als vorher..
 
Herzlichen Dank für diese Info. Auf son Blödsinn hätte mich herr Google auch bringen können.
Ich frage hier extra in einem Forum an, weil ich mir den scheiß sparen will, 199 Nutzlose seiten zu lesen, nur um eine zu finden, die anährungsweise passt. Ich habe dazu auch keine Zeit.
Deshalb frage ich ja euch, weil ihr wisst (oder wohl doch nicht..???!!), wie man so etwas im Handumdrehen macht.
Mir ist klar, das ich immer etwas anpassen muss - aber ich gehe nicht im Forum nachfragen, um mir seitenweise links mit 200 Seiten wälzern geben zu lassen -> wiegesagt, da komm ich auch selbst drauf.

Wenn ich noch etwas an Infos oder Bildern nachreichen soll, dann sagt mir bescheid, ansonsten fühl ich mir nichts schlauer als vorher..

Woher sollen wir wissen wie Deine Anlage im Detail aussieht. Wo klemmt es den jetzt eigentlich?
Du kannst im Step7 Manager auch auf den Baustein klicken und F1 drücken, vielleicht kommst Du so schneller an die benötige Info.;)
Falls nicht sind wir bestimmt gerne bereit zu Helfen aber ein wenig eigeninitiative wird schon vorausgesetzt.

Gruss Daniel
 
Ich meine damit nicht, das ihr mir die Sache schreiben sollt. Aber wenn ich die Siemens Beispiele mit anschaue, verstehe ich weiterhin nur Bahnhof, weil ich mit den Befehlen, die bei den Get&Put bausteinen verwendet werden, nichts anfangen kann.
Deswegen fragte ich euch, ob ihr mir ein Beispiel von den Bausteinen, anhand meiner gelieferten Bilder, Programmieren könnt und es mir erklären.
Ich weiß immer noch nicht, wie ich den ein Baustein dazu kriege, ein Bitstatus zu senden. Wie macht man das?
Was muss ich anstellen, das er den Status von z.B. E0.1 oder M50.0 verschickt?
Ich kann ja nicht "m50.0" an einem Connector (oder wie das heißt..) schreiben und dann eine Zieladresse. Der will ja wesentlich mehr wissen...
Die F1 taste erklärt mir nur den Call Befehl.. zu den bausteinen mit der Funktion "get/Put" gibt es nichts in der Standardhilfe.

Sry, das ich nen bissl mecker, aber mir fehlt die Zeit & Lust, ein "Fernseminar" anhand von Siemens Wälzern zu machen.
Kenntnisse sind da - nur nicht speziell zu dieser Vorgehensweise..
Und wie gesagt, falls ihr noch irgendwelche Infos oder Bilder braucht, sagt bescheid ;)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich noch etwas an Infos oder Bildern nachreichen soll, dann sagt mir bescheid, ansonsten fühl ich mir nichts schlauer als vorher..

Hab ich doch oben schon geschrieben was fehlt: Man kann in deinem Netpro Screenshot keine Verbindungsliste sehen.
Hast du denn überhaupt eine S7-Verbindung angelegt?

Eine S7-Verbindung ist in mit deiner Hardware auch nur zwischen den CP-342 Baugruppen möglich. Das erkennt NetPro aber automatisch. Wenn das nicht möglich ist bekommst du eine Meldung dass so eine Verbindung nicht angelegt werden kann.

Wenn du die Verbindung angelegt hast, notierst du die Verbindungs-ID aus NetPro.
Im Programm musst du darauf achten die PUT/GET Bausteine aus der passenden Bibliothek zu nehmen (Simatic-Net CP --> Ordner CP300).

Deine Put/Get-Bausteine laufen nur auf einer SPS.

Mit dem Get-Baustein liest du Daten aus der anderen SPS.
Der Datenbereich der gelesen werden soll gibts du am Parameter ADDR_1 im Format eines Any Pointers an. Bei einer S7-300 kannst du aber nur Merker und Datenbausteine lesen. Wenn den Eingangsbereich lesen willst, musst du diese auf der Gegenstelle in einen M/DB-Bereich kopieren.
Die empfangenen Daten landen dann in deiner SPS im Speicherbereich den du am Parameter RD_1 angibst. Der Anypointer an ADDR_1 und RD_1 muss natürlich die gleiche Länge besitzen.

Beispiel:
Du willst aus der anderen SPS 10 Bytes ab MB100 lesen, und die Daten sollen im DB100 ab Adresse 0.0 landen:
ADDR_1 := P#M 100.0 BYTE 10
RD_1 := P#DB100.DBX 0.0 BYTE 10

Gleiche Funktion bei Put-Baustein, nur dass du dort an ADDR_1 die Zieladresse in der Partner-SPS angibst, und an SD_1 der Speicherbereich deiner lokalen SPS, deren Werte übertragen werden sollen.

Hier gibt es sogar ein fertiges Programmbeispiel bei Siemens.
http://support.automation.siemens.com/WW/view/de/22792404
Das ist zwar über Ethernet, aber die Programmierung einer S7-Verbindung ist beim Profibus identisch.
 
so, im anhang nu die Liste.
Die lokalen Adressen steigen mit der Platznummer in der Liste. (1-4).
Ob die Verbindung nu da ist, kann ich irgendwie nicht sagen - nur davon ausgehen, daher die Blitzleuchten bei einem externen Fehler beide angehen - obwohl diese von 2 verschiedenen CPU's gesteuert werden.
Ich fummel ja in einem fix und fertigem Projekt rum - und weiß natürlich nicht, wie die herren von Siemens dabei vorgegangen sind...

Wenn ich dein Beispiel jetzt mal für mich umstelle, wäre das so möglich?...
Du willst aus der anderen SPS 10 Bytes ab MB100 lesen, und die Daten sollen im DB100 ab Adresse 0.0 landen:
ADDR_1 := P#M 100.0 BYTE 10
RD_1 := P#DB100.DBX 0.0 BYTE 10
Ich möchte nur aus der anderen SPS ein Merker 100.0 lesen (Also ja nur ein Bit.. und kein ganzes Byte ???!) und die Daten sollen in dem DB 50 bei der Adresse 50.0 landen
Würde das ganze in FUP also so aussehen?:

attachment.php


Und auf der gegenseite brauche ich einfach nur den abgefragten Merker erstellen?!

PS: Ich versuche mal, das Siemens-Beispielprojekt zu verstehen...
 

Anhänge

  • s7-netpro.JPG
    s7-netpro.JPG
    97,1 KB · Aufrufe: 5
  • s7-netpro2.JPG
    s7-netpro2.JPG
    99,6 KB · Aufrufe: 6
  • s7-netpro3.JPG
    s7-netpro3.JPG
    93,5 KB · Aufrufe: 6
  • Unbenannt1.JPG
    Unbenannt1.JPG
    62,2 KB · Aufrufe: 33
Falls mich nicht alles täuscht, gehört die CPU 318 softwaretechnisch zur S7 400. Die Bausteine müssten dann meines Erachtens aus der S7 400 Bibliothek ausgewählt werden.
 
Zuletzt bearbeitet:
Zurück
Oben