Step 7 Zeitverlauf eines Analogeingangs an eienr S7-300 aufzeichnen

SEW

Level-2
Beiträge
58
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

ich arbeite an einer Bachelorthesis mit dem Thema "Drehmomentregelung einer GSM"
Die SPS (S7-300 CPU314C-PN/DP) steht schon und die Software (Regelung) ist schon soweit aufgebaut.
Die Messungen an der GSM erfolgen über eine Strommesszange (für Ia) Differential-Tastkopf (für Ua) und ein Tachogenerator (für die Drehzahl).

Ich möchte gerne den zeitlichen Verlauf der Analogeingänge analysieren. Dafür möchte ich die Signalverläufe (wie die SPS die analoge Signale sieht) irgendwie sehen. Ich habe das Softwarepacket (for Ttraining V13) für unsere Hochschule zur Verfügung. Dort sind die üblichen STEP7 Programme und das neue TIA V13. WINCC ist leider nicht dabei!

Kann die SPS die signale intern aufzeichnen, so dass ich die später aufrufen kann? Wenn ja, wie geht das?
Oder gibt es eine versteckte Funktion in STE7-Manager?

Danke
 
Zuletzt bearbeitet:
Hallo,
das kann sie - aber nicht von selbst ...
Du mußt dir dafür zunächst den OB35 auf das von dir gewünschte Taktintervall konfigurieren - das geht in der HW-Konfiguration unter den CPU-Eigenschaften.
Dann mußt du eine Analogkarte haben, die in der Lage ist, die A/D-Wandlung schnell genug zu realisieren - das können einige der S7-Karten, aber nicht alle. Schreib mal, welche du hast.
Nun mußt du dir ein Aufzeichnungs-Programmm erstellen, dass z.B. ein Array of REAL mit den aufgezeichneten Werten füllt. Aber aufpassen : der Speicher der SPS ist endlich.
Jetzt hast du ggf. eine aufgezeichnete Profilkurve, die du dann in der Visu projektiueren und somit übergeben kannst. Ist die Kurvenaufzeichnung vollständig dann setzt du ein Triggerbit für die Visu.

Das wäre es erstmal in Kürze.

Wenn du nun aber sehr schnell aufzeichnen möchtest (z.B. <= 5 ms) dann könnte es sehr schnell der Fall sein, dass die von dir gewählte CPU "ein bißchen" schlapp ist. Ich würde dafür mindestens eine 317 ansetzen ...

Gruß
Larry
 
zunächst danke für die Blitzschnelle Antwort!

Dann mußt du eine Analogkarte haben, die in der Lage ist, die A/D-Wandlung schnell genug zu realisieren - das können einige der S7-Karten, aber nicht alle. Schreib mal, welche du hast.

Das ist die integrierte Analogbaugruppe, die mit der CPU geliefert wurde. (314-6EH04-0AB0)
AI5/AO2 12Bit
falls du das meinst

Nun mußt du dir ein Aufzeichnungs-Programmm erstellen, dass z.B. ein Array of REAL mit den aufgezeichneten Werten füllt.
Hilf mir mal auf die Sprünge. Wie geht das?

Jetzt hast du ggf. eine aufgezeichnete Profilkurve, die du dann in der Visu projektiueren und somit übergeben kannst.
meinst du damit die TIA Software?

Danke
 
Hallo,
wie schnell möchtest du denn aufzeichnen ? Also : wieviele Werte pro Sekunde ?
Ich fürchte, deine Hardware ist für das Projekt nicht gerade passend ... :(

Das Aufzeichnungs-Programm würde z.B. bei Anliegen einer Freigabe einen Wert in das Array übernehmen und dann den Index des Array's um 1 erhöhen. Im nächsten Zyklus (des OB35, den dort würde es aufgerufen werden müssen) das Gleiche dann wieder - bis die Aufzeichnung fertig ist oder das Array voll ist.

Die TIA-Software ist ja für das SPS-Programm UND die Visu zuständig. Gedanklich mußt du trotzdem die beiden Teilaufgaben trennen. Die SPS macht also die Aufzeichnung und die Viosu zeigt das dann an ...

Da ich das Gefühl habe, dass du noch nicht allzu viel Erfahrung mit der Programmierung hast, kann ich nicht umhin, dir zu sagen, dass du dir da möglicherweise etwas zu viel aufgebürdet hast.
Es hängt hier eigentlich alles von deinem Engagement ab ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein Array in einem DB wirst du anlegen können, oder?

Immer wenn eine Freigabe zur Messwert Erfassung ansteht, wird eine Zahl von 0 bis maximal deinem letzten Array Wert, um einen erhöht.

Bekomme erst mal die reine Datenaufzeichnung hin, ist an sich nicht schwer! Dann erst kümmerst du dich um die Visu.
 
wie schnell möchtest du denn aufzeichnen ? Also : wieviele Werte pro Sekunde ?
Ich fürchte, deine Hardware ist für das Projekt nicht gerade passend ...
Also für eine "langsame" Drehmomentregelung ist die Hardware schon ausreichend. Das Aufzeichnen mächte ich nur zur Analogeinganganalyse nutzen ohne die Regelung. Ich möchte schauen, wie die SPS die Spannung des Tachogenerators, der mit ca 1500 U/min dreht, sieht. Die anderen Spannungen (aus den Dif-Tastkopf und SM-Zange) sind relativ ruhig.

Also ich habe jetzt angefangen mich mit den Bausteinen FC84 und FC85 auseinander zu setzen. Danke für den Tipp, Micha_RW!!! ;)

