Step 7 Schottischen Dudelsack mechanisieren

Zuviel Werbung?
-> Hier kostenlos registrieren
Vielleicht wäre es wirklich besser, eine andere Steuerung zu verwenden....
Eigentlich wär sowas ein richtig schönes Arduino- / ESP32- oder Raspberry- Projekt.
Die S7-200 ist ein totes Pferd. Da können nicht mehr viele hier im Forum unterstützen..
 
2024-06-05 06_06_44-STEP 7-Micro_WIN - Projekt1.png

So könnte man es vielleicht machen.
TOF scheint wirklich bei der SPS nicht zu gehen. Kann aber leider bei mir die Hilfe nicht aufrufen. Da müsste vielleicht ein Hinweis zu finden sein warum das so ist.
2024-06-05 06_07_05-STEP 7-Micro_WIN - Projekt1.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
TOF scheint wirklich bei der SPS nicht zu gehen. Kann aber leider bei mir die Hilfe nicht aufrufen. Da müsste vielleicht ein Hinweis zu finden sein warum das so ist.
1717561828303.png
Vermutlich, weil's 'ne urururalte 214 ist und es die ausgekreuzten Bausteine da noch nicht gab.
Daher hatte PN/DP ja auch wenigstens zu 'ner "nur" uralten 224 geraten.
🤷‍♂️
 
Hilfe, da werden schreckliche Erinnerungen wach. Wir hatten diese Nockenschaltwerke an uralten S-Förderern. Bin mal als junger Elektriker bis nachts um 4 drangewesen, weil ein Mechaniker bei einer Wartung das Schaltwerk und blöderweise auch noch die Referenzmarken entfernt hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hilfe, da werden schreckliche Erinnerungen wach. Wir hatten diese Nockenschaltwerke an uralten S-Förderern.
Ich hatte schon mit Kartonauffaltanlagen ( Karton entstapelt, auffalten, Heißkleber auf die Unterseite + Unterseite zufalten, Abtransport ) zu tun, die waren komplett mit einem Nockenschaltwerk ( ca. 0,5m lang ) gesteuert.

Diese Kiste mit dem Nockenschaltwerk war immer groß beschriftet mit "Finger weg!"
 
Wir haben in der Firma bei einer Maschine noch ein Nockenschaltwerk im Einsatz. Das Schaltwerk funktioniert ohne Probleme. Bei dieser Maschine sind eher die Einschubkarten vom Steuerrack anfällig. Dort sind hin und wieder die Lötstellen defekt, sieht man aber erst wenn man das Lötzinn entfernt weil die Verbindung Pad/Lötzinn kaputt geht.

Ich würde es auch nicht mit einer S7-200 machen. Entweder mit Mikrocontroller oder zumindest mit einer 1200er versuchen. Die sind auch nicht sehr teuer.

MfG Hannes
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kommen jetzt die Mühen der Programmierung auf mich zu.
Bei den nur 4 kB Programmspeicher + 4 kB Datenspeicher wirst du sehr schnell ans Ende kommen. Bei CPU 224 (-xxx22/-xxx23) ist der Speicher aber auch nur ca doppelt so groß.
In den 80er Jahren hat man zwar in nur 1 kB ein ganzes Schachprogramm untergebracht, da musste man aber auch keine Spielvorschrift für eine längere Melodie unterbringen ...

Da musste ich feststellen, dass man in KOP wesentlich mehr "aufmalen" kann, als was dann in AWL umsetzbar ist.
Immer mal übersetzen, dann erhältst du Fehlermeldungen (unten im Ausgabefenster).
Bei MicroWIN kann man mehr malen, als die eingestellte Ziel-CPU tatsächlich kann. Die 21x-CPUs werden in MicroWIN nur mehr schlecht als recht mitgezogen. MicroWIN war für die 22x-CPUs gemacht.

An MOV-Kästen lässt sich nichts ankoppeln.
FEHLER 1: Der ausgewählte Typ des Zielsystems unterstützt ENO nicht.

Also habe ich mich mit Timern beschäftigt, und bin über das, was die 214 mit bringt, durchaus enttäuscht.
Das gab es öfters, dass SPS nur eine Sorte Timer können. Man kann aber mit etwas Aufwand alle Timer-Varianten aus einem Typ zusammenbauen. Die 21x-CPUs hat Siemens von TI übernommen, und danach die weitaus leistungsfähigere 22x-Serie entwickelt.

