DE60028379T2 - Speicherprogrammierbare steuerung - Google Patents

Speicherprogrammierbare steuerung Download PDF

Info

Publication number
DE60028379T2
DE60028379T2 DE60028379T DE60028379T DE60028379T2 DE 60028379 T2 DE60028379 T2 DE 60028379T2 DE 60028379 T DE60028379 T DE 60028379T DE 60028379 T DE60028379 T DE 60028379T DE 60028379 T2 DE60028379 T2 DE 60028379T2
Authority
DE
Germany
Prior art keywords
cycle time
pulse
output
register
value
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 - Lifetime
Application number
DE60028379T
Other languages
English (en)
Other versions
DE60028379D1 (de
Inventor
Steven Mark Johnson City BOGGS
L. Temple Elizabethton FULTON
Steve Johnson City HAUSMAN
Gary Unicoi MCNABB
Alan Johnson City MCNUTT
W. Steven Johnson City STIMMEL
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.)
Siemens Industry Inc
Original Assignee
Siemens Energy and Automation Inc
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 Siemens Energy and Automation Inc filed Critical Siemens Energy and Automation Inc
Publication of DE60028379D1 publication Critical patent/DE60028379D1/de
Application granted granted Critical
Publication of DE60028379T2 publication Critical patent/DE60028379T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/025Digital function generators for functions having two-valued amplitude, e.g. Walsh functions
    • 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
    • G05B19/056Programming the PLC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)

