Zeit - Rückwandbus messen

dfpes

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen.

Ich habe eine S7 mit CPU 317-2pn/dp und SM323 DI16/DO16 zur Verfügung.

Nun soll ich als Referenz (für spätere Messungen am Profibus, Profinet und anderen Bussystemen) die Übertragungszeit zwischen der CPU und SM323 messen.

Meine Herangehensweise ist folgende:
1) Signal ins PAA schreiben (wird nach Zyklusende nach Außen gesetzt)
2) über OB1_PREV_CYCLE die jeweiligen vergangenen Zykluszeiten ermitteln und solange addieren
3) ... bis, das Eingangssignal im PAE steht

Dazu werden ein Eingang des SM323 mit einem Ausgang des SM323 kurzgeschlossen. Damit ergibt sich aber die Zeit bzw. die Anzahl Zyklen zwischen Senden und Empfangen zu Null.

Stimmt meine grundsätzliche Herangehensweise? Wer kann mir vielleicht einen anderen Ansatz erklären?
Kann man die Zykluszeit genauer als 1ms messen?

Vielen Dank für Hinweise!
Dirk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Damit ergibt sich aber die Zeit bzw. die Anzahl Zyklen zwischen Senden und Empfangen zu Null.
Hallo Dirk,
wenn schon dann musst du die Zeit zwischen dem PAE (Zyklusanfang) und dem PAA (Zyklusende) messen.
Je nach Programmlänge wird es dann Zeitunterschiede geben.
Da Siemens aber nur im Millisekundenbereich auflöst, wirst du ohne Programm da keine genaue Messungen bekommen.
Da wäre eine Messung mit einem Oszilloskop dann schon genauer, oder ein paar Schleifen einbauen.
 
Hallo Paule,

mittels OB1_PREV_CYCLE messe ich ja eigentlich die Zeit zwischen PAE und PAA (also die Zeit des vergangenen Zyklus) - welche ich dann solange addiere, bis ich am PAE ein Ereignis registriere.
Ich hätte ja gern über Prozessalarme gearbeitet, aber das unterstützt das SM323 nicht.

Meine Aufgabe besteht darin, den Signallauf zu messen: vom Schreiben ins PA bis zum Lesen der Reaktion eines Prozesses, wobei der Prozess als totzeitfrei angesehen werden soll.

Daher würde ich die Zykluszeit (die sich ja durch die Programmlänge der SPS ergibt) versuchen klein zu halten.
Das mit dem Oszi war auch schon mein Gedanke, aber da hab ich gerade zum "Schreiben ins PA" keinen Ansatz- bzw. Angreifpunkt gefunden.
Deinen Gedanken mit den Schleifen würde ich gern genauer erklärt bekommen.

Dankbar für weitere Anregungen,
Dirk
 
Ich dachte bislang das die Faustformel 2x Zykluszeit + Baugruppen reaktionszeit ausreichen würde!

Woru möchtest du es denn noch genauer wissen?

MFG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... weil es meinen Professor interessiert ;)

Wie im ersten Post geschrieben werde ich mittels diesem Vorgehen auch die Signallaufzeiten über Profibus, Profinet und CAN messen. Dazu macht sich ein erster Referenzwert (in dem Fall haben wir uns für den Rückwandbus entschieden) ganz gut.

Grüße
 
Verstehe ich nicht :confused:

Woher willst du denn wissen wo welche Zeit "verbraucht" wurde?

Wenn du im SPS Programm einen Ausgang setzt der auf einen Eingang geht (mal alles auf einem Rack)
Dann hast du Zykluszeit + Verarbeitungszeit Ausgang + Verarbeitungszeit Eingang. Die Summe ist klar - aber wie lange hat jetzt die A-Baugruppe gebraucht?

Bei Profibus:
CPU + DP-Master + "Transport" + DP-Slave + A-Baugruppe + E-Baugruppe

Wie soll denn das gehen? Da bist du wohl genauer wenn du das Handbuch liest und dir die Werte per Taschenrechner zusammen addierst.

