DE60011262T2 - Speicherprogrammierbare steuerung mit fähigkeit zur detektion von kurzzeitigen pulsen - Google Patents

Speicherprogrammierbare steuerung mit fähigkeit zur detektion von kurzzeitigen pulsen Download PDF

Info

Publication number
DE60011262T2
DE60011262T2 DE60011262T DE60011262T DE60011262T2 DE 60011262 T2 DE60011262 T2 DE 60011262T2 DE 60011262 T DE60011262 T DE 60011262T DE 60011262 T DE60011262 T DE 60011262T DE 60011262 T2 DE60011262 T2 DE 60011262T2
Authority
DE
Germany
Prior art keywords
plc
state
input signal
register
input
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
DE60011262T
Other languages
English (en)
Other versions
DE60011262D1 (de
Inventor
Steven Mark BOGGS
L. Temple FULTON
Steve Hausman
Gary Mcnabb
Alan Mcnutt
W. Steven 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 DE60011262D1 publication Critical patent/DE60011262D1/de
Application granted granted Critical
Publication of DE60011262T2 publication Critical patent/DE60011262T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • 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/054Input/output

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Credit Cards Or The Like (AREA)
  • Electrotherapy Devices (AREA)

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf eine programmierbare Programmablaufsteuerung (PLC).
  • Informationen zum Stand der Technik
  • Programmierbare Programmablaufsteuerungen (PLCs) sind eine relativ neue Entwicklung auf dem Gebiet der Prozessregelungstechnik. Im Rahmen der Prozessregelung wird ein PLC benutzt, um Eingangssignale zu überwachen, die aus einer Vielzahl von Eingangspunkten (Eingangsmeldern) stammen, die Ereignisse und Bedingungen melden, zu denen es in einem geregelten Prozess kommt. Ein PLC kann beispielsweise Eingangsbedingungen wie Motordrehzahl, Temperatur, Druck, Durchflussvolumen und dergleichen überwachen. Ein Steuerprogramm ist in einem Speicher im PLC gespeichert, um dem PLC Anweisungen zu geben, welche Maßnahmen nach der Erfassung bestimmter Eingangssignale oder – bedingungen zu ergreifen sind. Von diesen Eingangssignalen, die durch Eingangsmelder geliefert werden, leitet der PLC von ihm selbst erzeugte Ausgangssignale ab, die über die PLC-Ausgangspunkte zu verschiedenen Ausgangseinrichtungen wie Schaltgliedern und Relais übertragen werden, um den Prozess zu regeln. Der PLC gibt beispielsweise Ausgangssignale aus, um die Geschwindigkeit eines Förderbandes zu erhöhen oder zu vermindern, den Arm eines Roboters zu drehen, ein Relais zu öffnen oder zu schließen, die Temperatur zu erhöhen oder zu senken sowie viele andere mögliche Steuerfunktionen auszuführen, die zu zahlreich sind, um sie hier alle aufzulisten.
  • Die oben genannten Eingangs- und Ausgangspunkte hängen typischerweise mit den Eingangs- bzw. Ausgangsmodulen zusammen. Eingangs- und Ausgangsmodule werden nachstehend zusammen auch "E/A-Module" genannt. Fachleute auf diesem technischen Gebiet nennen diese E/A-Module alternativ auch "E/A-Karten" oder "E/A-Platinen". Diese E/A-Module sind typischerweise in entsprechende Steckplätze steckbar, die sich auf der Rückwandplatine im PLC befinden. Die Steckplätze werden durch ei nen Hauptbus zusammengekoppelt, der alle in den Steckplätzen vorhandenen E/A-Module mit einer Zentraleinheit (CPU) verkoppelt. Die CPU selbst kann sich auf einer Karte befinden, die in einen speziellen Steckplatz steckbar ist, der sich auf der Rückwandplatine des PLC befindet.
  • 36 zeigt ein typisches herkömmliches programmierbares Programmablaufsteuerungssystem als System 3610. System 10 beinhaltet eine hostprogrammierbare Programmablaufsteuerung 3615, die durch einen Feldbus 3620 mit einem Busschnittstellengerät 3625 gekoppelt ist. Das Busschnittstellengerät 3625 verkoppelt und vernetzt den Feldbus 3620 mit einem lokalen Bus 3630, der eine Vielzahl von E/A-Klemmenfeldern 3635 beinhaltet. Die E/A-Klemmenfelder 3635 sind mit den jeweiligen E/A-Modulen 3640 wie in 1 gezeigt gekoppelt.
  • In System 3610 erfolgt die Datenverarbeitung durch die hostprogrammierbare Programmablaufsteuerung 3615. Mit anderen Worten: Die Bedingungen werden in den E/A-Modulen 3640 ermittelt, und dann werden aus ihnen Eingangsdaten gewonnen. Die Eingangsdaten werden über das Busschnittstellengerät 3625 und den Feldbus 3620 an die hostprogrammierbare Programmablaufsteuerung 3615 übertragen. Die hostprogrammierbare Programmablaufsteuerung 3615 reagiert auf die Eingangsdaten entsprechend einem im Host-PLC 3615 gespeicherten Steuerprogramm. Die hostprogrammierbare Programmablaufsteuerung 3615 verarbeitet die Eingangsdaten und erzeugt in Reaktion darauf Ausgangsdaten. Die Ausgangsdaten werden über den Feldbus 3620, das Busschnittstellengerät 3625 und den lokalen Bus 3630 an ein oder mehrere E/A-Module 3640 übertragen. In Reaktion auf die Ausgangsdaten steuert das E/A-Modul, das die Ausgangsdaten empfängt, eine Ausgangseinrichtung, die mit dem E/A-Modul gekoppelt ist. E/A-Klemmenfelder sind für das Verkoppeln der E/A-Module 3640 mit dem Busschnittstellengerät 3625 vorgesehen.
  • Der PLC kann in einem Master/Slave-Netz wie in 37a gezeigt angeordnet werden. In dieser Zeichnung beinhaltet das Master/Slave-Steuersystem einen Master-PLC(M) und eine Vielzahl abgesetzter Slave-Geräte RSUs(R1–Rn). Wie in 37a gezeigt steuert der PLC(M), der einen Master-PLC, eine Datenleitung und ein E/A-Modul beinhaltet, seine eigenen E/A-Anschlusspunkte unter Verwendung eines vom Benutzer eingestellten Programms und Datenübertragungsparameters und steuert zudem die betreffenden E/A-Anschlusspunkte für die abgesetzten Slave- Geräte R1 bis Rn. Jedes der Vielzahl der RSUs(R1–Rn) hat mindestens ein E/A-Modul, führt eine Datenübertragung mit dem Master-PLC(M) über ein Datenübertragungskabel durch und steuert entsprechend sein eigenes E/A-Modul. Die RSUs können PLCs sein, die als Slaves fungieren.
  • Unter Bezugnahme auf 37b beinhaltet der PLC und jedes der RSUs Folgendes: ein MODEM 3710 zur Durchführung einer Datenübertragung zwischen dem Master-PLC(M) und den RSUs über ein Datenübertragungskabel; ein Sende-/Empfangsmodul 3711 für den Datenaustausch mit dem Master-PLC(M) entsprechend einem vordefinierten Protokoll; einen Sende-/Empfangspufferspeicher 3712 zur Zwischenspeicherung der Daten für den Datenaustausch; ein Ausgangsdaten-Speichergerät 3713 zur Speicherung der Daten, die vom Master-PLC(M) zu einem E/A-Modul 3716 übertragen werden sollen; ein Eingangsdaten-Speichergerät 3714 zur Speicherung der Daten, die vom E/A-Modul 3716 zum Master-PLC(M) übertragen werden sollen; und ein E/A-Steuermodul 3715 zur Steuerung einer Datenübertragung zwischen den Datenspeichergeräten 3713, 3714 und dem E/A-Modul 3716.
  • Im Betrieb ist die Datenleitung im Master-PLC(M) eine Datenübertragungseinrichtung, die an den Master-PLC(M) angeschlossen ist, als Master-Gerät im betreffenden Netz fungiert und eine Auslösefunktion für die Datenübertragung erhält. Die Datenleitung kann eine maximale Anzahl N RSUs setzen. Das RSU setzt eine beliebige Anzahl anderer RSUs und den Master-PLC(M) und empfängt eine Datenmeldung direkt vom Master-PLC(M), um so eine Datenübertragung auszuführen. Die Datenleitung im Master-PLC(M) wählt sequentiell die RSUs(R1–Rn) aus und führt einen Datensende-/-empfangsprozess aus. Wenn z.B. die vom Master-PLC(M) ausgegebenen Daten über das Datenübertragungskabel und das MO-DEM 3710 auf die RSU(R1) angewendet werden, gehen die angewendeten Daten durch den Sende-/Empfangspufferspeicher 3712 und das Sende-/Empfangsmodul 3711 und werden im Ausgangsdaten-Speichergerät 3713 gespeichert. Die im Ausgangsdaten-Speichergerät 3713 gespeicherten Daten werden entsprechend der Steuerung durch das E/A-Steuermodul 3715 an das E/A-Modul 3716 ausgegeben. Die aus dem E/A-Modul 3716 gelesenen externen Steuerungszieldaten des abgesetzten Slave-Gerätes R1 werden entsprechend der Steuerung des E/A-Steuermoduls 3715 im Eingangsdaten-Speichergerät 3714 gespeichert. Die im Eingangsdaten-Speichergerät 3714 gespeicherten Daten werden über den Sende- /Empfangspufferspeicher 3712 und das Sende-/Empfangsmodul 3711 an den Master-PLC(M) übertragen.
  • Die US-Patentschrift 4750150 offenbart eine programmierbare Programmablaufsteuerung (PLC), bei der ein Impulserfassungsschaltkreis so angeordnet ist, dass er so lange eine Änderung des Zustands eines Eingangsimpulses erfasst, bis vom PLC eine Zustandsänderung erkannt wurde. Der Impulserfassungsschaltkreis beinhaltet ein Flag-Zeichen, das so erfasst wird, dass – wenn es gesetzt ist – der Impulserfassungsschaltkreis Zustandsänderungen ignoriert. Diese Art von PLC ist daher recht flexibel.
  • Die vorliegende Erfindung bietet neue Merkmale, die die Fähigkeiten herkömmlicher PLCs verbessern und erweitern.
  • Ziele und zusammenfassende Beschreibung der vorliegenden Erfindung
  • Ziel der vorliegenden Erfindung ist die Verbesserung und Erweiterung des PLC.
  • Erfindungsgemäß wird gemäß einem ersten Aspekt eine Vorrichtung bereit gestellt, die im gesonderten Vorrichtungsanspruch dargelegt wird.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren bereit gestellt, wie es im gesonderten Verfahrensanspruch dargelegt wird.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist eine perspektivische Ansicht des erfindungsgemäßen PLC.
  • 2 ist ein Blockschaltbild des PLC.
  • 3 ist ein Prinzipschaltbild des PLC.
  • 4 ist ein Blockschaltbild der ASIC.
  • 5 ist ein Blockschaltbild des Eingangsblocks.
  • 6a ist ein Blockschaltbild des Eingangsfilter-Schaltkreises.
  • 6b ist eine Wahrheitsmatrix des Eingangsfilter-Schaltkreises.
  • 6c und d sind Blockschaltbilder des Eingangsfilter-Schaltkreises.
  • 7 ist eine Tabelle der Verzögerungszeiten.
  • 8 ist ein Zeitablaufdiagramm des Abtastzyklus.
  • 9 ist ein Blockschaltbild des Impulserfassungsschaltkreises.
  • 10 ist ein Zeitablaufdiagramm des Abtastzyklus.
  • 11 ist ein Zeitablaufdiagramm des Abtastzyklus.
  • 12a ist eine Wahrheitsmatrix des Abtastzyklus.
  • 12b ist eine Tabelle für das Impulserfassungsschaltkreis-Aktivierungsregister.
  • 12c ist eine Tabelle für die Impulserfassungsschaltkreis-Reservierungsregister.
  • 12d ist eine Tabelle für das Impulserfassungsschaltkreis-Eingangspunkt-Statusregister.
  • 12e ist ein Blockschaltbild für den Impulserfassungsschaltkreis.
  • 12f ist ein Blockschaltbild für den Impulserfassungsschaltkreis.
  • 13 ist ein Blockschaltbild des Ausgangsblocks.
  • 14a ist ein Blockschaltbild des Impulsausgangsblocks.
  • 14b ist eine Tabelle der Register des Impulsausgangsblocks.
  • 15 ist ein Statusdiagramm des Impulsausgangsblocks.
  • 16 ist ein Software-Code-Listing.
  • 17 ist ein Statusdiagramm des Impulsausgangsblocks.
  • 18 ist ein Software-Code-Listing.
  • 19 ist eine Tabelle für Hochgeschwindigkeitsbetrieb.
  • 20 ist ein Blockschaltbild des E/A-Erweiterungssteckplatzes.
  • 21 ist eine Tabelle für den E/A-Erweiterungssteckplatz.
  • 22 ist ein Blockschaltbild des E/A-Erweiterungsmoduls.
  • 23 ist ein Komponententabelle.
  • 24 ist eine Schichtentabelle.
  • 25 ist ein Zeitablaufdiagramm des Lesezyklus.
  • 26 ist ein Zeitablaufdiagramm des Schreibzyklus.
  • 27 ist eine Paritätsbit-Tabelle.
  • 28 ist eine CPU-Typentabelle.
  • 29 ist eine Interrupt-Tabelle.
  • 30a ist ein Flussdiagramm des freien Ports.
  • 30b, c und d sind SM-Bitdefinitionstabellen.
  • 30e ist eine Port-Definitionstabelle.
  • 31 ist ein Flussdiagramm des Modem-Protokolls.
  • 32a ist eine Steuerfunktionstabelle.
  • 32b ist ein Flussdiagramm der Hide-Anweisung.
  • 33a ist eine Steuerfunktionstabelle.
  • 33b ist ein Flussdiagramm des Systemfunktionsaufrufs.
  • 34a ist eine Tabelle der STL-Anweisungen.
  • 34b ist ein Systemdiagramm der STL-Funktion.
  • 34c ist ein Flussdiagramm der STL-Funktion.
  • 34d ist eine Tabelle boolescher Ausdrücke.
  • 35a ist eine PLC-Parameter-Tabelle.
  • 35b ist eine perspektivische Ansicht des PLC und des E/A-Erweiterungsmoduls.
  • 36 ist ein Blockschaltbild des PLC.
  • 37a ist ein Blockschaltbild eines Master/Slave-Systems; und
  • 37b ist ein Blockschaltbild des Datenaustauschs im Master/Slave-System.
  • AUSFÜHRLICHE DARSTELLUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Allgemeine Beschreibung der programmierbaren Programmablaufsteuerung (PLC)
  • Das Ausführungsbeispiel der erfindungsgemäßen programmierbaren Programmablaufsteuerung (PLC) 100 wird in 1 gezeigt.
  • Die Zeichnung verdeutlicht die Eingangs-/Ausgangsfunktionen (E/A) des PLC 100. Der Benutzer steuert den PLC 100 durch Bedienung des EIN/AUS-Schaltpotentiometers und des Erweiterungs-E/A-Steckers 104. Die Statusanzeigelampen (LEDs) 106 zeigen den Status des PLC 100 an. Ein Kassettensteckplatz 108 ist für die Aufnahme einer Kassette zur Erweiterung der Funktion des PLC 100 vorgesehen, einschließlich u.a. einer Speichererweiterung. Die E/A-LEDs 110 sind für die Anzeige des Status der Eingangs-/Ausgangsstifte des PLC 100 vorgesehen. Eine Datenübertragungsschnittstelle 112 vernetzt den PLC 100 mit externen Komponenten, einschließlich z.B. anderen PLCs. Die Datenübertragungsschnittstelle kann benutzt werden, um den PLC 100 mit anderen PLCs in einer Master/Slave-Beziehung zu verbinden. Die Datenübertragungsschnittstelle 112 kann auch benutzt werden, um beispielsweise einen Anschluss an einen Computer (z.B. einen Netzrechner oder einen PC) herzustellen. Der PLC 100 kann über die Datenübertragungsschnittstelle 112 unter Verwendung eines Modems oder eines vergleichbaren Datenübertragungsprotokoll-Gerätes auch mit dem Internet verbunden werden. Der Stecker 114 mit benutzerseitiger Verdrahtung erlaubt es dem Benutzer, den PLC 100 extern an Geräte wie Motoren und sonstige Peripheriegeräte anzuschließen.
  • In der Zeichnung wird der PLC 100 neben einem Erweiterungs-E/A-Modul gezeigt, das die Eingangs-/Ausgangsfunktionen des PLC 100 erweitert. Das Erweiterungsmodul sowie der PLC 100 beinhalten die DIN-konformen Schienenmontage-Rastelemente 116 und eine Schalttafel-Einbauposition 118 zum Anbau des PLC 100 und des Erweiterungs-E/A-Moduls 102 an eine geeignete Montagevorrichtung.
  • Es ist zu erkennen, dass der erfindungsgemäße PLC 100 eine Vielzahl von Anordnungen und Konfigurationen von PLCs, mehrere Erweiterungs-E/A-Module und Zubehör beinhalten kann, darunter Speicherkassetten, Taktgeberkassetten, Batteriekassetten, Kabel oder E/A-Simulator-Schalterbaugruppen beinhalten kann. Die vorliegende Erfindung beschreibt nur einen Bruchteil der möglichen Konfigurationen, die für die Besonderheiten der verschiedenen hier beschriebenen Aspekte relevant sind, und Praktiker auf diesem technischen Gebiet werden diese Konfigurationen sofort erkennen und die hier beschriebene Erfindung verstehen.
  • Der erfindungsgemäße PLC wird aufgrund seiner geringen physischen Größe als "Mikro-PLC" klassifiziert. Obwohl der PLC eine geringe physische Größe hat, beinhaltet er zahlreiche Merkmale, die ihn ebenso leistungsstark wie physisch größere PLCs (wenn nicht sogar leistungsstärker als diese) machen. 1 zeigt eine Zeichnung des PLC und eines E/A-Moduls mit den möglichen Abmessungen. Die Konstruktion des PLC 100 wird unter Bezugnahme auf Abb. 39a und b beschrieben.
  • 2 zeigt ein Blockschaltbild 200 des erfindungsgemäßen PLC. Das dargestellte Blockschaltbild bezieht sich auf einen PLC mit einem integrierten Netzteil 202 für die Spannungsversorgung. Eine Zentraleinheit (CPU) 210 bildet den Kern des PLC 200 (100) und beinhaltet eine ASIC, ein ROM und ein RAM. Eine digitale Eingangsschnittstelle 212 ist für die Eingabe von Daten über die benutzerseitige Verdrahtung 114 vorgesehen (siehe 1). Eine digitale Ausgangsschnittstelle 204 verkoppelt den PLC 200 mit der benutzerseitigen Verdrahtung 114 (siehe 1). Eine Datenübertragungsschnittstelle 206 verkoppelt den PLC 100 mit externen Geräten, z.B. über eine Schnittstelle des Typs RS-485 oder eine Token-Bus-Datenübertragungsschnittstelle. Eine Erweiterungs-E/A-Schnittstelle 208 verbindet den PLC 200 mit (einer) Erweiterungs-E/A-Schnittstelle(n), z.B. über einen gemultiplexten Hochgeschwindigkeitsbus.
  • Im Betrieb kann das Netzteil 202 eine Isoliergrenze zwischen Netzstromleitung und Ausgängen bilden, z.B. den 24VDC- und 5VDC- Ausgängen. Der PLC kann auch mit einem 24VDC-Netzteil angeboten werden. Modelle mit 24VDC-Netzteil würden keine Isolierung von 24VCD zu 5VDC bieten. Die digitale Eingangsschnittstelle 212 isoliert optisch die benutzerseitige Verdrahtung von der Zentraleinheit (CPU) 210, die alle Signale der Logikschicht beinhaltet. Die digitale Ausgangsschnittstelle bildet eine ähnliche Isoliergrenze zwischen benutzerseitiger Verdrahtung und CPU. Diese Isoliergrenze wird in Form einer optischen Isolierung oder über Relais hergestellt, wobei die Relaisspule vom Relaiskontakt isoliert ist. Zwischen CPU und Datenübertragungsschnittstelle bzw. Erweiterungs-E/A-Schnittstelle wird in der Zeichnung keine Isolierung gezeigt; diese kann jedoch vorgesehen werden. Alle Erweiterungs-E/A-Module bieten eine optische Isoliergrenze zwischen benutzerseitiger Verdrahtung und den 5VDC-Logiksignalen. Die CPU 210 besteht aus der ASIC, die einen Mikroprozessor, ein RAM und ein ROM beinhaltet. Das ROM enthält das Betriebssystem für den PLC 200 und kann entweder ein EPROM oder ein FLASH EPROM sein – je nachdem, welches PLC-Modell benutzt wird. Das RAM dient der Speicherung der Betriebssystemdaten sowie als Zwischenspeicher und zur Speicherung des Anwendungsprogramms, das in ausführbaren Code kompiliert wurde.
  • Ein Blockschaltbild der Zentraleinheit (CPU) 300 HW wird in 3 gezeigt. Die Anschlüsse der gezeigten CPU werden hier nicht ausführlich beschrieben. Bei den besonderen Anschlüssen, die hier von Interesse sind, handelt es sich um die Anschlüsse für die Eingangsschaltkreise auf der E/A-Schaltplatine 302, den E/A-Erweiterungsbus 304 und den Ausgangsschaltkreis auf der E/A-Schaltplatine 306. In jedem Fall verdeutlicht 3 diese Einzelheiten in so ausreichender Deutlichkeit, dass ein Praktiker auf diesem technischen Gebiet kein Problem haben wird, die Einzelheiten bei einer Prüfung der Zeichnung zu verstehen. Es ist zu erkennen, dass 3 nur eine Anordnung verdeutlicht und dass Fachleute auf diesem technischen Gebiet problemlos verstehen, wie sonstige, gleichwertige Anordnungen zu implementieren sind, insbesondere im Hinblick auf die vorliegende Spezifikation.
  • Die CPU 300 und die Anschlüsse sind wie in 4 in grafischer Form gezeigt als ASIC angeordnet. Wie gezeigt beinhaltet die ASIC einen Mikroprozessor 406 (mit CORE bezeichnet), ein Adressendekodiergerät 402 und eine Mapping-Logik. Zwei UARTs (Universal Asynchronous Receiver Transmitter) 424, 426 werden bereit gestellt, die als elektronischer Schaltkreis dienen, der die serielle Schnittstelle bildet. UARTs konvertieren parallele, von der CPU kommende Bytes zwecks Übertragung in serielle Bits und umgekehrt. Andere Datenübertragungsanordnungen sind jedoch ebenfalls möglich. Vorhanden sind digitale Eingangsverarbeitungsschaltkreise 418, Hochgeschwindigkeitszähler 410, eine Impulsketten-Ausgangsschaltung 420, eine Potentiometerschaltung 414, eine Watchdog-Schaltung 430 und eine Nullstellschaltung 428. Eine Busschnittstelle 404 ist ebenfalls vorhanden. Das Erweiterungs-E/A-Gerät ist mit der Nr. 422 bezeichnet. Eine Testschnittstelle ist zur Prüfung des PLC 100 vorhanden. Der Spannungsverteiler-Schaltkreis ist als Schaltkreis 432 dargestellt. Der Speicher wird als internes RAM 408 gezeigt. Ein Interrupt-Steuerungsgerät 412 verarbeitet Interrupts für die CPU 406.
  • Der PLC 100 bietet Benutzern ein Mittel, um spezifische Anwendungssteuerungsprogramme zu schaffen, die – wenn sie vom PLC ausgeführt werden – den Betrieb von Maschinen und/oder Prozessen kontrollieren, die bei der Fertigung unterschiedlichster Produkte verwendet werden. In dieser Hinsicht ähneln diese PLCs allen anderen PLCs, und ein Praktiker wird sofort die banaleren Aspekte der Erfindung auf der Basis eines derartigen grundlegenden Verständnisses von PLCs verstehen. Trotz der Ähnlichkeit von Verwendung und Funktion der PLCs gibt es viele einzigartige in den erfindungsgemäßen PLC 100 integrierte Merkmale und Funktionen, die ihre Nützlichkeit für den Benutzer erweitern und verbessern, wie weiter unten beschrieben wird.
  • Digitales Eingangspunktgerät
  • Nachstehend wird das digitale Eingangspunktgerät 418 beschrieben. Nachdem jedes der digitalen Eingangssignale (I0,0 bis I1,5) in ein kompatibles Signal, z.B. ein +5V-Signal, konvertiert und von der benutzerseitigen Verdrahtung isoliert worden ist, wird es in das digitale Eingangspunktgerät 418 der ASIC eingespeist. Ein Blockschaltbild für die Eingangspunkte IB0[2:0], das die Funktionalität verdeutlicht, die durch das digitale Eingangspunktgerät 500 (418, 4) bereit gestellt wird, wird in 5 gezeigt.
  • Das Gerät 500 führt eine Reihe von Funktionen an den digitalen Eingängen durch, die von der Benutzeranwendung aus mit der CPU verbunden sind. Das Gerät filtert die Eingangspunkte und bietet Zugang zum gefilterten Zustand dieser Punkte. Eine Impulserfassungsfunktionalität ist an jedem Eingangspunkt vorgesehen, um optional die Erfassung kurzzeitiger Impulse zu erlauben. Eine Flanken-Interrupt-Funktion soll beim Eintritt ansteigender oder abfallender Flankenübergänge Interrupts an bestimmten Eingangspunkten generieren. Hochgeschwindigkeitszähler dienen dazu, Ereignisse zu zählen, die sich zu schnell für die CPU-Abtastgeschwindigkeit ereignen.
  • Wie in 5 gezeigt, stellen ein oder mehrere digitale Eingangsfilter 5061–n einen software-konfigurierbaren Filter bereit. Das heißt, dass der PLC die Filterparameter einstellt, die die Filterfunktion entsprechend der vom PLC ausgeführten Software steuern. In mindestens einer Anordnung sind bis zu 8 Filterwerte durch die Software konfigurierbar, z.B. von 0,2 ms bis 12,8 ms. Eine Filterimplementierung ist z.B. mit einem 4-Bit-Aufwärts-Abwärts-Zähler an jedem Eingangspunkt möglich. Ein oder mehrere Impulserfassungsschaltkreise 5081–n ermöglichen das Erfassen eines ansteigenden oder abfallenden Flankenübergangs des gefilterten Eingangs, bis die Software Gelegenheit hat, den Wert zu lesen. Ein unabhängige Aktivierung/Deaktivierung der Impulserfassungsfunktion ist für jeden einzelnen Eingangspunkt möglich. Ein oder mehrere Flanken-Interrupt-Schaltkreise 5101–n erzeugen – wenn diese Funktion aktiviert ist – einen Interrupt-Befehl, wenn es zu einem ansteigenden oder abfallenden Flankenübergang an z.B. bis zu vier Eingangspunkten kommt. Der bzw. die Hochgeschwindigkeitszähler 514 (516) – in diesem Fall werden sechs Hochgeschwindigkeitszähler (HSC) unterstützt – enthalten jeder z.B. einen 32-Bit-Aufwärts-Abwärts-Zähler und ein 32-Bit-Vergleichsregister. Letztgenanntes erfasst den Zählerwert, so dass er von der Software gelesen werden kann. Jeder Zähler und jedes Vergleichsregister ist Software-gesteuert ladbar. Vier der HSCs können z.B. eine 2-Phasen-Taktung verarbeiten. Die beiden anderen HSCs können eine Ein-Phasen-Taktung unterstützen. Jeder HSC kann bei Eintritt des Gleichstands von Zähler und Vergleichsregister; bei einer Richtungsänderungsbedingung und bei Geltendmachung des externen HSC-Nullstelleingangs Interrupts erzeugen.
  • Digitaler Eingangsfilter-Schaltkreis
  • Für die Implementierung der Eingangsfilter in herkömmlichen ASIC-Schaltungen werden zu viele Gates verbraucht. In der ASIC der vorliegenden Erfindung besteht die Notwendigkeit, eine kompatible Funktionalität bereitzustellen, ohne so viele Gates zu verbrauchen. Nachstehend folgt eine Beschreibung unter Bezugnahme auf 6a bis 6d und 7, gemäß der Eingangsfilter mit erheblich weniger Logik in der neuen ASIC implementiert werden, indem die Wahrheitstabelle aus 6b benutzt wird.
  • Die ASIC sorgt für digitale Eingangsfilterung für beispielsweise vierzehn digitale Eingangspunkte – wie in 6a und 6b gezeigt. In 6a beinhaltet 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 durch die ausgewählte Verzögerungszeit 606 gesetzten Filterverzögerungszeiten sind software-konfigurierbar, z.B. auf einen von sieben verschiedenen Werten. Die Filterverzögerungszeiten werden über die verstellbaren, in die ASIC integrierten Register ausgewählt. Die folgende Tabelle in 7 beschreibt die mögliche Beziehung zwischen dem in das Register geschriebenen Wert und der entsprechenden ausgewählten Verzögerungszeit. Natürlich sind auch andere Beziehungen möglich.
  • Jeder digitale Eingangsfilter simuliert die Aktivität eines Kondensators, der durch eine konstante Stromquelle angetrieben wird, deren Ausgangsspannung durch einen Komparator mit hohem Hysteresewert abgetastet wird. Das digitale Äquivalent dieses analogen Schaltkreises wird als 4-Bit-Aufwärts-Abwärts-Zähler implementiert, dessen Zählrichtung durch den Zustand des Eingangspunktes gesteuert wird. Die Frequenz, mit der der Zähler getaktet ist, wird bestimmt durch die Auswahlwerte, die durch die Software in Register geschrieben werden, die in die ASIC integriert sind. Der 1MHz-Master-Takt wird als Zeitbasis für jeden Filter verwendet, so dass sein Betrieb unabhängig von der System-Taktfrequenz ist. Die Verzögerungszeit wird mit Hilfe folgender Formel berechnet: digitale Filterverzögerungszeit = 12 * (Taktdauer des für den Aufwärts-Abwärts-Zähler gewählten Eingangstaktes)
  • Die Wahrheitstabelle in 6b definiert den Betrieb des digitalen Äquivalenzschaltkreises, bei dem das vom Filter produzierte Ergebnis der Ausgangswert 608 (FIBy.x) ist. Fachleute auf diesem technischen Gebiet werden sofort erkennen, dass sich die Einzelheiten der Schaltung aus der Tabelle in 6b unter Verwendung wohlbekannter boolescher Logik implementieren lassen. Ein Beispiel für diesen Schaltkreis wird in 6c dargestellt.
  • Für jede Gruppe von beispielsweise vier Eingängen gibt ein Multiplexer 610 einen von acht Takten aus, der zur Einstellung der Eingangsfilter-Verzögerungszeit verwendet wird. Der vom Multiplexer 610 ausgewählte Takt treibt einen 4-Bit-Aufwärts-Abwärts-Zähler 612 (einen für jeden der Eingänge in jeder Gruppe von 4 Eingängen). Der physische Eingang steuert die Richtung (aufwärts/abwärts) des 4-Bit-Zählers. Wenn der Eingang EIN ist (logische "1"), zählt er aufwärts. Wenn der Eingang AUS ist (logische "0"), zählt er abwärts.
  • Die Aufwärtszählfrequenz des Zählers lautet wie folgt:
    0,1, 2,... 13, 14, 15, 15, 15,... 15
  • Die Abwärtszählfrequenz des Zählers lautet wie folgt:
    15, 14, 13,... 2, 1, 0, 0, 0,... 0
  • Wie durch die Zählfrequenz angegeben, zählt der Zähler nicht von neuem, wenn er aufwärts- bzw. abwärts zählt.
  • Die Filterverzögerung 614 ist so ausgelegt, dass sie den Betrieb einer konstanten Stromquelle simuliert, die einen Kondensator antreibt, dessen Spannung durch einen Komparator mit hohem Hysteresewert abgetastet wird. Um in diesem Fall einen Eingangsübergang von AUS nach EIN zu erkennen, muss der Zähler einen Zählwert von 12 erreichen. Sobald dieser Zählerstand erreicht ist, wird der Ausgang eingeschaltet und bleibt so lange EIN, bis der Schwellwert für einen Eingangsübergang von EIN nach AUS bei einem Zählerstand von 3 erreicht wird. Die in der Zeichnung dargestellte NAND-Gate-Logik 620 implementiert diese Schwellwerte.
  • Die Schwellwerte sind symmetrisch, insofern als 12 Aufwärts- und 12 Abwärtszählschritte von einer stationären LOW- oder HIGH-Eingangsbedingung aus verlangt werden. Die Tabelle in 6d listet die Verzögerungszeiten für 12 Takte bei jeder der vom Multiplexer gelieferten Frequenzen auf. Natürlich sind auch andere Verzögerungszeiten möglich. Zusätzliche Schichten, wobei jede Schicht einen Zähler 616, eine NAND-Gate-Logik 622 und eine Verzögerung 618 beinhaltet, können für jeden Eingang vorgesehen werden, wobei diese in gleicher Weise wie die oben beschriebene Schicht funktionieren.
  • Impulserfassungsschaltkreis
  • Nach dem digitalen Eingangsfilter-Schaltkreis folgt ein Impulserfassungsschaltkreis (508, 5). Zweck dieses Schaltkreises ist es, eine Änderung des Eingangszustands von HIGH nach LOW bzw. von LOW nach HIGH zu erfassen und diesen zu halten, bis die PLC-Betriebssystem-Software die Zustandsänderung erkannt hat. Der PLC liest den Zustand der Eingänge in zyklischer Weise sowohl im STOP- als auch im RUN-Modus. (Die Hauptunterschiede zwischen STOP- und RUN-Modus im PLC bestehen darin, dass das Anwendungsprogramm im STOP-Modus nicht ausgeführt wird, während es im RUN-Modus ausgeführt wird.) 8 zeigt den PLC-Abtastzyklus (der Zyklus wird normalerweise "PLC-Abtastzyklus" oder einfach "Abtastvorgang" genannt). Wie in 8 gezeigt, liest der PLC-Abtastzyklus im RUN-Modus den Eingang ein Mal pro Zyklus. Der gleiche Abtastzyklus wird im STOP-Modus befolgt, wobei das Anwendungsprogramm im STOP-Modus jedoch nicht ausgeführt wird.
  • Da die Eingänge nur ein Mal pro Zyklus gelesen werden, können die Eingänge ihren Zustand ändern, ohne dass der PLC jemals eine Änderung erkennt. Derartige Zustandsänderungen, die zu schnell eintreten, als dass der PLC sie erkennen kann, werden auch "Impulse" genannt. Um zu verhindern, dass der PLC einen kurzen Impuls an einem Eingang nicht bemerkt, kann der Benutzer einen Eingangs-Interrupt aktivieren, der die normale Programmausführung unterbricht, während der PLC den Interrupt bedient. Dieses Verfahren ist sehr effizient, erfordert jedoch eine zusätzliche Unterstützung durch die CPU und verbraucht viel Ausführungszeit zur Verarbeitung der Interrupt-Routine. Aus diesem Grund ist nur eine kleine Zahl von Interrupts erlaubt.
  • Das andere Verfahren besteht darin, Impulserfassungsschaltkreise an jedem der im PLC integrierten Eingänge vorzusehen. Dieses Verfahren ermöglicht es, Impulse, die seltener, jedoch von kurzer Dauer (entweder auf HIGH oder auf LOW wechselnd) sind, zu erfassen und zu halten, bis der PLC die Änderung am entsprechenden Punkt im Abtastzyklus erkennt.
  • Top-Level-Blockschaltbild des Impulserfassungsschaltkreises
  • 9 verdeutlicht detaillierter den Impulserfassungsschaltkreis 900 (508, 5), bei dem Eingang 902 mit Impulserfassungsschaltkreis 904 gekoppelt ist und Signalzustandsänderungen entsprechend Aktiviersignal 906 erfasst werden, sowie Ausgang 908. Auf diese Weise kann der Impulserfassungsschaltkreis digitale Eingangspunkt-Impulse erfassen und halten, deren Dauer größer als die ausgewählte Filterzeit ist, jedoch kleiner als die Abtastzeit. 10 verdeutlicht das Problem, bei dem der Impuls verpasst wird, da er zwischen zwei Eingangsaktualisierungen lag.
  • Die CPU-Software ist so ausgelegt, dass sie den Zustand aller Eingangspunkte ein Mal pro CPU-Abtastvorgang liest, und dieser Vorgang wird "Eingangsaktualisierung" genannt. Wie bereits oben erwähnt, kann ein Impuls verpasst werden, wenn er zwischen den Eingangsaktualisierungen aufeinander folgender CPU-Abtastvorgänge anliegt (siehe Beispiel in 10). Der Impulserfassungsschaltkreis 904 erfasst und hält diese Art von Ereignis. In einer möglichen Anordnung gibt es vierzehn Impulserfassungsschaltkreise, und zwar einen für jeden Eingangspunkt.
  • Wenn ein Impulserfassungsschaltkreis aktiviert ist, wird die Zustandsänderung (von HIGH nach LOW bzw. von LOW nach HIGH) eines Eingangs erfasst. Weitere Zustandsänderungen des Eingangs werden so lange ignoriert, bis der erfasste Wert von der Software während des CPU-Abtastvorgangs gelesen wurde. Sobald der erfasste Wert gelesen worden ist, kann der Schaltkreis neue Eingangszustandsänderungen erfassen.
  • Der Betrieb des Impulserfassungsschaltkreises kann genauer mit Hilfe der Wahrheitstabelle für eine in 12a gezeigte Synchronzustandsmaschine beschrieben werden. Die in dieser Tabelle verwendeten Symbole lassen sich wie folgt definieren:
    • PCE – Aktivier-Bit des Impulserfassungsschaltkreises
    • I – Eingangssignal, das durch den Eingangfilter-Schaltkreis (FIBy.x) mit dem Systemtakt synchronisiert wurde
    • CV – Eingangswert, der nach einer Zustandsänderung des Eingangs und nach einer Eingangsaktualisierung erfasst wurde (synchronisiert mit Systemtakt)
    • F – Zustandsänderungs-Flag (synchronisiert mit Systemtakt)
    • RP – Leseimpuls (einen für jedes Eingangsstatus-Byte), der durch Lesen eines Eingangsstatus-Bytes generiert wird (synchronisiert mit Systemtakt, so dass er einen Taktzyklus lang aktiv ist und dann an der Taktflanke deaktiviert wird, die den Status des Eingangs geändert hat)
    • PS Aktueller Zustand
    • NS Nächster Zustand
  • Wenn – unter Bezugnahme auf 12a – die Schaltkreise im Betrieb eine Zustandsänderung am Eingang entdecken, wird der neue Wert des Eingangs erfasst und ein Zustandsänderungs-Flag gesetzt. Während das Zustandsänderungs-Flag gesetzt ist, wird der Eingangswert gehalten und kann nicht aktualisiert werden. Daher werden Eingangsänderungen, die eintreten, während das Zustandsänderungs-Flag gesetzt ist, ignoriert. Nachdem der gespeicherte Wert durch die Software gelesen worden ist, wird das Zustandsänderungs-Flag nullgestellt, der aktuelle Zustand des Eingangs erfasst und die Erfassbereitschaft des Eingangszustand wieder aktiviert. Diese Aktivitätssequenz wird auch "erneutes Auslösen des Impulserfassungsschaltkreises" genannt. Ihr Ergebnis ist, dass der Eingangsimpuls erfasst wird, obwohl die Aktualisierung zwischen Abtastzyklen wie in 11 gezeigt eintritt. So zeigt beispielsweise CIB1.6, dass der Impulserfassungsschaltkreis-Ausgang 908 den Eingangsimpuls 902 erfasst, obwohl der Impuls zwischen zwei Abtastvorgängen eintritt, d.h. Abtastung n und Abtastung n+1.
  • In diesem Block werden beispielsweise zwei 8-Bit-Register für das individuelle Aktivieren und Deaktivieren der Impulserfassungsfunktion an jedem der sechzehn Eingangspunkte vorgesehen. Diese Aktivierregister werden in der in 12b gezeigten Tabelle definiert. Die Eingangsstatusregister werden vorgesehen, um der CPU-Software Zugang zu den bedingten Eingangspunktzuständen CIBO[7:0] und CIB1[5:0] zu geben, die von den Impulserfassungsschaltungen ausgegeben werden. Diese werden in 12c gezeigt. Das Format der Eingangsstatusregister wird in 12d gezeigt.
  • Die Schaltelemente des Impulserfassungsschaltkreises lässt sich – wie von Fachleuten auf diesem technischen Gebiet zu erkennen ist – problemlos aus den in 12a gezeigten Wahrheitstabellen ablesen. Weiterhin lässt sich erkennen, dass der Impulserfassungsschaltkreis daher eine Vielzahl von Konfigurationen haben kann, die die Wahrheitstabelle erfüllen.
  • Der beispielhafte Impulserfassungsschaltkreis, der in Übereinstimmung mit der vorstehenden Beschreibung funktioniert, wird in 12e und 12f gezeigt. Ein Systemtaktimpuls treibt die Flip-Flops 1202 und 1208 an. Das Eingangssignal ist mit dem ersten Flip-Flop 1202 gekoppelt, dessen Q-Ausgang wiederum mit der NAND-Gate-Logik 1206 gekoppelt ist. Die Signale PCE, RP und F werden wie gezeigt verzögert und mit entsprechenden NAND-Gates in der NAND-Gate-Logik 1206 gekoppelt. Außerdem wird der Ausgang des zweiten Flip-Flops 1208 in die NAND-Gate-Logik 1206 zurückgespeist. Der Ausgang der NAND-Gate-Logik wird mit dem zweiten Flip-Flop 1208 gekoppelt, und – nachdem es von diesem aufgefangen wurde – zum Ausgang getaktet. In 12f wird das Signal F generiert, wobei der Systemtakt die Flip-Flops 1210 und 1216 antreibt. Das erste Flip-Flop fängt den Eingang der NAND-Gate-Logik 1214 auf, und das zweite Flip-Flop fängt deren Ausgang auf. Die NAND-Gate-Logik 1214 ist wie gezeigt angeordnet, um die oben beschriebene Logik an den Signalausgängen vom ersten Flip-Flop (Q), der invertierten Version von Q, der erfassten Version des Eingangssignals und seiner verzögerten Version (verzögert durch Verzögerungsschaltungen 1212), dem durch die Verzögerungsschaltungen 1212 verzögerten RP-Signal und dem PCE-Signal zu implementieren.
  • Die Impulserfassungsschaltkreise können einzeln aktiviert und deaktiviert werden. Wenn ein Impulserfassungsschaltkreis deaktiviert ist, wird der Schaltkreiseingang durch den Schaltkreisausgang geleitet. Wenn er aktiviert ist, sind die oben beschriebenen Impulserfassungsfunktionen aktiv.
  • Digitales Ausgangspunktgerät
  • Das digitale Ausgangspunktgerät (420, 4) erlaubt die direkte Software-Steuerung des Zustands jedes Ausgangspunktes. Darüber hinaus erlaubt eine Impulsausgangsfunktion einen Impulskettenausgang und einen impulsmodulierten Ausgang an bis zu zwei der Ausgangspunkte.
  • Unter Bezugnahme auf 13 stellt die ASIC zwei Ausgangspunkt-Zustandsregister 1302, 1304 für die Software-Steuerung des Zustands von zehn digitalen Ausgangspunkten bereit. Darüber hinaus können zwei Impulsausgangsblöcke 1306, 1308 (PLSs) implementiert werden, um die Möglichkeit zu schaffen, Impulswellenformen mit einer höheren Frequenz als mittels Software möglich zu generieren.
  • Innerhalb der Impulsausgangsblocks 1306 und 1308 bietet die ASIC eine Auswahl von zwei Ausgangsfunktionen, z.B. PWM (impulsbreitenmoduliert) oder PTO (Impulskettenausgang). Die PWM-Funktion sorgt für einen ständigen Impulsausgang mit einer programmierbaren Zykluszeit und einem programmierbaren Arbeitszyklus. Die primär für Schrittmotorenanwendungen gedachte PTO-Funktion sieht den Ausgang einer spezifizierten Anzahl von ca. 50% Arbeitszyklusimpulsen vor. Natürlich sind auch andere Anwendungen für Fachleute auf diesem technischen Gebiet erkennbar. Die Zykluszeit in der PTO-Funktion ist ebenfalls program mierbar und kann entweder fest sein oder automatisch reguliert werden, um sie mit einer benutzerdefinierten Rate zu erhöhen oder zu reduzieren.
  • Wenn PLS20 in Betrieb (aktiviert) ist, steuert sie den Ausgangspunkt XQB0.0 über den MUX 1310. Ansonsten wird XQB0.0 durch den Wert gesteuert, den die Software in das Ausgangspunkt-Zustandsregister der ASIC schreibt. In gleicher Weise steuert PLS1 nach Aktivierung über den MUX 1312 den Zustand von XQB0.1, und das Ausgangspunkt-Zustandsregister der ASIC steuert den Zustand von XQB0.1, wenn PLS1 nicht aktiviert ist.
  • Impulsausgangsblocks
  • Die gezeigte ASIC unterstützt zwei Impulsausgangsblocks (PLS). Natürlich ist jede beliebige Anzahl von PLSs konfigurierbar. Diese Blocks erlauben es der CPU, Wellenformen mit Frequenzen zu produzieren, die höher sind, als die CPU-Software dies bei manuellem Generieren kann. Der Ausgang von Impulsausgangsblock 0 (PLS0) ist eine der Quellen des Ausgangspunktes XQB0.0, und der Ausgang von Impulsausgangsblock 1 (PLS1) ist eine der Quellen des Ausgangspunktes XQB0.1.
  • Die ASIC für die PLCs lieferte sowohl den Impulskettenausgang (PTO) als auch die impulsbreitenmodulierten (PWM) Funktionen. Der PTO ist ein Betriebsmodus, in dem die Periode (Zykluszeit) der Wellenform und die Anzahl der Zyklen (Impulszählung) durch Software spezifiziert wird. Der Arbeitszyklus der Wellenform beträgt rund 50%. Die PWM ist ein Betriebsmodus, in dem die Periode (Zykluszeit) und der Arbeitszyklus (Impulsbreite) durch Software spezifiziert werden, und die Wellenform wird laufend ausgegeben.
  • Es wurde festgestellt, dass es ein grundlegendes Problem mit der Implementierung dieser Funktionen insofern gab, als keine Möglichkeit eines reibungslosen Übergangs von einem PTO oder einer PWM-Wellenform zum/zur anderen bestand. Jeder Übergang erforderte, dass der Impulsausgangsblock durch die Software gestoppt und dann wieder neu gestar tet wird, was eine Diskontinuität in der sich ergebenden Ausgangswellenform erzeugte.
  • Wegen des oben beschriebenen Problems mit den Übergängen einer Wellenform zur anderen versorgt die erfindungsgemäße ASIC den Impulsausgangsblock mit einem Hardware-Pipeline-Mechanismus, um reibungslose, hardware-gesteuerte Übergange von Wellenform zu Wellenform zu ermöglichen. Um außerdem einen besseren Betrieb mit Schrittmotoren sicherzustellen, wurde die ASIC um die Möglichkeit, den Wert der Zykluszeit automatisch mit einer spezifizierten Geschwindigkeit ansteigen zu lassen, erweitert.
  • PLS-Blockschaltbild und zusammenfassende Darstellung des Betriebs
  • Das Blockschaltbild in 14a zeigt die Organisation und die Komponenten jedes Impulsausgangsblocks 1400.
  • Erzeugung der PLS-Zeitbasis
  • Die Zeitbasis (z.B. 1 ms oder 1 μs) wird von einem Multiplexer 1402 bereit gestellt, der z.B. den 1MHz-Master-Zeitbasistakt oder einen 1 KHz-Takt bereit stellt, der vom Master-Zeitbasistakt abgeleitet wird.
  • Wellenform-Periodensteuerung
  • Der Ausgang des Zeitbasis-Multiplexers treibt einen 16-Bit-Aufwärtszähler, bezeichnet als Zykluszeitzähler 1420. Dieser Zähler ist an der ansteigenden Flanke des Zeitbasistaktes inkrementiert. Der Ausgang dieses Zählers wird durch den Komparator 1430 mit dem Wert verglichen, der in einem 16-Bit-Zykluszeit-Voreinstellregister 1422 gespeichert ist, um die Periode der Ausgangswellenform zu steuern. Wenn der Wert des Zykluszeitzählers den Wert des Zykluszeit-Voreinstellregisters erreicht, ist der aktuelle Zyklus abgeschlossen, und das Zyklusende-Ereignis wird generiert.
  • Die im Zykluszeitzähler 1420 und Zykluszeit-Voreinstellregister 1422 gespeicherten Werte sind vorzeichenlose Werte. Der Gültigkeitsbereich des Zykluszeitzählers 1420 ist beispielsweise 0 bis 65535. Der Gültigkeitsbereich des Zykluszeit-Voreinstellregisters 1422 ist 2 bis 65535. Der Vergleich zur Feststellung des Zyklusende-Ereignisses ist ein vorzeichenloser Vergleich.
  • Ein Delta-Zykluszeitregister 1406 ist zur Anwendung im PTO-Modus vorhanden, um einen Zweierkomplement-16-Bit-Wert mit Vorzeichen zu halten, der dem Wert hinzuaddiert wurde, der im Zykluszeit-Voreinstellregister 1422 bei jedem Zyklusende-Ereignis gespeichert wurde. Wenn die Summe "65535" überschreitet oder kleiner als "2" ist, wird das Addiererfehler-Ereignis generiert. Beispiel:
  • Figure 00210001
  • Im PWM-Modus wird das Delta-Zykluszeitregister auf einem Wert"0" gehalten.
  • Die Software kann das Zykluszeit-Voreinstellregister 1422 und den Zykluszeitzähler 1406 nur dann laden, wenn der PLS-Block deaktiviert ist. Der gültige Bereich dieses Registers im PTO-Modus ist beispielsweise –32768 bis +32767.
  • Wellenform-Arbeitszyklussteuerung
  • Der Ausgang des Zykluszeitzählers 1420 wird auch bei der Steuerung des Arbeitszyklus der Wellenform verwendet. Ein vorzeichenloser Vergleich wird zwischen diesem Zählerwert und einem Impulsbreiten-Voreinstellwert durchgeführt, dessen Quelle durch den PLS-Betriebsmodus bestimmt wird. Der Zustand des PLS-Blockausgangssignals PLS×OUT wird durch diesen Vergleich bestimmt. Solange der Zählerwert kleiner als der Impulsbreiten-Voreinstellwert ist, ist das Signal PLS×OUT = HIGH. Wenn der Zählerwert den Voreinstellwert erreicht oder übersteigt, wird das Signal PLS×OUT auf LOW umgeschaltet. Der Impulsbreiten-Voreinstellwert wird aus den unteren 16 Bits des Impulszähl-/Impulsbreiten-Voreinstellregisters 1408 gewonnen, wenn der Block im PWM-Modus ist, oder beträgt die Hälfte des Wertes, der im Zykluszeit-Voreinstellregister 1422 gespeichert ist, wenn der Block im PTO-Modus ist.
  • Wenn der Impulsbreiten-Voreinstellwert "0" ist, ist das Signal PLS×OUT während des gesamten Zyklus = LOW. Wenn der Impulsbreiten-Voreinstellwert größer/gleich der voreingestellten Zykluszeit ist, ist das Signal PLS×OUT während des gesamten Zyklus = HIGH.
  • Das Impulszähl-/Impulsbreiten-Voreinstellregister 1408 wird Softwaregesteuert geladen, jedoch nur die unteren 16 Bit sind signifikant, wenn der Block im PWM-Modus ist. Daher sollte die Software nur das am wenigsten signifikante Wort des Registers im PWM-Modus schreiben. Der Gültigkeitsbereich dieses Registers in diesem Modus ist "0 bis 65535". Dieses Register kann nur dann Software-gesteuert geladen werden, wenn der PLS-Block deaktiviert ist.
  • Zyklusquantitätssteuerung (nur PTO-Modus)
  • Ein 32-Bit-Aufwärtszähler namens Impulszähler 1428 wird bei jedem Zyklusende-Ereignis ausgelöst, um die Anzahl der im Signal PLS×OUT generierten Zyklen zu zählen. Der in diesem Zähler gespeicherte Wert wird durch den Komparator 1434 mit dem Wert verglichen, der im 32-Bit-Impuls-Voreinstellregister 1416 gespeichert ist, um den Abschluss des aktuellen PTO-Vorgangs zu bestimmen. Wenn der Wert im Impulszähler 1428 den Impuls-Voreinstellwert erreicht, wird das PTO-Ende-Ereignis generiert. Im PWM-Modus wird dieser Zähler nicht benutzt.
  • Im PTO-Modus sind alle 32 Bits des Impulszähl-/Impulsbreiten-Voreinstellregisters 1416 signifikant und werden Software-gesteuert geladen. Der Gültigkeitsbereich dieses Registers in diesem Modus ist "1 bis (232–1)". Dieses Register kann nur dann Software-gesteuert geladen werden, wenn der PLS-Block deaktiviert ist.
  • Betriebssteuerung
  • Ein Steuerungsregister enthält Bits, um es der Software zu ermöglichen, den Betrieb des PLS-Blocks zu aktivieren oder zu deaktivieren. Sobald die Software den PLS-Block aktiviert, wird das Umschalten des Ausgangspunktes von der QB×PS-Steuerung zur PLS-Block-Steuerung sowie der Betrieb der internen Zähler und Vergleiche mit der nächsten ansteigenden Flanke des zeitbasierten Taktes synchronisiert. Dies geschieht, um sicherzustellen, dass der anfängliche Zyklus der Ausgangswellenform die vorgeschriebene Länge und Impulsbreite hat. Dieses Register wird bei einer Watchdog-Zeitablauf-Fehlerbedingung oder aufgrund der direkten Software-Steuerung der Ausgangsdeaktivierfunktion in seinem Nullstellzustand gehalten.
  • Ein Einrichtregister enthält Bits, um es der Software zu ermöglichen, den Betrieb des PLS-Blocks zu konfigurieren. Darin sind eine PLS-zeitbasierte Auswahl und eine Betriebsmodusauswahl enthalten. Ein Interrupt-Aktivierregister verleiht der Software die Fähigkeit, individuell das Generieren von Interrupts für PTO-komplett- und Addiererfehler-Ereignisse zu aktivieren und zu deaktivieren. Ein Statusregister ist vorhanden, um es der Software zu erlauben, Informationen über den aktuellen Betriebszustand des PLS-Blocks zu erlangen. Diese Informationen beinhalten den Aktivierzustand und den Zustand des Flags „Pipeline geladen" (siehe Beschreibung unten).
  • Ein Interrupt-Statusregister liefert Informationen über die Interrupt-Quelle(n), die die Interrupt-Bedingung generiert bzw. generieren. Das Signal INT×PLS hat seinen Ursprung im PLS-Block und wird vom Interrupt-Steuergerät benutzt. Dieses Signal wird aktiv, wenn ein oder beide Ereignisse, die PLS-Interrupts generieren, eingetreten sind (vorbehaltlich des Zustands der Interrupt-Aktivier-Bits im Interrupt-Aktivierregister). Das Lesen des Interrupt-Statusregisters löscht alle aktiven Interrupt-Hinweise im PLS-Block und gibt das Sig nal INT×PLS frei. Zudem löscht das Deaktivieren einer Interrupt-Ursprungsquelle im Interrupt-Aktivierregister ein aus dieser Quelle stammendes wartendes Interrupt. Wenn dann keine anderen Interrupts im PLS-Block warten, wird das Signal INT×PLS freigegeben.
  • Hardware-Pipeline-Mechanismus
  • Der Pipeline-Mechanismus wird so bereit gestellt, dass Änderungen der Wellenformmerkmale ohne eine daraus resultierende Wellenformverzerrung angewendet werden können. Die folgenden Pipeline-Register werden bereit gestellt, um die neuen Werte für Zykluszeit, Impulsbreite usw. aufzunehmen:
    • – Das Zykluszeit-Pipeline-Register dient dazu, den neuen Zykluszeitwert zu speichern.
    • – Das Delta-Zykluszeit-Pipeline-Register dient dazu, den neuen Delta-Zykluszeitwert zu speichern.
    • – Das Impulszähl-/Impulsbreiten-Pipeline-Register dient dazu, den neuen Impulszähl- bzw. Impulsbreitenwert zu speichern (im PTO-Modus speichert dieses Register einen neuen Impulszählwert, und alle 32 Bits des Registers werden genutzt. Im PWM-Modus speichert dieses Register einen neuen Impulsbreitenwert, und nur die unteren 16 Bits des Registers werden genutzt.)
  • Ein Flag Pipeline geladen wird als Bestandteil der Schnittstelle zwischen dem PLS-Block und der Software implementiert, wenn der Hardware-Pipeline-Mechanismus benutzt wird. Das Flag Pipeline geladen wird immer dann gesetzt, wenn die Software einen Wert in das am wenigsten signifikante Byte des Impulszähl-/Impulsbreiten-Pipeline-Register schreibt. Daher muss die Software – um den Hardware-Pipeline-Mechanismus benutzen zu können – immer einen Wert in das Impulszähl-/Impulsbreiten-Pipeline-Register schreiben, und dies muss das letzte Pipeline-Register sein, in das geschrieben wird.
  • Alle Pipeline-Register müssen Software-gesteuert geladen werden, da der Inhalt aller Pipeline-Register in die Betriebsregister übertragen wird. Im PWM-Modus braucht die Software nicht in das Delta-Zykluszeit-Pipeline-Register zu schreiben, da das Delta-Zykluszeit-Pipeline-Register auf "0" gehalten wird, solange der PLS-Block im PWM-Modus ist. Jeder Inhalt dieses Pipeline-Registers wird effektiv verworfen.
  • Sobald in die Pipeline-Register geschrieben und das Flag Pipeline geladen gesetzt worden ist, wird der Inhalt der Pipeline-Register unter folgenden Bedingungen in die Betriebsregister übertragen:
    • – Wenn der PLS-Block aktiviert ist, erfolgt die Übertragung bei Eintritt des PTO-komplett-Ereignisses (wenn der Block im PTO-Modus ist) bzw. des Zyklusende-Ereignisses (wenn der Block im PWM-Modus ist).
    • – Wenn der PLS-Block deaktiviert ist, erfolgt die Übertragung sofort, sobald der PLS-Block Software-gesteuert aktiviert wird.
  • Nach der erfolgter Übertragung an die Betriebsregister wird das Flag Pipeline geladen automatisch gelöscht.
  • Sobald das Flag Pipeline geladen in einem aktivierten PLS-Block gesetzt wird, wird die Software so lange daran gehindert, in eines der Pipeline-Register zu schreiben, bis ihr Inhalt in die Betriebsregister übertragen worden ist (was dadurch signalisiert wird, dass die ASIC das Flag Pipeline geladen löscht). Wenn der PLS-Block deaktiviert ist, kann ohne Beschränkung in die Pipeline-Register geschrieben werden, und jedes Mal, wenn das am wenigsten signifikante Byte der Impulszähl-/Impulsbreiten-Pipeline-Register geschrieben wird, wird das Flag Pipeline geladen gesetzt.
  • Automatischer Deaktiviermechanismus
  • Ein aktivierter PLS-Block im PTO-Modus kann unter folgenden Bedingungen automatisch deaktiviert werden:
    • – Das PTO-komplett-Ereignis tritt ein, und es ist keine neue Wellenformeinrichtung in den Pipeline-Registern gespeichert (Flag Pipeline geladen = „0")
    • – Ein Addiererfehler-Ereignis tritt ein.
  • Wenn der PLS-Block automatisch deaktiviert wird, wird das Master-Aktivier-Bit im Steuerregister durch die ASIC gelöscht. Das Flag Pipeline geladen wird davon jedoch nicht beeinflusst.
  • Manuelles Deaktivieren
  • Jedes Mal, wenn das Master-Aktivier-Bit im Steuerregister Software-gesteuert gelöscht wird, geht der PLS-Block sofort in den Zustand "PTO deaktiviert" bzw. "PWM deaktiviert" (siehe Beschreibung unten) – je nachdem, in welchem Betriebsmodus der Block gerade ist. Eine software-gesteuerte Deaktivierung löscht auch das Flag Pipeline geladen und ggf. wartende Interrupts.
  • Gültige Registerbereiche
  • Die Tabelle in 14b zeigt den Bereich der gültigen Werte für jedes der numerischen Register im PLS-Block.
  • PTO-Betrieb
  • Dieser Modus wird ausgewählt durch Aktivieren des PLS-Blocks. Die Software steuert die Zykluszeit, die Delta-Zykluszeit und die Impulszählung. Der Arbeitszyklus ist festgelegt auf 50%. Daher wird folgende Funktionalität des PLS-Blocks für den Einsatz in diesem Modus aktiviert:
    • – Zykluszeit-Voreinstellwert- und Zykluszeit-Pipeline-Register
    • – Delta-Zykluszeit- und Delta-Zykluszeit-Pipeline-Register
    • – Impulszähl-/Impulsbreiten-Voreinstellwert-Register und Impulszähl-/Impulsbreiten-Pipeline-Register (so konfiguriert, dass 32-Bit-Impulszählung gehalten wird)
    • – 32-Bit-Impulszähler
    • – 16-Bit-Zykluszeitzähler
    • – Vergleich, um das Zyklusende-Ereignis zu generieren
    • – Vergleich, um das PTO-komplett-Ereignis zu generieren
    • – Vergleich, um den Zustand von PLS×OUT zu steuern
    • – Flag Pipeline geladen
    • – PTO-komplett-Ereignis- und Addiererfehler-Interrupts
  • Die wichtigsten Zustandsübergänge des PLS-Blocks im PTO-Modus werden im Zustandsdiagramm 1500 in 15 gezeigt.
  • Wenn der PLS-Block im Zustand "PTO deaktiviert" 1502 ist:
    • – wird der Ausgang QBO.x durch das Ausgangspunkt-Zustandsregister statt durch den PLS-Block gesteuert.
    • – werden der Zykluszeitzähler und der Impulszähler auf "0" gehalten.
    • – zeigt das Statusbit PLS×STAT.EN den Zustand "Deaktiviert" an. Wenn der PLS-Block im Zustand "PTO-Betrieb" 1504 ist:
    • – wird der Ausgang QBO.x durch den PLS-Block (über das Signal PLS×OUT) gesteuert.
    • – zeigt das Statusbit PLS×STAT.EN den Zustand "Aktiviert" an.
    • – wird der normale PTO-Betrieb aktiviert.
  • Der Zykluszeitzähler wird an der ansteigenden Flanke der PLS-Zeitbasis inkrementiert, und der überwiegende Teil der Funktionalität des PLS-Blocks wird entweder direkt oder indirekt durch den Zähler angetrieben. Das in 16 gezeigte Pseudocode-Segment skizziert die ASIC-Betriebsschritte im PTO-Modus, die an einer ansteigenden Flanke der PLS-Zeitbasis erfolgen (die Reihenfolge der Betriebsschritte ist wichtig, daher sollten Sie von einer Top-Bottom-Evaluierung dieser Anweisungen ausgehen). Fachleute auf diesem technischen Gebiet werden sofort den Betrieb der ASIC im PTO-Modus aus dem Pseudocode erkennen.
  • PWM-Betrieb
  • Dieser Modus wird ausgewählt, indem der PLS-Block aktiviert wird. Software steuert die Zykluszeit und die Impulsbreite. Daher wird folgende Funktionalität des PLS-Blocks zur Verwendung in diesem Modus aktiviert:
    • – Zykluszeit-Voreinstellwert- und Zykluszeit-Pipeline-Register
    • – Impulszähl-/Impulsbreiten-Voreinstellwert-Register und Impulszähl-/Impulsbreiten-Pipeline-Register (so konfiguriert, dass 16-Bit-Impulszählung gehalten wird)
    • – 16-Bit-Zykluszeitzähler
    • – Vergleich, um das Zyklusende-Ereignis zu generieren
    • – Vergleich, um den Zustand von PTO×OUT zu steuern
    • – Flag Pipeline geladen
  • Das Delta-Zykluszeit-Register und das Delta-Zykluszeit-Pipeline-Register werden auf "0" gehalten, und der Impulszähler und das Generieren von Interrupts für den Block werden deaktiviert. Das Signal INT×PLS sollte in diesem Modus immer in den inaktiven Zustand gebracht werden.
  • Die wichtigsten Zustandsübergänge des PLS-Blocks im PWM-Modus werden im Zustandsdiagramm in 17 gezeigt.
  • Wenn der PLS-Block im Zustand "PWM deaktiviert" 1702 ist:
    • – wird der Ausgang QBO.x durch das Ausgangspunkt-Zustandsregister statt durch den PLS-Block gesteuert.
    • – wird der Zykluszeitzähler auf "0" gehalten.
    • – zeigt das Statusbit PLS×STAT.EN den Zustand "Deaktiviert" an.
  • Wenn der PLS-Block im Zustand "PWM-Betrieb" 1704 ist:
    • – wird der Ausgang QBO.x durch den PLS-Block (über das Signal PLS×OUT) gesteuert.
    • – zeigt das Statusbit PLS×STAT.EN den Zustand „Aktiviert" an.
    • – wird normaler PWM-Betrieb aktiviert.
  • Der Zykluszeitzähler wird an der ansteigenden Flanke der PLS-Zeitbasis inkrementiert, und der überwiegende Teil der Funktionalität des PLS-Blocks wird entweder direkt oder indirekt durch den Zähler angetrieben. Das in 18 gezeigte Pseudocode-Segment skizziert die ASIC-Betriebsschritte im PWM-Modus, die an einer ansteigenden Flanke der PLS-Zeitbasis erfolgen (die Reihenfolge der Betriebsschritte ist wichtig, daher sollten Sie von einer Top-Bottom-Evaluierung dieser Anweisungen ausgehen). Fachleute auf diesem technischen Gebiet werden sofort den Betrieb der ASIC im PWM-Modus aus dem Pseudocode erkennen.
  • Impulskettenausgang-Profilanweisung (PTOP)
  • Die von der ASIC bereit gestellte Impulsausgangsfunktion soll primär der Steuerung von Schrittmotoren dienen. Der PLC liefert eine benutzerspezifische Anweisung, um Profile zur Beschleunigung/Verlangsamung und für den Betrieb von Schrittmotoren zu generieren. Diese Anweisung wird in 19 gezeigt.
  • Erweiterungs-E/A-Gerät
  • Übersicht über das Erweiterungsbus-Konzept
  • Physisch besteht das Erweiterungssubsystem aus gekapselten E/A-Modulen, die unabhängig voneinander montierbar sind (ohne gemeinsame Rückwandplatine). Ein zehnadriges Flachbandkabel, das Bestandteil jedes Moduls ist, dient dem Anschluss an das vorhergehende Modul oder die CPU. Dieses Kabel trägt eine 5V-Versorgungsspannung und für den Modulbetrieb benötigte logische Signale (siehe 20). Die Signale des E/A-Erweiterungsbusses werden in 21 beschrieben.
  • Während alle Signale physisch über die Module verkettet werden, werden nur die EMA-Signale logisch getrennt und in jedem Modul regeneriert. Alle anderen Signale bilden einen einzigen elektrischen Bus, der sich über die gesamte Länge der E/A-Modulkette erstreckt. Der Wert der EMA-Signale wird inkrementiert, ehe er an das nächste Modul übergeben wird. Jeder Zugang des E/A-Erweiterungsbusses beinhaltet ein Moduladressfeld zur Auswahl des Moduls, auf das zugegriffen werden soll. Nur das Modul, dessen Adresse zum Moduladressfeld passt, reagiert auf den Zugriff. Dieses Schema erlaubt es, E/A-Modularten willkürlich zu mischen, die ohne Adressschalter und ohne feste Rückwandplatine miteinander verkettet werden sollen. Die logische Erweiterung von bis zu acht Geräten ist mit drei EMA-Signalleitungen möglich, wobei jedoch derzeit nur 7 Module zulässig sind. Natürlich sind auch andere Erweiterungsgeräte möglich.
  • 22 zeigt die erfindungsgemäße logische Struktur 2200 und den erfindungsgemäßen Signalfluss von E/A-Modulen 2202. Die Einzelheiten der logischen E/A-Erweiterungsstrukturen werden hier nicht beschrieben. Die Tabelle in 23 gibt die Werte für jede der Komponenten wieder, die in der elektrischen Schnittstelle eines E/A-Moduls verwendet werden. Die Tabellen in 24 beschreiben die elektrischen Merkmale der E/A-Bussignale. Der Zugang zum Erweiterungs-E/A- Gerät wird von der ASIC in der CPU gesteuert und erklärt sich aus den Diagrammen in 25 und 26, die die Schreib-/Lesezyklussequenzen beschreiben, wie sie im E/A-Erweiterungsbus zu finden sind.
  • Die ASIC (Master-Zustandsmaschine und Transaktionszeitsteuerung)
  • Nachstehend folgt eine Beschreibung der Bustransaktionssequenz. Die EM-Bus-Zeitsteuerung wird so angeordnet, dass sie bei Bedarf Zeit für die Signallaufzeit und den Signalversatz lässt. Der Master liefert Signale an die abfallenden Taktflanken der EMC, die durch den Slave an der nächsten ansteigenden Flanke verriegelt werden. Eine halbe EMC-Taktzeit ist zulässig, um das Einrichten der Daten im Slave zu ermöglichen und den extremsten Signalversatz der EMC zur EMD über die ASIC-Pufferspeicher, die externen Kabel und ggf. Pufferspeicher von Signalverstärkerstationen zu berücksichtigen. Der Slave präsentiert die Daten an der ansteigenden Flanke der EMC, und der Master verriegelt die Daten an der nächsten abfallenden Taktflanke. Dies ermöglicht eine vollständige Taktzeit für die Laufzeit des Taktes bis zum Slave, die Slave-Takt-zum-Ausgang-Verzögerung und die Rücklaufzeit.
  • Während einer Bustransaktion werden Registerfelder zuerst am signifikantesten Bit des Busses präsentiert. Das Bit "P1" des 2-Bit-Paritätsfeldes wird zuerst präsentiert, danach dann das Bit "P0". Die Aktivitäten der Master-Zustandsmaschine werden sowohl in Bezug auf die ansteigenden als auch die abfallenden EMC-Flanken beschrieben, während beim Slave davon ausgegangen wird, dass er keine andere Zeitbasis als die EMC hat und vollständig an den ansteigenden EMC-Flanken arbeiten kann. Die EMC wird auf LOW gesetzt, wenn sie nicht gebraucht wird, um die Gefahr einer Taktung falscher Daten in die Slaves zu verhindern.
  • Bustransaktionssequenz
  • Die folgenden Abschnitte beschreiben die verschiedenen Komponenten der EM-Bustransaktionssequenz, und zwar sowohl das Schreiben von Daten in den Slave als auch das Lesen von Daten aus dem Slave. Von den folgenden Maßnahmen wird angenommen, dass sie aus dem Master (EM-Gerät) generiert werden, außer wenn das Generieren ausdrücklich dem Slave zugeschrieben wird. Der folgende Text und das nachfolgende Taktdiagramm helfen, die Transaktionssequenz richtig zu verstehen.
  • Sequenzstart
  • Eine EM-Bustransaktion wird durch softwaregesteuertes Schreiben in das EM0START- oder EM1START-Register ausgelöst. Das In-Betrieb-Bit des EM-Statusregisters wird sofort gesetzt. Weitere Schreibzugriffe auf die EM-Register werden durch die ASIC deaktiviert, solange das In-Betrieb-Bit gesetzt ist, um jedes Stören der arbeitenden Bussequenz zu verhindern. Die Software ist dafür zuständig, dass sichergestellt ist, dass neue Bustransaktionen nur dann ausgelöst werden, wenn das EM-Gerät im Ruhezustand ist (In-Betrieb-Bit auf LOW). Die Bustransaktion wird durch das Signal EMC0 getaktet, wenn die Sequenz durch Schreiben in das EM0START-Register ausgelöst wurde. Wenn die Sequenz jedoch durch Schreiben in das EM1START-Register ausgelöst wurde, wird die Bustransaktion durch das Signal EMC1 getaktet. Der tatsächliche Start der EM-Bussequenz (auch "EMCST" genannt) erfolgt an der abfallenden Flanke der EMC-Zeitbasis nach der Transaktionsauslösung.
  • Modul-/Register-Adresse
  • Am Punkt EMCST setzt der Master das Signal XA_OD auf LOW und aktiviert die EMC- und EMD-Signale. Das Erfassen eines aktiven Signals XA_OD an einer ansteigenden EMC-Flanke wird auch vom Slave dazu verwendet, den Start des Adressiervorgangs zu identifizieren. Der Master generiert dann 10 Takte im EMC-Signal und taktet den Inhalt des EMADDR-Registers und 2 Paritätsbits (P1 und P0) in die Sequenz in der EMD. Das erste Bit des EMADDR-Registers, das in der EMD präsentiert wird, gilt am Punkt EMCST. Das Signal XA_OD wird bei EMC↓1 wieder auf HIGH gesetzt. Der Master präsentiert bei jeder EMC↓ ein neues Bit in der EMD. Das EMD-Signal wird bei EMC↓10 freigegeben. Der Slave verriegelt die bei EMC↑ 1:10 gültigen Informationen (ansteigende Flanke von EMC 1:10).
  • Datenlesesequenz
  • Für eine Lesetransaktion wird das Signal EMD-DIR bei EMC↓10 auf LOW gesetzt. Nachdem die Modul-/Register-Adressbits getaktet worden sind, generiert der Master 13 weitere Tak te (11:23) im EMC-Signal. EMC-Takte 11:12 sind Ruhetakte, um dem Slave Zeit für das Generieren der passenden Registerdaten und der für die Übertragung verfügbaren Parität zu geben. Der ausgewählte Slave liefert 8 Daten- und 2 Paritätsbits im EMD-Signal bei EMC↑13:22 und kehrt bei EMC↑23 in den Ruhezustand zurück (der Slave gibt das EMD-Signal zu diesem Zeitpunkt frei) Der Master verriegelt die bei EMC↑14:23 gültigen Daten. Der Slave liefert das signifikanteste Bit des Datenwertes zuerst, danach das Paritätsbit P1 und schließlich das Paritätsbit P0. Der Datenwert wird im Register EMDATA gespeichert. Der Master bestimmt die Parität des im EMDATA-Register gespeicherten Wertes und vergleicht die so berechnete Parität mit den Paritätsbits, die vom Slave empfangen werden. Wenn die berechnete und die empfangene Parität nicht übereinstimmen, wird das Fehlerbit im EM-Statusregister gesetzt. Andernfalls wird das Fehlerbit gelöscht. Das Signal EMDDIR wird bei EMC↓23 freigegeben (d.h., auf HIGH gesetzt).
  • Datenschreibsequenz
  • Bei einer Schreibtransaktion liefert der Master – nachdem die Modul-/Register-Adressbits getaktet worden sind – 14 weitere Takte (11:24) im EMC-Signal. Der Master liefert die 8 Datenbits (vom EMDATA-Register) an die EMD, gefolgt von den 2 Paritätsbits (P1, danach P0). Der Master präsentiert die Daten- und Paritätsbits bei EMC↓10:19, gibt dann das EMD-Signal frei und setzt anschließend das Signal EMDDIR bei EMC↓20 auf LOW. Der Slave verriegelt die bei EMC↑11:20 gültigen Daten. Der Slave reagiert auf einen kompletten Schreibzyklus und die richtige Parität, indem er die Bits 0 und dann 1 von der EMD bei EMC↑22:23 taktet. Der Master verriegelt diese Bestätigungsantwort bei EMC↑23:24. Der Slave kehrt dann in den Ruhezustand zurück und gibt die EMD bei EMC↑24 frei. Wenn der vom Master gelesene 2-Bit-Bestätigungswert nicht 01 ist, wird das Fehlerbit im EM-Statusregister gesetzt. Andernfalls ist der Bestätigungswert korrekt, und das Fehlerbit wird gelöscht. Das Signal EMDDIR wird bei EMC↓24 freigegeben (d.h., auf HIGH gesetzt).
  • Sequenzende
  • Das Ende der Bustransaktion tritt definitionsgemäß an der ersten ansteigenden Flanke der EMC-Zeitbasis nach EMC↓23 (Le setransaktion) oder EMC↓24 (Schreibtransaktion) ein. Bei EMCND wird das In-Betrieb-Bit des EM-Statusregisters gelöscht. Das Fehlerbit muss gültig sein, wenn das In-Betrieb-Bit gelöscht wird. Die Bussignale sollten in ihrem jeweiligen Ruhezustand sein.
  • Paritätsprüfbits
  • Zwei Paritätsbits dienen dazu, die Parität eines einzelnen 8-Bit-Wertes anzugeben. Jedes der beiden Paritätsbits verkörpert eine ungerade Parität auf 5 Bits des Wertes (siehe Tabelle in 27). Eine ungerade Parität bei einer geraden Anzahl an Bits stellt sicher, dass die Felder aller ler bzw. aller 0en entgegengesetzte Paritätsbits haben.
  • Hinweise zu den Software-Schnittstellen
  • Eine typische EM-Bustransaktion beinhaltet das softwaregesteuerte Schreiben in das EMADDR-Register, das Schreiben eines Datenbytes in das EMDATA-Register (falls es sich um eine Schreibtransaktion handelt) und anschließend das Schreiben in das EM0START-Register und das EM1START-Register, um die Sequenz auszulösen. Die Software liest wiederholt das In-Betrieb-Bit des EM-Statusregisters, um festzustellen, wann die Transaktion abgeschlossen ist. Bei Abschluss der EM-Bustransaktion wird das In-Betrieb-Bit gelöscht und das Fehlerbit entsprechend gesetzt. Der Datenwert kann nun aus dem EMDATA-Register gelesen werden, wenn eine Lesetransaktion durchgeführt wurde. Die Software kann sicherstellen, dass nur das EMSTAT-Register gelesen wird, während die Transaktion läuft, und das EM-Gerät kann so ausgelegt werden, dass es einen Lesezugriff dieses Registers durch die Software jederzeit verarbeitet.
  • Wenn ein Interrupt-Ereignis eintritt, während eine EM-Bustransaktion läuft, und die Interrupt-Routine die Benutzung des EM-Gerätes erfordert, dann kann diese Routine den Zustand des In-Betrieb-Bits abtasten und auf den Transaktionsabschluss warten, bevor sie auf andere EM-Geräteregister zugreift. Derartige Interrupt-Routinen müssen den Inhalt des EMADDR-Registers und des EMDATA-Registers sowie den Zustand des Fehlerbits speichern und zurückspei chern. Dies ist erforderlich, damit diese Register die korrekten Werte für die Bustransaktion enthalten, die durch die unterbrochene Routine gestartet wurde, sobald die Steuerung wieder an diese Routine zurückfällt.
  • Deaktivierung von Ausgängen mit Hilfe des Signals XA_OD
  • Das Signal XA_OD dient dem doppelten Zweck, den Adresszyklusstart und den Eintritt eines Ausgang-deaktiviert-Zustands (der durch einen CPU-Systemfehler hervorgerufen wird) zu identifizieren. Bei einer angenommenen langsamsten Busrate von ca. 1 MHz beträgt die längste normale Aktivierung des Signals XA_OD in der Adressenbenutzung ca. 1 μs. Ein Schwellwert von ca. 100 × 1 μs (= 100 μs) für das Erkennen des Signals XA_OD durch den Slave als Ausgangsdeaktivierung lässt einen einfachen Dioden/R/C-Filter am Slave zu und ergibt eine angemessen schnell ansprechende Ausgangsdeaktivierungsfunktion. Das externe Signal XA OD ist das logische OR des Adresszyklus-Kennungssignals, das von der EM-Buszustandsmaschine und von dem aus dem Watchdog-Timer-Gerät stammenden Ausgänge-OK-Signal kommt.
  • Anwendungsprogrammspeicher
  • Der Anwendungsprogrammspeicher kann dazu dienen, das Anwendungsprogramm zu speichern. Das Ende des Hauptprogramms kann durch Verwendung einer MEND-Anweisung (Main Program End) abgeschlossen werden. Der Restanteil des Anwendungsprogrammspeichers, der über die MEND-Anweisung hinausgeht, kann für Subroutinen und Interrupt-Routinen reserviert werden.
  • Serielle Datenübertragung
  • Der PLC stellt einen seriellen Datenübertragungs-Port bereit, wie er unter Bezugnahme auf 1 beschrieben wird. Dieser Datenübertragungs-Port verwendet RS485-Signalpegel und kann mit 9,6 KB, 19,2 KB oder 187,5 KB übertragen, wobei zugleich die Systemdatenübertragungsprotokolle (PPI oder DP/T) unterstützt werden. Dieser Port dient als Programmierschnittstelle zum PLC. Daneben ist der Port im RUN-Modus für den Einsatz als Universal-Datenübertragungs-Port, der vollständig durch das Anwendungsprogramm gesteuert wird, (auch Freeport-Modus genannt) verfügbar, wobei er mit Übertragungsgeschwindigkeiten von 300 Baud bis 38,4 KB arbeiten kann. Der physische Anschluss an den RS485-Port erfolgt über einen 9-Stift-D-Stecker.
  • SM-Bits (Special Memory Bits – siehe Abschnitt 6.2, SM2, SM3, SM30 und SM130) sind für die Freeport-Nutzung des Datenübertragungs-Ports vorgesehen. Der Standardzustand der SM-Bits, die die Nutzung des Datenübertragungs-Ports steuern, aktiviert die Nutzung des Datenübertragungs-Ports als Programmierschnittstelle. Wenn das Anwendungsprogramm das SM-Bit einschaltet, das die Benutzung des Datenübertragungs-Ports steuert, wird das Anwendungsprogramm aktiviert, um Meldungen über den Datenübertragungs-Port zu senden und zu empfangen. In dieser Betriebsart kann der Benutzer den Port für jedes beliebige zeichengestützte Protokoll konfigurieren (7 oder 8 Zeichen, gerade oder ungerade oder keine Parität sowie Übertragungsgeschwindigkeit). Der Port arbeitet im Halbduplexmodus, und das Anwendungsprogramm kann den Port im Polling- oder Interrupt-Modus betreiben. Ein Empfangszeichenpuffer sowie ein Datenübertragungsstatusregister und ein Konfigurationsregister, das das Bit beinhaltet, das die Betriebsart des Ports steuert, werden im SM-Anwenderbereich bereit gestellt. Alle Datenübertragungsfunktionen außer der Übertragung können über die Sonderregister im SM-Speicher ausgeführt werden. Die Übertragung ist nur möglich, wenn die besondere Anweisung Schreibe Portmeldung benutzt wird. Das Anwendungsprogramm hat niemals direkten Zugriff auf die Datenübertragungssteuerung oder die Interrupt-Struktur der Maschine.
  • Lesen und Schreiben im Netz im PPI-Master- und PPI-Slave-Modus
  • Der PLC kann als PPI-Slave arbeiten. Im PPI-Slave fungiert der PLC als Responder für Datenübertragungsmeldungen.
  • In einer erfindungsgemäßen Anordnung kann der PLC – wenn die CPU im RUN-Modus ist – als PPI-Master wie auch als PPI-Slave arbeiten. Der Benutzer kann den PPI-Master-Modus auswählen, wobei das im Anwendungsprogrammspeicher gespeicherte Anwendungsprogramm für die Steuerung zuständig ist. In dieser Anordnung kann ein wohl bekanntes Token-Ring-Datenübertragungsprotokoll implementiert werden, um die Datenübertragung zwischen Master und Slave auszuführen. Im PPI-Master- Modus kann der PLC das Token halten und PPI-Anfragen initiieren, so dass der Benutzer befähigt wird, über die Schreib-/Leseanweisungen im Netz auf Daten in anderen CPUs zuzugreifen. Wenn die CPU das Token nicht hält, reagiert sie auf alle Anfragen als PPI-Slave. Die Größen des Datenübertragungspufferspeicher sind der in 28 abgebildeten Tabelle zu entnehmen.
  • Während der PLC als PPI-Master arbeitet, verwaltet sie das Netz entsprechend wohl bekannten Datenübertragungsnormen (z.B. der PROFI-BUS-Definition, die in der Europäischen Norm EN 50170 spezifiziert wird). Der PLC benutzt den folgenden Algorithmus für die Berechnung der Ziel-Token-Rotationszeit. TTTR = (8+HSA) (256) (1/BR)wobei
    TTTR = die Ziel-Token-Rotationszeit,
    HSA = die höchste Stationsadresse,
    BR = die Übertragungsgeschwindigkeit in Bit/s ist.
  • Wenn die Soll-Token-Rotationszeitschaltung nach Empfang des Token abgelaufen ist, gibt der PLC das Token unverzüglich zum nächsten Token-Inhaber weiter, ohne diejenigen Meldungen zu senden, die vor Empfang des Token ggf. in der Warteschlange warten.
  • Im PPI-Master-Modus bereit gestellte Freeport-Verbindung
  • Die vorliegende Erfindung stellt den Freeport-Betrieb des Datenübertragungs-Ports (nachstehend "Freeport" genannt) bereit, der es dem Benutzer erlaubt, den Port entweder manuell oder durch Ausführen eines Anwendungsprogramms zu steuern. Das Verfahren für den Freeport-Betrieb wird in 30a gezeigt.
  • In der vorliegenden Erfindung implementiert der Benutzer die Freeport-Anwendung (Schritt S3000) durch Erzwingen eines Interrupt (Schritt S3002) des PLC gemäß der vorstehend beschriebenen Interrupt-Architektur. In diesem Fall initiiert der Benutzer die Freeport-Datenübertragung, während der PLC im Master-Modus betrieben wird, in dem ein Interrupt-Ereignis angefügt wird, das die Steuerung des Datenübertragungs-Ports an das Anwendungsprogramm übergibt (Schritt S3004). Dies geschieht, während das Systemprotokoll das Token hält (Schritt S3006).
  • In Reaktion darauf übergibt der PLC die Steuerung an das Anwendungsprogramm (Schritt S3008). Der PLC steuert die UART-Einstellungen (Schritt S3010) entsprechend den in 30b gezeigten SM-Bit-Definitionen SMB30 und SMB130. In diesem Beispiel werden die Modus-Bits der Definitionen SMB30 und SMB130 durch den PLC auf den PPI-Master-Modus gesetzt (Schritt S3012).
  • Sobald die Steuerung vom System auf die benutzerseitige Interrupt-Routine übergegangen ist, steuert das Anwendungsprogramm das Senden und Empfangen von Meldungen unter Nutzung des Freeports (Schritt S3014). Sobald das Anwendungsprogramm seine Aufgabe erfüllt hat, kann es die Steuerung zurück an das System geben, indem es eine spezielle Anweisung ausführt, die den Freeport-Betrieb beendet (Schritt S3016). Die zur Beendigung des Freeport-Betriebs verwendete Anweisung wird in der in 29 gezeigten Tabelle beschrieben. Das System nimmt danach wieder seinen Normalbetrieb auf, indem es das Token an die nächste Station weitergibt (Schritt S3018). Das System ist dafür zuständig, alle Aspekte des Netzes zu verwalten, so als wenn das Anwendungsprogramm niemals einen Zeitschlitz erhalten hat, während der PLC das Token hielt (Schritt S3020).
  • Integriertes Freeport-Protokoll
  • Um die Datenübertragung bei Anwendung des PPI-Protokoll leistungsfähiger zu gestalten, ist für das PPI-Protokoll eine integrierte Protokollauswahloption vorgesehen. Wenn der PLC in den RUN-Modus gebracht und das Freeport-PPI-Protokoll durch den in SM30 oder SM130 geschriebenen Wert ausgewählt wird, wird der Datenübertragungs-Port gemäß den in SM30 oder SM130 geschriebenen Werten konfiguriert. Wenn der Freeport-Modus wieder verlassen wird, kehrt der PLC zum Standard-PPI-Protokoll mit der ausgewählten Übertragungsgeschwindigkeit zurück. Der Code für die Auswahl des Freeport-PPI-Protokolls ist wie durch SM30 (Port 0) und SM130 (Port 1) definiert. Die Tabelle in 30b gibt die Definition von SM30 und SM130 an.
  • Freeport-Empfangsmeldungs-Interrupt
  • Um das Programmieren für Freeport-Datenübertragungen zu vereinfachen, unterstützt der PLC eine Empfangsmeldungsanweisung, die gemeinsam mit einem Empfangsmeldungsereignis-Interrupt angewendet werden kann. Der Benutzer spezifiziert die Bedingungen, die erforderlich sind, um den Anfang und das Ende einer Meldung zu definieren. Der PLC unterstützt folgende Meldungsbedingungsspezifikationen:
  • Port 0:
    • SMB86 – Meldungsstatus-Byte: zeigt Abschlussbedingungen an.
    • SMB87 – Meldungssteuer-Byte: Aktiviert das ausgewählte Meldungsempfangskriterium.
    • SMB88 – Beginnzeichen: Das Zeichen, das unverwechselbar den Beginn einer neuen Meldung kennzeichnet.
    • SMB89 – Endzeichen: Das Zeichen, das unverwechselbar das Ende der Meldung kennzeichnet.
    • SMW90 – Freie Leitung: Zeitraum, nach dem das erste empfangene Zeichen eine neue Meldung beginnt.
    • SMW92 – Zwischenzeichen/Meldungszeitablauf: Max. zulässiger Zeitraum zwischen Zeichen oder für die zu empfangende Meldung. Nutzung wird durch das Meldungssteuer-Bit festgelegt.
    • SMW94 – Zeichenzählung: Max. Länge der Empfangsmeldung.
  • Port 1:
    • SMB86 – Meldungsstatus-Byte: zeigt Abschlussbedingungen an.
    • SMB87 – Meldungssteuer-Byte: Aktiviert das ausgewählte Meldungsempfangskriterium.
    • SMB88 – Beginnzeichen: Das Zeichen, das unverwechselbar den Beginn einer neuen Meldung kennzeichnet.
    • SMB89 – Endzeichen: Das Zeichen, das unverwechselbar das Ende der Meldung kennzeichnet.
    • SMW90 – Freie Leitung: Zeitraum, nach dem das erste empfangene Zeichen eine neue Meldung beginnt.
    • SMW92 – Zwischenzeichen/Meldungszeitablauf: Max. zulässiger Zeitraum zwischen Zeichen oder für die zu empfangende Meldung. Nutzung wird durch das Meldungssteuer-Bit festgelegt.
    • SMW94 – Zeichenzählung: Max. Länge der Empfangsmeldung.
  • Das erste Byte des Empfangpufferspeichers wird als Zeichenzähler verwendet, der anzeigen kann, wie viele Zeichen von der Empfangsmeldungsfunktion empfangen wurden. Die Definition jedes dieser Sonderspeicherregister wird in der in 30c und 30d gezeigten Tabelle angegeben.
  • DP_S7-Datenübertragung
  • Der PLC unterstützt das DP/T-Protokoll, das einen MPI-Transport für den Datenaustausch zwischen Master und Slave sicherstellt. PPI-Meldungen sind uneingeschränkt kompatibel mit den DP/T-Meldungen, so dass keine besondere Protokollauswahl erforderlich ist. Der PLC kann entweder eine PPI-Anfrage oder eine DP/T-Anfrage akzeptieren und entsprechend reagieren. Die Unterstützung für DP/T-Datenaustausch über den PPI-Port kann mit beinhalten, dass HD4 bei Übertragungen vom PLC bei allen unterstützten Übertragungsgeschwindigkeiten erfüllt wird.
  • Während PPI ein verbindungsloses Protokoll ist, ist DP/T ein verbindungsorientiertes Protokoll. Die Tabelle in 30d definiert die Anzahl der DP/T-Anschlüsse und die Pufferspeichergröße für jeden Anschluss, der von jedem PLC an jedem Port unterstützt wird. Diese Tabelle enthält jedoch nicht den Pufferspeicher für das Standard-SAP, das ggf. an jedem Port unterstützt wird.
  • Datenübertragung per Modem
  • Die CPU der vorliegenden Erfindung unterstützt die Datenübertragung über Standard-10-Bit-Vollduplexmodems. Dies ist von großer Bedeutung, da die weit verbreiteten neueren 11-Bit-Modems häufig viel zu teuer sind. Es wurde festgestellt, dass dies insbesondere in einer Branchenumgebung zutrifft, in der die industrielle Technik typischerweise hinter dem Stand der Technik in der Computer-Hardware herhinkt.
  • Dagegen sind die alten 10-Bit-Modems häufig in Industriebetrieben zu finden. Diese Erfindung nutzt die Feststellung, dass es einen Überschuss an 10-Bit-Modems in Industriebetrieben gibt, und bietet daher ein einzigartiges 10-Bit-Protokoll, das es dem erfindungsgemäßen PLC (oder auch jedem sonstigen PLC bzw. im Übrigen jedem sonstigen Prozessor) erlaubt, werksseitig in derart ausgerüsteten Betrieben angeschlossen zu werden. Natürlich ist das erfindungsgemäße 10-Bit-Protokoll auch für andere Einrichtungen nützlich und anwendbar, bei denen 10-Bit-Modems verwendet werden.
  • Ein weiterer Vorteil des 10-Bit-Protokolls der vorliegenden Erfindung besteht darin, dass das 10-Bit-Protokoll mit Protokollen höherer Bit-Ordnung kompatibel ist. Dies bedeutet, dass das 10-Bit-Protokoll von einem 11-Bit-Modem oder höher empfangen werden kann.
  • Das erfindungsgemäße 10-Bit-Protokoll widerspricht eigentlich herkömmlicher Vernunft. Natürlich widerspricht es einer intuitiven Denkweise, weniger Bits zu verwenden, als laut neuster Modemtechnik möglich ist. Es widerspricht weiterhin herkömmlicher Vernunft, das 10-Modem-Protokoll zu verwenden, da die vorliegende Erfindung das Paritätsbit opfert – den Dreh- und Angelpunkt, auf den sich die gesamte Datenfernübertragung stützt, um die Datenintegrität sicherzustellen. Wenn man in der Tat berücksichtigt, dass PLCs für die Steuerung von Maschinen zuständig sind, z.B. Schwermaschinen oder Präzisionsroboter, erkennt man, dass das Unternehmen durch die fehlerhaften Befehle eines PLC Aufträge verlieren oder dass – schlimmer noch – jemand dadurch verletzt werden kann. Gewöhnliche Fachleute aus der Praxis würden sich deutlich gegen ein 10-Bit-Protokoll aussprechen.
  • Das erfindungsgemäße 10-Bit-Protokoll wird unter Bezug auf 31 beschrieben. In einer der Anordnungen ist das für die Datenübertragung per Modem verwendete Protokoll eine Änderung des Standard-PPI-Protokolls. Natürlich sind auch andere Bit-Zuweisungen möglich. Das hier spezifizierte Punkt-zu-Punkt-Modemprotokoll (PPM-Protokoll) weist die Bits wie folgt zu:
    • 1 – Startbit
    • 2 – Datenbits
    • 3 – Stoppbit
    • 0 – Paritätsbits
  • Im PPM-Protokoll empfängt jede Anfrage vom Master eine Antwort (Schritt S3100) ohne intervenierende Bestätigung oder Polling (Schritt S3102). Es wird empfohlen, dass nur Meldungen des Typs SD2, die für PPI-Protokolle definiert wurden, im PPM-Protokoll verwendet werden (Schritt S3104). Um diese Anforderung zu erfüllen, kann das Master-Gerät die Verwendung des Master/Slave-Protokolls (DP/T) bei der Verbindungsaufbauanfrage spezifizieren (Schritt S3106). Nach jeder Anfrage kann der Master beispielsweise 15 Sekunden vorsehen, in der das Slave-Gerät reagieren kann, ehe der Transaktionszeitablauf erfolgt (Schritt S3108). Nach Empfang einer Anfrage sieht der Slave eine Mindestdurchlaufzeit von beispielsweise 20 Millisekunden vor, bevor die Antwort ausgegeben wird (Schritt S3110).
  • Jede Anfrage-/Antwortmeldung ist vorzugsweise eine SD2-PPI-Meldung (Schritt S3112) mit 16-Bit-CRC-Prüfcode, der in Form der letzten beiden Bytes der Meldung angehängt wird (Schritt S3114). Die CRC-Prüfung verwendet das Polynom (X16+X12+X5+1), das Industriestandard ist und auch unter der Bezeichnung CRC-CCITT-Polynom bekannt ist (Schritt S3116). Die CRC-Prüfung wird über den gesamten SD2-Rahmen außer Start- und Stoppbits berechnet (Schritt S3118). Der CRC-Generator kann so eingestellt werden, dass alle Bits 1 sind, und zwar sowohl beim Senden als auch beim Empfangen (Schritt S3120). In diesem Fall erzeugt der Empfang einer gültigen Meldung ein Muster des Typs 0×1D0F (Schritt S3122).
  • Das PPM-Protokoll wird dem PLC durch Erdung des Stiftes 9 des Datenübertragungsport-Steckers signalisiert. Der PLC stellt einen integrierten Lastwiderstand an diesem Stift bereit, um die Standard-PROFIBUS-Protokolle auszuwählen.
  • Es lässt sich erkennen, dass das erfindungsgemäße 10-Bit-Modemprotokoll nicht notwendigerweise auf 10 Bits begrenzt ist und auf Konfigurationen mit jeder beliebigen Zahl von Bits erweiterbar ist, einschließlich u.a. {1, 2, 3,... 9, 10, 11,... ∞}. Tatsächlich lässt sich die vorliegende Erfindung besser als n-Bit-Protokoll verstehen, das kein Paritätsbit enthält. Das n-Bit-Protokoll kann mit Hilfe der vorstehenden Beschreibung implementiert werden, um die Datenintegrität sicherzustellen.
  • Teilweises Ausblenden des Anwendungsprogramms
  • Der erfindungsgemäße PLC sorgt für den Schutz von proprietärer Software oder proprietärem Code. Das gleiche Leistungsmerkmal ermöglicht es dem PLC, Teile des Codes für den Benutzer unsichtbar zu machen, die nicht für die Offenlegung gegenüber dem Benutzer bestimmt sind, wie etwa Code, der vom PLC zur Ausführung von PLC-Routineoperationen generiert wird. Es lässt sich erkennen, dass diese Funktion fremde Software-Entwickler zur Beistellung von Software motiviert, die sich ansonsten davor scheuen würden, weil der Code andernfalls für Benutzer zugänglich wäre.
  • Zu diesem Zweck unterstützt der PLC eine HIDE-Anweisung, die es dem Benutzer (bzw. dem Programmiergerät) erlaubt, Teile des Anwendungsprogramms zu identifizieren und dann auszublenden. Die PLC-Programme werden in den Anwendungsprogrammspeicher übertragen und dort abgelegt, wobei die ausgeblendeten Codebereiche verschlüsselt sind. Der PLC entschlüsselt die ausgeblendeten Codeabschnitte zum Zeitpunkt des Kompilierens, um ein ausführbares Programm zu generieren. Nach Abschluss des Kompiliervorgangs werden die ausgeblendeten Codeabschnitte wieder verschlüsselt.
  • Eine Funktion für ein benutzerdefiniertes Passwort wird vorgesehen, das dazu dient, den Programmanteil zu verschlüsseln, der ausgeblendet werden soll. Auf diese Weise kann nur derjenige, der entsprechend autorisiert ist, diese ausgeblendeten Programmabschnitte betrachten.
  • Wie in 32a gezeigt, markiert die erfindungsgemäße Ausblendanweisung den Beginn der verschlüsselten Programmanteile. In der Erfindung wird ein Flag P gesetzt, um anzuzeigen, dass verschlüsselter Code vorhanden ist. Bezugnehmend auf 32b wird nachstehend der Betrieb der Ausblendfunktion beschrieben. Der Benutzer ruft die Ausblendanweisung für einen bestimmten proprietären Code auf (Schritt S3200). In Reaktion darauf initiiert der PLC das Setzen des Flag P (Schritt S3202). Der PLC verschlüsselt den Code mit einem Passwort, das vom Benutzer definiert werden kann (Schritt S3204), und fügt das HIDE-Label in den Anwendungsspeicher zu Beginn und am Ende des Codes ein, um den verschlüsselten Software-Anteil zu markieren (Schritt S3206). Nach dem Kompilieren des Anwendungsprogramms (Schritt S3208) initiiert der PLC das Entschlüsseln des verschlüsselten Anteils (Schritt S3210), und das Anwendungsprogramm wird wieder normal ausgeführt (Schritt S3212). Nachdem das Programm ausgeführt worden ist, verschlüsselt der PLC erneut den proprietären Code (Schritt S3214).
  • Benutzerpasswörter
  • Eine Beschränkung des Zugangs zu den PLC-Funktionen und zum PLC-Speicher kann durch Anwendung eines Passwortes erreicht werden, das es dem Benutzer erlaubt, Zugangsbeschränkungen zu konfigurieren. Ohne Passwort kann unbeschränkt auf den PLC zugegriffen werden. Wenn der PLC jedoch passwortgeschützt ist, kann der PLC alle Operationen sperren, die gemäß der Konfiguration, die zum Zeitpunkt der Installation des Passwortes implementiert wurde, beschränkt sind. Der PLC kann einer Station erlauben, die Datenübertragungsverbindung zuzulassen, so dass der Benutzer dieser Station unbeschränkten Zugang genießen kann. Der Benutzer, der das Passwort kennt, kann die Beschränkungen jederzeit neu konfigurieren, indem er das richtige Passwort eingibt und die Beschränkungsklasse bearbeitet. Benutzer, die das Passwort nicht kennen, müssen die Beschränkungen akzeptieren, die ihnen von der Person, die das Passwort kennt, zugewiesen wurden.
  • Falls der Benutzer ein Passwort vergisst, kann das Master-Passwort benutzt werden, um Zugang zum PLC zu erhalten. Damit das Master-Passwort funktioniert, kann der PLC-Modusschalter wahlweise in Position STOP oder in Position TERM sein. Wenn das Master-Passwort benutzt wird, werden folgende Schritte von der PLC-Software ausgeführt:
    • 1. Der PLC wechselt in den STOP-Modus.
    • 2. Das Anwenderprogramm (OB1) wird entfernt (gelöscht).
    • 3. Der Anwenderdatenspeicher (DB1) wird entfernt (gelöscht).
    • 4. Wenn SDB0 vorhanden ist, werden alle Parameter von SDB2 – außer der Stationsadresse und Übertragungsgeschwindigkeit – in SDB0 kopiert.
    • 5. Alle SM-Flags werden auf ihren Standardzustand gesetzt.
    • 6. Alle Flags werden gelöscht.
    • 7. Alle SCR-Bits werden gelöscht.
    • 8. Analogausgänge werden eingefroren.
    • 9. Der gesamte Systemdatenspeicher wird auf den Standardzustand gesetzt.
    • 10. Alle erzwungenen Punkte werden gelöscht und ihr Zwangszustand wird aufgehoben.
    • 11. Die Tageszeituhr wird nicht geändert.
    • 12. Alle aktuellen Timer-/Zählerdaten werden gelöscht.
    • 13. Das eingebaute EEPROM wird initialisiert (OB1 und DB1 werden gelöscht und SDB2 wird in SDB0 kopiert – ausgenommen die Stationsadresse. Bei allen Eingängen, Ausgängen und Datenwerten wird der Zwangszustand aufgehoben.)
  • Unterstützung von Systemfunktionsaufrufen
  • Der PLC 100 unterstützt Systemfunktionsaufrufe (SFCs), die es dem Benutzer erlauben, benutzerspezifische Funktionen in den PLC hochzuladen.
  • In der Regel lassen sich SFCs beispielsweise durch die Siemens-Entwicklungsgruppen der Baureihe S7-200 generieren und mit Hilfe des Programmiergerätes in den PLC herunterladen. Der PLC unterstützt mindestens zwei SFCs. Die maximale Größe jedes SFC hängt von den im jeweiligen PLC verfügbaren Ressourcen ab. Für die in dieser Erfindung vorgesehene CPU beträgt die maximale Größe jedes SFC 8 KB, einschließlich Blockkopfdaten. SFCs erfordern nicht notwendigerweise Benutzerdaten, obwohl die Zuweisung von Systemdaten vorgesehen sein kann. In den PLC heruntergeladene SFCs werden Bestandteil des Betriebssystems dieses PLC. Der PLC erlaubt zudem das Heraufladen, Herunterladen, Löschen und Kopieren von SFCs in den Kassettenspeicher. Der PLC meldet das Vorhandensein von SFCs an die entsprechenden Verzeichniskommunikationsfunktionen.
  • Eine beispielhafte SFC-Anweisung ist der Tabelle in 33a zu entnehmen. Ausführlicher zeigt 33b das Verfahren für den Systemfunktionsaufruf. Der Benutzer informiert den PLC, dass ein SFC-Download gewünscht wird (Schritt S3300). Der PLC führt das für den Download erforderliche Handshake-Protokoll aus (Schritt S3302), und die SFC wird heruntergeladen (Schritt S3304). Der PLC speichert die heruntergeladene Funktion als Bestandteil der Bibliotheksfunktionen des Betriebssystems (Schritt S3306).
  • Laden eines neuen Betriebssystems
  • Die PLCs können ein FLASH-EPROM verwenden, um das Laden und Speichern eines neuen Betriebssystems über den Datenübertragungsport zu unterstützen. Dies kann mit Hilfe eines Boot-Blocks im FLASH EPROM bewerkstelligt werden, der nicht gelöscht werden kann, wenn er im PLC installiert ist.
  • Ein neues Betriebssystems kann geladen werden, indem ein Personal Computer unter Verwendung eines PC/PPI-Kabels direkt an den PLC angeschlossen wird. Die Anwendung von PROFIBUS-Karten, die in einem Personal Computer installiert oder Bestandteil eines Programmgenerators (PG) sind, werden aufgrund der Komplexität des PROFIBUS-Protokolls nicht bevorzugt, das das einzige Protokoll ist, das mit diesen Geräten benutzt werden kann.
  • Die Definition des zum Laden des neuen Betriebssystems benutzten Protokolls wird anhand seines Designs identifiziert, und jede Datenübertragungsmeldung sorgt für Datenintegritätsprüfungen in Form von Prüfsummen oder CRC-Codes. Die Überprüfung des neuen Betriebssystems wird vor Aufnahme des Normalbetriebs aufgerufen, jedoch nachdem das FLASH EPROM programmiert worden ist.
  • STL-Status
  • Es wurde erkannt, dass das herkömmliche Debugging-System zum Debuggen von Programmen mangelhaft ist, da das bisherige Debugging-System des PLC erst nach dem Ausführen des gesamten Programms debuggt bzw. den Zeitablauf der Programmausführung erheblich stört. Aus diesem Grund unterstützt der PLC die Beschaffung der Ergebnisse des Ausführens einer Gruppe von Anweisungen unmittelbar dann, wenn jede Anweisung dieser Gruppe ausgeführt wird. Dieses neuartige Leistungsmerkmal arbeitet in Echtzeit und während des Ausführens der Anweisung durch den PLC. Um diese Funktion zu implementieren, instrumentiert der PLC das kompilierte Codesegment, dessen Status erfasst werden soll.
  • In einer der Anordnungen wird der STL-Status in einem Display implementiert, wie es beispielsweise durch eine wohl bekannte an den PLC gekoppelte Mensch-Maschine-Schnittstelle bereit gestellt wird. Die Größe des Statusfensters im Display wird durch die Anzahl der Operandenwerte bestimmt, die ggf. rückgemeldet werden. Der PLC kann beispielsweise einen 200 Byte großen Pufferspeicher für Operandenwerte reservieren. Die Größe des Pufferspeichers basiert auf der Datenmenge, die in einem einzigen Datenübertragungsrahmen rückgemeldet werden kann.
  • Vorzugsweise wird nur ein STL-Statusfenster unterstützt. Wenn mehrere Statusfenster unterstützt werden, erfordert dies zusätzlichen RAM-Speicherplatz und bringt Synchronisations- und Triggerprobleme mit sich. Natürlich ist es aufgrund künftiger Entwicklungen in der Speichertechnologie möglich, dass mehrere Fenster zu einer Option werden.
  • Nur ein Gerät sollte ein STL-Statusfenster öffnen können. Die STL-Statusfensterfunktion hängt mit der Stationsadresse des Gerätes zusammen, das das STL-Statusfenster geöffnet hat. Solange das STL-Statusfenster offen bleibt, werden alle sonstigen Anfragen, ein STL-Fenster zu öffnen, durch den PLC abgelehnt.
  • Um ein STL-Statusfenster zu öffnen, kann das Programmiergerät die Adresse der ersten Anweisung im Fenster und danach die Anzahl der Anweisungen im Fenster identifizieren. Das Grundformat der Fensterspezifikation wird nachstehend gezeigt:
  • Figure 00460001
  • In diesem Beispiel ist die einzige Anweisungsadresse, die spezifiziert wird, die Speicheradresse der ersten Anweisung im Fenster. Das Programmiergerät trägt die gesamte Last der Verarbeitung, mit der sichergestellt wird, dass die bei der Einrichtung des STL- Statusfensters abgerufenen Antwortdaten in den 200 Byte großen Antwortpufferspeicher passen.
  • Grundsätzlich gilt, dass das STL-Status-Display die Grenze zwischen den Programmbestandteilen, z.B. MAIN/SUB, SUB/SUB, SUB/INT oder INT/INT nicht überschreiten darf. Dies würde eine Unterbrechung hervorrufen.
  • Das beispielhafte Format des Antwortpufferspeichers wird in 34a gezeigt, wobei die Anweisungsadresse des Beginns des STL-Statusfensters zwecks positiver Bestätigung, dass der PLC und das Programmiergerät dasselbe Fenster sehen können, rückgemeldet wird. Das Längenfeld gibt an, wie viele Datenwert-Bytes im Datenbereich jeder Anweisung enthalten sind. Nachfolgend werden die Codes beschrieben:
    V 0 – Daten für diese Anweisung gelten nicht, da die Anweisung bei diesem Abtastvorgang nicht ausgeführt wurde.
    1 – Daten für diese Anweisung sind gültig.
    ENO Ausgangsaktivierbit, das angibt, ob die Anweisung fehlerfrei ausgeführt wurde.
    SCR Bitwert des SCR-Stapels.
    S4 – S0 S0 bezieht sich auf das Stapelanfangswert und S1 auf den Wert, der dem Stapelanfangswert folgt.
    Daten Die STL-Statusdaten, die für die Anweisung rückgemeldet werden. Das Programmiergerät ist dafür zuständig, dass die Daten auf der Basis der Anfrage, durch die das STL-Statusfenster eingerichtet wurde, geparst werden.
  • Der PLC hat sicherzustellen, dass die im STL-Statusfenster erfassten Daten aus einem einzigen Abtastzyklus stammen. Dem Programmiergerät zeigt der PLC dies mit Hilfe des Flag Valid (V) an, der mit Stapelspeicherwerten für jede Anweisung ausgestattet ist. Intern verfolgt der PLC, was gültig ist, indem er einen Abtastzähler benutzt, der durch eine Anfrage für den STL-Statuspuffer nullgestellt und für jeden Abtastvorgang inkrementiert wird. Wenn ein Wert in den STL- Statuspuffer geschrieben werden soll, wird das Abtastzählstatus-Wort für den Pufferspeicher mit dem aktuellen Wert des Abtastzählers verglichen. Wenn die Werte verschieden sind, wird der Abtastzählerwert in das Abtastzählstatus-Wort für den STL-Statuspufferspeicher kopiert, und alle V-Flags im Pufferspeicher werden entfernt. Dann werden die neuen Werte im Pufferspeicher gespeichert, und das V-Flag für diese Anweisung wird gesetzt. Wenn die Werte der Abtastzählungen identisch sind, werden die neuen Werte im Pufferspeicher gespeichert, und das V-Flag für diese Anweisung wird gesetzt. Auf diese Weise kann der Pufferspeicher immer mit den aus der letzten Abtastung stammenden Daten aktualisiert werden, wobei die Daten mit dem gleichen Abtastvorgang synchronisiert gehalten werden.
  • Instrumentierung des Kompilatfensters für den STL-Status
  • Die Vorrichtung und der Betrieb der STL wird nun unter gleichzeitiger Bezugnahme auf 34b und 34c beschrieben. Der Abschnitt des kompilierten Codes ("Kompilats"), der den Anweisungen im STL-Statusfenster entspricht, wird durch den PLC identifiziert (Schritt S3400) (schraffierte Fläche). Das Originalkompilat, das sich in diesem schraffierten Bereich befindet, wird gespeichert (Schritt S3402) und dann wiederhergestellt, sobald der STL-Statusbetrieb abgeschlossen ist (Schritt S3420). Sobald das Originalkompilat gespeichert wurde, wird der instrumentierte Code in einem anderen Abschnitt des RAM kompiliert (Schritt S3404).
  • Um den Prozess der Code-Instrumentierung zu diskutieren, müssen zunächst einige Begriffe wie folgt definiert werden:
    • Kompilierte Anweisung – Eine kompilierte Anweisung ist der Maschinencode bzw. ausführbare Code, der durch Kompilieren einer STL-Anweisung generiert wird. In der Regel wird jede STL-Anweisung so kompiliert, dass sich mehrere Maschinenanweisungen ergeben.
    • Instrumentierte Anweisung – Eine instrumentierte Anweisung ist eine kompilierte Anweisung zusammen mit zusätzlichem Maschinencode, der notwendig ist, um den Status des Leistungsflusses und die Operandenwerte zu speichern.
  • Um die Adressen von Labels, For-Next-Schleifen, Subroutinen und Interrupt-Routinen zu bewahren, wird jede kompilierte Anweisung im STL-Statusfenster ersetzt durch einen Sprung zur instrumentierten Anweisung (Schritt S3406). Jede instrumentierte Anweisung wird durch eine Rückgabeanweisung abgeschlossen, die die Steuerung an die nächste kompilierte Anweisung weitergibt (Schritt S3408).
  • Der Sprung zum instrumentierten Code erfolgt mit Hilfe einer LCALL-Anweisung (Schritt S3410). Die LCALL-Anweisung überträgt die Steuerung an den instrumentierten Code, der den STL-Status für diese Anweisung erfasst (Schritt S3412). Bei denjenigen kompilierten Anweisungen, die länger als 3 Byte sind, wird der Rückgabewert so angepasst, dass die Steuerung an die nächste kompilierte Anweisung übergeben wird (Schritt S3414).
  • Die Adresse am Anfang der ersten kompilierten Anweisung im STL-Statusfenster kann vor der Instrumentierung bestimmt werden (Schritt S3416). Um die Zeitdauer zu reduzieren, die für die Bestimmung dieser Adresse erforderlich ist, kann eine Tabelle, die beispielsweise einen Zeiger zu der Adresse jeder 25. kompilierten Anweisung enthält, verwaltet werden (Schritt S3418). Eine derartige Tabelle würde ca. 300 Byte für ein 8192-Byte-Anwendungsprogramm erfordern. Wenn mehr RAM zur Verfügung steht, kann die Adresszeigertabelle auf jede 10. kompilierte Anweisung zeigen, was die Zeit für die STL-Statusinstrumentierung weiter verkürzen würde.
  • Der PLC benutzt die in 34c gezeigten Tabellen, die die schnellsten booleschen Anweisungen auflistet und zeigt, welche Änderungen erforderlich sind, um den Code so zu kompilieren, dass alle Anweisungen eine Mindestlänge von 3 Byte haben. Die Anweisungen in den schraffierten Abschnitten der Tabelle melden dem PLC, welche Anweisungen modifiziert werden können.
  • Die vorstehend beschriebene Technik erfordert eine Mindestgröße des RAM; sie erfordert aber auch, dass alle kompilierten Codeanweisungen mindestens die Anzahl von Bytes annehmen, die von der LCALL-Anweisung gefordert werden, die dazu dient, den instrumentierten Codeabschnitt zu verzweigen. Zum besseren Verständnis wird in der Beschreibung oben davon ausgegangen, dass die LCALL-Anweisung drei Bytes annimmt und dass alle kompilierten Anweisungen mindestens drei Bytes annehmen.
  • Designkonzept
  • Das mechanische Designkonzept für die PLC-Baureihe wird in 1 gezeigt. Das Designkonzept entspricht einem "Ziegelmuster", bei dem zu Erweiterungszwecken Bausteine angefügt werden können. Diese Erweiterungsbausteine sind in Art und Form identisch. Das Designkonzept besteht darin, diesen Baustein so kosteneffizient wie möglich zu gestalten, wobei das gleiche Erscheinungsbild wie bei der Baureihe Siemens S7-300TM und S7-400TM beibehalten wird. Die PLC-Baureihe hat die gleiche Farbe und den gleichen Textstil wie die Baureihe S7-300TM und S7-400TM.
  • Gehäuse
  • Das PLC-Gehäuse ist aus einheitlichem Kunststoff in einheitlicher Farbe gegossen (Noryl GFN1 SE1 Anthrazit 614 Herst N.R. GE93263). Das Gerät besteht aus einem Oberteil, einer Basis, zwei Zugangsdeckeln, einem DIN-konformen Schienenmontage-Rastelement und zwei Lichtleitern unterschiedlicher Größe. Alle diese Teile rasten ineinander, um für eine einfache Herstellung zu sorgen. Das Gehäuse ist so ausgelegt, dass die gedruckten Schaltplatinen an ihren Montagepositionen ebenfalls einrasten. Das Design des E/A-Gehäuses ist in gleicher Weise entwickelt wie das PLC-Gehäuse. Das Design ist so ausgelegt, dass es der Schutzart IP20 entspricht, und verhindert, dass Fremdkörper (z.B. Münzen) in das Gerät gelangen. Die Tabelle in 35a zeigt eine mögliche Serie von Abmessungen der Geräte.
  • Gerätemontage
  • Der in 35b gezeigte PLC 3900 ist so ausgelegt, dass er entweder auf einer DIN-konformen Schiene (3906) oder auf einer Schalttafel (3908) montiert werden kann. Ein Einbaurastelement dient dazu, das Gerät auf einer DIN-konformen Standardschiene des Typs 500022 zu verriegeln, wenn das Gerät auf Schienen montiert werden soll. Wenn das Gerät auf einer Schalttafel (3908) montiert werden soll, sind da für entsprechende Montagebohrungen vorgesehen, die entweder metrische Schrauben der Größe M4 bzw. Schrauben der Größe Nr. 8 aufnehmen können. Der PLC 3904 wird in einer Konfiguration mit angekoppeltem E/A-Erweiterungsmodul 3902 gezeigt. Ein Abstand von beispielsweise 25 mm ist oberhalb und unterhalb des Gerätes erforderlich, damit der Benutzer Zugang zwecks Verdrahtung hat und damit das Gerät ordnungsgemäß gekühlt wird.
  • Obwohl die vorliegende Erfindung unter Bezugnahme auf bestimmte Werte und Schaltkreisanordnungen beschrieben wurde, lässt sich erkennen, dass diese offenbarten Werte und Anordnungen durch andere Werte und Schaltkreisanordnungen ersetzt werden können, wie dies dem Gedanken und dem Schutzbereich der vorliegenden Erfindung entspricht. Darüber hinaus lässt sich erkennen, das Praktiker auf diesem technischen Gebiet sofort verstehen, wie der Software-Code des PLC zu implementieren ist, und sie werden in diesem Zusammenhang verstehen, dass die verschiedenen Software-Anwendungen in jeder geeigneten Programmiersprache geschrieben und in jedem geeignetem Speichermedium gespeichert werden können, z.B. nicht flüchtigen Speichern wie Magnetplatten, CD-ROM oder DVD.

Claims (8)

  1. Vorrichtung für eine programmierbare Programmablaufsteuerung (PLC) (100; 200), einschließlich einem Impulserfassungsschaltkreis (508; 900; 904), um eine Änderung des Zustands eines Ausgangssignals so lange zu erfassen, bis besagter PLC (100; 200) besagte Zustandsänderung erkannt hat, selbst wenn eine Änderung bei besagtem Eingangssignal zwischen zwei Abtastzyklen besagter PLC (100; 200) eintritt, wobei besagter Impulserfassungsschaltkreis (508; 900; 904) Folgendes beinhaltet: einen Eingang (418) für den Empfang besagten Eingangssignals; und einen Schaltkreis (508; 900; 904), der ein Flag setzt, das angibt, dass besagtes Eingangssignal seinen Zustand geändert hat; wobei besagter Impulserfassungsschaltkreis (508; 900; 904) Änderungen ignoriert, die bei besagtem Eingangssignal eintreten, während besagtes Flag gesetzt ist, jedoch einen erfassten Eingangssignalzustand so lange hält, bis besagter PLC besagte Zustandsänderung erkannt hat, selbst wenn eine Änderung bei besagtem Eingangssignal zwischen zwei Abtastzyklen des besagten PLC (100; 200) eintritt, und weiterhin dadurch gekennzeichnet, dass sie eine Flanken-Interrupt-Funktion (510) beinhaltet, die besagten PLC (100; 200) unterbricht, so dass dadurch die normale Programmausführung des besagten PLC (100; 200) unterbrochen wird.
  2. Vorrichtung nach Anspruch 1, bei der besagter Schaltkreis (508; 900; 904) besagten Flag nullstellt, wenn besagte Änderung des Zustands besagten Eingangssignals durch besagten PLC (100; 200) erkannt wird, so dass dadurch besagte Zustandsänderung erfasst und besagter Schaltkreis (508; 900; 904) wieder aktiviert wird, um weitere Zustandsänderungen bei besagtem Eingangssignal erkennen zu können.
  3. Vorrichtung nach Anspruch 1, die weiterhin eine Vielzahl von Impulserfassungsschaltkreisen (508; 900; 904) beinhaltet, die jeweils Komponenten besagter Impulserfassungsschaltkreise (508; 900; 904) haben, die für jeden integrierten Eingang des besagten PLC vorgesehen sind.
  4. Vorrichtung nach Anspruch 3, bei der jeder der besagten Vielzahl von Impulserfassungsschaltkreisen (508; 900; 904) einzeln aktiviert und deaktiviert werden kann.
  5. Verfahren für eine programmierbare Programmablaufsteuerung (PLC) (100; 200), einschließlich eines Impulserfassungsschaltkreises (508; 900; 904), um eine Änderung des Zustands eines Eingangssignals so lange zu erfassen, bis besagter PLC (100; 200) besagte Zustandsänderung erkannt hat, selbst wenn eine Änderung besagten Eingangssignals zwischen zwei Abtastzyklen besagter PLC (100; 200) eintritt, wobei besagtes Verfahren folgende Schritte umfasst: Empfang besagten Eingangssignals; und Setzen eines Flag, das angibt, dass besagtes Eingangssignal seinen Zustand geändert hat; wobei besagter Impulserfassungsschaltkreis (508; 900; 904) Änderungen ignoriert, die bei besagtem Eingangssignal eintreten, während besagtes Flag gesetzt ist, so dass dadurch ein erfasster Eingangssignalzustand so lange gehalten wird, bis besagter PLC (100; 200) besagte Zustandsänderung erkannt hat, selbst wenn eine Änderung bei besagtem Eingangssignal zwischen zwei Abtastzyklen besagter PLC (100; 200) eintritt, dadurch gekennzeichnet, dass es weiterhin den Schritt der Bereitstellung eines Flanken-Interrupts beinhaltet, um den Betrieb des besagten PLC (100; 200) zu unterbrechen, so dass die normale Programmausführung des besagten PLC unterbrochen wird.
  6. Verfahren nach Anspruch 5, das weiterhin den Schritt des Nullstellens besagten Flag beinhaltet, wenn besagte Änderung des Zustands besagten Eingangssignals durch besagten PLC (100; 200) erkannt wird, so dass dadurch besagte Zustandsänderung erfasst und besagter Schaltkreis wieder aktiviert wird, um weitere Zustandsänderungen bei besagtem Eingangssignal erkennen zu können.
  7. Verfahren nach Anspruch 5, wobei besagter Schritt des Setzens weiterhin den Schritt des Setzens des besagten Flag für jeden integrierten Eingang des besagten PLC (100; 200) beinhaltet.
  8. Verfahren nach Anspruch 7, das weiterhin den Schritt des individuellen Aktivierens und Deaktivierens des Setzens des besagten Flag für jeden integrierten Eingang des besagten PLC (100; 200) beinhaltet.
DE60011262T 1999-03-15 2000-03-15 Speicherprogrammierbare steuerung mit fähigkeit zur detektion von kurzzeitigen pulsen Expired - Lifetime DE60011262T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US12449899P 1999-03-15 1999-03-15
US124498P 1999-03-15
US09/526,114 US6594529B1 (en) 1999-03-15 2000-03-15 Programmable logic controller method, system and apparatus
PCT/US2000/006795 WO2000055697A1 (en) 1999-03-15 2000-03-15 Programmable logic controller with short duration pulses detection capability
US526114 2000-03-15

Publications (2)

Publication Number Publication Date
DE60011262D1 DE60011262D1 (de) 2004-07-08
DE60011262T2 true DE60011262T2 (de) 2005-06-23

Family

ID=26822668

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60011262T Expired - Lifetime DE60011262T2 (de) 1999-03-15 2000-03-15 Speicherprogrammierbare steuerung mit fähigkeit zur detektion von kurzzeitigen pulsen

Country Status (7)

Country Link
US (1) US6594529B1 (de)
EP (1) EP1177481B1 (de)
CN (1) CN1180324C (de)
AT (1) ATE268483T1 (de)
DE (1) DE60011262T2 (de)
ES (1) ES2222194T3 (de)
WO (1) WO2000055697A1 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1196838B1 (de) * 1999-03-30 2006-05-31 Siemens Energy & Automation, Inc. Speicherprogrammierbare steuerung
EP1457020A1 (de) * 2001-12-18 2004-09-15 Siemens Energy & Automation, Inc. Sicherheitsmerkmale für ein integriertes plc modem
US7981257B2 (en) 2002-04-12 2011-07-19 Schneider Electric USA, Inc. Current-based method and apparatus for detecting and classifying arcs
US7988833B2 (en) 2002-04-12 2011-08-02 Schneider Electric USA, Inc. System and method for detecting non-cathode arcing in a plasma generation apparatus
US6978227B2 (en) * 2002-04-12 2005-12-20 Schneider Automation Inc. Programmable logic controller with programmable high-speed digital processing
CN100442259C (zh) * 2002-10-18 2008-12-10 Nxp股份有限公司 处理输入比特的数据处理设备
CN1521762B (zh) * 2003-01-30 2010-05-05 旺宏电子股份有限公司 窄化起始电压分布的方法
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
US7310720B2 (en) * 2004-06-08 2007-12-18 Siemens Energy & Automation, Inc. Method for portable PLC configurations
CN100342296C (zh) * 2005-09-09 2007-10-10 深圳兆日技术有限公司 基于可信计算模块芯片实现计算机软件防盗版的方法
US7568198B2 (en) * 2006-01-10 2009-07-28 National Instruments Corporation Control of tasks in a programmable logic controller
US8352651B2 (en) * 2007-06-12 2013-01-08 Siemens Aktiengesellschaft Devices, systems, and methods regarding programmable logic controller communications
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
US8538559B2 (en) * 2011-04-04 2013-09-17 Relcom, Inc. Fieldbus system function block enhancements using transducer block
CN102384025A (zh) * 2011-09-22 2012-03-21 苏州能健电气有限公司 Plc控制系统
JP2015501025A (ja) * 2011-10-05 2015-01-08 オプテオン コーポレーション 動的環境を監視及び/又は制御するための方法、装置、及びシステム
USD733072S1 (en) * 2013-03-19 2015-06-30 Abb Technology Ltd. Controller
US9508267B2 (en) 2013-06-09 2016-11-29 Cae Inc. Configurable simulator with testing capabilities
US8868808B1 (en) * 2014-03-26 2014-10-21 Cae Inc. Configurable simulator with a plurality of configurable modular cards
US8843660B1 (en) * 2014-03-26 2014-09-23 Cae Inc. Configurable simulator for performing a distributed simulation
CA2882009C (en) * 2014-03-26 2017-04-25 Cae Inc. Configurable input/output unit
US10114783B2 (en) 2014-03-26 2018-10-30 Cae Inc. Configurable input/output unit
JP6375666B2 (ja) * 2014-03-31 2018-08-22 株式会社ジェイテクト Plcおよびplc用のプログラミングツール
US9843436B2 (en) * 2015-06-27 2017-12-12 Intel Corporation Flexible interconnect architecture
CN105116830B (zh) * 2015-07-27 2018-04-03 深圳市合信自动化技术有限公司 一种plc控制系统以及plc扩展总线实现方法
US10417003B1 (en) * 2015-08-31 2019-09-17 Ambarella, Inc. Data unit synchronization between chained pipelines
CN108515031A (zh) * 2018-03-30 2018-09-11 深圳大学 一种五金冲压件攻牙缺陷检测系统及方法
CN109709860B (zh) * 2018-12-30 2021-08-20 武汉极目智能技术有限公司 一种基于fpga的图像滤波器流水线控制系统及方法
US11579578B2 (en) * 2020-03-26 2023-02-14 Honeywell International Inc. Hierarchal controller logic with incremental updates
DE102021003647A1 (de) * 2020-07-30 2022-02-03 Canon Kabushiki Kaisha Informationsverarbeitungsvorrichtung, Kontaktplanprogramm-Erzeugungsvorrichtung, Informationsverarbeitungsverfahren, Kontaktplanprogrammerzeugungsverfahren, Verfahren zum Herstellen eines Produkts, Programm und Aufzeichnungsmedium
TWI761008B (zh) * 2020-12-30 2022-04-11 新唐科技股份有限公司 可編程串列輸入輸出控制器、操作系統及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4750150A (en) * 1984-06-25 1988-06-07 Allen-Bradley Company, Inc. I/O scanner for an industrial control
US5461331A (en) * 1994-07-28 1995-10-24 International Business Machines Corporation Dynamic to static logic translator or pulse catcher
GB2292620B (en) * 1994-08-16 1998-04-22 Motorola Israel Ltd Event driven programmer logic controller processor arrangement
US5802389A (en) * 1994-12-29 1998-09-01 Siemens Energy & Automation, Inc. Expansion module address method and apparatus for a programmable logic controller

Also Published As

Publication number Publication date
US6594529B1 (en) 2003-07-15
WO2000055697A1 (en) 2000-09-21
EP1177481B1 (de) 2004-06-02
ATE268483T1 (de) 2004-06-15
DE60011262D1 (de) 2004-07-08
ES2222194T3 (es) 2005-02-01
CN1350665A (zh) 2002-05-22
EP1177481A1 (de) 2002-02-06
CN1180324C (zh) 2004-12-15

Similar Documents

Publication Publication Date Title
DE60011262T2 (de) Speicherprogrammierbare steuerung mit fähigkeit zur detektion von kurzzeitigen pulsen
DE60028379T2 (de) Speicherprogrammierbare steuerung
US6536029B1 (en) Programmable logic controller method, system and apparatus
DE112016003949T5 (de) Webbasierte programmierumgebung für eingebettete geräte
DE3924384A1 (de) Mehrere gestelle aufweisende speicherprogrammierbare steuerung mit relativer gestellschlitzadressierung
DE102007054417A1 (de) Bestimmen von geräteinternen Parameteradressen aus feldbusspezifischen Parameteradressen eines Feldgerätes
EP0107026A1 (de) Speicherprogrammierbare Steuerung
Berger Automating with SIMATIC: controllers, software, programming, data
DE4216242C2 (de) Identifizierung von Sensoren / Aktuatoren in Bussystemen
EP1108984A1 (de) Programmierbares Feldgerät
EP1410205A2 (de) Verfahren bzw.vorrichtung zur überwachung und steuerung des betriebsverhaltens eines computer- oder prozessorsystems
DE102015015963A1 (de) Formgebungsanlage
DE102018204952A1 (de) Testverfahren eines mechatronischen Systems
DE60124201T2 (de) Variabelmodus für modbus netzprotokoll
EP0977100A1 (de) Sicherheitsvorrichtung für eine speicherprogrammierbare Steuerung
WO2011137464A1 (de) Verfahren zum selektiven aufzeichnen, rekonstruieren und analysieren des programmlaufs eines steuerungsprogramms
EP0121039B1 (de) Speicherprogrammierbare Steuerung
EP0464028A1 (de) Multiprozessorsystem.
EP4276551A1 (de) Applikationsmodul für eine steuereinrichtung
Cardoso A universal system for laboratory data acquisition and control
DE4223398A1 (de) Verfahren und Vorrichtung zur Programmierung von nichtflüchtigen Speichern
Soe et al. REAL‐TIME MONITORING OF SCADA BASED CONTROL SYSTEM FOR FILLING PROCESS
Nik Yahya et al. Sequence control of a reactor system by using programmable logic controller

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