Hier habe ich schon einen fertigen Quellcode für die Aufzeichnung gefunden, so dass ich mit meinen schlechten Programmierkentnissen zurecht komme ;)
Das werde ich gleich mal ausprobieren.

Die letzte Frage dann für spätere wäre, wie ich die Daten später darstelle...
Aber dazu komme ich später noch :)
 
Zuletzt bearbeitet:
Also für eine "langsame" Drehmomentregelung ist die Hardware schon ausreichend. Das Aufzeichnen mächte ich nur zur Analogeinganganalyse nutzen ohne die Regelung. Ich möchte schauen, wie die SPS die Spannung des Tachogenerators, der mit ca 1500 U/min dreht, sieht. Die anderen Spannungen (aus den Dif-Tastkopf und SM-Zange) sind relativ ruhig.

Ich wiederhole noch einmal die Frage : wie viele Messwerte pro Sekunde ?
Persönlich würde ich Alles, was weniger als 100 Messwerte/Sekunde ist, als unsinnig einstufen - eher mehr. Deine Analogkarte kann aber m.E. keine Wandlungszeit im ms-Bereich ....

Gruß
Larry
 
Ich wiederhole noch einmal die Frage : wie viele Messwerte pro Sekunde ?
Persönlich würde ich Alles, was weniger als 100 Messwerte/Sekunde ist, als unsinnig einstufen - eher mehr. Deine Analogkarte kann aber m.E. keine Wandlungszeit im ms-Bereich
Ich weiß es nicht genau. 100 wären OK.

Ich habe die Aufzeichnung mit den beiden Bausteinen nicht hin bekommen.
So wie ich es verstanden habe: Man erzeugt ein leeres FB1. Dort fügt man die beide Bausteine. Und wo gebe ich denn nun den Quellcode ein, der mit die Tabelle füllt?
Also, ich habe nur sehr wenig Erfahrung mit STEP7.
Ich bin jetzt nicht mehr im Lab, daher kann ich keine Screenshots machen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wie schon von mir geschrieben : es gibt da Nichts, das schon fertig ist, dass du einfach so verwenden kannst. Du MUSST dir den benötigten Baustein schon selbst erstellen.
Hierzu würde ich dir empfehlen, ihn in SCL zu entwickeln. Dieser Baustein hätte die Daten, die vorhandenen Messwerte für die Dauer der anliegenden Freigabe_Messung in ein Array zu schreiben.
Dieser baustein müßte, damit die Messung sinnvoll ist/wird im Weckalarm-OB 35 aufgerufen werden. Diesen OB kannst du auf ein definiertes Zeitintervall einstellen (z.B. 10 ms) - in diesem Intervall würde dieser Baustein dann (unabhängig vom restlichen SPS-Programm) aufgerufen werden - im Prinzip etwas wie ein Thread.

Das du sehr wenig Erfahrung mit Step7 hast habe ich (wie schon geschrieben) auch schon bemerkt. Bis zu einem gewissen Punkt kann man das aber durch viel Engagement und Interesse kompensieren. Wenn du das willst dann können wir das Projekt hinbekommen - ansonsten sehe ich da schwarz ...

Ich habe allerdings immer noch "ein wenig" Bedenken wegen der von dir verwendeten Hardware ...

Wie soll es weiter gehen ?

Gruß
Larry
 
Ich möchte gerne den zeitlichen Verlauf der Analogeingänge analysieren. Dafür möchte ich die Signalverläufe (wie die SPS die analoge Signale sieht) irgendwie sehen. [...]
Kann die SPS die signale intern aufzeichnen, so dass ich die später aufrufen kann?
Da solltest Du wohl besser in jedem OB1-Zyklus aufzeichnen (eventuell noch einen Zeitcode zu jedem Datensatz) bzw. nur in genau dem Zyklus, in dem die SPS die Werte auch verarbeitet. Stichwort Regler: wird der in einem Weckalarm (OB32 .. OB35) aufgerufen? Dann brauchst Du die Werte, die der Regler verarbeitet, auch nur dann aufzeichnen.