Ich könnte mir höchstens einen Messaufbau vorstellen in dem eine sehr schnelle E und A Baugruppe sitzt - die mit deiner CPU ein "Toggle-Spielchen" spielt.
-Mess-CPU setzt ihren A + startet Zeit
-Test-CPU erkennt dies an ihrem E
-Test-CPU setzt ihren A
-Mess-CPU erkennt dies an ihrem A + stoppt Zeit

So hätte man wenigstens die gesamt Signallaufzeit (wobei ein Scope mit Trigger wohl einfacher wäre).
 
Die Aufgabe sagt aus, dass die Signallaufzeit vom Schreiben ins PA bis zum Lesen der Antwort gemessen werden soll. Wobei der Prozess als totzeitfrei angesehen werden soll. (Sorry, wenn ich mich wiederhole)

Wahrscheinlich ist die genaue Auftrennung der einzelnen "Verarbeitungsschritte" im Signallauf (also bspw.: Zykluszeit + Verarbeitungszeit Ausgang + Verarbeitungszeit Eingang) gar nicht so wichtig ... sondern, es sollen die einzelnen Bustechnologien dahingehend nur unterschieden und abgegrenzt werden.

Also wird es dahingehend im Anschluss an meine Messungen (alias Rechnungen) an ein Handbuchstudium gehen, um gewisse Messergebnisse zu begründen.

Das mit dem Scope dürfte gerade jetzt beim Rückwandbus ("mal alles auf einem Rack" Zitat BPlagens) nicht funktionieren. Später bei Profibus schon eher - Versuch macht klug(ch)

Danke!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ah ok - das macht das ganze klarer!

Aber CAN,Ethernet,PB haben ja alle unterschiedliche Geschwindigkeiten.
Wenn es Fair sein sollte müsste man ja einen gemeinsamen "Speed" finden.

Als Slave sollte man dann ja evl. Module nehmen für die es verschiedenen Anschaltungen gibt (wie etwas Beckhoff).
Gibt es eine Can für die 200S?

Ebenso sollte man ja bei Ethernet nix anderes am Netz haben.

Viel Erfolg!

PS: Evlt. gibt es da ja schon was fertiges!? Hier gibt es so machen Info:
http://www.feldbusse.de/
 
Die Site kenne ich schon von früher - habe ich aber mit der Aufgabe noch gar nicht in Verbindung gebracht. Da muss ich die Tage mal schauen!

Um CAN und Profibus zu vergleichen habe ich je eine WAGO RemoteIO zur Verfügung. Das mit den verschiedenen Übertragungsgeschwindigkeiten macht die gesamte Geschichte logischerweise noch etwas schwammiger...

Danke - ich werde das Forum sicher mit Fragen auf dem Laufenden halten. :rolleyes:
 
Oszi??

Mein Vorschlag wäre die Signallaufzeit (Klemme-Klemme) mit dem Oszi zu messen. Du gibts z.B. über einen Taktgenerator Pulse (f ~ 50Hz) auf einen Digitalen Eingang. In deinem Anwenderprogramm (OB1) hast du einen Zweizeiler:
L PAB 0 (Digitale Eingabebaugruppe)
T PAB 0 (Digitale Ausgabebaugruppe)
Somit kannst du deine Programmlaufzeit vernachlässigen, da dein Zyklus minimal ist und auch die Ein-/Ausgänge sofort gelesen bzw. geschrieben werden.
Mit dem Oszi misst du die steigende Flanke auf deinem Eingang und auf deinem Ausgang. Die Differenz wäre jetzt deine komplette Klemme-Klemmezeit. Im Normalfall ist das, das was dem Anwender interessiert. Wie schnell kann ich auf ein Eingangssignal reagieren. Wenn du jetzt noch ein Speicheroszi hast, kannst du auch den Jitter messen.
Was du jetzt natürlich noch nicht hast ist die reine Laufzeit am Rückwandbus... denn in dem gemessenen Wert steckt noch die Verzögerungszeiten der digitalen Baugruppen drin (bei Standard-Eingangsbaugruppen ~3ms).
Wenn du die reinen Rückwandbuszeiten messen willst, musst du schon am Rückwandbus messen :), oder aber dem handbuch vertrauen :).

So, viel Spass beim messen und nicht vergessen
Wer misst misst Mist!!
 
Zurück
Oben