DE10163206B4 - Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung - Google Patents

Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung Download PDF

Info

Publication number
DE10163206B4
DE10163206B4 DE10163206A DE10163206A DE10163206B4 DE 10163206 B4 DE10163206 B4 DE 10163206B4 DE 10163206 A DE10163206 A DE 10163206A DE 10163206 A DE10163206 A DE 10163206A DE 10163206 B4 DE10163206 B4 DE 10163206B4
Authority
DE
Germany
Prior art keywords
stack
bit
data
processor
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10163206A
Other languages
English (en)
Other versions
DE10163206A1 (de
Inventor
Jochen Dipl.-Ing. Lichtenfels
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Schneider Automation GmbH
Original Assignee
Schneider Automation GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Schneider Automation GmbH filed Critical Schneider Automation GmbH
Priority to DE10163206A priority Critical patent/DE10163206B4/de
Priority to US10/326,261 priority patent/US20040078551A1/en
Priority to FR0216739A priority patent/FR2834094B1/fr
Publication of DE10163206A1 publication Critical patent/DE10163206A1/de
Application granted granted Critical
Publication of DE10163206B4 publication Critical patent/DE10163206B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1159Image table, memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Verfahren zum Betrieb einer speicherprogrammierbaren Steurung (SPS), umfassend folgende Verfahrenssschritte:
– Einlesen von an Eingangsbaugruppen (E0 ... En) anliegenden Eingangsdaten (E0 ... En.n},
– Speichern der Eingangsdaten in einem Speicher (DS) als Prozessabbild (PAE) der Eingänge derart, dass ein jedem Eingang (E0.0 ... En.n) zugeordnetes Bit einer Speicherzelle (SZ) auf Null oder Eins gesetzt wird.
–Aufbau eines Speicherbereichs nach Art eines Stacks (B1T ST. BY ST. WST, DWST, QWST) mit bei einer nachfolgenden Programmbearbeitung benötigten Eingangsdaten (E0.0 ... En.n),
dadurch gekennzeichnet,
– dass der Aufbau ein oder mehrerer Stacks als Bit-Stack (BITST) und/oder Byte-Stack (BYST) und/oder Word-Stack (WST) und/oder D-Word-Stack (DWST) und/oder Q-Word-Stack (QWST) erfolgt, wobei während der Programmbearbeitung ein oder mehrere Prozessorregister (DX) mit entsprechenden Bit-, Byte-, Word-, D-Word- sowie Q-Word-Datentypen geladen werden,
– dass im Falle eines Bit-Stacks ein Flag-Register (F) des Prozessors als Bitregister zur Abfrage und Verknüpfung von Zwischenergebnissen eines Programmschrittes verwendet wird,
– dass ein oberstes Element (Stack-Top) des Stacks auf dem Vorzeichen-Bit des Prozessorregisters (DX) liegt und
– dass auf den prozessoreigenen Stack (ENST) lediglich Returnadressen für die Bearbietung von verschachtelten Funktionen/Funktionsblöcken verarbeitet werden,
– Erzeugen von Ausgangsdaten (A0.0 ... An.n) durch Abarbeiten eines Programmcodes mit den in dem Prozessorregister (DX} hinterlegten Eingangsdaten (E0.0 ...En.n) derart, dass das Prozessorregister (DX) nach der Bearbeitung entsprechende Ausgangsdaten enthält,
– Speichern der in dem Prozessorregister (DX} enthaltenen Ausgangsdaten in den Speicher (DS) als Prozessabbild (PAA) der Ausgänge derart. dass ein jedem Ausgang (A0.0 ... An.n) zugeordnetes Bit einer Speicherstelle auf Null oder Eins gesetzt wird und
–Übertragen der in dem Speicher (DS) gespeicherten Ausgangsdaten (A0.0 ... An.n) an eine Ausgabebaugruppe (A0 ... An) .

Description

  • Die Erfindung bezieht sich auf ein Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung gemäß dem Oberbegriff des Anspruchs 1.
  • Ein Verfahren zum Betrieb eines Datenverarbeitungsgerätes wie speicherprogrammierbaren Steuerung sowie der Aufbau einer solchen ist beispielsweise in G. Strohrmann: Automatisierungstechnik I, 4. Auflage, R. Oldenbourg Verlag, 1998, S. 334 ff. beschrieben. Danach sind die wichtigsten Funktionselemente einer speicherprogrammierbaren Steuerung ein Steuerwerk mit einem, manchmal auch mehreren Mikroprozessoren sowie ein Datenspeicher mit Speicherbereichen für Zeiten, Zähler, Merker und Prozessabbilder und einen Programmspeicher. Ferner sind Ein-, Ausgabebaugruppen sowie gegebenenfalls externe Zeit-, Zähl- und Grenzwertgeber vorgesehen. Sämtliche Komponenten der speicherprogrammierbaren Steuerung sind über einen Bus bzw. über Busse miteinander verbunden, über den bzw. über die Daten parallel oder seriell übertragen werden.
  • Gemäß einer bekannten Arbeitsweise einer speicherprogrammierbaren Steuerung fragt das Steuerwerk zu Beginn eines jeden Zyklus Signalzustände an Eingängen der Eingabebaugruppe der Steuerung sehr schnell hintereinander ab und setzt in einem Prozessabbild für Eingänge eine jedem Eingang zugeordnete Speicherstelle auf Null oder Eins, so dass die Speicherzellen des Datenspeichers nach Ablauf dieses Bearbeitungsschrittes ein Abbild der Signalzustände der Eingänge enthalten. Üblicherweise ist der Speicher byteweise organisiert, d. h. jede Speicherstelle hat eine Datenbreite von 8 Bit (l Byte). Die Datenbreite verdeutlicht dabei, wieviel binäre Einheiten in genau einer Speicherstelle untergebracht sind.
  • Speicherprogrammierbare Steuerungen der bekannten Art arbeiten meist mit festen Datentypen wie Bytes (8 Bit), Words (16 Bit), Doublewords (D-Words, 32 Bit) oder Quadwords (Q-Words, 64 Bit). Dies bedeutet, dass sämtliche Befehle, Daten und Adressen dieser Befehle und Daten mit einer Stellenzahl hinterlegt sind, die dem Datentyp entspricht. Die bekannten Speicher sind so aufgebaut, dass unter jeder Speicheradresse eine Zelle mit mindestens einer dem Datentyp entsprechenden Zahl von Bits, also z. B. 8 Bit, abgelegt ist. 1 Byte ist also die kleinste adressierbare Einheit. Mit anderen Worten werden bei bekannten speicherprogrammierbaren Steuerungen Bit-Daten, die den Zustand eines Eingangs mit Null oder Eins kennzeichnen, als Bytes behandelt, was einen großen Speicherverbrauch zur Folge hat. Ferner ist die Speicherung der ansonsten 1 Bit umfassenden Information eines Eingangs in einer Speicherzelle mit dem Nachteil verbunden, dass die Eingangsdaten häufig entpackt und gepackt werden müssen.
  • Während einer folgenden Programmbearbeitung greift der Mikroprozessor des Steuerwerks auf das in dem Speicher hinterlegte Prozessabbild zurück und bearbeitet abhängig davon die im Programmspeicher stehenden Steueranweisungen. Dabei werden Ein-/Ausgabedaten auf den eigentlichen Prozessor-Stack übergeben. Ein weiterer Nachteil der bekannten Verfahrensweise ist darin zu sehen, dass bei Verschachtelung von Funktionen/Funktionsblöcken benötigte Parameter umkopiert werden müssen, da für Verbindungen zwischen Funktionen/Funktionsblöcken Speicher fest zugeordnet werden.
  • Bei der Programmbearbeitung liest der Prozessor beispielsweise den Signalzustand eines Eingangs E1.1 in sein Rechenwerk ein und addiert beispielsweise den Signalzustand des Eingangs E2.1. So kann ein Ergebnis in einem Register des Prozessors abgelegt werden. Nach Abschluss der Programmbearbeitung, also am Ende des Bearbeitungszyklus, überträgt das Steuerwerk den Inhalt des Registers in das Prozessabbild der Ausgänge und den Inhalt des Prozessabbildes der Ausgänge zu den Ausgabebaugruppen. Danach startet das Steuerwerk den nächsten Bearbeitungszyklus mit Übernahme der Signalzustände der Eingänge, anschließender Programmbearbeitung und nachfolgender Ausgabe des Prozessabbildes der Ausgänge an die Ausgabebaugruppen.
  • Aus der DE 27 18 724 A1 ist eine Daten- bzw. Messwertverarbeitungsanlage bekannt. Diese zeichnet sich dadurch aus, dass die Anlage einen Stapel für die vorläufige Speicherung von Daten aufweist, welche im Gebrauchszustand der Anlage in dem Oberteil des Stapels eingelesen oder eingegeben bzw. von den Oberteil des Stapels ausgelesen bzw. ausgegeben werden. Die logische Schaltungsanordnung ist so aufgebaut, dass sie nur zwei 1-Bit-Eingänge empfängt und nur einen 1-Bit-Ausgang erzeugt. Auch ist lediglich ein Stapel für Ein-/Ausgangsdaten eines Formates vorgesehen.
  • Aus der DE 29 32 394 A1 ist eine intelligente, programmierbare Prozessteueranordnung bekannt, die sich auf eine hardwaremäßige Ausgestaltung eines 1-Bit-Prozessors bezieht.
  • Davon ausgehend liegt der vorliegenden Erfindung das Problem zu Grunde, ein Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung weiterzubilden, dass eine schnelle Verarbeitung von Ein- und/oder Ausgangsdaten bei geringem Speicherverbrauch gewährleistet ist.
  • Das Problem wird erfindungsgemäß durch die kennzeichnenden Merkmale des Anspruchs 1 gelöst.
  • Dem erfindungsgemäßen Verfahren liegt der Gedanke zu Grunde, einerseits die Eingangsdaten als Bitdaten in einem Speicher als Prozessorbild der Eingänge bzw. Ausgänge zu hinterlegen und zur Erreichung einer hohen Verarbeitungsgeschwindigkeit diese Daten innerhalb des Prozessors in direkter Bitverarbeitung zu verarbeiten. Dadurch wird der Vorteil erreicht, dass die speicherprogrammierbare Steuerung mit einem geringen Speichervolumen arbeiten kann und dass auf ein häufiges Entpacken / Packen von als Bytes hinterlegten Eingangsdaten verzichtet werden kann. Das Verfahren hat zur Folge, dass neben einem geringen Datenbereich auch ein sehr kompakter Code bei der Programmie rung des Prozessors eingesetzt werden kann.
  • Die Verfahrensweise zeichnet sich ferner dadurch aus, dass die Eingangsdaten als Bit-Stack aufgebaut und in das Prozessorregister wie Datenregister DX eingeladen werden. Mit anderen Worten werden die Eingangsdaten im Gegensatz zu dem aus dem Stand der Technik bekannten Verfahren bitweise verarbeitet, wobei ein Register des Prozessors als Stack eingesetzt wird. Dabei können die benötigten Daten durch PUSH- und POP-Funktionen verschoben werden.
  • Es wird ein Cany-Flag des Prozessors als Bitregister verwendet, in dem Ergebnisse bzw. Zwischenergebnisse eines Programmschrittes abgelegt werden. Innerhalb des Prozessorregisters ist vorgesehen, dass ein oberstes Element des Stacks (Stack TOP) auf dem Vorzeichenbit des Programmregisters liegt.
  • Neben der Verarbeitung von Eingangsdaten in einem Prozessorregister als Bitstack ist optional auch die Verarbeitung der Eingangsdaten als Wordstack, Bytestack, p-Word-Stack sowie Q-Word-Stack möglich, wobei ein oder mehrere Prozessorregister während eines Zyklus zu einem bestimmten Zeitpunkt mit entsprechenden Daten aus dem aufgebauten Stack geladen werden. Bei der Stackverarbeitung ist vorgesehen, dass die Eingangsdaten . bzw. Ausgangsdaten wie oben beschrieben in einem Stack-Speicher hinterlegt sind, wobei beim Einspeichern an das im Speicher liegende oberste Element ein weiteres eingefügt und beim Ausspeichern das oberste Element entnommen wird. Dies bedeutet, dass beim Aufbau des Stacks unabhängig vom Datenformat Eingangsdaten entsprechend der Reihenfolge ihrer Bearbeitung auf dem Stack liegen und nach der Programmbearbeitung die Ergebnisse der Verarbeitung von dem Stack entnommen werden können, die sodann das Prozessabbild der Ausgänge der Ausgabebaugruppen repräsentieren.
  • Als besonders vorteilhaft hat sich des Weiteren erwiesen, dass auf dem prozessoreigenen Stack lediglich Returnadressen für die Bearbeitung von verschachtelten Funktionen/Funktionsblöcken gespeichert werden müssen.
  • Um eine optimale Abarbeitung des Programmcodes zu gewährleisten ist vorgesehen. dass der Stack nach einem bestimmten Algorhithmus bzw. mit einem Codegenerator aufgebaut wird. so dass die in dem Zyklus miteinander zu verknüpfenden Eingänge bei der Abarbeitung der Stacks in geeigneten vordefinierten Reihenfolge abgelegt sind.
  • Die Bitstack-Verarbeitung zeichnet sich insbesondere dadurch aus. dass ein Ergebnis einer Verknüpfung von Eingangsdaten immittelbar auf dem Bitstack, d. h. dem Prozessorregister wie Datenregister und ohne Verwendung von Zwischenspeichern unmittelbar zur Weiterverarbeitung zur Verfügung steht.
  • Interne Zustände wie Zähler, Timer, Merker und verschiedene Variablen können über einen eigenen Referenzspeicher eingespeichert bzw, ausgespeichert werden. Mit anderen Worten werden interne Zustände über Referenzen angesprochen. Der Referenzspeicher kann auf alle Datentypen zeigen.
  • Vorteilhafte Ausgestaltungen der Erfindung sind in die Unteransprüchen ausgegeben.
  • Bevorzugte Ausführungsbeispiele, der Erfindung sind in der folgenden Beschreibung mit Bezugnahme auf die beigeordneten Zeichnungen dargestellt.
  • Es zeigen:
  • l einen schematischen Aufbau einer speicherprogrammierbaren Steuerung,
  • 2 eine schematische Darstellung der Abarbeitung einer Bool'schen UND-Verknüpfung mittels Bitstack,
  • 3 ein Assemblerprogramm (X86), das den Ablauf der Bool'schen UND-Verknüpfung gemäß 2 darstellt und
  • 4 eine schematische Darstellung einer Bool'schen UND/ODER-Verknüpfung von drei Eingangsdaten.
  • 1 zeigt rein schematisch den Aufbau einer speicherprogrammierbaren Steuerung SPS, umfassend eine Zentraleinheit ZE, die über einen Bus BUS mit einem Datenspeicher DS, einem Programmspeicher PS sowie ein oder mehreren Eingangsbaugruppen E0... En mit Eingängen E0.1 ... En.n und Ausgangsbaugruppen A0 ... An mit Ausgängen A0.0 ... An.n verbunden ist. Im vorliegenden Ausführungsbeispiel weist beispielsweise die Eingangsbaugruppe E0 eine Datenbreite von 16 Bit auf, umfassend die Eingänge E0.0 bis E0.15. Zu Beginn eines Bearbeitungszyklus werden die an den Eingangsbaugruppen E0 ... En anliegenden Eingangsdaten E0.0 ... En.n eingelesen und in dem Datenspeicher DS in einem zugewiesenen Speicherbereich PAE als Prozessabbild der Eingänge abgelegt. Gemäß der Erfindung werden die Daten derart gespeichert, dass ein jedem Eingang E0.0 ... En.n zugeordnetes Bit einer Speicherzelle SZ auf Null oder Eins gesetzt wird. Mit anderen Worten ist jedem Bit einer Speicherzelle SZ ein Signal eines Eingangs E0.0 ... En.n zugeordnet.
  • In einem weiteren Schritt werden die in ein oder mehreren Speicherzellen SZ hinterlegten Eingangsdaten gegebenenfalls durch Verarbeitung eines Stack-Generators STG zu ein oder mehreren Stacks BST, WST, BST, DWST, QWST aufgebaut. Je nach anschließender Bearbeitung können die Stacks als Bit-Stack BIST, Word-Stack WST, Byte-Stack BST, D-Word-Stack DWST sowie als Q-Word-Stack QWST aufgebaut werden.
  • In bevorzugter Ausführungsform, d. h. bei direkter Bitverarbeitung der Eingangsdaten wird ein Prozessorregister DX der Zentraleinheit ZE mit dem Inhalt Bit-Stacks BST geladen. Zur weiteren Bearbeitung werden die Eingangsdaten von dem Bit-Stack genommen und entsprechend eines im Programmspeicher PS stehenden Programmcodes PC durch Manipulation des Prozessorregisters DX derart verarbeitet, dass das Prozessorregister DX und damit der Bit-Stack BITST nach der Bearbeitung entsprechend Ausgangsdaten A0.0 ... An.n enthält. Ein Beispiel einer Bool'schen Verknüpfung von Eingängen wird mit Bezug zu 2 erläutert.
  • Die generierten Ausgangsdaten werden anschließend auf den Stack ST im vorliegenden Beispiel auf den Bit-Stack BITST gelegt und stehen zur weiteren Verarbeitung beispielsweise bei Verschachtelung von Funktionen/Funktionsblöcken zur Verfügung. Dies hat den Vorteil, dass bei Verschachtelung von Funktionen/Funktionsblöcken beispielsweise Parameter nicht umkopiert werden müssen. Die so erzeugten Ausgangsdaten A0.0 ... An.n werden in dem Datenspeicher DS einem Speicherbereich PAA als Prozessabbild der Ausgänge derart zugeordnet, dass ein jedem Ausgang zugeordnetes Bit einer Speicherzelle SZ auf Null oder Eins gesetzt wird. Anschließend werden die in dem Speicher gespeicherten Ausgangsdaten an die Ausgabebaugruppen A0 ... An übertragen und entsprechende Ausgänge A0.0 ... An.n auf Null oder Eins gesetzt.
  • Neben der bitweisen Verknüpfung einzelner Ausgänge durch logische oder mathematische Funktionen können die Eingangsdaten auch in Datenformaten wie Word, Byte, D-Word (Double word) oder Q-Word (Quad-word) verarbeitet werden, wobei durch den Stack-Generator entsprechende Stacks generiert werden. Somit können beispielsweise in dem Programmspeicher PS hinterlegte Zustände bzw. Variablen über Referenzen angesprochen werden. Die zuvor beschriebene Verfahrensweise bietet insbesondere bei der Abarbeitung von verschachtelten Funktionen/Funktionsblöcken den Vorteil, dass Zwischenergebnisse auf dem Bit-Stack bzw. Word-Stack liegen und für eine weitere Verarbeitung sofort zur Verfügung stehen, ohne dass für Verbindung zwischen Funktionen/Funktionsblöcken Speicher fest zugeordnet werden oder dass Parameter umkopiert werden müssen. Dadurch wird die Arbeitsweise eines herkömmlichen Prozessors vereinfacht, da auf dem eigentlichen Prozessor-Stack INTST lediglich die Return-Adressen zu den Funktionsbausteinen angegeben werden müssen.
  • 2 zeigt rein schematisch die erfindungsgemäße direkte Bitverarbeitung mittels Bit-Stack am Beispiel einer AND-BOOL-Funktion der Prozessorreihe X86 (intel). Der zuvor aufgebaute Bit-Stack BITST ist bereits geladen und enthält die Eingangssignale E0.0 sowie E2.4. Das Carry-Flag-Register, das als Bitregister eingesetzt wird, ist in einem undefinierten Zustand. Durch Manipulation des Bit-Stacks, d. h. durch beispielsweise einen Schiebebefehl, wird der Eingangswert E0.0 in das Flag F geschoben, was beispielsweise mit der PUSH-Funktion eines Stacks (Push Bit-Stack = ROR DX,1) zu vergleichen ist. Der Wert des Eingangs E0.0 wird in dem Bitregister F abgefragt. Falls E0.0 den Zustand Eins aufweist, so ist der Wert des auf dem StackTop liegenden Eingangs E2.4 bereits das richtige Ergebnis. Mit anderen Worten liegen die Ausgangsdaten bereits auf den Bit-Stack. Falls der Eingang E0.0 den Wert Null aufweist, so müsste das oberste Element des Bit-Stacks BITST ebenfalls Null sein. Mit einer Setzfunktion wird das oberste Element zu Null gesetzt. Auch in diesem Fall werden die Ausgangsdaten direkt auf den Bit-Stack BITST gelegt und stehen zur weiteren Verarbeitung auf dem Stack zur Verfügung.
  • 3 zeigt ein Beispiel einer Assembler-Programmierung, durch das deutlich wird, dass eine Programmierung mit einem sehr kompakten Code möglich ist. Insbesondere ist anzumerken, dass Code im Umfang von 8 Byte jedoch keine Daten verwendet werden, da die Eingänge und Ausgänge auf dem Bit-Stack liegen.
  • Ein weiteres Beispiel zur Realisierung einer bool'schen Logik mit UND- und OR-Verknüpfung ist in 4 dargestellt. Zunächst wird der Bit-Stack mit Eingangsdaten E0.0, E0.1 und E0.2 geladen, indem PUSH-Operationen auf dem Bit-Stack ausgeführt werden. Sodannn kann durch Manipulation des Bit-Stacks, wie mit Bezug zu 2 beschrieben, eine UND-Verknüpfung der Eingänge E0.0 und E0.1 ausgeführt werden. Das am Stacktop liegende Ergebnis der Endverknüpfung wird sodann mit dem Eingang E0.2 ODERverknüpft, so dass am Stacktop schließlich das Ergebnis des Ausgangs A0.0 anliegt, das durch eine POP-Operation aus dem Bitstack über das Bitregister in den Speicher für das Prozessabbild der Ausgänge geladen wird.
  • Die Funktion des beschriebenen Stack-Prozessors mit direkter Bitverarbeitung hat gegenüber dem Stand der Technik die Vorteile, dass ein Packen und Entpacken von als Bytes hinterlegten Eingangsdaten nicht notwendig ist. Vielmehr werden die Eingangs- und Ausgangsdaten als Bit-Daten behandelt. Daraus ergibt sich der Vorteil, dass die speicherprogrammierbare Steuerung mit einem sehr geringen Daten- und somit Speicherbereich auskommt. Als weiterer Vorteil ergibt sich, dass die Programmierung mit einem sehr kompakten Code durchgeführt werden kann, was die Programmierung der speicherprogrammierbaren Steuerung insgesamt vereinfacht und die Abarbeitung beschleunigt. Neben einer guten Performance, die die speicherprogrammierbare Steuerung gemäß der Erfindung bietet, sind nur sehr kleine Datenmengen beispielsweise für Animationen notwendig. Insbesondere ist die erfindungsgemäße speicherprogrammierbare Steuerung für Mini-SPS geeignet, die beispielsweise 1 bis 5 Ein-/Ausgabebaugruppen umfasst.
  • Als besonders vorteilhaft hat sich die Struktur der SPS sowie das erfindungsgemäße Verfahren bei der Kopplung zweier speicherprogrammierbarer Steuerungen erwiesen, wobei eine der speicherprogrammierbaren Steuerungen lediglich im Standby, insbesondere Hot-Standby-Modus betrieben wird. Durch die Reduzierung des Datenvolumens ist ein unmittelbares Umshalten durch kurzzeitiges Umkopieren der Programmdaten auf die im Standby-Modus laufende Ersatzsteuerung möglich.
  • Des Weiteren ist zu erwähnen, dass das beschriebene Verfahren und der beschriebene Prozessoraufbau plattformunabhängig eingesetzt werden kann.

Claims (8)

  1. Verfahren zum Betrieb einer speicherprogrammierbaren Steurung (SPS), umfassend folgende Verfahrenssschritte: – Einlesen von an Eingangsbaugruppen (E0 ... En) anliegenden Eingangsdaten (E0 ... En.n}, – Speichern der Eingangsdaten in einem Speicher (DS) als Prozessabbild (PAE) der Eingänge derart, dass ein jedem Eingang (E0.0 ... En.n) zugeordnetes Bit einer Speicherzelle (SZ) auf Null oder Eins gesetzt wird. – Aufbau eines Speicherbereichs nach Art eines Stacks (B1T ST. BY ST. WST, DWST, QWST) mit bei einer nachfolgenden Programmbearbeitung benötigten Eingangsdaten (E0.0 ... En.n), dadurch gekennzeichnet, – dass der Aufbau ein oder mehrerer Stacks als Bit-Stack (BITST) und/oder Byte-Stack (BYST) und/oder Word-Stack (WST) und/oder D-Word-Stack (DWST) und/oder Q-Word-Stack (QWST) erfolgt, wobei während der Programmbearbeitung ein oder mehrere Prozessorregister (DX) mit entsprechenden Bit-, Byte-, Word-, D-Word- sowie Q-Word-Datentypen geladen werden, – dass im Falle eines Bit-Stacks ein Flag-Register (F) des Prozessors als Bitregister zur Abfrage und Verknüpfung von Zwischenergebnissen eines Programmschrittes verwendet wird, – dass ein oberstes Element (Stack-Top) des Stacks auf dem Vorzeichen-Bit des Prozessorregisters (DX) liegt und – dass auf den prozessoreigenen Stack (ENST) lediglich Returnadressen für die Bearbietung von verschachtelten Funktionen/Funktionsblöcken verarbeitet werden, – Erzeugen von Ausgangsdaten (A0.0 ... An.n) durch Abarbeiten eines Programmcodes mit den in dem Prozessorregister (DX} hinterlegten Eingangsdaten (E0.0 ... En.n) derart, dass das Prozessorregister (DX) nach der Bearbeitung entsprechende Ausgangsdaten enthält, – Speichern der in dem Prozessorregister (DX} enthaltenen Ausgangsdaten in den Speicher (DS) als Prozessabbild (PAA) der Ausgänge derart. dass ein jedem Ausgang (A0.0 ... An.n) zugeordnetes Bit einer Speicherstelle auf Null oder Eins gesetzt wird und – Übertragen der in dem Speicher (DS) gespeicherten Ausgangsdaten (A0.0 ... An.n) an eine Ausgabebaugruppe (A0 ... An) .
  2. Verfahren nach Anspruch 1. dadurch gekennzeichnet. dass die Eingangsdaten (A0.0 ... und En.n) als Bit-Stick aufgebaut und in das Prozessorregister (DX) im Datenregister eingeladen werden.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Eingangsdaten (A0.0 ... En.n) und/oder die Ausgangsdaten (A0.0 ... An.n) bitweise verarbeitet werden.
  4. Verfahren nach zumindest einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Prozessorregister (DX) als Stack verwendet wird, wobei benötigte Daten durch PUSH-/POP-Funktionen verschoben werden.
  5. Verfahren nach zumindest einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Eingangsdaten und/oder Ausgangsdaten beim Aufbau des Stacks beim Einspeichern an das im Speicher liegende oberste Element angefügt und beim Ausspeichern das oberste Element entnommen wird.
  6. Verfahren nach zumindest einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zu Beginn der Programmbearbeitung Eingangsdaten auf dem Stack liegen und dass der Stack nach erfolgter Programmbearbeitung mit Ausgangsdaten belegt ist.
  7. Verfahren nach zumindest einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Stack (BITST, BYST, WST) nach einem bestimmten Algorithmus bzw. mit einem Codegenerator (CG) aufgebaut wird.
  8. Verfahren nach zumindest einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass interne Zustände wie Zähler, Timer und Merker sowie Variablen über Referenzen angesprochen werden.
DE10163206A 2001-12-21 2001-12-21 Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung Expired - Fee Related DE10163206B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE10163206A DE10163206B4 (de) 2001-12-21 2001-12-21 Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung
US10/326,261 US20040078551A1 (en) 2001-12-21 2002-12-23 Method for operating a data processing device as well as contruction of a data processing device as a memory-programmable control unit
FR0216739A FR2834094B1 (fr) 2001-12-21 2002-12-23 Procede de mise en oeuvre, et agencement, d'un appareil de traitement de donnees tel qu'un automate programmable.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10163206A DE10163206B4 (de) 2001-12-21 2001-12-21 Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung

Publications (2)

Publication Number Publication Date
DE10163206A1 DE10163206A1 (de) 2003-07-17
DE10163206B4 true DE10163206B4 (de) 2004-03-11

Family

ID=7710338

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10163206A Expired - Fee Related DE10163206B4 (de) 2001-12-21 2001-12-21 Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung

Country Status (3)

Country Link
US (1) US20040078551A1 (de)
DE (1) DE10163206B4 (de)
FR (1) FR2834094B1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10121745A1 (de) * 2001-05-04 2002-11-14 Systemonic Ag Verfahren und Anordnung zu einem Stack mit einem, in Datengruppen mit mehreren Elementen aufgeteilten Speicher
US7813816B2 (en) 2004-02-20 2010-10-12 Siemens Industry, Inc. Methods and structures for utilizing a memory device for a PLC
US20050240162A1 (en) * 2004-04-21 2005-10-27 Wen-Pin Chen Eye treatment device
US8006114B2 (en) * 2007-03-09 2011-08-23 Analog Devices, Inc. Software programmable timing architecture
EP2687930B1 (de) * 2012-07-20 2018-10-03 Siemens Aktiengesellschaft Automatisierungseinheit zur Steuerung eines Geräts oder einer Anlage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2718724A1 (de) * 1976-04-27 1977-11-17 Gen Instr Microelect Daten- bzw. messwertverarbeitungsanlage
DE2932394A1 (de) * 1978-08-24 1980-02-28 Texas Instruments Inc Intelligente, programmierbare prozessteueranordnung

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3300066A (en) * 1963-06-21 1967-01-24 Henig Seymour Sorting machine providing self-optimizing inventory reduction
UST843614I4 (de) * 1969-07-22
GB1448041A (en) * 1974-05-23 1976-09-02 Standard Telephones Cables Ltd Data processing equipment
US4594651A (en) * 1984-01-18 1986-06-10 General Electric Company Concurrent processor for control
US4870614A (en) * 1984-08-02 1989-09-26 Quatse Jesse T Programmable controller ("PC") with co-processing architecture
US6453337B2 (en) * 1999-10-25 2002-09-17 Zaplet, Inc. Methods and systems to manage and track the states of electronic media
US20020065894A1 (en) * 1999-12-03 2002-05-30 Dalal Siddhartha R. Local presence state and user-controlled presence and message forwarding in unified instant messaging
GB2357395A (en) * 1999-12-14 2001-06-20 Nokia Mobile Phones Ltd Message exchange between wireless terminals.
MXPA02007850A (es) * 2000-02-14 2004-09-10 Motorola Inc Aparato para comunicacion de mensajes de conversacion y metodo para el mismo.
JP3568191B2 (ja) * 2000-03-09 2004-09-22 株式会社ケンウッド 移動通信端末とその制御方法
WO2002015603A2 (en) * 2000-08-15 2002-02-21 Zonamovil.Com, Inc. Method and apparatus for a network independent short message delivery system
US8054971B2 (en) * 2001-04-27 2011-11-08 Comverse Ltd Free-hand mobile messaging-method and device
US20030003953A1 (en) * 2001-06-18 2003-01-02 Comverse Network Systems Ltd. Multi-user chat service in a cellular network
JP3715562B2 (ja) * 2001-07-09 2005-11-09 株式会社スクウェア・エニックス メッセージ交換方法
US7062533B2 (en) * 2001-09-20 2006-06-13 International Business Machines Corporation Specifying monitored user participation in messaging sessions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2718724A1 (de) * 1976-04-27 1977-11-17 Gen Instr Microelect Daten- bzw. messwertverarbeitungsanlage
DE2932394A1 (de) * 1978-08-24 1980-02-28 Texas Instruments Inc Intelligente, programmierbare prozessteueranordnung

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Mod51 Structured Text Programming Language" http://www.designtools.co.nz/mod51.htm *
"SPS" http://alex.fh-trier.de/info/SPS.html *
FLASH c51 NEWS", http://www.designtools.co/nz/news51.htm *
STROHRMANN, G.: "Automatisierungstechnik I" $. Aufl. Oldenbourg Verlag 1998, S. 334 ff
STROHRMANN, G.: "Automatisierungstechnik I" DOLLAR . Aufl. Oldenbourg Verlag 1998, S. 334 ff *

Also Published As

Publication number Publication date
FR2834094A1 (fr) 2003-06-27
DE10163206A1 (de) 2003-07-17
FR2834094B1 (fr) 2008-04-25
US20040078551A1 (en) 2004-04-22

Similar Documents

Publication Publication Date Title
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE1499193B2 (de) Speicher-adressierschaltung
DE2718110A1 (de) Datenverarbeitungseinheit
DE4334294C1 (de) Prozessor für Zeichenketten variabler Länge
DE3856139T2 (de) Mikroprozessor
DE2926322A1 (de) Speicher-subsystem
EP0130269B1 (de) Speicherprogrammierbare Steuerung
DE10163206B4 (de) Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung
DE10213860A1 (de) Programmierbare Steuerung
DE3789197T2 (de) Verfahren zum initialisieren von parametern in einer regeleinrichtung einer programmierbaren maschine.
DE19963475B4 (de) Verfahren und Vorrichtung zur Steuerung von Betriebsabläufen in einem Fahrzeug sowie zur Bereitstellung von Daten diesbezüglich
DE2932394A1 (de) Intelligente, programmierbare prozessteueranordnung
DE102004013493A1 (de) Zugriffs-Verfahren für einen NAND-Flash-Speicherbaustein und ein entsprechender NAND-Flash-Speicherbaustein
DE3887717T2 (de) Prozessor für programmierbaren logischen regler und programmierbarer logischer regler.
DE3326898C2 (de) Datenverarbeitungsmaschine
DE1774212B2 (de) En 20417 12.08.67 " 37132 bez: datenverarbeitungsanlage
DE3340078A1 (de) Prozessor-zelle zur verwendung in einer aus derartigen zellen gebildeten anordnung
EP0375711B1 (de) Verfahren zum betrieb einer speicherprogrammierbaren steuerung und einrichtung zur durchführung des verfahrens
EP1429254B1 (de) Interrupt-Behandlung in einem CAN-Knoten
DE2419837A1 (de) Verfahren zur adressierung eines mikroprogramms in datenverarbeitungseinrichtungen
DE3642994C2 (de) Verfahren und Anordnung zur Steuerung der in einem bestimmten Zeitraum von einem Mikroprozessor oder Mikrocomputer mit einem festgelegten Befehlssatz durch aufeinanderfolgende Abarbeitung von Befehlen verarbeitbaren Daten
DE19533085A1 (de) Speichereinrichtung
DE19625628C1 (de) Halbleiterspeichervorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee