DE10163206B4 - Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung - Google Patents
Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000015654 memory Effects 0.000 claims abstract description 48
- 230000006870 function Effects 0.000 claims abstract description 25
- 239000008186 active pharmaceutical agent Substances 0.000 claims abstract description 9
- 238000010276 construction Methods 0.000 claims abstract 2
- 239000000872 buffer Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1159—Image 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) .
– 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 zu2 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)
- 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) .
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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)
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 |
-
2001
- 2001-12-21 DE DE10163206A patent/DE10163206B4/de not_active Expired - Fee Related
-
2002
- 2002-12-23 US US10/326,261 patent/US20040078551A1/en not_active Abandoned
- 2002-12-23 FR FR0216739A patent/FR2834094B1/fr not_active Expired - Fee Related
Patent Citations (2)
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)
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 |