Nun komme mal mit konkreten Informationen rüber. Larry hat schon mehrmals gefragt und ich frage Dich auch:
- Wieviele Signale willst Du aufzeichnen? Welche Datentypen?
- In welchem Zeitraster soll aufgezeichnet werden? Wie groß ist die Zykluszeit des OB1 oder des betreffenden OB3x?
- Wie lang soll die Aufzeichnung sein? Soll ununterbrochen aufgezeichnet werden oder reicht ein einmaliger "Mitschnitt"? Wie lange muß die Aufzeichnung verfügbar bleiben?

Mit diesen Angaben wird berechnet, wie groß der Aufzeichnungspuffer sein muß und ob die Aufgabe überhaupt realisierbar ist oder ggf. Abstriche gemacht werden müssen. Bei zu großem Speicherbedarf kann man ggf. statt skalierter REAL-Werte platzsparender die Analogeingangs-Rohdaten (INT) aufzeichnen. Oder andere Tricks anwenden. Doch darüber kann man sich Gedanken machen, nachdem die obigen Fragen beantwortet sind.


Also für eine "langsame" Drehmomentregelung ist die Hardware schon ausreichend. Das Aufzeichnen mächte ich nur zur Analogeinganganalyse nutzen ohne die Regelung. Ich möchte schauen, wie die SPS die Spannung des Tachogenerators, der mit ca 1500 U/min dreht, sieht.
Bei der Hardware habe ich wegen der Aufzeichnung eigentlich keine Bedenken (vorbehaltlich der nötigen Aufzeichnungs-Speichergröße).
Die Wandlungsgeschwindigkeit der Analogeingänge spielt hier für die Aufzeichnung keine Rolle.
CPU Daten schrieb:
6ES7314-6EH04-0AB0 CPU 314C-2 PN/DP
Arbeitsspeicher 192 kByte

Analogeingänge
Messprinzip: Momentanwertverschlüsselung (sukzessive Approximation)
Grundausführungszeit 1 ms
Integrationszeit einstellbar 2,5/16,6/20 ms

Man sollte natürlich keine unbekannten FIFO-Bausteine oder ähnliches verwenden, welche womöglich beim Zufügen von Elementen umspeichern, sondern direkt indiziert in ein Array_of_Datensatz schreiben.

Harald
 
Geht es dir nur um das IBN der Regelung?

Ich würde da mal mit einem vernünftigen Oszi direkt am Eingang drangehen, das sollte dir ja schon mal einen Anhaltspunkt geben was sich hier abspielt. Wenn das Eingangssignal "Versaut" ist kannst du dann immer noch tiefer einsteigen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Larry Laffer schrieb:
Wie soll es weiter gehen ?
Ähm, das überlege ich mir nach dem Wochenende...
:sm19:


PN/DP schrieb:
...
- Wieviele Signale willst Du aufzeichnen? Welche Datentypen?
- In welchem Zeitraster soll aufgezeichnet werden? Wie groß ist die Zykluszeit des OB1 oder des betreffenden OB3x?
...

Eigentlich nur ganz Kurz an einem Eingang Roh bzw Integer.
Auf die anderen Fragen kann ich erst Montag/Dienstag antworten.

Das ganze ist dafür gedacht: Ich wollte mir eine wacklige Gleichspannung von einem Tachogenerator ansehen um die dann später Programmiertechnisch zu stabilisieren.

winnman schrieb:
Geht es dir nur um das IBN der Regelung?

Ich würde da mal mit einem vernünftigen Oszi direkt am Eingang drangehen, das sollte dir ja schon mal einen Anhaltspunkt geben was sich hier abspielt. Wenn das Eingangssignal "Versaut" ist kannst du dann immer noch tiefer einsteigen.
IBN???? :roll:

Ich weiß wie der Eingangssignal um den es geht aussieht. Ich habe es schon mit einem Oszi aufgenommen. Ich wollte wissen im Vergleich zum Oszi wie die SPS diesen sieht


P.S.: Danke Jungs für eure Mühe, ich weiß es zu schätzen! Es freut mich, dass hier in diesem Forum einem Newbi so aktiv geholfen wird! Nicht alle Foren sind so :)
 
Zuletzt bearbeitet:
IBN In Betrieb Nahme

könntest ja das Signal 1:1 wieder auf einen Ausgang legen und da mit dem Oszi schauen.

Was auch noch gehen würde:
Du schaffst dir einen Trigger (Zeit variabel, . . .) mit dem du dann deinen Wert irgendwo hinschiebst zum Beobachten.
Wenn du nun den Trigger veränderst, siehst du sozusagen in Zeitlupe was passiert (so ähnlich wie beim Stroboskop).
 
Zuletzt bearbeitet:
@TE:
Du wirst erstaunt sein, wie deine Kurve von deinen theorethischen Überlegungen abweicht ... 8)
Allerdings steht die Qualität/Auflösung deiner Digitalisierung dem ganzen wieder "ein bißchen" entgegen - aber meine diesbezüglichen Vorbehalte sind ja schon bekannt ...

Gruß
Larry
 
Zurück
Oben