Description

  • Hintergrund
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf eine speicherprogrammierbare Steuerung (Programmable Logic Controller, PLC).
  • Bisheriger Stand der Technik
  • Speicherprogrammierbare Steuerungen (engl. kurz PLC) sind eine noch relativ junge Entwicklung in der Prozesssteuerungs-Technologie. Als Bestandteil einer Prozesssteuerung wird eine speicherprogrammierbare Steuerung PLC dazu verwendet, Eingangssignale von einer Mehrzahl von verschiedenen Eingangspunkten (Eingangssensoren) zu überwachen, durch die Ereignisse und Bedingungen gemeldet werden, welche im Verlauf eines gesteuerten Prozesses auftreten. Beispielsweise kann eine speicherprogrammierbare Steuerung PLC solche Eingangsbedingungen wie etwa die Drehzahl eines Motors, Temperatur, Druck, Volumenstrom und ähnliche überwachen. Ein Steuerprogramm ist in einem Speicher innerhalb der speicherprogrammierbaren Steuerung PLC gespeichert und weist die Steuerung an, welche Aktionen bei Erkennung bestimmter Eingangssignale oder Bedingungen auszuführen sind. In Reaktion auf diese Eingangssignale, die von den Eingangssensoren bereitgestellt werden, werden von der speicherprogrammierbaren Steuerung PLC Ausgangssignale abgeleitet und generiert, die über die Ausgangspunkte der Steuerung an verschiedene Ausgabegeräte übermittelt werden, beispielsweise an Betätigungselemente und Relais, um den Prozess zu steuern. So gibt die speicherprogrammierbare Steuerung PLC beispielsweise Ausgangssignale aus, um die Geschwindigkeit eines Förderbandes zu erhöhen oder zu verringern, den Arm eines Roboters zu bewegen, ein Relais zu öffnen oder zu schließen, die Temperatur zu erhöhen oder abzusenken sowie für so zahlreiche andere denkbare Steuerungsfunktionen, dass sie hier gar nicht alle aufgelistet werden können.
  • Die vorstehend erwähnten Eingangs- und Ausgangspunkte sind üblicherweise Eingangsmodulen bzw. Ausgangsmodulen zugeordnet. Eingangsmodule und Ausgangsmodule werden im Folgenden zusammengefasst unter der Bezeichnung „E/A-Module". Fachleute auf diesem Gebiet der Technik bezeichnen solche E/A-Module alternativ auch als „E/A-Karten" oder „E/A-Platinen". Diese E/A-Module können in der Regel in entsprechende Steckplätze eingesteckt werden, die sich auf einer Rückwandplatine in der speicherprogrammierbaren Steuerung PLC befinden. Die Steckplätze sind durch einen Haupt-Bus miteinander verbunden, der alle in die Steckplätze eingesteckten E/A-Module mit einer Zentraleinheit (Central Processing Unit, CPU) verbindet. Die Zentraleinheit CPU selbst kann sich auf einer Karte befinden, die in einen speziellen Steckplatz auf der Rückwandplatine der speicherprogrammierbaren Steuerung PLC eingesteckt werden kann.
  • 36 zeigt ein typisches herkömmliches System mit speicherprogrammierbarer Steuerung PLC als System 3610. Das System 3610 umfasst eine speicherprogrammierbare Host-Steuerung (Host-PLC) 3615, die über einen Feldbus 3620 mit einer Busschnittstelleneinheit 3625 verbunden ist. Die Busschnittstelleneinheit 3625 koppelt und verbindet den Feldbus 3620 mit einem lokalen Bus 3630, der eine Mehrzahl von E/A-Klemmenblöcken 3635 aufweist. Die E/A-Klemmenblöcke 3635 sind an entsprechende E/A-Module 3640 gekoppelt, wie in 1 dargestellt.
  • Im System 3610 wird die rechnerische Verarbeitung von der speicherprogrammierbaren Host-Steuerung 3615 ausgeführt. Mit anderen Worten heißt dies, dass an den E/A-Modulen 3640 Bedingungen erfasst und daraus Eingangsdaten abgeleitet werden. Die Eingangsdaten werden über die Busschnittstelleneinheit 3625 und den Feldbus 3620 an die speicherprogrammierbare Host-Steuerung 3615 übertragen. Die speicherprogrammierbare Host-Steuerung 3615 bearbeitet die Eingangsdaten gemäß einem in der Host-PLC 3615 gespeicherten Steuerungsprogramm. Die speicherprogrammierbare Host-Steuerung 3615 verarbeitet die Eingangsdaten und erzeugt Ausgangsdaten als Reaktion auf diese. Die Ausgangsdaten werden über den Feldbus 3620, die Busschnittstelleneinheit 3625 und den lokalen Bus 3630 an eines oder mehrere der E/A-Module 3640 übertragen. Als Reaktion auf die Ausgangsdaten steuert das E/A-Modul, das die Ausgangsdaten empfängt, ein Ausgabegerät an, das mit dem E/A-Modul verbunden ist. E/A-Klemmenblöcke werden bereitgestellt, um die E/A-Module 3640 mit der Busschnittstelleneinheit 3625 zu verbinden.
  • Die speicherprogrammierbare Steuerung PLC kann in einem Master-/Slave-Netzwerk angeordnet sein, wie in 37a dargestellt. In dieser Abbildung umfasst das Master-/Slave-Steuerungssystem eine speicherprogrammierbare Master-Steuerung PLC(M) und eine Mehrzahl von entfernten Slave-Einheiten (Remote Slave Units, RSU) (R1–Rn). Wie gezeigt steuert die speicherprogrammierbare Master-Steuerung PLC(M), die eine speicherprogrammierbare Master-Steuerung PLC, eine Datenverbindung und ein E/A-Modul umfasst, ihre eigenen E/A-Verbindungspunkte mithilfe eines Programms und eines Kommunikationsparameters, die von einem Anwender definiert werden, und steuert ebenfalls die jeweiligen E/A-Anschlusspunkte für die entfernten Slave-Einheiten RSU R1–Rn. Jede aus der Mehrzahl von entfernten Slave-Einheiten RSU (R1– Rn) besitzt mindestens ein E/A-Modul, führt über ein Datenübertragungskabel eine Datenkommunikation mit der Master-Steuerung PLC(M) durch und steuert dementsprechend ihr eigenes E/A-Modul. Die entfernten Slave-Einheiten RSU können speicherprogrammierbare Steuerungen PLC sein, die als Slave fungieren.
  • Bezug nehmend auf 37b umfassen die speicherprogrammierbare Steuerung PLC und jede der entfernten Slave-Einheiten RSU: Ein MODEM (Modulator/Demodulator) 3710 zur Ausführung der Datenübertragung zwischen der speicherprogrammierbaren Master-Steuerung PLC(M) und den entfernten Slave-Einheiten RSU über ein Datenübertragungskabel; ein Sende-/Empfangsmodul 3711 für den Austausch von Daten mit der speicherprogrammierbaren Master-Steuerung PLC(M) gemäß einem vorab festgelegten Protokoll, einen Sende-/Empfangspuffer 3712 zum zeitweisen Zwischenspeichern der Daten für den Austausch; eine Ausgangsdaten-Speichereinheit 3713 zum Speichern der Daten, die von der speicherprogrammierbaren Master-Steuerung PLC(M) an ein E/A-Modul 3716 übermittelt werden sollen; eine Eingangsdaten-Speichereinheit 3714 zum Speichern der Daten, die von dem E/A-Modul 3716 an die speicherprogrammierbare Master-Steuerung PLC(M) übermittelt werden sollen; und ein E/A-Steuerungsmodul 3715 zum Steuern der Datenübertragung zwischen den Datenspeichereinheiten 3713, 3714 und dem E/A-Modul 3716.
  • Im Betrieb ist die Datenverbindung in der speicherprogrammierbaren Master-Steuerung PLC(M) eine Datenverbindungsvorrichtung, die an die PLC(M) angeschlossen ist, welche als Master-Einheit in dem zugehörigen Netzwerk fungiert und die die Initiative bei der Datenübertragung ergreift. Die Datenverbindung ist in der Lage, eine Höchstzahl von N entfernten Slave-Einheiten RSU zu setzen. Die entfernte Slave-Einheit RSU setzt jede Nummer für sich selbst und die speicherprogrammierbare Master-Steuerung PLC(M) und empfängt eine Übertragung unmittelbar von der speicherprogrammierbaren Master-Steuerung PLC(M), um hierdurch die Datenübertragung durchzuführen. Die Datenverbindung in der speicherprogrammierbaren Master-Steuerung PLC(M) wählt nacheinander die entfernten Slave-Einheiten RSU (R1–Rn) und wickelt einen Datenempfangs-/-übertragungsvorgang ab. Wenn beispielsweise die Daten, die die speicherprogrammierbare Master-Steuerung PLC(M) ausgibt, über ein Datenübertragungskabel und das MODEM 3710 auf die entfernte Slave-Einheit RSU (R1) geschaltet werden, durchlaufen diese Daten den Sende-/Empfangspuffer 3712 und das Sende-/Empfangsmodul 3711 und werden in der Ausgangsdaten-Speichereinheit 3713 gespeichert. Die in der Ausgangsdaten-Speichereinheit 3713 gespeicherten Daten werden entsprechend den Steueranweisungen des E/A-Steuerungsmoduls 3715 an das E/A-Modul 3716 ausgegeben. Die externen Steuerungszieldaten, die aus dem E/A-Modul 3716 der entfernten Slave-Einheit RSU R1 ausgelesen werden, werden entsprechend den Steueranweisungen des E/A-Steuerungsmoduls 3715 in der Eingangsdaten-Speichereinheit 3714 gespeichert. Die in der Eingangsdaten-Speichereinheit 3714 gespeicherten Daten werden über den Sende-/Empfangspuffer 3712 und das Sende-/Empfangsmodul 3711 an die speicherprogrammierbare Master-Steuerung PCL (M) übertragen.
  • Die US-amerikanische Patentanmeldung US-A-5659705 offenbart einen Pipeline-Mechanismus für eine speicherprogrammierbare Steuerung PLC, welcher einen glatten Übergang von einer Sequenz zur nächsten gewährleistet, indem die Steuerung an ein vom Anwender spezifiziertes Programm übergeben wird, woraufhin die Sequenz beendet oder ein weiterer Schritt in der Sequenz durch das Anwenderprogramm in die Pipeline gespeist werden kann.
  • Die vorliegende Erfindung stellt neue Merkmale bereit, durch die die Möglichkeiten der herkömmlichen programmierbaren Steuerungen verbessert und erweitert werden.
  • Aufgaben und Zusammenfassung der Erfindung
  • Es ist eine Aufgabe der vorliegenden Erfindung, die Möglichkeiten der speicherprogrammierbaren Steuerung PLC zu verbessern und zu erweitern.
  • Gemäß einem ersten Aspekt der Erfindung wird eine Pipeline-Vorrichtung bereitgestellt, die für den Einsatz in einem Impulsausgangsblock, wie in dem unabhängigen Patentanspruch 1 beschrieben vorgesehen ist. Ein weiterer Aspekt der Erfindung stellt ein Verfahren bereit, mit dem ein reibungsloser Übergang von Wellenform zu Wellenform in einem Impulsausgangsblock gewährleistet ist, wie in Anspruch 7 beschrieben.
  • Diese und andere Aufgaben der vorliegenden Erfindung werden anhand der nachstehenden Beschreibung der Zeichnungen verständlich.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist eine perspektivische Ansicht der speicherprogrammierbaren Steuerung PLC gemäß der vorliegenden Erfindung;
  • 2 ist ein Blockdiagramm der speicherprogrammierbaren Steuerung PLC;
  • 3 ist eine schematische Darstellung der speicherprogrammierbaren Steuerung PLC;
  • 4 ist ein Blockdiagramm des ASIC;
  • 5 ist ein Blockdiagramm des Eingangsblocks;
  • 6a ist ein Blockdiagramm des Eingangsfilter-Schaltkreises;
  • 6b ist eine Wahrheitswertetabelle des Eingangsfilter-Schaltkreises;
  • Die 6c und d sind Blockdiagramme des Eingangsfilter-Schaltkreises;
  • 7 ist eine Tabelle der Verzögerungszeiten;
  • 8 ist ein Zeitdiagramm des Abtastzyklus;
  • 9 ist ein Blockdiagramm des Impulserfassungs-Schaltkreises;
  • 10 ist ein Zeitdiagramm des Abtastzyklus;
  • 11 ist ein Zeitdiagramm des Abtastzyklus;
  • 12a ist eine Wahrheitswertetabelle des Impulserfassungs-Schaltkreises;
  • 12b ist eine Tabelle für das Enable-Register des Impulserfassungs-Schaltkreises;
  • 12c ist eine Tabelle für die Reserved-Register des Impulserfassungs-Schaltkreises;
  • 12d ist eine Tabelle für das Eingangspunkt-Statusregister des Impulserfassungs-Schaltkreises;
  • 12e ist ein Blockdiagramm des Impulserfassungs-Schaltkreises;
  • 12f ist ein Blockdiagramm des Impulserfassungs-Schaltkreises;
  • 13 ist ein Blockdiagramm des Ausgangsblocks;
  • 14a ist ein Blockdiagramm des Impulsausgangsblocks;
  • 14b ist eine Tabelle der Register des Impulsausgangsblocks;
  • 15 ist ein Zustandsdiagramm des Impulsausgangsblocks;
  • 16 ist ein Software-Code-Listenausdruck;
  • 17 ist ein Zustandsdiagramm des Impulsausgangsblocks;
  • 18 ist ein Software-Code-Listing;
  • 19 ist eine Tabelle für Hochgeschwindigkeits-Operationen;
  • 20 ist ein Blockdiagramm des E/A-Erweiterungssteckplatzes;
  • 21 ist eine Tabelle für den E/A-Erweiterungssteckplatz;
  • 22 ist ein Blockdiagramm des E/A-Erweiterungsmoduls;
  • 23 ist eine Tabelle von Komponenten;
  • 24 ist eine Tabelle von Werten;
  • 25 ist ein Zeitdiagramm des Lesezyklus;
  • 26 ist ein Zeitdiagramm des Schreibzyklus;
  • 27 ist eine Tabelle der Paritäts-Bits;
  • 28 ist eine Tabelle der Zentraleinheit-(CPU-)Typen;
  • 29 ist eine Tabelle von Interrupts;
  • 30a ist ein Ablaufdiagramm des freien Ports;
  • Die 30b, c und d sind Tabellen mit SM-Bit-Definitionen;
  • 30e ist eine Tabelle mit Port-Definitionen;
  • 31 ist ein Ablaufdiagramm des Modem-Protokolls;
  • 32a ist eine Tabelle von Steuerungsfunktionen;
  • 32b ist ein Ablaufdiagramm der Hide-Anweisung;
  • 33a ist eine Tabelle von Steuerungsfunktionen;
  • 33b ist ein Ablaufdiagramm des Systemfunktionsaufrufs;
  • 34a ist eine Tabelle mit STL-Anweisungen;
  • 34b ist ein Systemdiagramm der STL-Funktion;
  • 34c ist ein Ablaufdiagramm der STL-Funktion;
  • 34d ist eine Tabelle mit booleschen Ausdrücken;
  • 35a ist eine Tabelle mit Parametern für die speicherprogrammierbare Steuerung PLC;
  • 35b ist eine perspektivische Ansicht der speicherprogrammierbaren Steuerung PLC und des E/A-Erweiterungsmoduls;
  • 36 ist ein Blockdiagramm einer speicherprogrammierbaren Steuerung PLC;
  • 37a ist ein Blockdiagramm eines Master-/Slave-Systems;
  • 37b ist ein Blockdiagramm der Datenübertragung im Master-/Slave-System;
  • 38 ist eine schematische Darstellung eines Hochgeschwindigkeits-Gleichstromausgangs;
  • 39 ist eine schematische Darstellung eines Hochgeschwindigkeits-Gleichstromausgangs gemäß der vorliegenden Erfindung.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • Allgemeine Beschreibung der speicherprogrammierbaren Steuerung (PLC)
  • Die beispielhafte speicherprogrammierbare Steuerung (PLC) 100 gemäß der vorliegenden Erfindung ist in 1 dargestellt.
  • Die Abbildung veranschaulicht die Eingangs-/Ausgangs-(E/A-)Optionen der speicherprogrammierbaren Steuerung PLC 100. Der Anwender steuert die speicherprogrammierbare Steuerung PLC 100 durch Betätigen des Start-/Stopp-Schalter-Potentiometers und E/A-Erweiterungsanschlusses 104. Status-Leuchtdioden (LEDs) 106 zeigen den Status der speicherprogrammierbaren Steuerung PLC 100 an. Ein Cartridge-Port 108 wird bereitgestellt, um ein Steckmodul zur Erweiterung der Funktionalität der speicherprogrammierbaren Steuerung PLC 100 aufzunehmen, unter anderem beispielsweise zur Erweiterung des Speichers. E/A-LEDs 110 werden bereitgestellt, um den Status der Eingangs-/Ausgangs-Kontaktstifte der speicherprogrammierbaren Steuerung PLC 100 anzuzeigen. Ein Kommunikations-Port 112 verbindet die speicherprogrammierbare Steuerung PLC 100 mit externen Komponenten, wie beispielsweise etwa anderen PLCs. Der Kommunikations-Port kann dazu verwendet werden, die speicherprogrammierbare Steuerung PLC 100 in einer Master-/Slave-Beziehung mit anderen Steuerungen zu verbinden. Außerdem kann der Kommunikations-Port 112 auch dafür genutzt werden, eine Verbindung zu beispielsweise einem Computer (etwa einem Netzwerkrechner oder einem Personal-Computer) herzustellen. Die speicherprogrammierbare Steuerung PLC 100 kann über den Kommunikations-Port 112 auch mittels eines Modems oder eines vergleichbaren Kommunikationsprotokoll-gestützten Geräts an das Internet angebunden werden. Der Anwenderverdrahtungs-Anschluss 114 erlaubt dem Anwender, die speicherprogrammierbare Steuerung PLC 100 mit externen Geräten, wie beispielsweise Motoren oder sonstigen Peripheriegeräten zu verbinden.
  • In der Abbildung wird die speicherprogrammierbare Steuerung PLC 100 neben einem E/A-Erweiterungsmodul gezeigt, durch das die Eingangs-/Ausgangskapazität der PLC 100 vergrößert wird. Das Erweiterungsmodul weist ebenso wie die speicherprogrammierbare Steuerung PLC 100 Halterungen 116 für die Montage an DIN-Schienen sowie einen Montagepunkt 118 für die Befestigung der speicherprogrammierbaren Steuerung PLC 100 und des E/A-Erweiterungsmoduls 102 an einer geeigneten Montagevorrichtung auf.
  • Wie leicht einzusehen ist, kann die speicherprogrammierbare Steuerung PLC 100 der vorliegenden Erfindung unter Umständen eine Mehrzahl von Anordnungen und Konfigurationen von speicherprogrammierbaren Steuerungen PLC, mehrere E/A-Erweiterungsmodule sowie Zubehörkomponenten beinhalten, welche beispielsweise Speichermodule, Taktmodule, Batteriemodule, Kabel oder E/A-Simulations-Schalter-Baugruppen umfassen. Die vorliegende Erfindung geht auf einen Bruchteil der möglichen Konfigurationen ein, die für die Einzelheiten der verschiedenen hier beschriebenen Aspekte relevant sind, und der Praktiker wird diese Konfigurationen sofort erkennen und die hier beschriebenen Erfindung verstehen.
  • Die speicherprogrammierbare Steuerung PLC gemäß der vorliegenden Erfindung ist aufgrund ihrer geringen physischen Abmessungen als Kompaktsteuerung (Mikro-PLC) eingestuft. Aber obwohl diese speicherprogrammierbare Steuerung PLC physisch gesehen klein ist, beinhaltet sie zahlreiche Funktionen, die sie genau so leistungsfähig werden lassen wie speicherprogrammierbare Steuerungen größeren Ausmaßes (wenn nicht sogar leistungsstärker). 1 enthält eine Zeichnung der speicherprogrammierbaren Steuerung PLC und eines E/A-Erweiterungsmoduls mit den möglichen Abmessungen. Die Ausführung der speicherprogrammierbaren Steuerung PLC 100 ist unter Bezugnahme auf die 39a und b beschrieben.
  • 2 zeigt ein Blockdiagramm 200 der speicherprogrammierbaren Steuerung PLC gemäß der vorliegenden Erfindung. Das dargestellte Blockdiagramm bezieht sich auf eine speicherprogrammierbare Steuerung PLC mit integrierter Wechselstromversorgung 202 für die Bereitstellung des Betriebsstroms. Eine Zentraleinheit CPU 210 ist das Kernstück der speicherprogrammierbaren Steuerung PLC 200 (100) und umfasst einen ASIC-, einen ROM- und einen RAM-Baustein. Eine digitale Eingangsschnittstelle 212 wird bereitgestellt, um Signale von dem Anwenderverdrahtungs-Anschluss 114 (1) einzuspeisen. Eine digitale Ausgangsschnittstelle 204 verbindet die speicherprogrammierbare Steuerung PLC 200 mit dem Anwenderverdrahtungs-Anschluss 114 (1). Eine Kommunikationsschnittstelle 206 verbindet die speicherprogrammierbare Steuerung PLC 100 mit externen Geräten beispielsweise über eine RS-485- oder eine Token-Bus-Kommunikation. Eine E/A-Erweiterungsschnittstelle 208 verbindet die speicherprogrammierbare Steuerung PLC 200 mit (einer) E/A-Erweiterungsschnittstelle(n), beispielsweise über einen Hochgeschwindigkeits-Multiplex-Bus.
  • Im Betrieb kann die Wechselstromversorgung 202 eine isolierende Abgrenzung zwischen der Wechselstromleitung und den Ausgängen, beispielsweise den 24-Volt-Gleichstrom- und den 5-Volt-Gleichstromausgängen, bereitstellen. Ebenso kann die speicherprogrammierbare Steuerung PLC auch mit einer 24-Volt-Gleichstromversorgung angeboten werden. Die Modelle mit 24-Volt-Gleichstromversorgung würden keine Isolierung von 24 Volt Gleichstrom zu 5 Volt Gleichstrom bereitstellen. Die digitale Eingangsschnittstelle 212 isoliert optisch den Anwenderverdrahtungs-Anschluss von der Zentraleinheit (CPU) 210, die alle Signale der logischen Ebene enthält. Die digitale Ausgangsschnittstelle stellt eine ähnliche isolierende Abgrenzung zwischen dem Anwenderverdrahtungs-Anschluss und der Zentraleinheit CPU bereit. Diese isolierende Abgrenzung ist in Form einer optischen Isolierung oder mittels Relais, in denen die Relaiswicklung von dem Relais-Kontakt isoliert ist, realisiert. In der Abbildung ist zwischen der Zentraleinheit CPU und der Kommunikationsschnittstelle bzw. der E/A-Erweiterungsschnittstelle keine Isolierung dargestellt, sie kann jedoch gegebenenfalls bereitgestellt werden. Alle E/A-Erweiterungsmodule weisen eine optisch isolierende Abgrenzung zwischen dem Anwenderverdrahtungs-Anschluss und den 5-Volt-Gleichstrom-Logiksignalen auf. Die Zentraleinheit CPU 210 ist zusammengesetzt aus dem ASIC-Baustein, welcher den Mikroprozessor, den RAM-Baustein und den ROM-Baustein enthält. Der ROM-Baustein beinhaltet das Betriebssystem für die speicherprogrammierbare Steuerung PLC 200 und kann entweder ein EPROM oder ein FLASH EPROM sein, abhängig von dem Modell der speicherprogrammierbaren Steuerung PLC. Der RAM-Baustein wird für die Speicherung der Betriebssystemdaten und als Notizblockspeicher sowie zum Speichern des Anwenderprogramms, das in einen ausführbaren Code kompiliert wurde, benutzt.
  • Ein Blockdiagramm der Zentraleinheit (CPU) 300 H/W ist in 3 dargestellt. Die gezeigten Verbindungen der Zentraleinheit CPU werden in dem vorliegenden Dokument nicht ausführlich erläutert. Die Verbindungen, die hier von speziellem Interesse sind, sind die Eingangs-Schaltkreise auf der E/A-Baugruppe 302, der E/A-Erweiterungsbus 304 und der Ausgangs-Schaltkreis auf der E/A-Baugruppe 306. In jedem Fall veranschaulicht 3 diese Einzelheiten in ausreichender schematischer Klarheit, so dass der Praktiker keinerlei Schwierigkeiten haben wird, anhand der Betrachtung der Abbildung die Einzelheiten zu verstehen. Es versteht sich von selbst, dass die 3 lediglich eine Anordnung darstellt und dass für den Fachmann auf diesem Gebiet der Technik ohne weiteres verständlich ist, wie weitere, gleichwertige Anordnungen insbesondere im Hinblick auf die vorliegende Spezifikation zu realisieren sind.
  • Die Zentraleinheit CPU 300 und die Verbindungen sind als ein ASIC-Baustein angeordnet, der in Form eines Diagramms in 4 dargestellt ist. Wie zu sehen enthält der ASIC-Baustein einen Mikroprozessor 406 (mit der Beschriftung „Core"), eine Adressdecodiereinheit 402 und eine Mapping-Logik. Zwei universelle Asynchron-Empfänger/-Sender (Universal Asynchronous Receiver Transmitter, UART) 424, 426 werden bereitgestellt, welche den elektronischen Schaltkreis herstellen, der den seriellen Port bildet. Universelle Asynchron-Empfänger/Sender UART wandeln parallele Bytes von der Zentraleinheit CPU um in serielle Bits für die Übertragung und umgekehrt. Andere Datenkommunikationsanordnungen sind jedoch ebenfalls möglich. Es sind zwei digitale Eingangsaufbereitungs-Schaltkreise 418, Hochgeschwindigkeits-Zähler HSC 410, Impulsfolge-Ausgangs-Schaltkreis 420, Potentiometer-Schaltkreis 414, Watchdog-Schaltkreis 430 und Rücksetz-Schaltkreis 428 vorhanden. Eine Busschnittstelle 404 wird bereitgestellt. Die E/A-Erweiterungseinheit ist mit 422 bezeichnet. Eine Testschnittstelle wird bereitgestellt, um die speicherprogrammierbare Steuerung PLC 100 zu testen. Der Stromverteiler-Schaltkreis ist als Schaltkreis 432 dargestellt. Der Speicher ist als interner RAM-Baustein 408 angegeben. Eine Interrupt-Steuereinheit 412 wickelt Interrupts für die Zentraleinheit CPU 406 ab.
  • Die speicherprogrammierbare Steuerung PLC 100 stellt ein Mittel bereit, mit dem Anwender spezifische Anwendungssteuerprogramme erstellen können, die, wenn sie von der speicherprogrammierbaren Steuerung PLC ausgeführt werden, die Arbeitsweise von Maschinen und/oder Prozessen steuern, welche in der Fertigung einer breiten Vielfalt von Produkten eingesetzt werden. Auf diese Weise ähneln die speicherprogrammierbaren Steuerungen PLC allen anderen speicherprogrammierbaren Steuerungen, und der Praktiker wird vor dem Hintergrund solcher Erfahrung mit speicherprogrammierbaren Steuerungen unmittelbar die allgemeineren Aspekte der Erfindung verstehen. Trotz der Ähnlichkeiten in Anwendung und Funktion, die die speicherprogrammierbaren Steuerungen PLC aufweisen, gibt es zahlreiche einzigartige Merkmale und Funktionen, die in die Steuerung PLC 100 gemäß der vorliegenden Erfindung eingebaut sind und die ihren Nutzwert für den Anwender erweitern und verbessern, wie im Folgenden erläutert wird.
  • Digitale Eingangspunkteinheit
  • Es wird die digitale Eingangspunkteinheit 418 beschrieben. Nachdem jedes der digitalen Eingangssignale (I0.0 bis I1.5) in ein kompatibles Signal umgewandelt worden ist, beispielsweise ein +5-Volt-Signal, und von dem Anwenderverdrahtungs-Anschluss isoliert ist, wird es in die digitale Eingangspunkteinheit 418 des ASIC-Bausteins eingespeist. Ein Blockdiagramm für die Eingangspunkte IB0[2:0], das die von der digitalen Eingangspunkteinheit 500 (418 in 4) bereitgestellte Funktionalität veranschaulicht, ist in 5 dargestellt.
  • Diese digitale Eingangspunkteinheit 500 führt eine Mehrzahl von Funktionen an den digitalen Eingangspunkten aus, welche von der Anwendung des Anwenders mit der Zentraleinheit CPU verbunden werden. Diese Einheit filtert die Eingangspunkte und ermöglicht den Zugriff auf den gefilterten Status dieser Punkte. Eine Impulserfassungsfunktionalität wird an jedem Eingangspunkt bereitgestellt, um wahlweise die Erfassung von Impulsen kurzer Dauer zu ermöglichen. Eine Edge-Interrupt-Funktion wird bereitgestellt, um Interrupts zu erzeugen, wenn an bestimmten Eingangspunkten Anstiegs- oder Abfallflankenübergänge erfolgen. Hochgeschwindigkeits-Zähler HSC werden eingesetzt, um Ereignisse zu zählen, die zu schnell für die Abtastrate der Zentraleinheit CPU erfolgen.
  • Wie in 5 gezeigt stellt/stellen ein oder mehrere digitale(r) Eingangsfilter-Schaltkreise 5061-n einen über die Software konfigurierbaren Filter bereit. Das bedeutet, dass die speicherprogrammierbare Steuerung PLC die Filterparameter, die die Filterfunktion regeln, entsprechend der von der speicherprogrammierbaren Steuerung PLC ausgeführten Software definiert. In mindestens einer Anordnung können durch die Software bis zu acht (8) Filterwerte konfiguriert werden, beispielsweise von 0,2 ms bis 12,8 ms. Eine Implementierung der Filter ist beispielsweise möglich mit einem 4-Bit-Vorwärts-Rückwärts-Zähler an jedem Eingangspunkt. (Ein) Impulserfassungs-Schaltkreis(e) 5081-n erlaubt/erlauben das Erfassen eines Anstiegs- oder Abfallflankenübergangs des gefilterten Eingangs so lange, bis die Software den Wert einlesen kann. Eine unabhängige Aktivierung/Deaktivierung der Impulserfassungsfunktion ist für jeden Eingangspunkt gegeben. (Ein) Edge-Interrupt-Schaltkreis(e) 5101-n erzeugt/erzeugen, wenn diese Funktion aktiviert ist, ein Interrupt, wenn ein Anstiegs- und/oder Abfallflanken-Übergang an beispielsweise bis zu vier Eingangspunkten auftritt. (Ein) Hochgeschwindigkeits-Zähler HSC 514 (516), in diesem Fall werden sechs Hochgeschwindigkeits-Zähler (HSC) unterstützt, enthält/enthalten jeweils beispielsweise einen 32-Bit-Vorwärts-Rückwärts-Zähler und ein 32-Bit-Vergleichsregister. Das 32-Bit-Register erfasst den Zählerwert, so dass er von der Software eingelesen werden kann. Jeder Zähler und jedes Vergleichsregister sind per Software ladbar. Vier dieser Hochgeschwindigkeits-Zähler HSC etwa können Zweiphasentakte abwickeln. Die übrigen beiden Hochgeschwindigkeits-Zähler HSC können nur Einphasentakte unterstützen. Jeder Hochgeschwindigkeits-Zähler HSC kann Interrupts erzeugen, wenn die Werte des Zählers und des Vergleichsregisters gleich sind, wenn eine Richtungsänderungsbedingung vorliegt bzw. nach Bestätigung des externen Rücksetzeingangs des Hochgeschwindigkeits-Zählers HSC.
  • Digitaler Eingangsfilter-Schaltkreis
  • Die Implementierung der Eingangsfilter in ASIC-Schaltkreisen nach dem bisherigen Stand der Technik erfordert zu viele Gatter. In dem ASIC-Baustein der vorliegenden Erfindung besteht ein Bedürfnis, kompatible Funktionalität bereitzustellen, ohne so viele Gatter zu benötigen. Es folgt eine Beschreibung unter Bezugnahme auf die 6a bis 6d und 7, in der Eingangsfilter mit erheblich weniger Logik im Instant-ASIC-Baustein implementiert werden, indem die Wahrheitswertetabelle aus 6b verwendet wird.
  • Der ASIC-Baustein stellt digitale Einangsfilterung für beispielsweise 14 digitale Eingangspunkte in 6a und 6b bereit. In 6a umfasst der digitale Eingangsfilter-Schaltkreis 600 (506 in 5) den Eingang 602, den Eingangsfilter-Schaltkreis 604, die ausgewählte Verzögerungszeit 606 und den Ausgang 608. Die Filterverzögerungszeiten, die von der ausgewählten Verzögerungszeit 606 gesetzt werden, sind über die Software konfigurierbar auf beispielsweise einen von sieben verschiedenen Werten. Die Filterverzögerungszeiten werden durch einstellbare Register im ASIC-Baustein ausgewählt. Die in 7 folgende Tabelle beschreibt die mögliche Beziehung zwischen dem Wert, der in das Register eingetragen wird, und der entsprechenden ausgewählten Verzögerungszeit. Natürlich sind aber auch andere Beziehungen möglich.
  • Jeder digitale Eingangsfilter-Schaltkreis simuliert die Funktion eines Kondensators, der von einer konstanten Stromquelle angesteuert wird, deren Ausgangsspannung durch einen Komparator mit einem großen Hysterese-Betrag erfasst wird. Das digitale Äquivalent dieses analogen Schaltkreises ist als ein Vorwärts-Rückwärts-Zähler mit 4 Bit realisiert, dessen Zählrichtung durch den Status des Eingangspunkts bestimmt wird. Die Frequenz, mit der der Zähler getaktet ist, wird anhand der Auswahlwerte bestimmt, die durch die Software in die ASIC-internen Register eingetragen wurden. Der 1-MHz-Master-Takt wird als Zeitbasis für jeden Filter verwendet, so dass seine Funktion unabhängig ist von der Taktfrequenz des Systems. Die Verzögerungszeit wird nach folgender Formel berechnet: Digitalfilter-Verzögerungszeit = 12·(Dauer des ausgewählten Eingangstakts des Vorwärts-Rückwärts-Zählers)
  • Die Wahrheitswertetabelle in 6b definiert die Funktion des äquivalenten digitalen Schaltkreises, wobei das von dem Filter erzielte Ergebnis der Ausgangswert 608 ist (FlBy.x). Für den Fachmann auf diesem Gebiet der Technik ist unmittelbar ersichtlich, dass der Schaltkreis in seinen Details anhand der Tabelle in 6b und mithilfe ausreichend bekannter boolescher Logik implementiert werden kann. Der beispielhafte Schaltkreis ist in 6c dargestellt.
  • Für jede Gruppe von beispielsweise vier Eingängen gibt ein Multiplexer 610 eines von acht Taktsignalen aus, das dazu dient, die Eingangsfilter-Verzögerungszeit einzustellen. Der von dem Multiplexer 610 ausgewählte Takt steuert einen 4-Bit-Vorwärts-Rückwärts-Zähler 612 an (einer für jeden der Eingänge in jeder Gruppe von vier Eingängen). Der physische Eingang kontrolliert die Richtung (vorwärts/rückwärts) des 4-Bit-Zählers. Ist der Eingang „ON" (logisch „1"), zählt der Zähler vorwärts. Ist der Eingang dagegen „OFF" (logisch „0"), zählt der Zähler rückwärts. Die Vorwärts-Zählsequenz des Zählers ist.
    0, 1, 2, ... 13, 14, 15, 15, 15, ... 15
  • Die Rückwärts-Zählsequenz des Zählers lautet:
    15, 14, 13, ... 2, 1, 0, 0, 0, ... 0
  • Wie aus der Zählsequenz zu ersehen, beginnt der Zähler beim Vorwärts- bzw. Rückwärtszählen den Zählzyklus nicht von vorn.
  • Die Filterverzögerung 614 ist dafür ausgelegt, die Funktion einer konstanten Stromquelle zu imitieren, die einen Kondensator ansteuert und deren Spannung durch einen Komparator mit einem großen Hysterese-Betrag erfasst wird. In diesem Fall muss der Zähler, damit ein Übergang des Eingangs von „OFF" zu „ON" erkannt wird, einen Wert von 12 erreichen. Ist dieser Zählwert erreicht, wird der Ausgang eingeschaltet („ON") und bleibt so lange eingeschaltet, bis der Schwellenwert für einen Übergang des Eingangs von „ON" zu „OFF" bei einem Zählwert von 3 erreicht wird. Die NAND-Gatterlogik 602, die in der Abbildung dargestellt ist, implementiert diese Schwellenwerte.
  • Die Schwellenwerte sind symmetrisch in der Weise, dass 12 Vorwärts-Zählwerte oder 12 Rückwärts-Zählwerte ausgehend von einer dauerhaften Eingangsbedingung „low" (niedrig) oder „high" (hoch) erforderlich sind. Die Tabelle in 6d enthält eine Liste der Verzögerungszeiten für 12 Takte auf jeder der Frequenzen, die von dem Multiplexer bereitgestellt werden. Natürlich sind aber auch andere Verzögerungszeiten möglich. Zusätzliche Schichten, die jeweils einen Zähler 616, eine NAND-Gatterlogik 622 und eine Verzögerung 618 enthalten, können für jeden Eingang bereitgestellt werden und arbeiten in derselben Weise wie die vorstehend beschriebene Schicht.
  • Impulserfassungseinheit
  • Auf den digitalen Eingangsfilter-Schaltkreis folgt eine Impulserfassungseinheit (508 in 5). Aufgabe dieses Schaltkreises ist, einen Wechsel des Eingangsstatus entweder von „high" zu „low" oder von „low" zu „high" zu erfassen und zu speichern, bis die Betriebssystem-Software der speicherprogrammierbaren Steuerung PLC die Statusänderung erkannt hat. Die speicherprogrammierbare Steuerung PLC liest den Status der Eingänge zyklisch sowohl im STOP- als auch im RUN-Modus. (Der Hauptunterschied zwischen STOP- und RUN-Modus in der speicherprogrammierbaren Steuerung PLC besteht darin, dass im STOP-Modus das Anwenderprogramm nicht ausgeführt wird, während im RUN-Modus das Anwenderprogramm ausgeführt wird.) 8 stellt den Abtastzyklus der speicherprogrammierbaren Steuerung PLC dar (der Zyklus wird üblicherweise als PLC-Abtastzyklus oder einfach nur Abtastung bezeichnet). Wie in 8 dargestellt, wird während des Abtastzyklus im RUN-Modus der Eingang einmal pro Zyklus gelesen. Derselbe Abtastzyklus erfolgt im STOP-Modus, nur dass im STOP-Modus das Anwenderprogramm nicht ausgeführt wird.
  • Da die Eingänge nur einmal pro Zyklus gelesen werden, kann es vorkommen, dass Eingänge den Status ändern, ohne dass die speicherprogrammierbare Steuerung PLC diese Änderung je bemerkt. Solche Statusänderungen, die für die speicherprogrammierbare Steuerung PLC zu schnell erfolgen, so dass sie nicht erkannt werden, werden als Impulse bezeichnet. Um zu vermeiden, dass der speicherprogrammierbaren Steuerung PLC ein kurzer Impuls an einem Eingang entgeht, kann der Anwender ein Eingangs-Interrupt aktivieren, durch das die normale Programmausführung so lange ausgesetzt wird, wie die speicherprogrammierbare Steuerung PLC das Interrupt bearbeitet. Dieses Verfahren ist zwar sehr effektiv, erfordert jedoch zusätzliche Unterstützung durch die Zentraleinheit CPU und nimmt beträchtliche Ausführungszeit für die Abarbeitung der Interrupt-Routine in Anspruch. Aus diesem Grund ist nur eine kleine Anzahl von Eingangs-Interrupts zulässig.
  • Das andere Verfahren besteht darin, an jedem der integrierten Eingänge der speicherprogrammierbaren Steuerung PLC Impulserfassungs-Schaltkreise bereitzustellen. Dieses Verfahren erlaubt es, seltene Impulse von kurzer Dauer (entweder „high" oder „low") zu erfassen und zu speichern, bis die speicherprogrammierbare Steuerung PLC die Änderung an einem geeigneten Punkt im Abtastzyklus erkennt.
  • Top-Level-Blockdiagramm des Impulserfassungs-Schaltkreises
  • Nunmehr stärker ins Detail gehend veranschaulicht 9 den Impulserfassungs-Schaltkreis 900 (508 in 5), wobei der Eingang 902 auf den Impulserfassungs-Schaltkreis 904 gekoppelt, gemäß dem Aktivierungssignal 906 erfasst und ausgegeben 908 wird. Auf diese Weise ist der Impulserfassungs-Schaltkreis in der Lage, digitale Eingangspunktimpulse zu erfassen und zu speichern, deren Dauer länger ist als die ausgewählte Filterzeit, jedoch kürzer als die Abtastzeit. 10 zeigt das Problem, dass ein Impuls verpasst wird, da der betreffende Impuls zwischen zwei Aktualisierungen der Eingänge erfolgte.
  • Die Software der Zentraleinheit CPU ist dafür ausgelegt, den Status aller Eingangspunkte einmal pro Abtastzyklus der Zentraleinheit CPU zu lesen, und dieser Vorgang wird als Eingangsaktualisierung bezeichnet. Wie vorstehend bereits erwähnt, kann ein Impuls verpasst werden, wenn er zwischen den Eingangsaktualisierungen zweier aufeinander folgender Abtastzyklen der Zentraleinheit CPU auftritt (siehe Beispiel in 10). Der Impulserfassungs-Schaltkreis 904 erfasst und speichert diese Art Ereignis. In einer möglichen Anordnung sind 14 Impulserfassungs-Schaltkreise enthalten, je einer für jeden Eingangspunkt.
  • Wenn ein Impulserfassungs-Schaltkreis aktiviert ist, wird die Änderung des Status („low" → „high" bzw. „high" → „low") eines Eingangs erfasst. Weitere Statusänderungen des Eingangs werden so lange ignoriert, bis der erfasste Wert im nächsten Abtastzyklus der Zentraleinheit CPU durch die Software eingelesen wurde. Nachdem der erfasste Wert eingelesen wurde, kann der Schaltkreis dann wieder weitere Statusänderungen des Eingangs erkennen.
  • Die Funktion des Impulserfassungs-Schaltkreises kann exakter anhand der Wahrheitswertetabelle für einen synchronen Zustandsautomaten in 12a beschrieben werden. Die in der Tabelle verwendeten Symbole sind nachstehend definiert:
  • PCE
    – Pulse Catch Circuit Enable Bit; Aktivierungsbit für Impulserfassungs-Schaltkreis
    I
    – Input; Eingangssignal, synchronisiert auf den Systemtakt durch den Eingangsfilter-Schaltkreis (FIBy.x)
    CV
    – der erfasste Eingangswert nach Änderung des Status des Eingangs und nach einer Aktualisierung des Eingangs (synchronisiert auf den Systemtakt)
    F
    – Statusänderungs-Flag (synchronisiert auf den Systemtakt)
    RP
    – Read Pulse; gelesener Impuls (einer pro Eingangsstatus-Byte), erzeugt durch Lesen des Eingangsstatus-Byte (synchronisiert auf den Systemtakt derart, dass er für einen Taktzyklus aktiv ist und auf der Takt-Flanke, von der der Status des Eingangs übermittelt wurde, inaktiv wird)
    PS
    – Present State; derzeitiger Zustand
    NS
    – Next State; nächster Zustand
  • Im Betrieb wird, Bezug nehmend auf 12a, wenn der Schaltkreis eine Änderung im Status des Eingangs erkennt, der neue Wert des Eingangs erfasst und ein Statusänderungs-Flag gesetzt. Solange das Statusänderungs-Flag gesetzt ist, wird der gespeicherte Wert gehalten und kann nicht aktualisiert werden. Daher werden alle Änderungen des Eingangs, die erfolgen, solange das Statusänderungs-Flag gesetzt ist, ignoriert. Nachdem der gespeicherte Wert durch die Software eingelesen ist, wird das Statusänderungs-Flag zurückgesetzt, der aktuelle Status des Eingangs erfasst und die Erkennung von Statusänderungen am Eingang erneut aktiviert. Diese Abfolge von Aktionen wird als Neustart des Impulserfassungs-Schaltkreises bezeichnet. Das Ergebnis besteht darin, dass der Eingangsimpuls erfasst wird, obwohl die Aktualisierung zwischen zwei Abtastzyklen erfolgt wie in 11 dargestellt. Vergleiche dazu beispielsweise CIB1.6, wo zu erkennen ist, dass der Ausgang 908 des Impulserfassungs-Schaltkreises den Eingangsimpuls 902 erfasst, obwohl der Impuls zwischen zwei Abtastungen, d. h. Abtastung n und Abtastung n + 1, erfolgt.
  • Beispielsweise werden zwei 8-Bit-Register in diesem Block bereitgestellt, um die Impulserfassungsfunktion einzeln für jeden der 16 Eingangspunkte aktivieren bzw. deaktivieren zu können. Diese Enable-Register sind in der Tabelle definiert, die in 12b dargestellt ist. Eingangs-Statusregister werden bereitgestellt, um der Zentraleinheit CPU den Zugriff auf die bedingten Eingangspunktzustände, CIB0[7:0] und CIB1[5:0], die von dem Impulserfassungs-Schaltkreis ausgegeben werden, zu ermöglichen. Diese werden in 12c gezeigt. Das Format der Eingangs-Statusregister ist ebenfalls in 12d dargestellt.
  • Die Schaltkreiselemente des Impulserfassungs-Schaltkreises sind, wie für den Fachmann auf diesem Gebiet der Technik offensichtlich, anhand der Wahrheitswertetabelle aus 12a sofort ersichtlich. Es ist ferner offensichtlich, dass der Impulserfassungs-Schaltkreis dementsprechend eine Mehrzahl von Konfigurationen aufweisen kann, die der Wahrheitswertetabelle entsprechen.
  • Der beispielhafte Impulserfassungs-Schaltkreis, der gemäß der vorstehenden Beschreibung arbeitet, ist in den 12e und 12f dargestellt. Ein Systemtaktimpuls steuert die Flip-Flops 1202, 1208 an. Das Eingangssignal wird auf das erste Flip-Flop 1202 gekoppelt, dessen Q-Ausgang auf die NAND-Gatterlogik 1206 gekoppelt wird. Die Signale PCE, RP und F werden verzögert und auf die entsprechenden NAND-Gatter in der NAND-Gatterlogik 1206 gekoppelt wie dargestellt. Zusätzlich wird der Ausgang des zweiten Flip-Flops 1208 an die NAND-Gatterlogik 1206 zurückgeführt. Der Ausgang der NAND-Gatterlogik wird auf das zweite Flip-Flop 1208 gekoppelt und, sobald er durch dieses gehalten wird, an den Ausgang getaktet. Das F-Signal wird in 12f erzeugt, wobei der Systemtakt die Flip-Flops 1210 und 1216 steuert. Das erste Flip-Flop hält den Eingang und das zweite Flip-Flop hält den Ausgang der NAND-Gatterlogik 1214. Die NAND-Gatterlogik 1214 ist angeordnet wie dargestellt, um die vorstehend beschriebene Logik auf die Signale, die von dem ersten Flip-Flop ausgegeben werden (Q), die umgekehrte Version von Q, die erfasste Version des Eingangssignals und seine verzögerte Version (verzögert um die Verzögerungen 1212), das RP-Signal, das um die Verzögerungen 1212 verzögert ist, sowie das PCE-Signal anzuwenden.
  • Die Impulserfassungs-Schaltkreise können einzeln aktiviert bzw. deaktiviert werden. Wenn ein Impulserfassungs-Schaltkreis deaktiviert ist, dann wird der Schaltkreiseingang durchgeleitet zum Schaltkreisausgang. Ist der Schaltkreis dagegen aktiviert, sind die weiter oben beschriebenen Impulserfassungsfunktionen aktiv.
  • Digitale Ausgangspunkteinheit
  • Diese digitale Ausgangspunkteinheit (420 in 4) erlaubt die Steuerung des Status jedes Ausgangspunkts unmittelbar per Software. Außerdem erlaubt eine Impulsausgabemöglichkeit eine Impulsfolgenausgabe und eine impulsbreitenmodulierte Ausgabe an bis zu zwei der Ausgangspunkte.
  • Es wird nun Bezug genommen auf die 13; der ASIC-Baustein stellt zwei Ausgangspunkt-Statusregister 1302, 1304 für die software-gestützte Steuerung des Status von zehn (10) digitalen Ausgangspunkten bereit. Zusätzlich dazu können zwei Impulsausgangsblöcke 1306, 1308 (PLSs) implementiert werden, um die Möglichkeit zu bieten, gepulste Wellenformen mit einer Frequenz zu erzeugen, die höher ist als durch die Software zu realisieren.
  • Innerhalb der Impulsausgangsblöcke 1306, 1308 bietet der ASIC-Baustein eine Auswahl aus zwei Ausgangsfunktionen, beispielsweise Impulsbreitenmodulation (Pulse Width Modulation, PWM) oder Impulsfolgeausgang (Pulse Train Output, PTO). Die Impulsbreitenmodulations-(PWM-)Funktion sorgt für einen kontinuierlichen Impulsausgang mit programmierbarer Zykluszeit und programmierbarem Puls/Pause-Verhältnis. Die Impulsfolgeausgangs-(PTO-)Funktion, die hauptsächlich für Schrittmotoranwendungen vorgesehen ist, sorgt für die Ausgabe einer bestimmten Anzahl von Impulsen mit einem Puls/Pause-Verhältnis von etwa 50%. Natürlich kommen für den Fachmann auf diesem Gebiet der Technik auch andere Anwendungen in Betracht. Die Zykluszeit ist in der PTO-Funktion ebenfalls programmierbar und kann entweder festgelegt sein oder automatisch angepasst werden und sich in einem vom Anwender festgelegten Verhältnis erhöhen oder verringern.
  • Wenn der Block PLS0 in Betrieb (aktiviert) ist, übernimmt er die Steuerung des Ausgangspunkts XQB0.0 über den MUX 1310. Andernfalls wird XQB0.0 durch den Wert gesteuert, den die Software in das Ausgangspunkt-Statusregister des ASIC-Bausteins einträgt. In gleicher Weise steuert PLS1 den Status von XQB0.1, wenn dieser Block aktiviert ist, über den MUX 1312 und steuert das Ausgangspunkt-Statusregister des ASIC-Bausteins den Status von XQB0.1, wenn PLS1 nicht aktiviert ist.
  • Impulsausgangsblöcke
  • Der hier gezeigte ASIC-Baustein unterstützt zwei Impulsausgangsblöcke (PLS). Natürlich kann eine beliebige Anzahl von Impulsausgangsblöcken PLS konfiguriert werden. Diese Blöcke erlauben es der Zentraleinheit CPU, Wellenformen mit einer Frequenz zu erzeugen, die höher ist, als sie mit der Software der Zentraleinheit manuell generiert werden könnte. Der Ausgang von Impulsausgangsblock 0 (PLS0) ist eine der Quellen des Ausgangspunkts XQB0.0 und der Ausgang von Impulsausgangsblock 1 (PLS1) ist eine der Quellen des Ausgangspunkts XQB0.1.
  • Der ASIC-Baustein für die speicherprogrammierbaren Steuerungen PLC stellte sowohl die Impulsfolgeausgangs-(PTO-) als auch die Impulsbreitenmodulations-(PWM-)Funktion bereit. Bei der PTO-Funktion handelt es sich um eine Betriebsart, in der die Dauer (Zykluszeit) der Wellenform und die Anzahl der Zyklen (Impulszahl) durch die Software spezifiziert werden. Das Puls/Pause-Verhältnis der Wellenform liegt bei etwa 50%. PWM ist eine Betriebsart, bei der die Dauer (Zykluszeit) und das Puls/Pause-Verhältnis (Impulsbreite) durch die Software spezifiziert werden und die Wellenform kontinuierlich ausgegeben wird.
  • Es wurde entdeckt, dass bei der Implementierung dieser Funktionen ein fundamentales Problem darin besteht, dass keine Möglichkeit eines glatten Übergangs von einer PTO- oder PWM-Wellenform zur anderen bestand. Jeder Übergang erforderte, dass der Impulsausgangsblock von der Software angehalten und anschließend neu gestartet wurde, wodurch es zu einer Unstetigkeit der daraus resultierenden Ausgangswellenform kam.
  • Aufgrund des vorstehend beschriebenen Problems mit Übergängen von einer Wellenform zu einer anderen stellt der ASIC-Baustein gemäß der vorliegenden Erfindung im Impulsausgangsblock einen Hardware-Pipeline-Mechanismus bereit, um glatte, durch die Hardware gesteuerte Übergänge von Wellenform zu Wellenform zu ermöglichen. Außerdem wurde der ASIC-Baustein mit dem Ziel, einen besseren Betrieb zusammen mit Schrittmotoren zu ermöglichen, mit der Fähigkeit ausgestattet, den Wert der Zykluszeit automatisch in einer bestimmten Größenordnung zu ändern.
  • Blockdiagramm und Funktionsübersicht des Impulsausgangsblocks PLS
  • Das Blockdiagramm in 14a zeigt den Aufbau und die Komponenten jedes Impulsausgangsblocks 1400.
  • Erzeugung der PLS-Zeitbasis – Die Zeitbasis (beispielsweise 1 ms oder 1 μs) wird von einem Multiplexer 1402 bereitgestellt, der beispielsweise entweder den 1-MHz-Master-Zeitbasistakt oder einen 1-KHz-Takt, der von dem Master-Zeitbasistakt abgeleitet ist, auswählt.
  • Steuerung der Wellenformperiode – Der Ausgang des Zeitbasis-Multiplexers steuert einen 16-Bit-Vorwärtszähler an, den so genannten Zykluszeit-Zähler 1420. Dieser Zähler wird an der ansteigenden Flanke des Zeitbasistakts erhöht. Der Ausgang dieses Zählers wird von einem Komparator 1430 mit dem in einem 16-Bit-Zykluszeit-Voreinstellungs-Register 1422 verglichen, um die ausgegebene Wellenformperiode zu steuern. Wenn der Wert des Zykluszeit-Zählers den Wert des Zykluszeit-Voreinstellungs-Registers erreicht, ist der aktuelle Zyklus abgeschlossen und wird ein CycleDone-Ereignis (Zyklus beendet) generiert.
  • Die im Zykluszeit-Zähler 1420 und im Zykluszeit-Voreinstellungs-Register 1422 gespeicherten Werte sind nicht signierte Werte. Der zulässige Wertebereich für den Zykluszeit-Zähler 1420 ist beispielsweise 0 bis 65535. Der zulässige Wertebereich des Zykluszeit-Voreinstellungs-Registers ist 2 bis 65535. Bei dem Vergleich zur Ermittlung von CycleDone handelt es sich um einen nicht signierten Vergleich.
  • Ein Delta-Zykluszeit-Register 1406 wird im PTO-Modus verwendet, um einen signierten 16-Bit-Zweierkomplementwert zu speichern, der bei jedem CycleDone-Ereignis dem in dem Zykluszeit-Voreinstellungs-Register 1422 enthaltenen Wert hinzugezählt wird. Übersteigt die Summe den Wert 65535 oder ist sie kleiner als 2, wird das Ereignis AdderError generiert. Beispiel:
  • Figure 00300001
  • Figure 00310001
  • Im PWM-Modus wird das Delta-Zykluszeit-Register bei einem Wert von „0" gehalten.
  • Die Software kann das Zykluszeit-Voreinstellungs-Register 1422 und das Delta-Zykluszeit-Register 1406 nur dann laden, wenn der PLS-Block deaktiviert ist. Im PTO-Modus liegt der zulässige Wertebereich dieses Registers beispielsweise zwischen –32768 und +32767.
  • Steuerung des Puls/Pause-Verhältnisses der Wellenform – Der Ausgang des Zykluszeit-Zählers 1420 wird auch für die Steuerung des Puls/Pause-Verhältnisses der Wellenform verwendet. Zwischen diesem Zählerwert und einem voreingestellten Impulsbreitenwert, dessen Quelle durch die PLS-Betriebsart bestimmt wird, wird ein nicht signierter Vergleich durchgeführt. Durch diesen Vergleich wird der Status des Ausgangssignals PLSxOUT des PLS-Blocks bestimmt. Solange der Zählerwert kleiner ist als der voreingestellte Impulsbreitenwert, ist das PLSxOUT-Signal „high". Erreicht oder übersteigt der Zählerwert den voreingestellten Wert, wird das PLSxOUT-Signal in „low" geändert. Der voreingestellte Impulsbreitenwert wird von den unteren 16 Bits des Impulszahl/-breite-Voreinstellungs-Registers 1408 bezogen, wenn der PWM-Modus aktiv ist, oder beträgt die Hälfte des Wertes, der im Zykluszeit-Voreinstellungs-Register 1422 gespeichert ist, wenn der PTO-Modus aktiv ist.
  • Lautet der voreingestellte Impulsbreitenwert 0, ist PLSxOUT für den gesamten Zyklus „low". Ist der voreingestellte Impulsbreitenwert größer oder gleich der voreingestellten Zykluszeit, ist PLSxOUT für den gesamten Zyklus „high".
  • Das Impulszahl/-breite-Voreinstellungs-Register 1408 wird von der Software geladen, jedoch sind bei Betrieb im PWM-Modus nur die unteren 16 Bits von Bedeutung. Entsprechend sollte die Software im PWM-Modus lediglich das niedrigstwertige Wort des Registers beschreiben. Der zulässige Wertebereich für dieses Register in diesem Modus ist 0 bis 65535. Dieses Register kann von der Software nur geladen werden, wenn der PLS-Block deaktiviert ist.
  • Steuerung der Anzahl von Zyklen (nur PTO-Modus) – Ein 32-Bit-Vorwärts-Zähler, der so genannte Impulszähler 1428, wird bei jedem CycleDone-Ereignis angesteuert, um die Anzahl von Zyklen zu zählen, die auf dem PLSxOUT-Signal generiert wurden. Der in diesem Zähler gespeicherte Wert wird durch den Komparator 1434 mit dem Wert im 32-Bit-Impulszahl-Voreinstellungs-Register 1416 verglichen, um die Beendigung der aktuellen PTO-Operation festzustellen. Wenn der Wert des Impulszählers 1428 den voreingestellten Wert für die Impulszahl erreicht, wird das Ereignis PTOComplete generiert. Im PWM-Modus wird dieser Zähler nicht verwendet.
  • Im PTO-Modus sind alle 32 Bits des Impulszahl/-breite-Voreinstellungs-Registers 1416 von Bedeutung und werden von der Software geladen. Der zulässige Wertebereich für dieses Register liegt in diesem Modus zwischen 1 und (232 – 1). Dieses Register kann von der Software nur geladen werden, wenn der PLS-Block deaktiviert ist.
  • Funktionssteuerung – Ein Steuerungs-Register enthält Bits, die der Software erlauben, die Funktion des PLS-Blocks zu aktivieren oder zu deaktivieren. Wenn die Software den PLS-Block aktiviert, werden die Umschaltung des Ausgangspunkts von QBxPS-Steuerung auf Steuerung durch den PLS-Block sowie der Betrieb der internen Zähler und Vergleiche synchronisiert mit der nächsten ansteigenden Flanke des Zeitbasistakts. Dies dient dazu sicherzustellen, dass der anfängliche Zyklus der ausgegebenen Wellenform eine geeignete Dauer und Impulsbreite aufweist. Dieses Register wird in seinem Rücksetzstatus gehalten, falls eine Watchdog-Zeitüberlauf-Fehlerbedingung vorliegt oder aufgrund der direkten Steuerung der Ausgangsdeaktivierungsfunktion durch die Software.
  • Ein Einrichtungs-Register enthält Bits, die der Software erlauben, die Funktion des PLS-Blocks zu konfigurieren. Darunter befinden sich eine Auswahl der PLS-Zeitbasis und eine Auswahl der Betriebsart. Ein Interrupt-Aktivierungs-Register gibt der Software die Möglichkeit, die Interrupt-Erzeugung für die Interrupt-Ereignisse PTOComplete und AdderError einzeln zu aktivieren bzw. zu deaktivieren. Ein Statusregister wird bereitgestellt, das der Software ermöglicht, Informationen über den aktuellen Betriebszustand des PLS-Blocks abzurufen. Diese Informationen beinhalten den aktivierten Status und den Status des „Pipeline loaded"-Flags (weiter unten beschrieben).
  • Ein Interrupt-Statusregister liefert Informationen zu der oder den Interrupt-Quelle(n), die die Interrupt-Bedingung erzeugt (erzeugen). Das INTxPLS-Signal geht von dem PLS-Block aus und wird von der Interrupt-Steuereinheit verwendet. Dieses Signal wird aktiv, wenn eines oder beide der Ereignisse, die ein PLS- Interrupt erzeugen, eingetreten ist/sind (abhängig von dem Status der Interrupt-Aktivierungs-Bits im Interrupt-Aktivierungs-Register). Durch Lesen des Interrupt-Statusregisters werden alle aktiven Interrupt-Anzeigen im PLS-Block gelöscht und wird das INTxPLS-Signal ausgelöst. Auch das Deaktivieren einer Interrupts erzeugenden Quelle im Interrupt-Aktivierungs-Register führt zum Löschen eines anhängigen Interrupts von dieser Quelle. Sind danach in dem PLS-Block keine weiteren Interrupts mehr anhängig, wird das INTxPLS-Signal ausgelöst.
  • Hardware-Pipeline-Mechanismus – Der Pipeline-Mechanismus wird bereitgestellt, damit Modifikationen an der Wellenform-Charakteristik vorgenommen werden können, ohne zu einer Verzerrung der Wellenform zu führen. Folgende Pipeline-Register werden bereitgestellt, um die neuen Werte für Zykluszeit, Impulsbreite etc. aufzunehmen:
    • – Zykluszeit-Pipeline-Register, wird benutzt, um den neuen Wert für die Zykluszeit zu speichern.
    • – Delta-Zykluszeit-Pipeline-Register, wird benutzt, um den neuen Delta-Wert für die Zykluszeit zu speichern.
    • – Impulszahl/-breite-Pipeline-Register, wird benutzt, um die neue Impulszahl oder den neuen Wert für die Impulsbreite zu speichern (im PTO-Modus speichert dieses Register eine neue Impulszahl und werden die gesamten 32 Bits des Registers ausgeschöpft. Im PWM-Modus speichert das Register einen neuen Impulsbreitenwert und werden lediglich die unteren 16 Bits des Registers genutzt).
  • Ein Pipeline loaded-Flag wird als Bestandteil der Schnittstelle zwischen dem PLS-Block und der Software implementiert, wenn der Hardware-Pipeline-Mechanismus eingesetzt wird. Das „Pipeline loaded"-Flag wird immer dann gesetzt, wenn die Software einen Wert in das niedrigstwertige Byte des Impulszahl/-breite-Pipeline-Registers einträgt. Daher muss, damit der Hardware-Pipeline-Mechanismus genutzt werden kann, die Software stets einen Wert in das Impulszahl/-breite-Pipeline-Register eintragen und muss dieses das letzte Pipeline-Register sein, das beschrieben wird.
  • Alle Pipeline-Register müssen von der Software geladen werden, da die Inhalte aller Pipeline-Register an die operativen Register übertragen werden. Im PWM-Modus muss die Software das Delta-Zykluszeit-Pipeline-Register nicht beschreiben, da das Delta-Zykluszeit-Pipeline-Register bei 0 gehalten wird, solange sich der PLS-Block im PWM-Modus befindet. Eventuelle Inhalte dieses Pipeline-Registers werden somit im Endeffekt verworfen. Sobald die Pipeline-Register beschrieben sind und das „Pipeline loaded"-Flag gesetzt ist, werden die Inhalte der Pipeline-Register an die operativen Register übertragen, wobei folgende Bedingungen gelten:
    • – Wenn der PLS-Block aktiviert ist, erfolgt die Übertragung bei Eintreten des Ereignisses PTOComplete, wenn der PTO-Modus aktiv ist, oder des Ereignisses CycleDone, wenn der PWM-Modus aktiv ist.
    • – Wenn der PLS-Block deaktiviert ist, erfolgt die Übertragung unmittelbar bei Aktivierung des PLS-Blocks durch die Software.
  • Nachdem die Übertragung an die operativen Register abgeschlossen ist, wird das „Pipeline loaded"-Flag automatisch gelöscht.
  • Ist das „Pipeline loaded"-Flag in einem aktivierten PLS-Block einmal gesetzt, kann die Software so lange nicht mehr in eines der Pipeline-Register schreiben, bis deren Inhalte an die operativen Register übertragen worden sind (gekennzeichnet durch das Löschen des „Pipeline loaded"-Flag durch den ASIC-Baustein). Wenn der PLS-Block deaktiviert ist, kann die Software uneingeschränkt die Pipeline-Register beschreiben und wird jedes Mal, wenn das niedrigstwertige Byte des Impulszahl/-breite-Pipeline-Registers beschrieben wird, das „Pipeline loaded"-Flag gesetzt.
  • Mechanismus zur automatischen Deaktivierung – Ein aktivierter PLS-Block im PTO-Modus kann unter folgenden Bedingungen automatisch deaktiviert werden:
    • – Das Ereignis PTOComplete tritt ein und in den Pipeline-Registern ist keine neue Wellenform-Konfiguration gespeichert (das „Pipeline loaded"-Flag ist „0").
    • – Das Ereignis AdderError tritt ein.
  • Wenn der PLS-Block automatisch deaktiviert wird, wird das „Master Enable"-Bit im Steuerungs-Register durch den ASIC-Baustein gelöscht. Das „Pipeline loaded"-Flag ist davon nicht betroffen.
  • Manuelle Deaktivierung – Immer wenn das „Master Enable"-Bit im Steuerungs-Register von der Software gelöscht wird, geht der PLS-Block unmittelbar in den „PTO Disabled"-Status oder den „PWM Disabled"-Status (weiter unten beschrieben), je nach dem aktuellen Betriebszustand des Blocks. Eine Deaktivierung durch die Software löscht auch das „Pipeline loaded"-Flag und eventuell noch anhängige Interrupts.
  • Zulässige Wertebereiche der Register – Die Tabelle in 14b zeigt den Bereich der zulässigen Werte für jedes der numerischen Register im PLS-Block.
  • PTO-Betrieb
  • Dieser Modus wird gewählt, indem der PLS-Block aktiviert wird. Die Software steuert die Zykluszeit, die Delta-Zykluszeit und die Impulszahl. Das Puls/Pause-Verhältnis ist bei 50% festgelegt. Daher ist die folgende Funktionalität des PLS-Blocks für die Verwendung in diesem Modus aktiviert:
    • – das Zykluszeit-Voreinstellungs- und Zykluszeit-Pipeline-Register
    • – das Delta-Zykluszeit- und Delta-Zykluszeit-Pipeline-Register
    • – das Impulszahl/-breite-Voreinstellungs- und Impulszahl/-breite-Pipeline-Register (konfiguriert zum Speichern der 32-Bit-Impulszahl)
    • – der 32-Bit-Impulszähler
    • – der 16-Bit-Zykluszeit-Zähler
    • – der Vergleich zum Erzeugen des CycleDone-Ereignisses
    • – der Vergleich zum Erzeugen des PTOComplete-Ereignisses
    • – der Vergleich zum Steuern des Status von PLSxOUT
    • – das „Pipeline loaded"-Flag
    • – die PTOComplete- und AdderError-Interrupts
  • Die wichtigsten Statusübergänge des PLS-Blocks im PTO-Modus sind in dem Zustandsdiagramm 1500 in 15 dargestellt.
  • Wenn sich der PLS-Block im Status „PTO Disabled" 1502 befindet:
    • – wird der QB0.x-Ausgang durch das Ausgangspunkt-Statusregister gesteuert statt durch den PLS-Block
    • – werden der Zykluszeit-Zähler und der Impuls-Zähler auf 0 gehalten
    • – zeigt das PLSxSTAT.EN-Status-Bit den deaktivierten Zustand an.
  • Wenn sich der PLS-Block im Zustand „PTO Operating" 1504 befindet:
    • – wird der QB0.x-Ausgang durch den PLS-Block gesteuert (über das PLSxOUT-Signal)
    • – zeigt das PLSxSTAT.EN-Status-Bit den aktivierten Zustand an
    • – ist der normale PTO-Betrieb aktiviert.
  • Der Zykluszeit-Zähler wird an der ansteigenden Flanke der PLS-Zeitbasis erhöht und der größte Teil der Funktionalität des PLS-Blocks wird entweder direkt oder indirekt von diesem Zähler gesteuert. Das Segment mit Pseudo-Code in 16 bezeichnet die ASIC-Aktionen im PTO-Modus, die an einer ansteigenden Flanke der PLS-Zeitbasis ausgeführt werden (die Reihenfolge der Aktionen ist wichtig, daher sei eine Auswertung der Aussagen von oben nach unten angenommen). Der Fachmann auf diesem Gebiet der Technik wird die Funktionsweise des ASIC-Bausteins im PTO-Modus anhand des Pseudo-Codes sofort verstehen.
  • PWM-Betrieb
  • Dieser Modus wird gewählt, indem der PLS-Block aktiviert wird. Die Software steuert die Zykluszeit und die Impulsbreite. Daher ist die folgende Funktionalität des PLS-Blocks für die Verwendung in diesem Modus aktiviert:
    • – das Zykluszeit-Voreinstellungs- und Zykluszeit-Pipeline-Register
    • – das Impulszahl/-breite-Voreinstellungs- und -Pipeline-Register (konfiguriert für eine Impulsbreite von 16 Bit)
    • – der 16-Bit-Zykluszeit-Zähler
    • – der Vergleich zum Erzeugen des CycleDone-Ereignisses
    • – der Vergleich zum Steuern des Status von PLSxOUT
    • – das „Pipeline loaded"-Flag
  • Das Delta-Zykluszeit-Register und das Delta-Zykluszeit-Pipeline-Register werden bei 0 gehalten und der Impuls-Zähler sowie die Erzeugung von Interrupts für den Block sind deaktiviert. Das INTxPLS-Signal sollte in diesem Modus immer in den inaktiven Status gesetzt werden.
  • Die wichtigsten Statusübergänge des PLS-Blocks im PWM-Modus sind in dem Zustandsdiagramm in 17 dargestellt.
  • Wenn sich der PLS-Block im Status „PWM Disabled" 1702 befindet:
    • – wird der QB0.x-Ausgang durch das Ausgangspunkt-Statusregister gesteuert statt durch den PLS-Block
    • – wird der Zykluszeit-Zähler auf 0 gehalten
    • – zeigt das PLSxSTRT.EN-Status-Bit den deaktivierten Zustand an.
  • Wenn sich der PLS-Block im Zustand „PWM Operating" 1704 befindet:
    • – wird der QB0.x-Ausgang durch den PLS-Block gesteuert (über das PLSxOUT-Signal)
    • – zeigt das PLSxSTAT.EN-Status-Bit den aktivierten Zustand an
    • – ist der normale PWM-Betrieb aktiviert.
  • Der Zykluszeit-Zähler wird an der ansteigenden Flanke der PLS-Zeitbasis erhöht und der größte Teil der Funktionalität des PLS-Blocks wird entweder direkt oder indirekt von diesem Zähler gesteuert. Das Segment mit Pseudo-Code in 18 bezeichnet die ASIC-Aktionen im PWM-Modus, die an einer ansteigenden Flanke der PLS-Zeitbasis ausgeführt werden (die Reihenfolge der Aktionen ist wichtig, daher sei eine Auswertung der Aussagen von oben nach unten angenommen). Der Fachmann auf diesem Gebiet der Technik wird die Funktionsweise des ASIC-Bausteins im PWM-Modus anhand des Pseudo-Codes sofort verstehen.
  • Impulsfolge-Ausgangsprofil-(PTOP-)Anweisung
  • Die Impulsfolge-Ausgangsfunktion, die von dem ASIC-Baustein bereitgestellt wird, ist hauptsächlich für den Einsatz in der Steuerung von Schrittmotoren vorgesehen. Die speicherprogrammierbare Steuerung PLC stellt eine Anwenderanweisung für das Erzeugen von Profilen zur Beschleunigung/Verlangsamung und den Betrieb von Schrittmotoren bereit. Diese Anweisung ist in 19 dargestellt.
  • E/A-Erweiterungseinheit
  • Überblick über das Erweiterungsbus-Konzept
  • Physisch gesehen besteht das Erweiterungs-Subsystem aus in sich geschlossenen E/A-Modulen, die unabhängig voneinander und ohne gemeinsame Rückwandplatine installiert werden. Ein zehnpoliges Flachbandkabel, das Bestandteil jedes Moduls ist, dient zum Anschluss an das vorhergehende Modul oder an die Zentraleinheit CPU. Dieses Kabel transportiert die 5-V-Spannungs- und die Logiksignale, die für den Betrieb der Module erforderlich sind. Siehe 20. Die Signale im E/A-Erweiterungsbus werden in 21 beschrieben.
  • Während alle Signale physisch durch die Module verkettet werden, werden nur die EMA-Signale in jedem Modul logisch unterbrochen und neu generiert. Alle anderen Signale bilden einen einzigen elektrischen Bus, der sich über die gesamte Länge der hintereinander geschalteten E/A-Module erstreckt. Der Wert der EMA-Signale wird erhöht, bevor er an das nächste Modul weitergegeben wird. Jeder Zugriff auf den E/A-Erweiterungsbus beinhaltet ein Moduladressfeld zur Auswahl des Moduls, auf das zugegriffen werden soll. Nur dasjenige Modul, dessen Adresse dem Moduladressfeld der Nachricht entspricht, reagiert auf den Zugriff. Nach diesem Schema können beliebige Kombinationen von E/A-Modulen verkettet werden, ohne Adressumstellungen oder eine feste Rückwandplatine zu erfordern. Eine logische Erweiterung auf bis zu acht (8) Einheiten mit drei (3) EMA-Signalleitungen ist möglich, derzeit sind jedoch nur sieben (7) Module zulässig. Natürlich können auch andere Erweiterungseinheiten verwendet werden.
  • 22 veranschaulicht die logische Struktur 2200 und den Signalfluss der E/A-Module 2202 in der vorliegenden Erfindung. Die Einzelheiten der logischen E/A-Erweiterungsstrukturen werden hier nicht beschrieben. Die Tabelle in der 23 listet die Werte auf, die für jede der Komponenten in der elektrischen Schnittstelle eines E/A-Erweiterungsmoduls verwendet werden. Die Tabellen in 24 beschreiben die elektrischen Eigenschaften der E/A-Bus-Signale. Der Zugriff auf die E/A-Erweiterungen wird durch den ASIC-Baustein in der Zentraleinheit CPU gesteuert und wird anhand der Diagramme in den 25 und 26 verständlich, die die Lese- und Schreibzyklusfolgen darstellen, wie sie auf dem E/A-Erweiterungsbus vorhanden sind.
  • Der ASIC-Baustein (Master-Zustandsautomat und Transaktions-Taktgebung)
  • Im Folgenden wird die Bus-Taktgebungssequenz beschrieben. Die Taktgebung für den EM-Bus ist dafür ausgelegt, Zeit für die Signallaufzeit und den Signalversatz bereitzustellen, soweit erforderlich. Der Master stellt Signale auf den abfallenden Flanken des EMC-Takts bereit, die von dem Slave auf der nächsten ansteigenden Flanke gehalten werden müssen. Eine Hälfte des EMC-Zeittakts ist für die Einrichtung der Daten am Slave vorgesehen und berücksichtigt den ungünstigsten Versatz zwischen EMC und EMD durch die ASIC-Puffer, externen Kabel und eventuelle Puffer von Verstärkerstellen. Der Slave gibt Daten auf den ansteigenden Flanken des EMC aus, und der Master hält diese Daten auf der nächstfolgenden ansteigenden Flanke des Takts. Dies gewährt einen kompletten Zeittakt für die Übertragung des Takts an den Slave, die Verzögerung Takt-zu-Ausgang des Slave und die Rückübertragungszeit.
  • Während einer Bustransaktion werden Registerfelder zuerst auf dem höchstwertigen Bit des Busses dargestellt. Das P1-Bit des 2-Bit-Paritätsfeldes wird zuerst dargestellt, danach das P0-Bit. Die Aktionen des Master-Zustandsautomaten werden in Bezug sowohl auf die ansteigenden als auch auf die abfallenden Flanken des EMC beschrieben, wohingegen für den Slave angenommen wird, dass er keine andere Zeitbasis hat als der EMC und vollständig auf den ansteigenden Flanken des EMC arbeiten kann. Der EMC wird auf „low" gesetzt, wenn er nicht benutzt wird, um die Möglichkeit einzuschränken, dass falsche Daten in die Slaves getaktet werden.
  • Bustransaktionssequenz
  • Die folgenden Abschnitte beschreiben die verschiedenen Komponenten der EM-Bus-Transaktionssequenz sowohl beim Schreiben von Daten in den Slave als auch beim Lesen von Daten aus dem Slave. Es wird davon ausgegangen, dass die folgenden Aktionen von dem Master (der EM-Einheit) generiert werden, solange sie nicht speziell als von dem Slave durchzuführen gekennzeichnet sind. Der folgende Text und das daran anschließende Taktdiagramm erleichtern das Verständnis der Transaktionssequenz.
  • Sequenzstart – Eine EM-Bustransaktion wird dadurch ausgelöst, dass eine Software das Register EM0START oder EM1START beschreibt. Das „In-Progress"-Bit des EM-Statusregisters wird unverzüglich gesetzt. Weitere Schreibzugriffe auf EM-Register werden von dem ASIC-Baustein deaktiviert, solange das „In-Progress"-Bit gesetzt ist, um eine Störung der laufenden Bussequenz zu vermeiden. Es ist Aufgabe der Software sicherzustellen, dass neue Bustransaktionen erst ausgelöst werden, wenn die EM-Einheit nicht belegt ist (das „In-Progress"-Bit „low" ist). Die Bustransaktion wird von dem EMC0-Signal getaktet, wenn die Sequenz von einem Schreibvorgang im EM0START-Register ausgelöst wurde. Wurde die Sequenz durch einen Schreibvorgang im EM1START-Register ausgelöst, wird die Bustransaktion von dem EMC1-Signal getaktet. Der eigentliche Start der EM-Bussequenz (als EMCST bezeichnet) erfolgt auf der ersten abfallenden Flanke der EMC-Zeitbasis nach Auslösung der Transaktion.
  • Modul-/Registeradresse – Am Punkt EMCST setzt der Master das XA_OD-Signal „low" und aktiviert die EMC- und EMD-Signale. Die Erkennung eines aktiven XA_OD-Signals auf einer ansteigenden Flanke des EMC wird von dem Slave dazu benutzt, den Start einer Adressierungsoperation zu identifizieren. Anschließend erzeugt der Master 10 Takte auf dem EMC-Signal, wobei die Inhalte des EMADDR-Registers sowie zwei (2) Paritäts-Bits, P1 und P0, nacheinander auf EMD getaktet werden. Das erste EMADDR-Bit, das auf EMD präsentiert wird, ist am EMCST-Punkt gültig. Das XA_OD-Signal wird bei EMC↓ 1 wieder „high" gesetzt. Der Master präsentiert bei jedem EMC↓ ein neues Bit auf EMD. Das EMD-Signal wird bei EMC↓ 10 ausgelöst. Der Slave hält gültige Informationen bei EMC↑ 1:10 (ansteigende Flanke von EMC 1:10).
  • „Daten lesen"-Sequenz – Für eine Lesen-Transaktion wird das EMDDIR-Signal bei EMC↓ 10 „low" gesetzt. Nach der Taktung der Modul-/Registeradress-Bits erzeugt der Master 13 weitere Takte (11:23) auf dem EMC-Signal. Die EMC-Takte 11:12 sind ungenutzte Takte, durch die der Slave Zeit erhält, die entsprechenden Registerdaten- und Paritäts-Bits für die Übertragung zur Verfügung zu stellen. Der ausgewählte Slave stellt 8 Daten- und 2 Paritäts-Bits auf dem EMD-Signal bei EMC↑ 13:22 bereit und kehrt bei EMC↑ 23 in den Ruhezustand zurück (zu diesem Zeitpunkt löst der Slave das EMD-Signal aus). Der Master hält Informationen bei EMC↑ 14:23. Der Slave stellt zuerst das höchstwertige Bit des Datenwertes bereit, dann das P1-Paritäts-Bit und schließlich das P0-Paritäts-Bit. Der Datenwert wird im Register EMDATA gespeichert. Der Master bestimmt die Parität des in EMDATA gespeicherten Wertes und vergleicht diesen berechneten Paritätswert mit den vom Slave empfangenen Paritäts-Bits. Wenn die berechnete Parität und die empfangene Parität nicht übereinstimmen, wird das Fehler-Bit im EM-Statusregister gesetzt. Andernfalls wird das Fehler-Bit gelöscht. Das EMDDIR-Signal wird bei EMC↓ 23 ausgelöst („high" gesetzt).
  • „Daten schreiben"-Sequenz – Für eine Schreiben-Transaktion nach der Taktung der Modul-/Registeradress-Bits erzeugt der Master 14 weitere Takte (11:24) auf dem EMC. Der Master stellt acht (8) Daten-Bits (aus dem EMDATA-Register) auf EMD bereit, gefolgt von zwei (2) Paritäts-Bits (P1, dann P0). Der Master präsentiert die Daten- und Paritäts-Bits bei EMC↓ 10:19, löst anschließend das EMD-Signal aus und setzt bei EMC↓ 20 das EMDDIR-Signal in den Status „low". Der Slave hält gültige Informationen bei EMC↑ 11:20. Der Slave reagiert auf einen kompletten Schreiben-Zyklus und korrekte Parität, indem er die Bits 0 und anschließend 1 vom EMD bei EMC↑ 22:23 taktet. Der Master hält diese Bestätigungsantwort an EMC↑ 23:24. Der Slave kehrt in den Ruhezustand zurück und löst EMD bei EMC↑ 24 aus.
  • Lautet der von dem Master gelesene 2-Bit-Bestätigungswert nicht 01, wird das Fehler-Bit im EM-Statusregister gesetzt. Andernfalls ist der Bestätigungswert korrekt und wird das Fehler-Bit gelöscht. Das EMDDIR-Signal wird bei EMC↓ 24 ausgelöst („high" gesetzt).
  • Sequenzende – Das Ende der Bussequenz liegt per Definition auf der ersten ansteigenden Flanke der EMC-Zeitbasis nach EMC↓ 23 (Lesen-Transaktion) bzw. EMC↓ 24 (Schreiben-Transaktion). Bei EMCND wird das „In-Progress"-Bit des EM-Statusregisters gelöscht. Das Fehler-Bit muss gültig sein, wenn das „In-Progress"-Bit gelöscht wird. Die Bussignale sollten in ihrem Ruhezustand sein.
  • Paritäts-Prüfbits
  • Zwei Paritäts-Bits werden verwendet, um die Parität eines einzelnen 8-Bit-Wertes anzugeben. Jedes dieser beiden Paritäts-Bits repräsentiert ungerade Parität in fünf (5) Bits des Wertes, wie in der Tabelle in 27 zu sehen. Ungerade Parität in einer ungeraden Anzahl Bits gewährleistet, dass Felder aus lauter 1- oder lauter 0-Werten gegenteilige Paritäts-Bits besitzen.
  • Betrachtungen zur Software-Schnittstelle
  • Eine typische EM-Bustransaktion umfasst das Beschreiben des EMADDR-Registers durch die Software, das Schreiben eines Datenbytes in das EMDATA-Register (bei einer Schreiben-Transaktion) und anschließend das Beschreiben der Register EM0START bzw. EM1START, um die Sequenz zu veranlassen. Die Software wird wiederholt das „In-Progress"-Bit des EM-Statusregisters lesen, um zu ermitteln, wann die Transaktion abgeschlossen ist. Sobald die EM-Bustransaktion abgeschlossen ist, wird das „In-Progress"-Bit gelöscht und das Fehler-Bit entsprechend gesetzt. Der Datenwert kann jetzt aus dem EMDATA-Register gelesen werden, wenn eine Lesen-Transaktion durchgeführt wurde. Die Software kann unter Umständen sicherstellen, dass nur das EMSTAT-Register gelesen wird, solange die Transaktion noch läuft, und die EM-Einheit kann so ausgelegt sein, dass sie jederzeit einen Lesezugriff der Software auf dieses Register ordnungsgemäß abwickelt.
  • Wenn ein Interrupt-Ereignis eintritt, während eine EM-Bustransaktion noch läuft, und die Interrupt-Routine die Benutzung der EM-Einheit erforderlich macht, dann kann diese Routine den Status des „In-Progress"-Bits abtasten und warten, bis die Transaktion abgeschlossen ist, bevor auf andere Register der EM-Einheit zugegriffen wird. Solche Interrupt-Routinen weisen in der Regel eine Verpflichtung auf, die Inhalte der Register EMADDR und EMDATA sowie den Status des Fehler-Bits zu speichern und wiederherzustellen. Dies ist erforderlich, damit diese Register die korrekten Werte für die Bustransaktion enthalten, die durch die Interrupt-Routine gestartet wird, sobald die Steuerung wieder zu dieser Routine zurückkehrt.
  • Deaktivierung des Ausgangs mithilfe des XA_OD-Signals
  • Das XA_OD-Signal dient dem doppelten Zweck, einerseits den Start des Adresszyklus und andererseits das Auftreten einer „Ausgang deaktivieren"-Bedingung (verursacht durch einen Systemfehler in der Zentraleinheit CPU) zu erkennen. Mit der niedrigsten erwarteten Busrate von ~1 MHz beträgt die längste normale Bestätigung von XA_OD in Adressnutzung ~1 μs. Ein Schwellenwert von ~100 mal diesem Wert, oder 100 μs, für die Slave-Erkennung von XA_OD als eine Ausgangsdeaktivierung ermöglicht die Verwendung eines einfachen Dioden/R/C-Filters am Slave und ergibt eine ausreichend reaktive Ausgangsdeaktivierungsfunktion. Das externe XA_OD-Signal ist das logische OR des Adresszyklus-Identifikationssignals vom Zustandsautomaten des EM-Busses und des Ausgang-OK-Signals, das von der Watchdog-Timer-Einheit ausgeht.
  • Anwenderprogrammspeicher
  • Der Anwenderprogrammspeicher kann dazu verwendet werden, das Anwenderprogramm zu speichern. Das Ende des Hauptprogramms kann durch die Verwendung einer MEND-Anweisung (MEND = Main Program END, Ende des Hauptprogramms) terminiert werden. Der verbleibende Teil des Anwenderprogrammspeichers jenseits der MEND-Anweisung kann für Sub-Routinen und Interrupt-Routinen reserviert werden.
  • Serielle Kommunikation
  • Die speicherprogrammierbare Steuerung PLC stellt einen seriellen Kommunikations-Port bereit, wie unter Bezugnahme auf 1 beschrieben. Der Kommunikations-Port nutzt RS485-Signalpegel und ist in der Lage, mit 9,6 KB, 19,2 KB oder 187,5 KB zu arbeiten, wobei er gleichzeitig die Kommunikationsprotokolle des Systems unterstützt (PPI oder DP/T). Dieser Port dient als Schnittstelle des Programmierers zu der speicherprogrammierbaren Steuerung PLC. Darüber hinaus steht der Port im RUN-Modus für die Verwendung als universeller Kommunikations-Port (als Freeport-Modus bezeichnet) unter voller Kontrolle des Anwenderprogramms zur Verfügung. Im Freeport-Modus kann der Kommunikations-Port mit Baudraten von 300 Baud bis 38,4 KB arbeiten. Die physische Verbindung zum RS485-Port erfolgt über einen 9-poligen D-Stecker.
  • SM-(Special Memory-)Bits (siehe Abschnitt 6.2, SM2, SM3, SM30 und SM130) werden für die Nutzung des Kommunikations-Ports als frei programmierbarer Port (Freeport) bereitgestellt. Der standardmäßige Status der „Special Memory"-Bits, die die Nutzung des Kommunikations-Ports regeln, ermöglicht die Nutzung des Kommunikations-Ports als Programmierschnittstelle. Wenn das Anwenderprogramm das „Special Memory"-Bit aktiviert, das die Nutzung des Kommunikations-Ports regelt, wird das Anwenderprogramm in die Lage versetzt, über den Kommunikations-Port Nachrichten zu senden und zu empfangen. In diesem Betriebs-Modus kann der Anwender den Port für jedes gewünschte zeichenbasierte Protokoll konfigurieren (7 oder 8 Bits/Zeichen, ungerade, gerade oder keine Parität und Baudrate). Der Port arbeitet im Halbduplex-Modus, und das Anwenderprogramm kann den Port im Poll- oder im Interrupt-Modus nutzen. Ein Empfangszeichen-Pufferspeicher wird im SM-Anwenderbereich bereitgestellt, zusammen mit einem Kommunikations-Statusregister und einem Konfigurations-Register, der das Bit enthält, welches den Betriebs-Modus des Ports regelt. Alle Kommunikations-Funktionen mit Ausnahme von Senden können über die speziellen Register im SM-Speicher ausgeführt werden. Senden ist nur mithilfe der speziellen „Write Port Message"-Anweisung möglich. Das Anwenderprogramm hat niemals direkten Zugriff auf den Kommunikations-Controller oder die Interrupt-Struktur der Maschine.
  • Lesen und Schreiben über Netzwerk im PPI-Master- bzw. -Slave-Modus
  • Die speicherprogrammierbare Steuerung PLC kann unter Umständen als PPI-Slave fungieren. Im PPI-Slave-Modus übernimmt die speicherprogrammierbare Steuerung PLC die Funktion eines Responders und reagiert auf Kommunikationsnachrichten.
  • In einer Anordnung der Erfindung kann, wenn die Zentraleinheit CPU in den RUN-Modus gesetzt wird, die speicherprogrammierbare Steuerung PLC sowohl als ein PPI-Master als auch als ein PPI-Slave fungieren. Der Anwender kann den PPI-Master-Modus unter Kontrolle des Anwenderprogramms, das im Anwenderprogrammspeicher gespeichert ist, auswählen. In dieser Anordnung kann ein ausreichend bekanntes Token-Ring-Kommunikationsprotokoll implementiert werden, um die Kommunikation zwischen Master und Slave zu realisieren. Im PPI-Master-Modus ist die speicherprogrammierbare Steuerung PLC in der Lage, das Token zu halten und PPI-Requests zu veranlassen, wodurch der Anwender die Möglichkeit erhält, mittels Netzwerk-Lese- und -Schreib-Anweisungen auf Daten in anderen Zentraleinheiten zuzugreifen. Hat die Zentraleinheit CPU das Token nicht, reagiert sie auf alle Requests als ein PPI-Slave. Die Größen des Kommunikations-Pufferspeichers für die PPI-Kommunikation sind in der Tabelle in 28 definiert.
  • Solange die speicherprogrammierbare Steuerung PLC als PPI-Master fungiert, wartet sie das Netzwerk entsprechend ausreichend bekannten Kommunikationsstandards (beispielsweise etwa der PROFIBUS-Definition, die von der europäischen Norm EN 50170 bereitgestellt wird). Die speicherprogrammierbare Steuerung verwendet den nachstehenden Algorithmus für die Berechnung der geplanten Token-Umlaufzeit (Target Token Rotation Time, TTRT). TTRT = (8 + HSA)(256)(1/BR)wobei
  • TTRT
    – die Target Token Rotation Time ist
    HSA
    – die höchste Stationsadresse (Highest Station Address) ist
    BR
    – die Baudrate in Bits pro Sekunde ist
  • Wenn bei Empfang des Tokens der Target Token Rotation Timer abgelaufen ist, gibt die speicherprogrammierbare Steuerung PLC das Token unmittelbar weiter an den nächsten Token-Inhaber, ohne Nachrichten zu senden, die sich möglicherweise vor Empfang des Tokens in der Warteschlange angesammelt haben.
  • In PPI-Master-Modus bereitgestellter Freeport-Link
  • Die vorliegende Erfindung stellt den Betrieb des Kommunikations-Ports als frei programmierbarer Port, nachfolgend „Freeport" genannt, bereit, was es dem Anwender erlaubt, den Port entweder manuell oder durch den Ablauf eines Anwenderprogramms zu steuern. Die Prozedur des Freeport-Betriebs ist in 30a dargestellt.
  • In der vorliegenden Erfindung implementiert der Anwender die Nutzung des Freeport (Schritt S3000), indem er ein Interrupt der speicherprogrammierbaren Steuerung PLC erzwingt (Schritt S3002), wie es der vorstehend beschriebenen Interrupt-Architektur entspricht. In diesem Fall veranlasst der Anwender die Kommunikation über den Freeport, solange die speicherprogrammierbare Steuerung PLC im Master-Modus arbeitet, indem er ein Interrupt-Ereignis anhängt, das die Steuerung des Kommunikations-Ports an das Anwenderprogramm übergibt (Schritt S3004). Dies erfolgt, solange das Systemprotokoll das Token hat (Schritt S3006).
  • Als Reaktion hierauf gibt die speicherprogrammierbare Steuerung PLC die Kontrolle an das Anwenderprogramm ab (Schritt S3008). Die speicherprogrammierbare Steuerung PLC regelt die UART-Einstellungen (Schritt S3010) entsprechend den SM-Bit-Definitionen SMB30 und SMB130, die in 30b dargestellt sind. Dabei werden die Modus-Bits der SMB30- und der SMB130-Definition von der speicherprogrammierbaren Steuerung PLC auf den PPI-Master-Modus gesetzt (Schritt S3012).
  • Nachdem die Steuerung vom System an die Interrupt-Routine des Anwenders übergegangen ist, steuert das Anwenderprogramm das Senden und Empfangen von Nachrichten über den Freeport (Schritt S3014). Sobald das Anwenderprogramm seine Aufgabe erfüllt hat, kann das Anwenderprogramm die Steuerung wieder an das System zurück übertragen, indem eine spezielle Anweisung ausgeführt wird, mit der der Freeport-Betrieb beendet wird (Schritt S3016). Die Anweisung, die verwendet wird, um den Freeport-Betrieb zu beenden, ist in der Tabelle in 29 beschrieben. Das System nimmt daraufhin den normalen Betrieb wieder auf, indem es das Token an die nächste Station weitergibt (Schritt S3018). Das System ist zuständig für die Wartung aller Aspekte des Netzwerks, ganz so, als wäre dem Anwenderprogramm nie eine Zeitspanne innerhalb der Token-Haltezeit der speicherprogrammierbaren Steuerung PLC eingeräumt worden (Schritt S3020).
  • Integriertes Freeport-Protokoll
  • Um eine höhere Performance in der Kommunikation über das PPI-Protokoll zu bieten, wird eine integrierte Protokollauswahloption für das PPI-Protokoll bereitgestellt. Wenn sich die speicherprogrammierbare Steuerung PLC im RUN-Modus befindet und durch den in das SM30- bzw. SM130-Register geschriebenen Wert das Freeport-PPI-Protokolls ausgewählt wird, wird der Kommunikations-Port gemäß den in SM30 bzw. SM130 eingetragenen Werten konfiguriert. Wenn der Freeport- Modus beendet wird, kehrt die speicherprogrammierbare Steuerung PLC wieder zu dem standardmäßigen PPI-Protokoll mit der ausgewählten Baudrate zurück. Der Code für die Auswahl des Freeport-PPI-Protokolls entspricht der Definition durch SM30 (Port 0) und SM130 (Port 1). Die Tabelle in 30b enthält die Definition von SM30 und SM130.
  • Nachrichteneingangs-Interrupt des Freeports
  • Um die Programmierung für die Freeport-Kommunikation zu vereinfachen, unterstützt die speicherprogrammierbare Steuerung PLC eine Anweisung „Nachricht empfangen", die im Zusammenhang mit einem Nachrichteneingangs-Interrupt eingesetzt werden kann. Der Anwender spezifiziert die Bedingungen, die für die Definition des Anfangs und des Endes einer Nachricht benötigt werden. Die speicherprogrammierbare Steuerung PLC unterstützt folgende Spezifikationen von Bedingungen für Nachrichten:
  • Port 0:
    • SMB86 – Nachrichten-Status-Byte: gibt Terminierungsbedingungen an
    • SMB87 – Nachrichten-Kontroll-Byte: aktiviert die ausgewählten Kriterien für den Empfang von Nachrichten
    • SMB88 – Start-Zeichen: das Zeichen, das eindeutig den Anfang einer neuen Nachricht kennzeichnet
    • SMB89 – Ende-Zeichen: das Zeichen, das eindeutig das Ende der Nachricht kennzeichnet
    • SMW90 – nicht belegte Leitung: Zeitraum, nach dem das erste empfangene Zeichen eine neue Nachricht einleitet
    • SMW92 – Zeitüberlauf zwischen Zeichen/Nachrichten: die maximal zwischen Zeichen oder für den Empfang der Nachricht zulässige Zeit. Die Verwendung wird durch das Nachrichten-Kontroll-Byte bestimmt.
    • SMB94 – Zeichenzahl: die maximale Länge der empfangenen Nachricht
  • Port 1:
    • SMB86 – Nachrichten-Status-Byte: gibt Terminierungsbedingungen an
    • SMB87 – Nachrichten-Kontroll-Byte: aktiviert die ausgewählten Kriterien für den Empfang von Nachrichten
    • SMB88 – Start-Zeichen: das Zeichen, das eindeutig den Anfang einer neuen Nachricht kennzeichnet
    • SMB89 – Ende-Zeichen: das Zeichen, das eindeutig das Ende der Nachricht kennzeichnet
    • SMW90 – nicht belegte Leitung: Zeitraum, nach dem das erste empfangene Zeichen eine neue Nachricht einleitet
    • SMW92 – Zeitüberlauf zwischen Zeichen/Nachrichten: die maximal zwischen Zeichen oder für den Empfang der Nachricht zulässige Zeit. Die Verwendung wird durch das Nachrichten-Kontroll-Byte bestimmt.
    • SMB94 – Zeichenzahl: die maximale Länge der empfangenen Nachricht
  • Das erste Byte des Empfangspuffers wird als ein Zeichen-Zähler verwendet, der gegebenenfalls angibt, wie viele Zeichen durch die Nachrichtenempfangs-Funktion empfangen wurden. Die Definition für jedes dieser „Special Memory"-(SM-)Register ist in der Tabelle in den 30c und 30d enthalten.
  • DP_S7-Kommunikation
  • Die speicherprogrammierbare Steuerung PLC kann das DP/T-Protokoll unterstützen, das eine MPI-Transportmöglichkeit für die Master-Slave-Kommunikation bereitstellt. PPI-Nachrichten sind vollständig kompatibel mit den DP/T-Nachrichten, so dass keinerlei Auswahl eines speziellen Protokolls erforderlich ist. Die speicherprogrammierbare Steuerung PLC kann sowohl ein PPI-Request als auch ein DP/T-Request entgegennehmen und entsprechend reagieren. Die Unterstützung der DP/T-Kommunikation über den PPI-Port kann unter Umständen HD4-Konformität bei Übertragungen von der speicherprogrammierbaren Steuerung PLC mit allen unterstützten Baudraten beinhalten.
  • Während es sich bei PPI um ein verbindungsloses Protokoll handelt, ist DP/T ein verbindungsorientiertes Protokoll. Die Tabelle in 30d definiert die Anzahl von DP/T-Verbindungen und die Puffergröße für jede Verbindung, die von jeder speicherprogrammierbaren Steuerung PLC an jedem Port unterstützt wird. Diese Tabelle beinhaltet nicht den Pufferspeicher für das standardmäßige SAP, das an jedem Port gegebenenfalls unterstützt wird.
  • Modem-Kommunikation
  • Die Zentraleinheit CPU der vorliegenden Erfindung unterstützt die Kommunikation über standardmäßige 10-Bit-Vollduplex-Modems. Dies ist besonders wichtig, da das neuere 11-Bit-Modem für den Breiteneinsatz meist zu teuer ist. Es wurde entdeckt, dass dies ganz besonders in industriellen Umgebungen der Fall ist, wo die industrielle Technik in der Regel hinter dem neusten Stand der Computer-Hardware-Technik zurückbleibt. Dagegen sind die älteren 10-Bit-Modems im industriellen Bereich weit verbreitet. Die vorliegende Erfindung zieht Vorteil aus der Entdeckung, dass in der Industrie 10-Bit-Modems im Überfluss vorhanden sind, und stellt daher ein einzigartiges 10-Bit-Protokoll bereit, über das die speicherprogrammierbare Steuerung PLC gemäß der vorliegenden Erfindung (bzw. eine beliebige Steuerung oder ein beliebiger Prozessor für diesen Zweck) in derart ausgerüstete Fabrikationsumgebungen eingebunden werden kann. Natürlich ist das 10-Bit-Protokoll der vorliegenden Erfindung ebenfalls hervorragend geeignet und einsetzbar für andere Konstellationen, in denen 10-Bit-Modems zum Einsatz kommen.
  • Ein weiterer Vorteil des 10-Bit-Protokolls gemäß der vorliegenden Erfindung besteht darin, dass das 10-Bit-Protokoll zu Protokollen höherer Ordnung kompatibel ist. Somit kann das 10-Bit-Protokoll auch von Modems mit 11 Bit oder höher empfangen werden.
  • Das 10-Bit-Protokoll der vorliegenden Erfindung läuft der gängigen Lehrmeinung zuwider. Natürlich widerspricht es den heutigen Gepflogenheiten, weniger Bits einzusetzen als mithilfe der modernsten Modem-Technologie möglich. Und noch konträrer dazu ist es, ein 10-Bit-Modemprotokoll zu verwenden, da die vorliegende Erfindung das Paritäts-Bit opfert, den Dreh- und Angelpunkt, an dem die gesamte Fernkommunikation hängt, wenn es um die Gewährleistung der Datenintegrität geht.
  • Und tatsächlich sieht es, wenn man bedenkt, dass speicherprogrammierbare Steuerungen (PLC) für die Steuerung von Maschinen wie beispielsweise etwa Schwermaschinen oder Präzisionsrobotern zuständig sind, auch so aus, dass das Unternehmen in seiner Geschäftstätigkeit unterbrochen oder, was noch schlimmer wäre, jemand aufgrund fehlerhafter Befehle einer speicherprogrammierbaren Steuerung PLC verletzt werden könnte. Jeder normale Praktiker würde daher dringend von einem 10-Bit-Protokoll abraten.
  • Das 10-Bit-Protokoll gemäß der vorliegenden Erfindung wird unter Bezugnahme auf 31 beschrieben. In einer Anordnung ist das Protokoll, das für die Modem-Kommunikation verwendet wird, eine Modifikation des standardmäßigen PPI-Protokolls. Natürlich sind auch andere Bit-Zuweisungen möglich. Das PPM- oder Punkt-zu-Punkt-Modem-Protokoll, wie es hier spezifiziert ist, weist die Bits folgendermaßen zu:
    1 – Start-Bit
    8 – Daten-Bits
    1 – Stopp-Bit
    0 – Paritäts-Bits
  • In dem PPM-Protokoll erfolgt auf jedes Request von dem Master eine Antwort ohne eine Zwischenbestätigung oder -abfrage (Schritt S3100). Es wird empfohlen, dass im PPM-Protokoll ausschließlich die für das PPI-Protokoll definierten SD2-Nachrichtentypen verwendet werden (Schritt S3104). Um diese Anforderung zu erfüllen, kann das Master-Gerät spezifizieren, dass das Master/Slave-Protokoll (DP/T) für das „Establish Association"-Request verwendet werden soll (Schritt S3106). Nach jedem Request kann der Master beispielsweise dem Slave-Gerät 15 Sekunden Zeit lassen zum Antworten, bevor ein Zeitüberlauf für die Transaktion festgestellt wird (Schritt S3108). Bei Eingang eines Request räumt der Slave eine minimale Bearbeitungszeit von beispielsweise 20 Millisekunden ein, bevor eine Antwort ausgegeben wird (Schritt S3110).
  • Jede Request-/Antwortnachricht ist vorzugsweise eine SD2 PPI-Nachricht (Schritt S3112) mit einem 16-Bit-CRC-Prüfcode, der in Form der letzten beiden Bytes der Nachricht angehängt ist (Schritt S3114). Die zyklische Redundanzprüfung (Cyclic Redundancy Check, CRC) verwendet das dem Industriestandard entsprechende Polynom (X16 + X12 + X5 + 1), das als das CRC-CCITT-Polynom bekannt ist (Schritt S3116). Die CRC wird über den gesamten SD2-Rahmen mit Ausnahme der Start- und Stopp-Bits hinweg berechnet (Schritt S3118). Der CRC-Generator kann vorab auf lauter 1-Werte sowohl für das Senden als auch für das Empfangen eingestellt werden (Schritt S3120). In diesem Fall wird bei Empfang einer gültigen Nachricht ein Muster 0x1D0F erzeugt (Schritt S3122).
  • Das PPM-Protokoll wird an die speicherprogrammierbare Steuerung PLC signalisiert, indem der Kontaktstift 9 des Kommunikations-Port-Anschlusses geerdet wird. Die speicherprogrammierbare Steuerung PLC stellt an diesem Kontaktstift einen internen Pull-Up-Widerstand bereit, um die standardmäßigen PROFIBUS-Protokolle auszuwählen.
  • Es versteht sich, dass das 10-Bit-Modem-Protokoll nicht notwendigerweise auf 10 Bits beschränkt ist, sondern auf eine beliebige Anzahl Bitkonfigurationen erweitert werden kann, darunter beispielsweise {1, 2, 3 ... 9, 10, 11 ... ∞). Und so ist die vorliegende Erfindung denn wohl auch besser als ein n-Bit-Protokoll anzusehen, das kein Paritäts-Bit beinhaltet. Das n-Bit-Protokoll kann anhand der vorstehenden Beschreibung implementiert werden, um die Integrität der Daten zu gewährleisten.
  • Verbergen von Teilen des Anwenderprogramms
  • Die speicherprogrammierbare Steuerung PLC sorgt für den Schutz von proprietärer Software bzw. proprietärem Code. Dasselbe Merkmal erlaubt der Steuerung, Teile des Codes vor dem Anwender zu verbergen, die möglicherweise nicht zur Anzeige für den Anwender bestimmt sind, beispielsweise etwa Code, den die speicherprogrammierbare Steuerung PLC für die Durchführung von Routineoperationen innerhalb der Steuerung generiert. Dieses Merkmal ermutigt Entwickler von Fremdsoftware, Programme bereitzustellen, die ansonsten genau davor zurückscheuen würden, weil der Code andernfalls für Anwender zugänglich wäre.
  • Zu diesem Zweck unterstützt die speicherprogrammierbare Steuerung PLC eine HIDE-Anweisung, mit deren Hilfe der Anwender (oder das Programmiergerät) Teile des Anwenderprogramms identifizieren und verbergen kann. Die Programme der speicherprogrammierbaren Steuerung PLC werden in den Anwenderprogrammspeicher übertragen und dort gespeichert, wobei die verborgenen Code-Abschnitte verschlüsselt sind. Die speicherprogrammierbare Steuerung PLC entschlüsselt die verborgenen Code-Abschnitte bei der Kompilierung, um das ausführbare Programm zu generieren. Sobald die Kompilierung abgeschlossen ist, werden die verborgenen Code-Abschnitte wieder verschlüsselt.
  • Es besteht die Möglichkeit eines vom Anwender eingegebenen Passworts, das dazu verwendet wird, den Teil des Programms zu verschlüsseln, der verborgen werden soll. Auf diese Weise kann ausschließlich die Person mit der entsprechenden Zugriffsberechtigung die verborgenen Programmteile einsehen.
  • Wie in 32a dargestellt markiert die „Hide"-Anweisung gemäß der vorliegenden Erfindung den Beginn der verschlüsselten Teile. In der Erfindung wird ein Flag „P" gesetzt, um anzuzeigen, dass verschlüsselter Code vorhanden ist. Es soll jetzt unter Bezugnahme auf 32b die Funktionsweise der „Hide"-Funktion beschrieben werden. In Schritt S3200 ruft der Anwender die „Hide"-Anweisung für ein bestimmtes Stück proprietären Codes auf. Als Reaktion hierauf veranlasst die speicherprogrammierbare Steuerung PLC, dass das „P"-Flag gesetzt wird (Schritt S3202). Die speicherprogrammierbare Steuerung PLC verschlüsselt den Code mit einem Passwort, das gegebenenfalls vom Anwender bereitgestellt wird (Schritt S3204), und fügt am Beginn und am Ende des Codes das „Hide"-Etikett in den Anwenderprogrammspeicher ein, um den verschlüsselten Programmteil zu kennzeichnen (Schritt S3206). Bei der Kompilierung des Anwenderprogramms (Schritt S3208) veranlasst die speicherprogrammierbare Steuerung PLC, dass der verschlüsselte Teil entschlüsselt wird (Schritt S3210), und wird das Anwenderprogramm normal ausgeführt (Schritt S3212). Sobald die Ausführung des Programms abgeschlossen ist, verschlüsselt die speicherprogrammierbare Steuerung PLC den proprietären Code wieder (Schritt S3214).
  • Anwenderpasswörter
  • Ein eingeschränkter Zugriff auf die Funktionen und den Speicher der speicherprogrammierbaren Steuerung PLC kann durch Verwendung eines Passworts realisiert werden, das es dem Anwender erlaubt, Zugriffsbeschränkungen zu konfigurieren. Ohne Passwort kann die speicherprogrammierbare Steuerung PLC unter Umständen einen uneingeschränkten Zugriff ermöglichen. Wenn die speicherprogrammierbare Steuerung jedoch durch ein Passwort geschützt ist, kann sie alle Vorgänge unterbinden, die gemäß der Konfiguration, die zum Zeitpunkt, als das Passwort eingerichtet wurde, eingeschränkt waren. Die speicherprogrammierbare Steuerung PLC kann einer einzelnen Station gestatten, die Kommunikationsverbindung zu legitimieren, so dass der Anwender an der betreffenden Station uneingeschränkten Zugriff hat. Der Anwender, der das Passwort kennt, kann die Einschränkungen jederzeit neu konfigurieren, indem er das richtige Passwort eingibt und die Einschränkungsklasse bearbeitet. Anwender, denen das Passwort nicht bekannt ist, müssen mit den Einschränkungen leben, die die Person, welche das Passwort kennt, verhängt.
  • In dem Fall, dass der Anwender ein Passwort vergisst, kann das Master-Passwort verwendet werden, um Zugriff auf die speicherprogrammierbare Steuerung PLC zu erhalten. Damit das Master-Passwort wirksam wird, muss sich der Modus-Schalter der speicherprogrammierbaren Steuerung PLC entweder in der STOP- oder in der TERM-Position befinden. Wenn das Master-Passwort benutzt wird, führt die Software der speicherprogrammierbaren Steuerung PLC folgende Aktionen aus:
    • 1. Die speicherprogrammierbare Steuerung schaltet in den Stop-Modus
    • 2. Das Anwenderprogramm (OB1) wird gelöscht
    • 3. Der Anwenderdatenspeicher (DB1) wird gelöscht
    • 4. Wenn SDB0 existiert, werden alle Parameter von SDB2 mit Ausnahme der Stationsadresse und der Baudrate nach SDB0 kopiert
    • 5. Alle SM-Flags werden auf ihren Standard-Status gesetzt
    • 6. Alle Flags werden gelöscht
    • 7. Alle SCR-Bits werden gelöscht
    • 8. Analoge Ausgänge werden eingefroren
    • 9. Alle Systemdatenspeicher werden in den Standard-Status versetzt
    • 10. Alle erzwungenen Eingangspunkte werden gelöscht und rückgesetzt.
    • 11. Die Tageszeituhr wird nicht geändert
    • 12. Alle aktuellen Timer/Zählerdaten werden gelöscht
    • 13. Das interne EEPROM wird initialisiert (OB1 und DB1 werden gelöscht und SDB2 wird nach SDB0 kopiert, mit Ausnahme der Stationsadresse, und alle Eingänge, Ausgänge und Datenwerte werden rückgesetzt)
  • Unterstützung von Systemfunktionsaufrufen
  • Die speicherprogrammierbare Steuerung PLC 100 unterstützt Systemfunktionsaufrufe (SFC, System Function Call), so dass der Anwender individuell angepasste Funktionen an die speicherprogrammierbare Steuerung PLC heraufladen kann.
  • Im Allgemeinen können Systemfunktionsaufrufe SFC beispielsweise durch die Siemens S7-200 Entwicklungsgruppen erstellt und von dem Programmiergerät an die speicherprogrammierbare Steuerung PLC heruntergeladen werden. Die speicherprogrammierbare Steuerung PLC unterstützt mindestens zwei Systemfunktionsaufrufe SFC. Die maximale Größe jedes SFC ist abhängig von den Ressourcen, die in der jeweiligen speicherprogrammierbaren Steuerung PLC verfügbar sind. Für die in dieser Erfindung betrachtete Zentraleinheit CPU beträgt die Größe jedes Systemfunktionsaufrufs SFC maximal 8 KB einschließlich der Block-Header-Informationen. Systemfunktionsaufrufe erfordern nicht unbedingt Daten vom Anwender, obwohl eine Zuordnung von Systemdaten bereitgestellt werden kann. SFCs, die an die speicherprogrammierbare Steuerung PLC heruntergeladen wurden, werden Teil des Betriebssystems der betreffenden Steuerung. Die speicherprogrammierbare Steuerung PLC erlaubt es ferner, die Systemfunktionsaufrufe SFC heraufzuladen, herunterzuladen, zu löschen und in das Speichermodul zu kopieren. Die speicherprogrammierbare Steuerung PLC meldet das Vorhandensein von Systemfunktionsaufrufen SFC in den entsprechenden Verzeichnis-Kommunikationsfunktionen.
  • Die beispielhafte SFC-Anweisung ist in der Tabelle in 33a dargestellt. Jetzt stärker ins Detail gehend stellt 33b das Verfahren des Systemfunktionsaufrufs SFC dar. In Schritt S3300 teilt der Anwender der speicherprogrammierbaren Steuerung PLC mit, dass ein Systemfunktionsaufruf SFC heruntergeladen werden soll. Die speicherprogrammierbare Steuerung PLC führt das notwendige Handshaking-Protokoll für das Herunterladen aus (Schritt S3302) und der Systemfunktionsaufruf SFC wird heruntergeladen (Schritt S3304). Die speicherprogrammierbare Steuerung PLC speichert die heruntergeladene Funktion als Bestandteil der Funktionsbibliothek des Betriebssystems (Schritt S3306).
  • Neues Betriebssystems laden
  • Die speicherprogrammierbaren Steuerungen PLC können ein FLASH EPROM für die Speicherung des Betriebssystems verwenden, um das Laden eines neuen Betriebssystems über den Kommunikations-Port zu unterstützen. Dies wird erreicht, indem ein Boot-Block im FLASH EPROM verwendet wird, der nicht gelöscht werden kann, solange er in der speicherprogrammierbaren Steuerung PLC installiert ist.
  • Zum Laden eines neuen Betriebssystems kann ein Personal-Computer mithilfe eines PC/PPI-Kabels direkt mit der speicherprogrammierbaren Steuerung PLC verbunden werden. Die Verwendung von PROFIBUS-Karten, die in einem Personal-Computer installiert oder Teil eines PG sind, wird aufgrund der Komplexität des PROFIBUS-Protokolls, das als einziges Protokoll zusammen mit diesen Geräten eingesetzt werden kann, nicht bevorzugt.
  • Die Definition des Protokolls, das zum Laden des neuen Betriebssystems verwendet wird, erfolgt je nach Design, und jede Kommunikationsnachricht sieht die Überprüfung der Datenintegrität in Form von Prüfsummen oder CRC-Codes vor. Die Überprüfung der Integrität des neuen Betriebssystems erfolgt, bevor der normale Betrieb aufgenommen wird, jedoch erst nach der Programmierung des FLASH EPROM.
  • STL-Status
  • Es wurde festgestellt, dass das herkömmliche Debugging-System für die Beseitigung von Programmfehlern unvorteilhaft ist, da das Debugging-System der speicherprogrammierbaren Steuerung PLC nach dem bisherigen Stand der Technik das Debugging erst nach Ausführung des gesamten Programms durchführt oder sich in hohem Maße negativ auf das Timing der Programmausführung auswirkt. Aus diesem Grunde unterstützt die speicherprogrammierbare Steuerung PLC die Erfassung von Ergebnissen der Ausführung einer Gruppe von Anweisungen unmittelbar zu dem Zeitpunkt, zu dem jede Anweisung in der Gruppe ausgeführt wird. Diese neue Funktion läuft in Echtzeit ab und während die speicherprogrammierbare Steuerung PLC die Anweisung abarbeitet. Für die Implementierung dieser Funktion nutzt die speicherprogrammierbare Steuerung PLC das kompilierte Code-Segment, für das die Statusinformation erfasst werden soll.
  • In einer Anordnung ist der STL-Status in einer Anzeigevorrichtung implementiert, beispielsweise etwa einer Mensch-Maschine-Schnittstelle, die mit der speicherprogrammierbaren Steuerung PLC verbunden ist, wie in der Technik ausreichend bekannt. Die Größe des Statusfensters in der Anzeigevorrichtung wird bestimmt durch die Anzahl der Operandenwerte, die gegebenenfalls ausgegeben werden. Die speicherprogrammierbare Steuerung PLC kann beispielsweise einen Pufferspeicher von 200 Byte für Operandenwerte reservieren. Die Größe dieses Puffers basiert auf der Menge an Daten, die in einem einzigen Datenübertragungsrahmen ausgegeben werden können.
  • Vorzugsweise wird lediglich ein einziges STL-Statusfenster unterstützt. Mehrere Fenster zu unterstützen erfordert zusätzliche RAM-Kapazität und führt zu Synchronisations- und Auslösungsproblemen. Natürlich kann es sein, dass im Rahmen künftiger Weiterentwicklungen der Speichertechnologie auch eine Mehrzahl von Fenstern möglich sein wird.
  • Es sollte immer nur ein Gerät in der Lage sein, ein STL-Statusfenster zu öffnen. Die STL-Statusfenster-Funktion wird der Stationsadresse desjenigen Geräts zugeordnet, das das STL-Statusfenster geöffnet hat. Solange das STL-Statusfenster geöffnet bleibt, werden von der speicherprogrammierbaren Steuerung PLC alle weiteren Anforderungen zum Öffnen eines STL-Statusfensters zurückgewiesen.
  • Um ein STL-Statusfenster zu öffnen, kann das Programmiergerät die Adresse der ersten Anweisung in dem Fenster identifizieren und anschließend die Anzahl von Anweisungen in dem Fenster identifizieren. Das Grundformat der Fensterspezifikation ist nachstehend dargestellt.
  • Figure 00660001
  • In diesem Beispiel ist die einzige angegebene Adresse einer Anweisung die Speicheradresse der ersten Anweisung im Fenster. Das Programmiergerät trägt die gesamte Last sicherzustellen, dass die bei der Einrichtung des STL-Statusfensters angeforderten Antwortdaten in die 200 Bytes des Pufferspeichers passen.
  • Es ist ein Grundsatz, dass das STL-Statusfenster keinesfalls die Grenzen zwischen einzelnen Programmteilen überschreiten darf, beispielsweise Haupt zu Sub, Sub zu Sub, Sub zu Int, Int zu Int. Dies würde zu Betriebsunterbrechungen führen.
  • Ein beispielhaftes Format des Antwortpuffers ist in 34a dargestellt, in dem die Adresse der Anweisung am Beginn des STL-Statusfensters als positive Bestätigung dafür ausgegeben wird, dass die speicherprogrammierbare Steuerung PLC und das Programmiergerät dasselbe Fenster nutzen. Das Längenfeld gibt an, wie viele Bytes an Datenwerten in dem Datenbereich für jede Anweisung enthalten sind. Die zugehörigen Codes werden nun erläutert:
  • V 0
    – die Daten für diese Anweisung sind nicht gültig, da die Anweisung in diesem Abtastzyklus nicht ausgeführt wurde
    1
    – die Daten für diese Anweisung sind gültig
    ENO
    Das Bit „EnableOutput" (Ausgang aktivieren), das angibt, ob die Anweisung ohne Fehler ausgeführt wurde
    SCR
    Der Bit-Wert des SCR-Stacks
    S4–S0
    S0 bezieht sich auf den höchsten Stack-Wert und S1 bezieht sich auf den zweithöchsten Stack-Wert
    Daten
    Die ausgegebenen STL-Statusinformationen für die Anweisung. Das Programmiergerät ist zuständig für die automatische Syntaxanalyse der Daten auf der Grundlage des Requests, durch das das STL-Statusfenster eingerichtet wurde.
  • Die speicherprogrammierbare Steuerung PLC ist zuständig dafür sicherzustellen, dass die im STL-Statusfenster erfassten Daten aus einem einzigen Abtastzyklus stammen. Die speicherprogrammierbare Steuerung PLC zeigt dies dem Programmiergerät mittels des „Valid"-Flags (V) an, das mit Kellerspeicherwerten für jede Anweisung bereitgestellt wird. Intern verfolgt die speicherprogrammierbare Steuerung PLC, was gültig ist, indem sie einen Abtastzählerwert verwendet, der durch ein Request des STL-Statuspuffers zurückgesetzt wird und der für jeden Abtastzyklus erhöht wird. Wenn ein Wert in den STL-Statuspuffer geschrieben werden muss, wird das Abtastzähler-Statuswort für den Pufferspeicher mit dem aktuellen Wert des Abtastzählers verglichen. Sind die Werte unterschiedlich, wird der Abtastzählerwert in das Abtastzähler-Statuswort für den STL-Statuspuffer kopiert und werden alle „V"-Flags im Pufferspeicher gelöscht. Anschließend werden die neuen Werte im Pufferspeicher gespeichert und wird das „V"-Flag für die betreffende Anweisung gesetzt. Wenn die Werte der Abtastzähler gleich sind, werden die neuen Werte im Pufferspeicher gespeichert und wird das „V"-Flag für die betreffende Anweisung gesetzt. Auf diese Weise kann der Pufferspeicher stets mit den Daten des letzten Abtastzyklus aktualisiert werden und gleichzeitig die Synchronisation der Daten auf denselben Abtastzyklus gewährleisten.
  • Instrumentieren des Compiled Code-Fensters für STL-Status
  • Die Vorrichtung und die Funktionsweise der STL-Funktion sollen nun gleichzeitig unter Bezugnahme auf die 34b und 34c beschrieben werden. Der Abschnitt von kompiliertem Code, der den Anweisungen im STL-Statusfenster entspricht, wird durch die speicherprogrammierbare Steuerung PLC identifiziert (Schritt S3400) (in der Abbildung schattiert dargestellt). Der ursprüngliche kompilierte Code in diesem schattierten Bereich wird gespeichert (Schritt S3402) und anschließend wiederhergestellt, sobald die STL-Status-Operation abgeschlossen ist (S3420). Nachdem der ursprüngliche kompilierte Code gespeichert worden ist, wird der instrumentierte Code in einem anderen Bereich des RAM-Speichers kompiliert (S3404).
  • Für die Diskussion des Prozesses zur Instrumentierung des Codes müssen zunächst einige Begriffe wie folgt definiert werden:
  • Kompilierte Anweisung
    – Unter einer kompilierten Anweisung ist der Maschinen-Code oder ausführbare Code zu verstehen, der durch das Kompilieren einer STL-Anweisung entsteht. Allgemein wird jede STL-Anweisung in eine Mehrzahl von Maschinenanweisungen kompiliert.
    Instrumentierte Anweisung
    – Bei einer instrumentierten Anweisung handelt es sich um eine kompilierte Anweisung zusammen mit dem zusätzlichen Maschinen-Code, der zum Speichern des Status der Spannungsversorgung und der Operandenwerte erforderlich ist.
  • Um die Adressen der Etiketten für nächste Schleifen, Sub-Routinen und Interrupt-Routinen zu bewahren, wird jede kompilierte Anweisung im STL-Status-Fenster durch eine Verzweigung zu der instrumentierten Anweisung ersetzt (Schritt S3406). Jede instrumentierte Anweisung wird mit einer Rücksprunganweisung abgeschlossen, die die Steuerung an die nächste kompilierte Anweisung übergibt (Schritt S3408).
  • Die Verzweigung zu dem instrumentierten Code wird im Rahmen einer LCALL-Anweisung ausgeführt (Schritt S3410). Mit LCALL wird die Steuerung an den instrumentierten Code übertragen, der den STL-Status für diese Anweisung erfasst (Schritt S3412). Für diejenigen kompilierten Anweisungen, die länger sind als drei (3) Byte, wird der Rücksprungwert so eingestellt, dass die Steuerung an die nächste kompilierte Anweisung übertragen wird (Schritt S3414).
  • Die Startadresse der ersten kompilierten Anweisung im STL-Statusfenster kann vor der Instrumentierung ermittelt werden (Schritt S3416). Um die Zeit zu verkürzen, die für die Ermittlung dieser Adresse benötigt wird, kann eine Tabelle gepflegt werden, die einen Zeiger auf die Adresse beispielsweise jeder 25sten kompilierten Anweisung enthält (S3418). Eine derartige Tabelle würde für ein 8192 Byte umfassendes Anwenderprogramm etwa 300 Bytes in Anspruch nehmen. Wenn mehr RAM-Kapazität zur Verfügung steht, könnte die Tabelle mit Adresszeigern auf jede zehnte kompilierte Anweisung verweisen, wodurch die Zeit für die STL-Status-Instrumentierung noch weiter verkürzt würde.
  • Die speicherprogrammierbare Steuerung PLC verwendet die Tabelle aus 34c, die die schnellsten booleschen Anweisungen auflistet und zeigt, welche Änderungen erforderlich sind, um den Code so zu kompilieren, dass alle Anweisungen eine minimale Länge von drei (3) Byte haben. Die Anweisungen in den schattierten Bereichen der Tabelle geben für die speicherprogrammierbare Steuerung PLC an, welche Anweisungen modifiziert werden können.
  • Die vorstehend beschriebene Technik erfordert die geringste RAM-Kapazität, aber sie erfordert auch, dass alle Anweisungen in kompiliertem Code mindestens die Anzahl Bytes umfassen, die für die LCALL-Funktion erforderlich ist, welche für das Verzweigen zu dem instrumentierten Code-Bereich benutzt wird. Aus Gründen der Verständlichkeit wird bei obigen Ausführungen angenommen, dass die LCALL-Anweisung drei (3) Bytes erfordert und dass alle kompilierten Anweisungen drei oder mehr Bytes lang sind.
  • Design-Konzept
  • Das mechanische Design-Konzept für die PLC-Familie von speicherprogrammierbaren Steuerungen ist in 1 dargestellt. Dieses Konzept ist ein „Baustein"-Prinzip, das die Möglichkeit bietet, weitere Einheiten zur Erweiterung anzuschließen. Diese Erweiterungseinheiten haben die gleiche Gestaltung und Form. Design-Ziel ist, die Einheit so kostengünstig wie möglich zu halten und gleichzeitig das Erscheinungsbild der Siemens S7-300TM und S7-400TM zu bewahren.
  • Die PLC-Familie wird dieselbe Farbe und denselben Beschriftungsstil aufweisen wie die S7-300TM- und S7-400TM-Familie.
  • Gehäuse
  • Das PLC-Gehäuse ist aus einem einheitlichen Kunststoff in einheitlicher Farbe geformt (Noryl GFN1 SE1 Anthrazit 614 Herst. Nr. GE 93263). Die Einheit setzt sich zusammen aus einem Oberteil, einer Grundplatte, zwei Abdeckungen, einer DIN-Schienenhalterung und zwei Größen von Hohllichtleitern. Alle diese Bauteile werden zusammengesteckt, um eine einfache Fertigung zu ermöglichen. In dem Gehäuse sind Vorkehrungen getroffen, dass auch die Platinen in ihren jeweiligen Positionen einrasten können. Das E/A-Gehäuse ist in derselben Weise gestaltet wie das PLC-Gehäuse. Die Gehäuse sind für die Schutzart IP20 ausgelegt und dafür, das Eindringen von Fremdkörpern (beispielsweise einer Münze) in die Einheit zu verhindern. Die Tabelle in 35a zeigt eine mögliche Aufstellung von Abmessungen der Einheiten.
  • Montage der Einheiten
  • Die speicherprogrammierbare Steuerung PLC 3900, die in 35b dargestellt ist, ist dafür ausgelegt, entweder auf eine Schiene nach DIN-Norm 3906 oder auf eine Tafel 3908 montiert zu werden. Eine Montagehalterung dient dazu, die Einheit auf einer standardmäßigen DIN-Schiene des Typs 50022 zu befestigen, wenn die Montage der Einheit mit DIN-Schienen erfolgen soll. Soll die Einheit auf einer Tafel montiert werden, sind Montagelöcher vorgesehen, die Schrauben des Typs M4 (metrisch) oder #8 aufnehmen. Die PLC 3904 wird hier zusammengesteckt mit dem E/A-Erweiterungsmodul 3902 gezeigt. Ein Freiraum von beispielsweise 25 mm ist oberhalb und unterhalb der Einheit erforderlich, um den Zugang zu der Anwenderverdrahtung zu ermöglichen und für eine ausreichende Kühlung der Einheit zu sorgen.
  • Obwohl die vorliegende Erfindung in Bezug auf bestimmte Werte und Schaltkreisanordnungen beschrieben wurde, versteht es sich von selbst, dass andere Werte und Schaltkreisanordnungen an die Stelle der hier offenbarten treten können. Ferner ist offensichtlich, dass der Praktiker unmittelbar erkennen kann, wie der Software-Code der speicherprogrammierbaren Steuerung PLC zu implementieren ist und daher versteht, dass die verschiedenen Software-Anwendungen in jeder beliebigen geeigneten Programmiersprache geschrieben sowie auf jedem beliebigen geeigneten Speichermedium, beispielsweise nichtflüchtigen Speichermedien wie etwa Diskette, CD-ROM oder DVD, gespeichert werden können.
  • Diskreter Hochgeschwindigkeitsausgang für speicherprogrammierbare Steuerung PLC
  • Speicherprogrammierbare Steuerungen lösen programmierte logische Gleichungen mithilfe standardmäßiger digitaler Logik-Schaltkreise, die als beispielsweise 5-V- oder 3,3-V-Niedrigenergie-Schaltkreise arbeiten. Die Ergebnisse dieser Gleichungen bestehen in logischen Signalen, die anschließend an diskrete Gleichstrom-Ausgangspunkte bereitgestellt werden, welche signifikante Energie regeln (beispielsweise 24 V Gleichstrom oder höhere Spannungen und Ströme im Bereich 1 A oder höher). Diese diskreten Ausgangspunkte können eine Mehrzahl unterschiedlicher Lasten ansteuern, darunter induktive Lasten und Lampenlasten, die robuste Treiber-Schaltkreise erfordern. Von manchen Anwendern programmierbarer Steuerungen wird darüber hinaus gewünscht, Lasten mit schneller, präziser Schaltung anzusteuern, um beispielsweise Folgen gezählter Impulse für Schrittmotoren oder impulsbreitenmodulierte Darstellungen exakter analoger Werte zu erzeugen.
  • Ein Verfahren, mit dem diese Anforderungen erfüllt werden, besteht in der Bereitstellung von Ausgangsgeräten, die speziell für hohe Energien ausgelegt sind (beispielsweise optisch isolierte Leistungstransistoren), sowie anderen Ausgangsgeräten, die speziell für hohe Geschwindigkeit und präzise Schaltung ausgelegt sind (beispielsweise nicht isolierte Schalttransistoren oder digitale 5-V-Logikausgänge).
  • Es wäre ein Vorteil, wenn dasselbe Ausgangskonzept sowohl für Hochenergie-Anwendungen als auch für Hochgeschwindigkeits-/Präzisionstakt-Anwendungen eingesetzt werden könnte, entweder gleichzeitig oder zeitlich verschieden, wie dies von verschiedenen Anwendern der speicherprogrammierbaren Steuerung PLC unter Umständen gefordert werden könnte. Es wäre ebenfalls erwünscht, in dieser Konzeption die optische Isolierung beizubehalten, die aufgrund ausreichend bekannter Vorteile in industriellen Steuerungen sehr häufig angewandt wird. Es wäre ferner erwünscht, die Vorteile der kombinierten Anwendung zu realisieren und dabei gleichzeitig einen vergleichbaren Kostenrahmen einzuhalten wie bei Konzepten gemäß dem bisherigen Stand der Technik mit eingeschränkteren Einsatzgebieten.
  • Es wäre ferner erwünscht, in einem solchen Konzept die Leistungsaufnahme des Ausgangs-Schaltkreises zu begrenzen, um einen Temperaturanstieg in der speicherprogrammierbaren Steuerung PLC zu vermeiden.
  • Ein zusätzliches erwünschtes Merkmal solcher diskreter Ausgangs-Schaltkreise ist, dass sie ein Mittel aufweisen, um die Spannungsschwankungen zu unterdrücken, welche mit dem Ausschalten von induktiven Lasten verbunden sind. Eine weitere Anforderung an solche diskrete Ausgangs-Schaltkreise ist, dass sie bestimmte standardmäßige Tests der elektromagnetischen Störfestigkeit bestehen ohne fehlerhafte Einschaltungen und Ausschaltungen, die konträr zu dem Status der Befehlslogik sind. Eine weitere Anforderung an solche diskrete Ausgangs-Schaltkreise ist, dass sie über einen weiten Bereich von Speisespannungen (beispielsweise 20 bis 30 V Gleichstrom) ordnungsgemäß und konstant arbeiten. Ferner ist es eine Anforderung an einen solchen Schaltkreis, dass er in der Großserienfertigung kostengünstig und in konstanter Qualität reproduziert werden kann. Und es ist eine weitere Anforderung an einen solchen Schaltkreis, dass er standardmäßig einen sicheren bekannten Status hat, wenn die Steuerlogik nicht erregt ist, jedoch an dem Ausgangs-Schaltkreis Strom anliegt.
  • Ein typischer diskreter Gleichstromausgang einer programmierbaren Steuerung ist in 38 dargestellt, der einen optischen Trenntransistor (3801) verwendet, um das Gatter eines FET-Geräts (3802) durch ein geeignetes Widerstandsnetz (3803) anzusteuern. Die vom Anwender bereitgestellte Stromversorgung (3804) und externe Last (3805) sind von der speicherprogrammierbaren Steuerung PLC getrennt. Zusätzliche Komponenten, etwa an geeigneter Stelle platzierte Kondensatoren, können unter Umständen erforderlich sein, um Anforderungen an die Störfestigkeit zu erfüllen.
  • In einer alternativen Implementierung kommt an Stelle des FET ein bipolarer Transistor zum Einsatz, mit einem anderen geeigneten Widerstandsnetz zum Ansteuern der Basis. Weitere alternative Formen umfassen Ausgänge nach Art einer Stromsenke an Stelle der stromgesteuerten Form (High-Side-Treiber), wie hier dargestellt, wobei ein ergänzender FET oder bipolarer Transistor verwendet wird.
  • Die grundlegende Schaltkreis-Topologie stellt einen robusten Ausgang bereit, kann aber nicht ohne weiteres dazu gebracht werden, mit Geschwindigkeiten oberhalb von einigen wenigen Kilohertz (oder gleichbedeutend, mit Einschalt-/Ausschaltverzögerungen unterhalb mehrerer Mikrosekunden bis Zehnteln von Mikrosekunden) zu schalten. Das wichtigste Hindernis auf dem Weg zu einer höheren Schaltfrequenz ist der Optokoppler, insbesondere die Ausschaltzeit. Um den Betrieb über einen gesamten Anwender-Versorgungsspannungsbereich und mit einer Veränderung des Gewinns des Optokopplers im Zusammenhang mit der kostengünstigen Massenfertigung sowie einer Veränderung des Gewinns des Optokopplers im Zusammenhang mit der Alterung zu garantieren, ist es erforderlich, den Optokoppler-Eingangs-Treiber-Schaltkreis und die Impedanz des Gatter-Treiber-Schaltkreises am Ausgang des Optokopplers so auszulegen, dass der Optokoppler üblicherweise stark gesättigt ist, wenn die Ausgangsstufe eingeschaltet („ON") ist. Um die Verlustleistung an dem Gatter-Treiber-Schaltkreis in akzeptablen Grenzen zu halten, muss der Gatter-Treiber-Schaltkreis eine hohe Impedanz aufweisen. Bei einem Ausgangs-Schaltkreis mit hoher Impedanz schaltet der Optokoppler aus dem gesättigten Zustand heraus nur sehr langsam aus. Ferner trägt die hohe Impedanz des Treiber-Schaltkreises zu der geringen Schaltfrequenz des Leistungstransistors bei, da er die Frequenz des Wechsels zwischen Basis- oder Gate-Ladung begrenzt. Alle diese Effekte werden durch zusätzliche Kapazitanzen weiter verstärkt, die in den Schaltkreis eingefügt werden, um die elektromagnetische Störfestigkeit zu erhöhen.
  • Auf dem Markt sind allgemein Optokoppler-Geräte verfügbar, die ein digitales Signal mit Schaltfrequenzen koppeln, die weit höher sind als für diese Anwendung erforderlich. Diese Geräte stützen sich im Allgemeinen darauf, einen optischen Transistor in einem kleinen linearen Signalbereich zu schalten und anschließend den daraus resultierenden Ausgang zu verstärken und aufzubereiten, um einen logischen Pegel des digitalen Signals zu erhalten. Derartige Geräte sind für die hier beschriebene Anwendung nicht wirklich geeignet, da sie üblicherweise einen oder mehrere der folgenden Nachteile aufweisen:
    • – Das Gerät erfordert unter Umständen die Bereitstellung einer niederohmigen Niedrigspannung (5 V oder 3,3 V) an der Ausgangsseite des Optokopplers für den Ausgangsverstärker/Signalaufbereiter. Die Entwicklung einer solchen Versorgungsspannung auf der Feldseite des Schaltkreises erfordert zusätzlichen Aufwand an Komponenten und Kosten.
    • – Das Gerät toleriert unter Umständen nicht den unmittelbaren Anschluss an die höhere Spannung, die mit dem FET-Gatter oder dem bipolaren Transistor-Basis-Schaltkreis verbunden ist, weshalb zusätzliche Komponenten zur Steuerung des Gatters bzw. der Basis benötigt werden.
    • – Das Gerät ist unter Umständen erheblich teurer als einfache optische Transistoren.
  • 39 zeigt die wesentlichen Elemente der offenbarten Erfindung. Eine externe Ausgangslast und Ausgangslast-Versorgungsspannung werden wie zuvor mit dem Gleichstrom-Ausgangs-Schaltkreis der speicherprogrammierbaren Steuerung PLC verbunden. Innerhalb der PLC stellt ein negativer Spannungsregler (3901) eine Gatter-Ansteuerungsspannung –Vg bereit, die auf einen geeigneten negativeren Wert eingestellt wird als die externe Versorgungsspannung, beispielsweise V+ –12 V. Ein optischer Transistor (3902) verbindet, wenn er eingeschaltet ist, das Gatter des Ausgangstransistors (3904) mit der Versorgungsspannungsschiene V+, wodurch der Ausgangstransistor ausgeschaltet (OFF) wird. Ein weiterer optischer Transistor (3903) verbindet, wenn er eingeschaltet ist, das Gatter des Ausgangstransistors (3904) mit der Versorgung –Vg, wodurch der Ausgang eingeschaltet (ON) und die externe Last angesteuert wird. Die Logik der speicherprogrammierbaren Steuerung PLC steuert die optischen Transistoren (3902) und (3903) als ein komplementäres Paar an, so dass (3902) im ausgeschalteten Zustand (OFF) des Ausgangs leitend ist und (3903) nicht, und im eingeschalteten Zustand (ON) des Ausgangs (3903) leitend ist und (3902) nicht. Ein Pull-up-Widerstand (3905) mit relativ hoher Impedanz (beispielsweise 10 kΩ) garantiert, dass der Ausgang ausgeschaltet ist (OFF), falls die Versorgungsspannung der externen Last angelegt ist, aber die internen Komponenten der speicherprogrammierbaren Steuerung PLC nicht mit Strom versorgt werden.
  • An den Übergängen zwischen „Ausgang ausgeschaltet (OFF)" und „Ausgang eingeschaltet (ON)" schaltet der optische Transistor (3903) schnell ein, wodurch ein Pfad zum Ableiten der Kapazitanz am FET-Gatter an –Vg geschaffen wird und ebenfalls der niederohmige Pfad bereitgestellt wird, der für ein schnelles Abschalten von (3902) benötigt wird. In ähnlicher Weise zieht an dem Übergang ON zu OFF (3902) das FET-Gatter schnell zu V+ und stellt damit den niederohmigen Pfad für das schnelle Abschalten von (3903) bereit. Der Treiber-Schaltkreis für die optischen Transistoren verwendet ein digitales Logikgatter (3907), das über die parallelen RC-Netzwerke (3905) und (3906) die optischen Dioden jedes Optokopplers ansteuert. Der Widerstand in jedem Netzwerk (beispielsweise 1 kΩ) lässt einen begrenzten Gleichstrom durch die optische Diode fließen, wenn sich das Logiksignal in dem richtigen Zustand befindet. Der Kondensator in jedem Netzwerk (3905) und (3906) (beispielsweise 100 nF) lässt einen Stromimpuls durch die zugehörige optische Diode zu, wenn das digitale Logiksignal in einen entsprechenden Zustand schaltet, um die betreffende Diode einzuschalten. Der Nettoeffekt hiervon ist ein anfängliches starkes Einschalten des optischen Transistors, gefolgt von einem gleichmäßigen minimalen optischen Ansteuerungssignal. Dies entspricht an der Ausgangsseite der Optokoppler einem anfänglichen großen Stromfluss von FET-Gate-Ladung und -Basisladung des gegenüberliegenden optischen Transistors, gefolgt von einem gleichmäßigen Stromfluss, der lediglich ausreichend ist, das FET-Gatter auf dem gewünschten ON- bzw. OFF-Spannungsniveau zu halten.
  • Ein Widerstands-/Kondensator-Netzwerk (3908) (beispielsweise 10 kΩ, 1 μF) sorgt für minimale Last und Entkopplung des negativen Spannungsreglers. Kondensatoren (3909) (beispielsweise 1000 pF) über dem Kollektor/Emitter jedes optischen Transistors bieten einen Pfad für per Feldverdrahtung in den Schaltkreis eingekoppeltes Rauschen und dafür dass der FET die optischen Transistoren umgeht, ohne unerwünschtes Schalten dieser Geräte zu verursachen.
  • Eine Zener-Diode (beispielsweise 36 V), die mit einer rückwärts sperrenden Diode (3910) gekoppelt ist, sorgt für die Begrenzung der induktiven Last auf eine bestimmte Spannung. Wenn der FET (3904) versucht, eine induktive externe Last auszuschalten, tendiert die induktive Reaktion dazu, den FET-Drain negativ anzusteuern, da der Induktor versucht, den Strom zu halten. Die Zener-Diode erlaubt es, diese negative Spannung an den Gate-Schaltkreis zu übertragen. Der FET wird in einem linearen Bereich eingeschaltet (ON) gehalten, so dass Strom im Induktor erhalten bleiben kann, ohne eine schädigende Spannung am FET-Drain zu bewirken. Der Spannungsabfall im linearen Arbeitsbereich des FET, kombiniert mit einem beliebigen Widerstand in der Last, lässt schließlich die gespeicherte Induktorenergie abfließen, an welchem Punkt der Schaltkreis die Abschaltung beendet. Eine Sperrdiode (3911) schützt den Schaltkreis gegen Beschädigung durch irrtümlich falsch herum gepolte Anschlüsse der Spannungsversorgung der externen Last.
  • Mit der vorstehend beschriebenen Erfindung werden die oben angesprochenen Probleme gelöst.

Claims (13)

  1. Pipeline-Vorrichtung zur Verwendung in einem Impulsausgangsblock (1400), der in einem PWM-Modus oder in einem PTO-Modus betrieben werden kann, um einen Ausgang im PWM-Modus bzw. einen Ausgang in einem PTO-Modus bereitzustellen, wobei die besagte Vorrichtung Folgendes umfasst: einen Taktgenerator (1402) zur Bereitstellung eines Master-Zeitbasistakts; einen Zykluszeit-Zähler (1420), der an der ansteigenden Flanke des Master-Zeitbasistakts erhöht wird, um eine Zykluszeit bereitzustellen; operative Register zum Speichern von Inhalten, die in den verschiedenen Betriebsarten verwendet werden, wobei die besagten Register Folgende umfassen: ein Zykluszeit-Voreinstellungs-Register (1422) ein Impulszahl/-breite-Voreinstellungs-Register (1416); und gekennzeichnet sind durch ein Delta-Zykluszeit-Register (1414) Pipeline-Register zum Speichern von Inhalten, die an die operativen Register übertragen werden sollen, wobei die besagten Pipeline-Register Folgende umfassen: ein Zykluszeit-Pipeline-Register (1404) zur Bereitstellung einer Zykluszeit an das Zykluszeit-Voreinstellungs-Register (1422); ein Delta-Zykluszeit-Pipeline-Register (1406) zur Bereitstellung einer Delta-Zykluszeit an das Delta-Zykluszeit-Register (1414); und ein Impulszahl/-breite-Pipeline-Register (1408) zur Bereitstellung einer Impulszahl bei Betrieb im PTO-Modus und eines Impulsbreitenwertes bei Betrieb im PWM-Modus an das Impulszahl/-breite-Voreinstellungs-Register (1416); einen ersten Komparator (1430) zum Vergleichen der Zykluszeit, die von dem Zykluszeit-Zähler (1420) bereitgestellt wird, mit dem Wert im Zykluszeit-Voreinstellungs-Register (1422), sodass, wenn die Zykluszeit diesen Wert erreicht, ein CycleDone-Ereignis (Zyklus beendet) generiert wird; einen Impuls-Zähler (1428), der bei jedem „CycleDone"-Ereignis angesteuert wird, um eine Zählung der Anzahl generierter Zyklen bereitzustellen; einen zweiten Komparator (1432) zum Vergleichen der Zykluszeit, die von dem Zykluszeit-Zähler (1420) bereitgestellt wird, mit dem Wert im Impulszahl/-breite-Voreinstellungs-Register (1416), sodass, wenn die Zykluszeit unter diesem Wert liegt, ein Impulsblock-Ausgangssignal-Ereignis generiert wird; den Impulsblock, der auf das Aktivieren oder Deaktivieren des Ausgangssignal-Ereignisses reagiert; einen dritten Komparator (1434), zum Vergleichen der Anzahl generierter Zyklen, die durch den Impulszähler (1428) bestimmt wird, mit dem Wert im Impulszahl/-breite- Voreinstellungs-Register, sodass, wenn die Anzahl diesen Wert erreicht, ein „PTOComplete"-Ereignis (PTO beendet) generiert wird; einen Addierer (1412), der bei Betrieb im PTO-Modus auf jedes „CycleDone"-Ereignis reagiert und den Delta-Zykluszeit-Wert im Delta-Zykluszeit-Register zu dem Zykluszeit-Voreinstellungs-Register hinzuzählt; ein Mittel, das auf ein „CycleDone"-Ereignis oder ein „PTOComplete"-Ereignis reagiert, um das Herunterladen von Werten, die in den Pipeline-Registern gespeichert sind, an die betreffenden operativen Register zu ermöglichen, sodass, wenn der Impulsblock aktiviert ist, im PTO-Modus die Übertragung bei Eintreten eines „PTOComplete"-Ereignisses erfolgt bzw. im PWM-Modus bei Eintreten eines „CycleDone"-Ereignisses, wodurch glatte, kontrollierte Übergänge von einer Wellenform zu einer anderen Wellenform geschaffen werden.
  2. Vorrichtung gemäß Anspruch 1, wobei ein Puls/Pause-Verhältnis einer Ausgangswellenform des Impulsausgangsblocks (1400) in Reaktion auf einen Ausgang des besagten Zykluszeit-Zählers (1420) geregelt wird, wobei an die besagte Wellenform, wenn ein Zählerwert des besagten Zykluszeit-Zählers (1420) niedriger ist als der besagte Impulszahl/-breite-Wert, eine geringe positive Spannung angelegt wird, während, wenn der besagte Zählerwert des besagten Zykluszeit-Zählers (1420) die besagte Ausgangswellenform erreicht oder übersteigt, an die besagte Ausgangswellenform eine geringe negative Spannung angelegt wird.
  3. Vorrichtung gemäß Anspruch 1, wobei die besagte Vorrichtung den besagten Impulsausgangsblock glatt von einer PTO-Wellenform in eine PWM-Wellenform überführt.
  4. Vorrichtung gemäß Anspruch 1, wobei die besagte Vorrichtung nicht erfordert, dass der besagte Impulsausgangsblock (1420) durch die Software angehalten und anschließend neu gestartet wird.
  5. Vorrichtung gemäß Anspruch 1, welche ferner folgendes umfasst: eine Steuerung zum Ändern der besagte Wellenform des besagten Impulsausgangsblocks, um die Möglichkeit zu bieten, einen Wert der Zykluszeit automatisch in einer bestimmten Größenordnung zu ändern.
  6. Vorrichtung gemäß Anspruch 5, wobei die besagte Steuerung die besagte Wellenform ändert, um das Ändern der Geschwindigkeit eines Schrittmotors zu ermöglichen.
  7. Verfahren zur Bereitstellung von glatten, kontrollierten Übergängen von einer Wellenform zu einer anderen Wellenform in einem Impulsausgangsblock (1400), der in einem PWM-Modus oder in einem PTO-Modus betrieben werden kann, um einen PWM-Ausgang oder einen PTO-Modus-Ausgang bereitzustellen, wobei das Verfahren Folgendes umfasst: Eintragen eines Zykluszeit-, eines Delta-Zykluszeit- und eines Impulszahl/-breitenwertes in entsprechende Pipeline-Register; Bereitstellen eines Master-Zeitbasis-Taktsignals und Zählen einer Zykluszeit auf der ansteigenden Flanke dieses Signals; Bereitstellen von operativen Registern, welche ein Zykluszeit-Voreinstellungs-Register, ein Impulszahl/-breiten-Voreinstellungs-Register und ein Delta-Zykluszeit-Register zur Aufnahme des Zykluszeit- und eines Impulszahl/-breiten- bzw. eines Delta-Zykluszeit-Wertes aus den jeweiligen Pipeline-Registern umfassen; Vergleichen der von dem Zykluszeit-Zähler (1420) bereitgestellten Zykluszeit mit dem Wert im Zykluszeit-Voreinstellungs-Register (1422), sodass, wenn die Zykluszeit diesen Wert erreicht, ein „CycleDone"-Ereignis (Zyklus beendet) generiert wird; Bereitstellen einer Zählung der Anzahl generierter Zyklen durch einen Impuls-Zähler; Vergleichen der Zykluszeit, die von dem Zykluszeit-Zähler (1420) bereitgestellt wird, mit dem Wert im Impulszahl/-breite-Voreinstellungs-Register (1416), sodass, wenn die Zykluszeit unter diesem Wert liegt, ein Impulsblock-Ausgangssignal-Ereignis generiert wird; das Aktivieren oder Deaktivieren des Impulsblocks durch ein Steuersignal; Vergleichen der Anzahl generierter Zyklen, die durch den Impulszähler (1428) bestimmt wird, mit dem Wert im Impulszahl/-breite-Voreinstellungs-Register, sodass, wenn die Anzahl diesen Wert erreicht, ein „PTOComplete"-Ereignis generiert wird; bei Betrieb im PTO-Modus, bei jedem „CycleDone"-Ereignis Hinzuzählen des Delta-Zykluszeit-Werts im Delta- Zykluszeit-Register zu dem Zykluszeit-Voreinstellungs-Register; Reagieren auf ein „CycleDone"-Ereignis oder ein „PTOComplete"-Ereignis, um das Herunterladen von Werten, die in den Pipeline-Registern gespeichert sind, an die betreffenden operativen Register zu ermöglichen, sodass, wenn der Impulsblock aktiviert ist, im PTO-Modus die Übertragung bei Eintreten eines „PTOComplete"-Ereignisses erfolgt bzw. im PWM-Modus bei Eintreten eines „CycleDone"-Ereignisses, wodurch glatte, kontrollierte Übergänge von einer Wellenform zu einer anderen Wellenform geschaffen werden.
  8. Verfahren gemäß Anspruch 7, wobei ein Puls/Pause-Verhältnis einer Ausgangswellenform des Impulsausgangsblocks in Reaktion auf einen Ausgang des besagten Zykluszeit-Zählers geregelt wird, und welches ferner die Schritte umfasst, wobei an die besagte Ausgangswellenform eine geringe positive Spannung angelegt wird, wenn der Zählerwert des besagten Zykluszeit-Zählers niedriger ist als der besagte Impulszahl/-breite-Wert, und an die besagte Ausgangswellenform eine geringe negative Spannung angelegt wird, wenn der besagte Zählerwert des besagten Zykluszeit-Zählers die besagte Ausgangswellenform erreicht oder übersteigt.
  9. Verfahren gemäß Anspruch 7, welches ferner den Schritt umfasst, den besagten Impulsausgangsblock glatt von einer PTO-Wellenform in eine PWM-Wellenform zu überführen.
  10. Verfahren gemäß Anspruch 7, welches ferner den Schritt umfasst, die besagte Wellenform des besagten Impulsausgangsblocks zu ändern, um die Möglichkeit zu bieten, einen Wert der Zykluszeit automatisch in einer bestimmten Größenordnung zu ändern.
  11. Verfahren gemäß Anspruch 10, wobei der besagte Schritt des Änderns die besagte Wellenform ändert, um die Geschwindigkeit eines Schrittmotors zu ändern.
  12. Verfahren gemäß Anspruch 7, welches ferner den Schritt umfasst, den besagten Impulsausgangsblock in einem PTO-Modus zu betreiben, um PTO-Wellenformen auszugeben.
  13. Verfahren gemäß Anspruch 7, welches ferner den Schritt umfasst, den besagten Impulsausgangsblock in einem PWM-Modus zu betreiben, um PWM-Wellenformen auszugeben.
DE60028379T 1999-03-30 2000-03-30 Speicherprogrammierbare steuerung Expired - Lifetime DE60028379T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US12695899P 1999-03-30 1999-03-30
US126958P 1999-03-30
US538817 2000-03-30
US09/538,817 US6574743B1 (en) 1999-03-30 2000-03-30 Programmable logic controller method, system and apparatus
PCT/US2000/008335 WO2000058857A2 (en) 1999-03-30 2000-03-30 Programmable logic controller method, system and apparatus

Publications (2)

Publication Number Publication Date
DE60028379D1 DE60028379D1 (de) 2006-07-06
DE60028379T2 true DE60028379T2 (de) 2007-03-08

Family

ID=26825196

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60028379T Expired - Lifetime DE60028379T2 (de) 1999-03-30 2000-03-30 Speicherprogrammierbare steuerung

Country Status (6)

Country Link
US (6) US6574743B1 (de)
EP (1) EP1196838B1 (de)
CN (1) CN1227574C (de)
DE (1) DE60028379T2 (de)
ES (1) ES2263465T3 (de)
WO (1) WO2000058857A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010052632A1 (de) 2009-12-03 2011-06-30 FESTO AG & Co. KG, 73734 Modulanordnung mit mehreren in einer Reihe aneinander angeordneten elektrischen Modulen

Families Citing this family (180)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6556044B2 (en) * 2001-09-18 2003-04-29 Altera Corporation Programmable logic device including multipliers and configurations thereof to reduce resource utilization
JP2002522929A (ja) * 1998-07-31 2002-07-23 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 秘密の特性値を検出する分析方法を無効にする手段を備えるデータ処理装置
US6938244B1 (en) * 1999-05-11 2005-08-30 Microsoft Corp. Interlaced protocol for smart card application development
US7822878B2 (en) * 2000-02-17 2010-10-26 Siemens Industry, Inc. Device, system, and method for the automatic configuration of a network communications device
JP2003529147A (ja) * 2000-03-24 2003-09-30 シーメンス エナジー アンド オートメーション インコーポレイテッド 工業用オートメーションシステムの図形プログラミング言語の記憶及び送信
US20020116699A1 (en) * 2000-12-18 2002-08-22 Armin Amrhein Apparatus and method for checking the status of control systems
US6839785B2 (en) 2001-03-21 2005-01-04 Siemens Energy & Automation, Inc. System for and method of interfacing expansion modules with programmable logic controllers (PLC)
JP2003067208A (ja) * 2001-08-23 2003-03-07 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
US7257620B2 (en) * 2001-09-24 2007-08-14 Siemens Energy & Automation, Inc. Method for providing engineering tool services
US8086664B2 (en) * 2001-09-24 2011-12-27 Siemens Industry, Inc. Method and apparatus for programming programmable controllers and generating configuration data from a centralized server
US6925158B2 (en) 2001-12-18 2005-08-02 Siemens Energy & Automation, Inc. Modem function incorporated in a programmable logic controller
EP1457032B1 (de) * 2001-12-18 2009-08-05 Siemens Energy & Automation, Inc. Numerisches und textrufverfahren mit einem integralen plc-modem
CN103546460A (zh) * 2001-12-18 2014-01-29 西门子工业公司 一种整体plc调制解调器的安全性能
CN100484180C (zh) 2001-12-18 2009-04-29 西门子能量及自动化公司 利用在plci/o总线上的调制解调器进行plc到plc通信
US7124206B2 (en) * 2001-12-18 2006-10-17 Siemens Energy & Automation, Inc. PLC to PLC communications with a modem on the PLC I/O bus
US7343004B2 (en) * 2001-12-18 2008-03-11 Siemens Energy & Automation, Inc. Numeric and text paging with an integral PLC modem
EP1461939B1 (de) 2002-01-07 2012-10-24 Siemens Industry, Inc. Speicherprogrammierbare steuerung mit modemfunktion
DE10206657B4 (de) * 2002-02-15 2006-06-08 Schiff, Andreas, Dr. Aktuator-Sensor-Interface für die Automation mit erweiterter Funktion
US7138223B2 (en) * 2002-04-11 2006-11-21 Fuji Photo Film Co., Ltd. Photothermographic material
DE10238529A1 (de) * 2002-08-22 2004-03-04 Robert Bosch Gmbh Steuergerät
US7805716B2 (en) * 2002-12-10 2010-09-28 Siemens Aktiengesellschaft Method for executing a first software program, developed for a stored-program controller, on a computer
US7327781B2 (en) * 2002-12-17 2008-02-05 Invensys Systems, Inc. Universal intelligent modem
KR100578342B1 (ko) * 2003-01-03 2006-05-11 주식회사 메가로보틱스 인공지능형 로봇완구 및 그 제어방법
CN1521762B (zh) * 2003-01-30 2010-05-05 旺宏电子股份有限公司 窄化起始电压分布的方法
TWI223134B (en) * 2003-06-13 2004-11-01 Delta Electronics Inc Programmable logic controller with extra memory
US20050120272A1 (en) * 2003-11-13 2005-06-02 Smith Zachary S. Systems and methods for determining bug ownership
US8175747B2 (en) * 2003-12-22 2012-05-08 Irobou Co., Ltd. Joinable robot component for robot toy, modifiable robot toy using the joinable robot components, and control method thereof
US8738159B2 (en) * 2004-03-15 2014-05-27 Siemens Industry, Inc. System and method for accessing PLC data on demand
US7274283B2 (en) * 2004-04-29 2007-09-25 International Business Machines Corporation Method and apparatus for resisting hardware hacking through internal register interface
US8751616B2 (en) * 2004-06-08 2014-06-10 Siemens Industry, Inc. System for accessing and browsing a PLC provided within a network
US7310720B2 (en) * 2004-06-08 2007-12-18 Siemens Energy & Automation, Inc. Method for portable PLC configurations
US7308550B2 (en) * 2004-06-08 2007-12-11 Siemens Energy & Automation, Inc. System for portable PLC configurations
US7512593B2 (en) * 2004-06-08 2009-03-31 Siemens Energy & Automation, Inc. System for searching across a PLC network
US7860874B2 (en) * 2004-06-08 2010-12-28 Siemens Industry, Inc. Method for searching across a PLC network
US20060069689A1 (en) * 2004-06-08 2006-03-30 Gregory Karklins Method for accessing and browsing a PLC provided within a network
US7904706B2 (en) * 2004-12-01 2011-03-08 Innovation First, Inc. System and method for processing encrypted source code updates
US7442583B2 (en) * 2004-12-17 2008-10-28 International Business Machines Corporation Using electrically programmable fuses to hide architecture, prevent reverse engineering, and make a device inoperable
US7788731B2 (en) * 2005-03-25 2010-08-31 Schweitzer Engineering Laboratories, Inc. Method and apparatus for customization
US7818705B1 (en) * 2005-04-08 2010-10-19 Altera Corporation Method and apparatus for implementing a field programmable gate array architecture with programmable clock skew
CN100342296C (zh) * 2005-09-09 2007-10-10 深圳兆日技术有限公司 基于可信计算模块芯片实现计算机软件防盗版的方法
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US7881812B2 (en) * 2005-09-29 2011-02-01 Rockwell Automation Technologies, Inc. Editing and configuring device
US7660638B2 (en) * 2005-09-30 2010-02-09 Rockwell Automation Technologies, Inc. Business process execution engine
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7356422B2 (en) * 2006-04-07 2008-04-08 Schweitzer Engineering Laboratories, Inc. Apparatus and method for high-speed load shedding in an electrical power system
EP1876323A1 (de) * 2006-06-01 2008-01-09 Perewusnyk, Josef Verbrennungsmotor mit selbstzündung des Luftbrennstoffgemisches
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US7752511B2 (en) 2006-08-08 2010-07-06 Siemens Industry, Inc. Devices, systems, and methods regarding a PLC system fault
US7792043B2 (en) 2006-08-08 2010-09-07 Siemens Industry, Inc. Devices, systems and methods for communicating with a PLC
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US7546214B2 (en) * 2006-09-28 2009-06-09 General Electric Company System for power sub-metering
US7493221B2 (en) * 2006-09-28 2009-02-17 General Electric Company System for power sub-metering
TW200817991A (en) * 2006-10-13 2008-04-16 Etrovision Technology Interface of a storage device and storage device with the interface
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7930336B2 (en) * 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7456653B2 (en) * 2007-03-09 2008-11-25 Altera Corporation Programmable logic device having logic array block interconnect lines that can interconnect logic elements in different logic blocks
IL183024A0 (en) * 2007-05-06 2008-03-20 Gita Technologies Ltd Safe self-destruction of data
WO2008141086A1 (en) * 2007-05-09 2008-11-20 Johnson Controls Technology Company Refrigeration system
US8144445B2 (en) 2007-06-12 2012-03-27 General Electric Company Micro-electromechanical system based switching
US7612971B2 (en) * 2007-06-15 2009-11-03 General Electric Company Micro-electromechanical system based switching in heating-ventilation-air-conditioning systems
US7885043B2 (en) * 2007-06-15 2011-02-08 General Electric Company Remote-operable micro-electromechanical system based over-current protection apparatus
US7944660B2 (en) * 2007-06-15 2011-05-17 General Electric Company Micro-electromechanical system based selectively coordinated protection systems and methods for electrical distribution
US7589942B2 (en) * 2007-06-15 2009-09-15 General Electric Company MEMS based motor starter with motor failure detection
US20080310058A1 (en) * 2007-06-15 2008-12-18 General Electric Company Mems micro-switch array based current limiting arc-flash eliminator
US8358488B2 (en) * 2007-06-15 2013-01-22 General Electric Company Micro-electromechanical system based switching
US8072723B2 (en) * 2007-06-19 2011-12-06 General Electric Company Resettable MEMS micro-switch array based on current limiting apparatus
US7903382B2 (en) * 2007-06-19 2011-03-08 General Electric Company MEMS micro-switch array based on current limiting enabled circuit interrupting apparatus
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8195844B2 (en) * 2007-09-20 2012-06-05 Siemens Aktiengesellschaft Systems, devices, and/or methods for managing communications
US7646230B2 (en) * 2007-09-21 2010-01-12 Siemens Industry, Inc. Devices, systems, and methods for reducing signals
US7786919B2 (en) * 2007-09-21 2010-08-31 Siemens Industry, Inc. Systems and/or devices for providing an isolated analog output or analog input
US8006136B2 (en) * 2007-10-08 2011-08-23 Wurldtech Security Technologies Automatic grammar based fault detection and isolation
US9026394B2 (en) 2007-10-08 2015-05-05 Wurldtech Security Technologies Testing and mitigation framework for networked devices
US7554222B2 (en) * 2007-11-01 2009-06-30 General Electric Company Micro-electromechanical system based switching
US7839611B2 (en) * 2007-11-14 2010-11-23 General Electric Company Programmable logic controller having micro-electromechanical system based switching
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
WO2009105889A1 (en) 2008-02-27 2009-09-03 Wurldtech Security Technologies Testing framework for control devices
US8132053B2 (en) 2008-02-27 2012-03-06 Nathan John Walter Kube System and method for grammar based test planning
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
DE102008064674B4 (de) * 2008-11-18 2018-04-12 Abb Ag Zentralbaugruppe für ein flexibles erweiterbares Automatisierungsgerät
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
CN102246107B (zh) * 2009-04-17 2014-09-03 西门子公司 在自动化系统模型中提供代理步骤
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8319560B2 (en) * 2009-10-05 2012-11-27 Hittite Microwave Corporation Switched active bias control and power-on sequencing circuit for an amplifier
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US7973562B1 (en) * 2010-03-22 2011-07-05 Rockwell Automation Technologies, Inc. Universal sink/source I/O module for industrial controller
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
CN102455701B (zh) * 2010-10-22 2014-04-16 施耐德电气(中国)有限公司 采用可编程继电器结构的可编程逻辑控制器自动测试平台
KR101468255B1 (ko) 2010-11-22 2014-12-04 엘에스산전 주식회사 Plc 시스템
EP2457444B1 (de) 2010-11-29 2018-04-25 Albert Handtmann Maschinenfabrik GmbH & Co. KG Skalierbare Maschine und Verfahren zu ihrem Betrieb
US9043179B2 (en) * 2011-01-06 2015-05-26 International Business Machines Corporation Voltage-driven intelligent characterization bench for semiconductor
US8446107B2 (en) * 2011-02-23 2013-05-21 Zilog, Inc. Smart clamp
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
WO2013052894A1 (en) 2011-10-05 2013-04-11 Opteon Corporation Methods, apparatus, and systems for monitoring and/or controlling dynamic environments
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
USD733665S1 (en) * 2011-12-16 2015-07-07 Siemens Aktiengesellschaft Programmable logic controller (PLC)
US9122264B2 (en) * 2012-02-17 2015-09-01 Siemens Aktiengesellschaft Detection of inductive communication for programmable logic controller diagnosis
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
CN103928044B (zh) * 2013-01-16 2016-12-28 台湾积体电路制造股份有限公司 存储器编程方法和存储器
USD738829S1 (en) * 2013-01-16 2015-09-15 Pilz Gmbh & Co. Kg Programmable controller
CH707592A2 (it) * 2013-02-12 2014-08-15 Peter Instr Sagl Sistema di Gestione Modulare di Trasduttori (MTS).
FR3003366B1 (fr) * 2013-03-12 2015-04-10 Airbus Operations Sas Procede, dispositif et programme d'ordinateur pour l'installation ou la desinstallation automatique de modules logiciels dans des equipements embarques d'un aeronef
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
CN103246538B (zh) * 2013-05-16 2016-12-28 中国电子科技集团公司第四十一研究所 使微波仪器电路板智能化的插件方法
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US10372527B2 (en) * 2013-07-15 2019-08-06 Intel Corporation Method of encoding data
USD778853S1 (en) * 2013-08-06 2017-02-14 Phoenix Contact Gmbh & Co. Kg Housing for electrical or electronic component
USD754615S1 (en) * 2013-12-16 2016-04-26 Siemens Aktiengesellschaft Apparatus for recording, transmitting or processing information
USD754080S1 (en) * 2013-12-16 2016-04-19 Siemens Aktiengesellschaft Apparatus for recording, transmitting or processing information
USD753608S1 (en) * 2013-12-16 2016-04-12 Siemens Aktiengesellchaft Apparatus for recording, transmitting or processing information
USD754614S1 (en) * 2013-12-16 2016-04-26 Siemens Aktiengesellschaft Apparatus for recording, transmitting or processing information
USD768579S1 (en) * 2013-12-16 2016-10-11 Siemens Aktiengesellschaft Apparatus for recording, transmitting or processing information
CN104734669A (zh) * 2013-12-20 2015-06-24 施耐德电气工业公司 可配置硬件滤波器
US9755641B1 (en) * 2014-01-10 2017-09-05 Reno Technologies, Inc. High speed high voltage switching circuit
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US9479393B2 (en) 2014-08-04 2016-10-25 Schweitzer Engineering Laboratories, Inc. Relay configuration systems and methods
CN104360974A (zh) * 2014-10-29 2015-02-18 上海伽利略导航有限公司 一种异步串口uart自动波特率调整方法及装置
US9690727B2 (en) * 2014-10-31 2017-06-27 Atmel Corporation System internal latency measurements in realtime applications
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
WO2016210276A1 (en) * 2015-06-24 2016-12-29 The University Of North Carolina At Charlotte Method and apparatus for generating high current, fast rise time step-functions
USD772173S1 (en) * 2015-06-26 2016-11-22 Yokogawa Electric Corporation I/O module unit
US9843436B2 (en) * 2015-06-27 2017-12-12 Intel Corporation Flexible interconnect architecture
USD803911S1 (en) * 2015-08-06 2017-11-28 Jtekt Corporation Programmable controller
JP1546034S (de) * 2015-08-06 2016-03-22
JP1546037S (de) * 2015-08-06 2016-03-22
US10417003B1 (en) 2015-08-31 2019-09-17 Ambarella, Inc. Data unit synchronization between chained pipelines
KR101743836B1 (ko) * 2015-10-22 2017-06-07 엘에스산전 주식회사 범용 마이크로 프로세서를 이용한 plc의 디버깅 방법
EP3246995B1 (de) * 2016-05-17 2020-05-13 Wöhner GmbH & Co. KG Elektrotechnische Systeme Stromsammelschienensystem
KR20180041319A (ko) 2016-10-14 2018-04-24 엘에스산전 주식회사 펄스 신호 인식 장치
CN106685782B (zh) * 2017-01-17 2020-01-10 北京华电天仁电力控制技术有限公司 一种带有DP总线数据采集功能的Profibus有源终端电阻装置
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
CN107436584B (zh) * 2017-06-22 2019-05-28 上海电器科学研究院 一种可编程控制器的抗扰度试验定量化评测方法
CN108268001A (zh) * 2017-10-20 2018-07-10 佛山市耐力克科技有限公司 高性能modbus-io扩展模块
KR102008267B1 (ko) * 2017-12-12 2019-08-07 엘지전자 주식회사 라이팅 장치 및 이를 포함하는 공연 시스템
CN110297688B (zh) * 2018-03-22 2022-04-12 龙芯中科技术股份有限公司 一种硬件计数装置、方法以及处理器
CN110880502B (zh) * 2018-09-05 2022-10-14 无锡华润上华科技有限公司 半导体结构及电机驱动装置
USD897294S1 (en) * 2018-10-26 2020-09-29 Mitsubishi Electric Corporation Programmable controller
CN109634566A (zh) * 2018-12-07 2019-04-16 合肥沃工电气自动化有限公司 一种基于visual studio 6.0的模块化编程方法
JP1643194S (de) * 2019-02-14 2019-10-15
CN110096399B (zh) * 2019-04-25 2023-07-07 湖南品腾电子科技有限公司 一种硬件接口的调试方法
CN110287112B (zh) * 2019-06-25 2023-10-20 网易(杭州)网络有限公司 客户端的维护方法、装置及可读存储介质
US11138137B2 (en) * 2020-01-20 2021-10-05 Neles Usa Inc. Self-learning apparatus for connecting inputs and outputs of a programmable logic controller to a field device
CN113760364B (zh) * 2020-06-03 2022-06-17 广东高云半导体科技股份有限公司 逻辑器件的控制器
USD1024979S1 (en) * 2020-12-09 2024-04-30 Abb Automation Products Gmbh Programmable logic controller
CN113341864A (zh) * 2021-06-07 2021-09-03 重庆高新技术产业研究院有限责任公司 一种基于plc的控制相似性可逆向逻辑系统及其分析方法
USD956001S1 (en) * 2021-07-21 2022-06-28 Mitsubishi Electric Corporation Programmable controller
CN114880275B (zh) * 2022-05-16 2023-12-12 无锡职业技术学院 一种可记忆操作步骤的通用化程序传输系统及传输方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3895241A (en) * 1974-05-06 1975-07-15 Int Rectifier Corp LED coupled switching circuits
US4399535A (en) * 1981-06-18 1983-08-16 Siemens Corporation Digital tone generator
JPS59123493A (ja) * 1982-12-28 1984-07-17 Fujitsu Ltd モ−タ駆動用パルス発生回路
JPS59133610A (ja) * 1983-01-19 1984-08-01 Omron Tateisi Electronics Co プログラマブルコントロ−ラ
US4587651A (en) * 1983-05-04 1986-05-06 Cxc Corporation Distributed variable bandwidth switch for voice, data, and image communications
US4597082A (en) * 1984-03-06 1986-06-24 Controlonics Corporation Transceiver for multi-drop local area networks
US4707797A (en) * 1985-03-20 1987-11-17 Advanced Nmr Systems, Inc. Function generator for NMR system
US4882702A (en) * 1986-03-31 1989-11-21 Allen-Bradley Company, Inc. Programmable controller with I/O expansion module located in one of I/O module positions for communication with outside I/O modules
IT1199815B (it) * 1986-12-19 1989-01-05 Rai Radiotelevisione Italiana Procedimento per la radiodiffusione di segnali digitali,particolarmente di programmi e dati per elaboratori,e procedimento e apparato per la ricezione di tali segnali
US4912335A (en) * 1988-03-07 1990-03-27 Dionics Inc. Means for rapid charging and dynamic discharging of a capacitively charged electrical device
US5214760A (en) * 1988-08-26 1993-05-25 Tektronix, Inc. Adaptable multiple port data buffer
JP2526690B2 (ja) * 1990-02-27 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラの制御方法
JP2834837B2 (ja) * 1990-03-30 1998-12-14 松下電工株式会社 プログラマブルコントローラ
US5089948A (en) * 1990-06-29 1992-02-18 Digital Equipment Corporation High speed optoisolator switching apparatus
US5812879A (en) * 1993-04-19 1998-09-22 Moro; Ricardo J. External multiple peripheral interface to computer serial port using individually configured parallel port terminals
DE59502418D1 (de) * 1994-03-31 1998-07-09 Siemens Ag Verfahren zur automatischen diagnose von störungsfällen
US5659705A (en) * 1994-12-29 1997-08-19 Siemens Energy & Automation, Inc. Serial access memory cartridge for programmable logic controller
US5978593A (en) * 1996-09-05 1999-11-02 Ge Fanuc Automation North America, Inc. Programmable logic controller computer system with micro field processor and programmable bus interface unit
KR100202706B1 (ko) * 1996-10-05 1999-06-15 이종수 피엘씨 리모트 시스템의 기동시간 동기화 및 비상상태 출력 제어방법
US6134707A (en) * 1996-11-14 2000-10-17 Altera Corporation Apparatus and method for in-system programming of integrated circuits containing programmable elements
US6064649A (en) * 1997-01-31 2000-05-16 Nec Usa, Inc. Network interface card for wireless asynchronous transfer mode networks
US6148381A (en) * 1997-04-08 2000-11-14 Advanced Micro Devices, Inc. Single-port trace buffer architecture with overflow reduction
US6094729A (en) * 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
DE19782267T1 (de) * 1997-04-14 2000-06-21 Mitsubishi Electric Corp Verfahren und Vorrichtung zum Verarbeiten von Daten und Datenverarbeitungssystem
US6226555B1 (en) * 1997-05-14 2001-05-01 Steeplechase Software, Inc. Flowchart exception handling element
US6173438B1 (en) * 1997-08-18 2001-01-09 National Instruments Corporation Embedded graphical programming system
US6072827A (en) * 1997-08-29 2000-06-06 Xiox Corporation Automatic baud rate detection
US6091263A (en) * 1997-12-12 2000-07-18 Xilinx, Inc. Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM
US6049222A (en) * 1997-12-30 2000-04-11 Xilinx, Inc Configuring an FPGA using embedded memory
US6052812A (en) * 1998-01-07 2000-04-18 Pocketscience, Inc. Messaging communication protocol
US6178207B1 (en) * 1998-01-09 2001-01-23 Cubic Defense Systems, Inc. Aircraft combat training signal processing system
US6243857B1 (en) * 1998-02-17 2001-06-05 Nemasoft, Inc. Windows-based flowcharting and code generation system
US6104208A (en) * 1998-03-04 2000-08-15 Altera Corporation Programmable logic device incorporating function blocks operable as wide-shallow RAM
DE69908682T2 (de) * 1998-03-20 2004-05-13 Texas Instruments Inc., Dallas Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor
JP3684831B2 (ja) * 1998-03-31 2005-08-17 セイコーエプソン株式会社 マイクロコンピュータ、電子機器及びデバッグシステム
US6321331B1 (en) * 1998-04-22 2001-11-20 Transwitch Corporation Real time debugger interface for embedded systems
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
US6332173B2 (en) * 1998-10-31 2001-12-18 Advanced Micro Devices, Inc. UART automatic parity support for frames with address bits
US6107821A (en) * 1999-02-08 2000-08-22 Xilinx, Inc. On-chip logic analysis and method for using the same
DE60011262T2 (de) * 1999-03-15 2005-06-23 Siemens Energy & Automation, Inc. Speicherprogrammierbare steuerung mit fähigkeit zur detektion von kurzzeitigen pulsen
US6308311B1 (en) * 1999-05-14 2001-10-23 Xilinx, Inc. Method for reconfiguring a field programmable gate array from a host
US6446221B1 (en) * 1999-05-19 2002-09-03 Arm Limited Debug mechanism for data processing systems
US6321329B1 (en) * 1999-05-19 2001-11-20 Arm Limited Executing debug instructions

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010052632A1 (de) 2009-12-03 2011-06-30 FESTO AG & Co. KG, 73734 Modulanordnung mit mehreren in einer Reihe aneinander angeordneten elektrischen Modulen
DE102010052632B4 (de) * 2009-12-03 2014-10-09 Festo Ag & Co. Kg Modulanordnung mit mehreren in einer Reihe aneinander angeordneten elektrischen Modulen

Also Published As

Publication number Publication date
WO2000058857A3 (en) 2001-04-19
US6546521B2 (en) 2003-04-08
US6745254B2 (en) 2004-06-01
EP1196838A2 (de) 2002-04-17
ES2263465T3 (es) 2006-12-16
EP1196838B1 (de) 2006-05-31
CN1353828A (zh) 2002-06-12
US20020013923A1 (en) 2002-01-31
DE60028379D1 (de) 2006-07-06
CN1227574C (zh) 2005-11-16
US6574743B1 (en) 2003-06-03
US20010054174A1 (en) 2001-12-20
US20010037491A1 (en) 2001-11-01
US6486725B2 (en) 2002-11-26
US6904471B2 (en) 2005-06-07
US7086036B2 (en) 2006-08-01
US20020013935A1 (en) 2002-01-31
US20010039649A1 (en) 2001-11-08
WO2000058857A2 (en) 2000-10-05

Similar Documents

Publication Publication Date Title
DE60028379T2 (de) Speicherprogrammierbare steuerung
DE60011262T2 (de) Speicherprogrammierbare steuerung mit fähigkeit zur detektion von kurzzeitigen pulsen
EP0875023B1 (de) Automatisierungsgerät
DE60225662T2 (de) System zur Übertragung von Steuerungs- und Überwachungssignal
DE2800855A1 (de) Auffrischungssystem fuer direkten speicherzugriff
DE602004013244T2 (de) Hochgeschwindigkeitssynchronisation in einer doppelrechnerbasierten Sicherheitssteuerung
DE102005055428B4 (de) Busmodul zum Anschluss an ein Bussystem sowie Verwendung eines solchen Busmoduls in einem AS-i-Bussystem
EP2315088A1 (de) Sicherheitssteuerung
DE102005009707A1 (de) Modulares numerisches Steuergerät
DE102014001462B4 (de) Feldbusmodul, Maschinensteuerung und Verfahren zur Parametrierung eines, insbesondere sicherheitsgerichteten, Feldbusmoduls
DE3302929A1 (de) Speicherprogrammierbare steuerung
EP0743578A1 (de) Reinraumanlage
EP1238318A1 (de) Automatisierungsgerät und aufdat-verfahren
EP1619565B1 (de) Verfahren und Vorrichtung zum sicheren Schalten eines Automatisierungsbussystems
EP0050301A1 (de) Treiberschaltung für ein bistabiles Relais
EP0791874A2 (de) Verfahren zum Steuern von binären Sensoren und/oder Aktuatoren
EP2098928A1 (de) Verfahren und Vorrichtung zum Programmieren und/oder Konfigurieren einer Sicherheitssteuerung
EP1672446A2 (de) Sichere Eingabe-/Ausgabe-Baugruppen für eine Steuerung
EP0600311B1 (de) Schaltungsanordnung zur elektrischen Sicherheitsüberwachung von Schalteinrichtungen
EP1186972B1 (de) Verfahren zur Initialisierung einer Erweiterungsbaugruppe an ein programmierbares elektrisches Schaltgerät
EP1221641A2 (de) Industrielle Steuerung mit taktsynchronem Ablaufebenenmodell
DE102008062851B3 (de) Sicherheitsgerichtete Kommunikation zwischen einem Feldgerät und einer Masterbaugruppe mittels Codefolgen
EP3997529A1 (de) Wäschepflegegerät mit antriebssystem
DE2744031A1 (de) Drahtgebundenes fernwirksystem fuer elektrische verbraucher
DE60124201T2 (de) Variabelmodus für modbus netzprotokoll

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: MAIER, D., DIPL.-ING. UNIV., PAT.-ASS., 85221 DACH

8327 Change in the person/name/address of the patent owner

Owner name: SIEMENS INDUSTRY, INC. (N.D.GES.D. STAATES DEL, US