Ein umgestztes Beispiel für TOF aus der Onlinehilfe der micro WIN (rechts) lässt sich bei mir nicht mal in AWL umwandeln ! ?
Es lässt sich nicht umwandeln, weil es schon gar nicht fehlerfrei übersetzt werden kann.
FEHLER 11: Diese Operation wird von dem gewählten Typ des Zielsystems nicht unterstützt.
In den Hilfethemen mit den Erklärungen von Anweisungen/Operationen gibt es oben den Link "Unterstützte Operationen für die CPUs S7-200"

Bei denen bräuchte ich eigentlich ne Auslösung mit "Nadelimpuls" nach Differenzierung eines Übergangs bei z.B. E0.0 von 0 auf 1.
Die fertige Anweisung für Erkennung steigende Flanke ist -|P|- AWL: EU, fallende Flanke -|N|- AWL: ED
Die Anzahl der EU/ED-Anweisungen ist allerdings begrenzt, ich weiß aber nicht mehr wieviele.
 
Kommen jetzt die Mühen der Programmierung auf mich zu.
Um die mühsame Zeit des Programmierens zu überbrücken.

Aber keinen allgemeinen Taktgeber! Denn später bei Noten haben die auch verschiedene Längen.
Warum eigentlich nicht? Haben wir es bei den verschiedenen Längen nicht mit Vielfachen ein und derselben ZeitBasis zu tun? Achtel (= 1 Achtel), Viertel (= 2 Achtel), Halbe (= 4 Achtel), Ganze (= 8 Achtel)?
Es geht immer nur 1 von maximal 9 verschiedenen Tönen?
Und 'ne Pause zwischen 2 Tönen ist auch denkbar? Also zusätzlich noch einen 10. jedoch geräuschlosen Ton einplanen.
Zum "Kompostieren" muss man dann nur noch Kolonnen von ZahlenPaaren (Ton-Höhe und -Dauer) aufschreiben bzw. abspeichern.
 
Die Betonung liegt auf nur noch. ;-) Habe keine Ahnung wie so etwas gänge.
Gut wäre allerdings die gemeinsame Zeitbasis, da man damit die Spielgeschwindigkeit verändern könnte.

Wenn Folgendes, was mir volker geschrieben hatte, zur Benutzung von max. 2 Timern der selben Länge für jede Note,
falls sie hintereinander vor kommen, nicht geht. Dann stände ich mit meiner S7 sowieso auf dem Schlauch, denn von den kurzen Timern gibts nicht viele.
Hier der zitierte Text: Das könntest du umgehen indem du für jede Note 2 Timer nimmst die du dann, falls nötig, im wechsel verwendest."

Habe gemerkt, dass TOF sich tatsächlich erst ab der CPU 221 in AWL umwandeln lässt.
Wie lässt sich die Funktion mit TON darstellen?

Was commander23 mir programmiert hat, werde ich morgen ausprobieren, und mir etwas Literatur für SPS holen.

Mit Nockenschaltwerk und Kartonauffaltanlage hatte ich ein mechanisiertes Klavier erlebt. War verblüffend gut.
Nur ist diese Technik eben heute sehr sehr oldschool.

Weil da Arduino/Rasperry PI genannt worden.
Hatte ich anfangs auch daran gedacht, nur tue ich mir Programmierung in C mit 70 nicht mehr an. Sowas hat mir noch nie gelegen.
 
Falls noch nicht erwähnt, auf ner neueren CPU kannst Du beliebige Zeitfunktionen via der beiden oben ausgekreuzten itime Blöcke realisieren.
 
Im Grunde brauchst du doch nur einen einzigen Timer, der einen Grundtakt von 31 ms (1/32 Note) erzeugt. Und einen Zähler, der die Tonlängen abzählt. Dann brauchst du nur noch eine Liste der Tonhöhe + Tonlänge jeder Note und Pause, die nacheinander ausgegeben wird. Falls die Phasenschwankungen zwischen OB1-Zykluszeit und den 31 ms auffällig werden (bzw. überhaupt vorteilhaft), kannst du die Tonausgabe auch in einem zeitgesteuerten Interrupt ("31 ms Task", Interrupt 0 oder Interrupt 1) programmieren. Die Ausgabeliste könntest du mit je einem Word (16 Bit) codieren: z.B. 10 Bits für die Tonhöhe und Pause, und 3 Bits codiert für die 6 Tonlängen und Listen-Ende und 3 Bits für Spezialitäten, z.B. wenn mehrere Töne auf einmal erzeugt werden sollen oder Sondercodes für z.B. Sprünge zu (Teil-)Wiederholungen. Indirekte Adressierung mit Pointern in den V-Datenspeicher für die Adressierung in die Liste kann die S7-200 recht easy.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Um die mühsame Zeit des Programmierens zu überbrücken.


