Wie programmiert man am elegantesten eine "LOGO!"

OP #4420672
Lesenswert?
• ▲
▼
Hallo zusammen

Es gibt ja von Siemens kleine SpeicherProgrammierbareSteuerungen oder 
kurz SPS.  Diese nennen sich LOGO!.

Diese SPS kann man mit deren Software mit Blöcken programmieren.
Anbei seht ihr ein Bild eines "Programmes"

Es gibt Outputs, Inputs, logische verknüpfungen von Signalen etc.
Ich habe mich nun gefragt, wie so etwas im hintergrund funktioniert.
Wie würde man so etwas auf Mikrocontroller ebene, also innerhalb der 
SPS, programmieren? und was für daten erzeugt die PC Software?

Ich habe an eine riesige Wahrheitstabelle gedacht.
Wobei diese keine Verzögerungen und keine Zähler enthalten kann, welche 
die erwähnte SPS kann.

Danke schonmal
Gruss eure Krähe!
Angehängte Dateien:
Gast #4420710
Lesenswert?
• ▲
▼
habe den Hintergrund Deiner Frage nicht ganz verstanden.

Ich weiß nicht exakt, wie Siemens das gemacht hat.
Bei der S7 wird der Plan in AWL (Anweisungsliste) gewandelt, da steht 
dann drin: Eingang1 UND Eingang2 -> Merker; Merker UNDNICHT Eingang3 -> 
Ausgang.
Verschiedene Arten von Zeiten und Zählern sind hier auch einfach 
eingefügt.

Aber ich würde eine Tabelle aufziehen, in der alle Funktionsblöcke des 
Anwenderprogramms der Reihe nach aufgelistet sind, darin Zeiger auf das 
betreffende Firmware-Unterprogramm der Funktion (auch Zeit und Zähler), 
Zeiger auf die Bits, die die Eingänge und Ausgänge darstellen (freie 
Bits im RAM), und Zwischenspeicher für Zeiten und Zählwerte.
Diese Tabelle wird ständig von oben nach unten durchgelesen und 
bearbeitet. In einem Hintergrundprozess alle 1ms werden die 
Zeitvariablen noch bearbeitet.
Das war es dann, ganz einfach.
Es ist kein sonderliches Problem, das zu schreiben. Habe ich 1988 als 
Semesterarbeit (=3Wochen) mit den damaligen Programmiermöglichkeiten 
auch schon gemacht. Wie es bei LOGO ist, weiß ich nicht.
Schwieriger für die Firmware, aber das eigentlich sympathische an der 
SPS finde ich, daß man (bei >= S7-200) Programmänderungen runterladen 
kann, während das Programm läuft. Also, die Maschine braucht nicht 
gestoppt zu werden. Eigentlich werden zwischen Tabellendurchläufen nur 
die entsprechenden Tabellenelemente geändert, der Rest incl. Daten 
bleibt erhalten. An diesem Thema scheitern die meisten Hobby-Projekte.
Schlaumeier werden sagen: bei fehlerhafter Programmänderungen kann es zu 
Beschädigungen an der Maschine kommen. Praxis ist, daß ich nicht alle 
Arbeiter vom Fließband in Frühstückspause schicken kann + Band 
leerräumen, bloß weil ich eine Verknüpfung eingefügt habe. Beim Neustart 
ist die Fehlerwahrscheinlichkeit genauso hoch. Fehler müssen woanders 
abgefangen werden.
Die Siemensianer werden meinen Vorschlag jetzt verreißen, weil sie es 
anders machen. Aber ich wollte nicht ihre Patente verraten ...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.