Warum eigentlich nicht? Haben wir es bei den verschiedenen Längen nicht mit Vielfachen ein und derselben ZeitBasis zu tun? Achtel (= 1 Achtel), Viertel (= 2 Achtel), Halbe (= 4 Achtel), Ganze (= 8 Achtel)?
Es geht immer nur 1 von maximal 9 verschiedenen Tönen?
Und 'ne Pause zwischen 2 Tönen ist auch denkbar? Also zusätzlich noch einen 10. jedoch geräuschlosen Ton einplanen.
Zum "Kompostieren" muss man dann nur noch Kolonnen von ZahlenPaaren (Ton-Höhe und -Dauer) aufschreiben bzw. abspeichern.
Gibt es beim Dudelsack eigentlich einen "geräuschlosen Ton"? Was passiert, wenn kein Griffloch verschlossen ist?
 
Gibt es beim Dudelsack eigentlich einen "geräuschlosen Ton"? Was passiert, wenn kein Griffloch verschlossen ist?
Dann sollte immer noch der Basis-Ton erklingen. Wenn du in eine Flöte bläst, kommt ja auch ein Ton, egal wie die Anzahl der verschlossenen Löcher ist (auch =0). Zusätzlich hat ein Dudelsack ja auch noch mehrere Pfeifen und nur auf einer wird über die Löcher der Ton variiert.
Der "geräuschlose Ton" würde dann entstehen, wenn kein Druck auf den Sack ausgeübt wird und demnach auch keine Luft durch die Pfeifen strömt.
 
So ist es. Denn für Pausen müsste man schlagartig den Druck aus dem Luftbeutel nehmen, durch Anlüften des Druck erzeugenden Unterarms.
Man spielt offensichtlich durch. S. auch Partitur im Anhang.
Mull of Kintyre habe ich darunter geschrieben, in der Hoffnung, dass es das ist. Denn isle of mull ist eine komische Wortkombination. Mull ist gälisch und heißt Halbinsel.
Man beachte die vielen Triller. Das sind 1/32-stel Noten, teilweise 3 hintereinander. Respekt vor denen, die das spielen können!
Speziellen Dank an commander32, hat er im Beitrag #82 doch genau das programmiert, was ich meinte. Ist wie ein Treppenlicht-Automat.
Habe davon 4 in Reihe kombiniert, ab dem 2. ausgelöst immer mit dem Timer der davor kam, anstatt mit z.B. E0.0.
Ergab ein gutes Lauflicht.

Was aber nicht geht ist die Idee von volker, bei gleichen Notenlängen mit nur 2 Timern in Abwechslung aus zu kommen.
Hier also T33 dann T34 und wieder T33 und T34. Hätte mich ehrlich gesagt auch gewundert, wegen dem VKE am Ende.

Damit ist meine Idee, das als Timerkette zu programmieren, schon vorbei. Es sei denn, es hat noch einer eine zündende Idee.
Habe ich doch bei der 214 für die mit 1ms nur 2 und von denen mit 10ms nur 8.

Mir persönlich hatte volker noch geschrieben:
"man kann sich aber timer selber bauen. z.b. über einen zeit-ob(ob35) die aufrufzeit ist einstellbar.
siehe hier timer.zip http://lischis-home.selfhost.eu/files/SPS/S7/dirindex.php
ob das bei der 200er auch geht weiß ich nicht."
Habe mich mit dem von Lischi beschäftigt. Weiß aber nicht, was man da von mir will.
Außerdem, für fast jede schnelle Note ein programmierter Timer. Dann dürfte das mit dem Speicherplatz wohl wirklich knapp werden, oder?

Kommt wieder ins Spiel, eine Datenmatrix ab arbeiten zu lassen. Davon habe ich aber rein garkeine Ahnung.
Ob es leistbar ist, mir das bei zu bringen?
 

Anhänge

  • Mull of kintyre.png
    Mull of kintyre.png
    66,8 KB · Aufrufe: 6
Für 18€ gibts nen Arduino nano mit Wifi und haste-nicht-gesehen, in moderner IDE programmierbar, mit Bibliotheken direkt in der IDE und Beispielen in sämtlichen quelloffenen Bereichen des Internet.

Nur weil es existiert und irgendwie geht und ja auch nur privat ist, heißt ja nicht dass man unwirtschaftlich agieren muss.
 
Zurück
Oben