DE112015006089T5 - A/D-Wandler, D/A-Wandler und speicherprogrammierbare Steuerung - Google Patents

A/D-Wandler, D/A-Wandler und speicherprogrammierbare Steuerung Download PDF

Info

Publication number
DE112015006089T5
DE112015006089T5 DE112015006089.8T DE112015006089T DE112015006089T5 DE 112015006089 T5 DE112015006089 T5 DE 112015006089T5 DE 112015006089 T DE112015006089 T DE 112015006089T DE 112015006089 T5 DE112015006089 T5 DE 112015006089T5
Authority
DE
Germany
Prior art keywords
area
data
digital data
section
stored
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.)
Withdrawn
Application number
DE112015006089.8T
Other languages
English (en)
Inventor
Tomihito Goto
Satoru Ukena
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112015006089T5 publication Critical patent/DE112015006089T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/66Digital/analogue converters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15118Shared memory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/21Pc I-O input output
    • G05B2219/21137Analog to digital conversion, ADC, DAC
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/16Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/04Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Analogue/Digital Conversion (AREA)
  • Recording Measured Values (AREA)

Abstract

Bereitzustellen ist ein A/D-Wandler, welcher eine A/D-Wandlung durchgängig mit hoher Geschwindigkeit durchführen kann, ein D/A-Wandler, welcher eine D/A-Wandlung durchgängig mit hoher Geschwindigkeit durchführen kann, und eine speicherprogrammierbare Steuerung, welche den A/D-Wandler und den D/A-Wandler umfasst. Bereitgestellt wird ein Datenwandlungsabschnitt 130, 230; ein Shared Memory 140, 240, welcher einen Temporärspeicherbereich 141, 241 umfasst, welcher in einen ersten Bereich und einen zweiten Bereich geteilt ist; und ein Steuerabschnitt 122, welcher an einer zugreifbaren Adresse gespeicherte Daten ausgibt, oder ein Steuerabschnitt 222, welcher neue Daten an der Adresse speichert, wenn ein Zugriff auf eine vorbestimmte Datengröße in dem Temporärspeicherbereich 141, 241 auftritt.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft einen A/D-Wandler, einen D/A-Wandler und eine speicherprogrammierbare Steuerung (SPS) mit dem A/D-Wandler und dem D/A-Wandler.
  • Hintergrund
  • Wenn Analogdaten in eine SPS eingegeben werden, wird ein A/D-Wandler verwendet, welcher eingegebene Analogdaten in Digitaldaten wandelt. Im Allgemeinen ist eine Samplingperiode der A/D-Wandlung durch den A/D-Wandler, welcher eingegebene Analogdaten in Digitaldaten wandelt, nicht synchron zu einer Steuerperiode einer CPU, welche die gesamte SPS steuert, und die Samplingperiode ist üblicherweise kürzer. In Anbetracht dessen ist eine Technik bekannt, gemäß welcher ein A/D-Wandler mit einem gemeinsam genutzten Speicher (Shared Memory) ausgestattet ist, auf welchen eine CPU stets zugreifen kann, sodass Daten nach der A/D-Wandlung temporär in dem Shared Memory gespeichert werden, wodurch Analogdaten eingegeben werden, ohne eine Samplingrate der A/D-Wandlung zu reduzieren (z. B. Patentdokument 1).
  • Wenn Analogdaten aus einer SPS ausgegeben werden, wird ein D/A-Wandler verwendet, welcher in der SPS verarbeitete Digitaldaten in Analogdaten wandelt. Im Allgemeinen ist auch in dem D/A-Wandler eine Samplingperiode der D/A-Wandlung nicht synchron zu einer Steuerperiode einer CPU und die Samplingperiode ist üblicherweise kürzer. In Anbetracht dessen ist eine Technik bekannt, gemäß welcher ein D/A-Wandler mit einem gemeinsam genutzten Speicher (Shared Memory) ausgestattet ist, auf welchen durch eine CPU stets zugegriffen werden kann, sodass Daten, an denen eine D/A-Wandlung durchzuführen ist, temporär in dem Shared Memory gespeichert werden, wodurch Analogdaten ausgegeben werden können, ohne eine Samplingrate der D/A-Wandlung zu reduzieren (z. B. Patentdokument 2).
  • Dokumente des Stands der Technik
  • Patentdokumente
  • Patentdokument 1: Japanisches Patent Nr. 5122000 (Seite 6, 1)
  • Patentdokument 2: Japanisches Patent Nr. 5327395 (Seite 6, 1)
  • Zusammenfassung der Erfindung
  • Von der Erfindung zu lösende Probleme
  • Wenn jedoch in dem in Patentdokument 1 beschriebenen A/D-Wandler eine große Menge von Analogdaten mit hoher Geschwindigkeit in Digitaldaten gewandelt werden, müssen die Digitaldaten an die CPU ausgegeben werden, sobald die Digitaldaten zur Speicherung die gesamte Speicherkapazität des Shared Memory des A/D-Wandlers benötigen. In diesem Fall muss die A/D-Wandlung vorübergehend gestoppt werden, während die Digitaldaten an die CPU ausgegeben werden, was die Geschwindigkeit der A/D-Wandlung reduziert.
  • Wenn in dem in Patentdokument 2 beschriebenen D/A-Wandler eine große Menge von Digitaldaten mit hoher Geschwindigkeit in Analogdaten gewandelt werden, müssen Digitaldaten von der CPU neu abgerufen werden, nachdem alle in dem Shared Memory des D/A-Wandler gespeicherten Digitaldaten der D/A-Wandlung unterzogen wurden. In diesem Fall muss die D/A-Wandlung vorübergehend gestoppt werden, während die Digitaldaten aus der CPU abgerufen werden, was die Geschwindigkeit der D/A-Wandlung reduziert.
  • Obwohl jedes dieser Probleme vorübergehend gelöst werden kann, indem eine Kapazität des in dem A/D-Wandler oder dem D/A-Wandler bereitgestellten Shared Memory erhöht wird, resultiert eine Erhöhung der Kapazität des Shared Memory in erhöhten Kosten.
  • Die Erfindung wurde gemacht, um die oben beschriebenen Probleme zu lösen, und stellt einen A/D-Wandler bereit, welcher eine A/D-Wandlung durchgängig mit hoher Geschwindigkeit durchführen kann, ohne von einer Kapazität eines Shared Memory des A/D-Wandlers abhängig zu sein.
  • Ferner stellt die Erfindung einen D/A-Wandler bereit, welcher eine D/A-Wandlung durchgängig mit hoher Geschwindigkeit durchführen kann, ohne von einer Kapazität eines Shared Memory des D/A-Wandlers abhängig zu sein.
  • Ferner stellt die Erfindung eine SPS bereit, welche eine große Menge mit hoher Geschwindigkeit protokollieren kann, ohne von einer Kapazität eines Speicherabschnitts eines A/D-Wandlers abhängig zu sein, und welche ferner eine große Menge von Wellenformen mit hoher Geschwindigkeit ausgeben kann, ohne von einer Kapazität eines Shared Memory eines D/A-Wandlers abhängig zu sein.
  • Mittel zur Lösung der Probleme
  • Gemäß einer ersten Erfindung der Erfindung wird ein A/D-Wandler bereitgestellt, welcher umfasst: einen A/D-Wandlungsabschnitt, welcher Analogdaten in Digitaldaten wandelt; einen Speicherabschnitt, welcher einen Temporärspeicherbereich mit einer Ringspeicherstruktur umfasst, wobei der Temporärspeicherbereich in einen ersten Bereich und einen zweiten Bereich geteilt ist und die Digitaldaten nach Wandlung durch den A/D-Wandlungsabschnitt speichert; und einen Steuerabschnitt, welcher die Digitaldaten nach Wandlung durch den A/D-Wandlungsabschnitt in dem ersten Bereich des Temporärspeicherbereichs speichert und welcher, wenn eine Größe der gespeicherten Digitaldaten mit einer für den ersten Bereich allokierten Datengröße übereinstimmt, bewirkt, dass die in dem ersten Bereich gespeicherten Digitaldaten ausgegeben werden und dass durch den A/D-Wandlungsabschnitt neu gewandelte Digitaldaten in den zweiten Bereich gespeichert werden.
  • Gemäß einer zweiten Erfindung der Erfindung wird ein D/A-Wandler bereitstellt, welcher umfasst: einen D/A-Wandlungsabschnitt, welcher Digitaldaten in Analogdaten wandelt; einen Speicherabschnitt, welcher einen Temporärspeicherbereich mit einer Ringspeicherstruktur umfasst, wobei der Temporärspeicherbereich in einen ersten Bereich und einen zweiten Bereich geteilt ist und die durch denen D/A-Wandlungsabschnitt zu wandelnden Digitaldaten speichert; und einen Steuerabschnitt, welcher, wenn die durch den D/A-Wandlungsabschnitt zu wandelnden Digitaldaten in dem ersten und zweiten Bereich gespeichert sind, die in dem ersten Bereich des Temporärspeicherbereichs gespeicherten Digitaldaten an den D/A-Wandlungsabschnitt ausgibt und, wenn eine Größe der ausgegebenen Digitaldaten mit einer für den ersten Bereich allokierten Datengröße übereinstimmt, bewirkt, dass durch den D/A-Wandlungsabschnitt neu zu wandelnde Digitaldaten in den ersten Bereich geschrieben werden und dass die in dem zweiten Bereich gespeicherten Digitaldaten an den D/A-Wandlungsabschnitt ausgegeben werden.
  • Gemäß einer dritten Erfindung der Erfindung wird eine speicherprogrammierbare Steuerung bereitgestellt, welche umfasst: den A/D-Wandler gemäß der ersten Erfindung; den D/A-Wandler gemäß der zweiten Erfindung; und eine CPU-Einheit, welche einen internen Speicher zum Speichern von Digitaldaten umfasst, wobei die CPU-Einheit in den internen Speicher Digitaldaten speichert, wenn der A/D-Wandler die in dem Temporärspeicherbereich des A/D-Wandlers gespeicherten Daten ausgibt, und aus dem internen Speicher die in dem Temporärspeicherbereich des D/A-Wandlers zu speichernden Digitaldaten ausgibt.
  • Vorteilhafte Wirkungen der Erfindungen
  • Gemäß der ersten Erfindung der Erfindung können die in dem Speicherabschnitt gespeicherten Digitaldaten an die CPU-Einheit übertragen werden, während die Digitaldaten nach der A/D-Wandlung in dem Speicherabschnitt gespeichert werden; damit kann die A/D-Wandlung durchgängig mit hoher Geschwindigkeit durchgeführt werden.
  • Gemäß der zweiten Erfindung der Erfindung können die in dem Speicherabschnitt gespeicherten Digitaldaten der D/A-Wandlung unterzogen werden, während die der D/A-Wandlung zu unterziehenden Digitaldaten aus der CPU-Einheit zu dem Speicherabschnitt übertragen werden; damit kann die D/A-Wandlung durchgängig mit hoher Geschwindigkeit durchgeführt werden.
  • Gemäß der dritten Erfindung der Erfindungen kann die SPS bereitgestellt werden, welche sie Protokollierung einer großen Menge mit hoher Geschwindigkeit durchführen kann, ohne von einer Kapazität des Speicherabschnitts des A/D-Wandlers abhängig zu sein, und welche ferner eine große Menge von Wellenformen mit hoher Geschwindigkeit ausgeben kann, ohne von einer Kapazität des Speicherabschnitts des D/A-Wandlers abhängig zu sein.
  • Kurzbeschreibung der Zeichnungen
  • 1 zeigt ein Diagramm, welches eine Konfiguration eines SPS-Systems gemäß der Erfindung zeigt.
  • 2 zeigt ein Diagramm, welches eine Konfiguration eines A/D-Wandlers gemäß einer ersten Ausführungsform der Erfindung zeigt.
  • 3 zeigt ein Diagramm, welches einen Protokolldaten-Temporärspeicherbereich des A/D-Wandlers gemäß der ersten Ausführungsform der Erfindung und eine Datenstruktur von in dem Protokolldaten-Temporärspeicherbereich gespeicherten Daten zeigt.
  • 4 zeigt ein Ablaufdiagramm, welches eine Betriebsweise eines Steuerabschnitts des A/D-Wandlers gemäß der ersten Ausführungsform der Erfindung zeigt.
  • 5 zeigt ein Diagramm zur Beschreibung einer Zustandsänderung des Protokolldaten-Temporärspeicherbereichs in der ersten Ausführungsform der Erfindung.
  • 6 zeigt ein Ablaufdiagramm, welches eine Betriebsweise eines Interruptprogramm-Ausführungsabschnitts in der ersten Ausführungsform der Erfindung zeigt.
  • 7 zeigt ein Diagramm, welches eine Konfiguration eines D/A-Wandlers gemäß einer zweiten Ausführungsform der Erfindung zeigt.
  • 8 zeigt ein Diagramm, welches einen Wellenformdatensequenz-Temporärspeicherbereich des D/A-Wandlers gemäß der zweiten Ausführungsform der Erfindung und eine Datenstruktur von in dem Wellenformdatensequenz-Temporärspeicherbereich gespeicherten Daten zeigt.
  • 9 zeigt ein Ablaufdiagramm, welches eine Betriebsweise eines Steuerabschnitts des D/A-Wandlers gemäß der zweiten Ausführungsform der Erfindung zeigt.
  • 10 zeigt ein Diagramm zur Beschreibung einer Zustandsänderung des Wellenformdatensequenz-Temporärspeicherbereichs in der zweiten Ausführungsform der Erfindung.
  • 11 zeigt ein Ablaufdiagramm, welches eine Betriebsweise eines Interruptprogramm-Ausführungsabschnitts in der zweiten Ausführungsform der Erfindung zeigt.
  • Ausführungsform der Erfindung
  • Erste Ausführungsform
  • 1 ist ein Diagramm, welches eine Konfiguration eines SPS-Systems gemäß der Erfindung zeigt. Das SPS-System umfasst eine SPS 1000 und ein Peripheriegerät 2000. Die SPS 1000 umfasst wenigstens einen A/D-Wandler 100, einen D/A-Wandler 200 und eine CPU-Einheit 300. Die SPS 1000 kann beispielsweise einen externen Speicher 400, eine I/O-Steuereinheit zur Realisierung einer Eingabe-/Ausgabe-Steuerung eines externen Geräts, eine Netzwerkkommunikationseinheit zur Realisierung eines SPS-Netzwerks und dergleichen umfassen. Die einzelnen, in der SPS 1000 bereitgestellten Einheiten sind miteinander über einen Einheiten-verbindenden Bus 500 verbunden. Das Peripheriegerät 2000 ist beispielsweise ein Personal-Computer und führt das Einstellen eines Nutzerprogramms, das Anzeigen eines Datenzustands eines internen Speichers 330 usw. durch.
  • Der D/A-Wandler 200 gibt Analogdaten, beispielsweise Stromwerte und Spannungswerte, an ein Industriegerät etc. als ein durch die SPS 1000 zu steuerndes Objekt aus.
  • Die CPU-Einheit 300 umfasst eine Externer-Speicher-Schnittstelle 310, welche als Schnittstelle zum Zugreifen auf den externen Speicher 400 dient, welcher das Nutzerprogramm, zur Ausführung des Nutzerprogramms erforderliche Daten und Daten speichert, welche die Ausführungsergebnisse eines Nutzerprogramms repräsentieren; einen Rechenabschnitt 320, welcher das Nutzerprogramm und die gesamte Steuerung der CPU-Einheit 300 ausführt; einen internen Speicher 330, welcher ein Speicher zum Speichern der zur Ausführung des Nutzerprogramms erforderlichen Daten, der Ausführungsergebnisse des Nutzerprogramms und von Protokolldaten ist; eine Peripheriegerät-Schnittstelle 340, welche eine Schnittstelle zum Verbinden des Peripheriegeräts 2000 ist; und eine Bus-Schnittstelle 350, welche eine Kommunikationsschnittstelle zur Kommunikation mit Geräten ist, die über den Einheiten-verbindenden Bus 500 verbunden sind. Der Rechenabschnitt 320 umfasst einen Interruptprogramm-Ausführungsabschnitt 321, welcher ein Interruptprogramm ausführt.
  • Die CPU-Einheit 300 wiederholt mit einer vorbestimmten Periode die Ausführung des Nutzerprogramms, welches ein Programm zum Betreiben einzelner, in der SPS 1000 bereitgestellter Einheiten ist, um das Industriegerät zu steuern, Ausführungsergebnisse auszugeben und Eingabewerte, beispielsweise von dem Nutzerprogramm verwendete Werte, abzurufen. Diese wiederholte Vorgehensweise wird periodischer Prozess genannt.
  • 2 ist ein Diagramm, welches eine Konfiguration des A/D-Wandlers 100 gemäß dieser Ausführungsform zeigt. Der A/D-Wandler 100 umfasst einen Rechenabschnitt 110, welcher den gesamten A/D-Wandler 100 steuert; eine Eingaberecheneinheit 120, welche A/D-gewandelte Werte berechnet; einen A/D-Wandlungsabschnitt 130, welcher eine A/D-Wandlung an Analogdaten durchführt; ein Shared Memory 140, in welchen Daten mit hoher Geschwindigkeit durch den A/D-Wandler 100 geschrieben werden können und aus welchem A/D-gewandelte Werte, die darin gespeichert sind, von der CPU-Einheit 300 ausgelesen werden können, ohne einen komplizierten Kommunikationsprozess auszuführen, und eine Bus-Schnittstelle 150, welche eine Kommunikationsschnittstelle zum Kommunizieren mit den Geräten ist, welche über den Einheiten-verbindenden Bus 500 verbunden sind. Die Eingaberecheneinheit 120 umfasst einen Zähler 121, einen Steuerabschnitt 122, einen Parameterspeicherbereich 123 und einen Digitalwert-Eingabeabschnitt 124. Der Shared Memory 140 ist ein Speicherabschnitt. Der A/D-Wandler 100 akzeptiert die Eingabe von Analogdaten aus Sensoren, welche verschiedene Beobachtungswerte (bspw. Flussrate, Druck und Temperatur bezüglich eines Industriegeräts oder dergleichen (bezüglich dem durch die SPS 1000 zu steuernden Objekt)) messen und die Beobachtungswerte als Stromwerte oder Spannungswerte ausgeben. Ferner wandelt der A/D-Wandler die Analogdaten in Digitaldaten und speichert die Digitaldaten (A/D-gewandelte Werte) in dem darin enthaltenen Shared Memory 140. Die A/D-gewandelten Werte, die in dem Shared Memory 140 gespeichert sind, werden in der CPU-Einheit 300 als Ergebnisse des Abrufens von in dem periodischen Prozess enthaltenen Eingabewerten gelesen.
  • Als Nächstes wird der Shared Memory 140 des A/D-Wandlers 100 beschrieben. 3 ist ein Diagramm, welches einen Protokolldaten-Temporärspeicherbereich 141 des A/D-Wandlers 100 gemäß der Ausführungsform und eine Datenstruktur von in dem Protokolldaten-Temporärspeicherbereich 141 gespeicherten Daten zeigt. Der Shared Memory 140 speichert A/D-gewandelten Werte, welche durch den periodischen Prozess der CPU-Einheit 300 gelesen werden. Üblicherweise ist eine Periode zum Samplen und Wandeln von Analogdaten in Digitaldaten (Samplingperiode) kürzer als eine Periode des periodischen Prozesses; und daher ist es schwierig, dass die CPU-Einheit 300 in dem Shared Memory 140 gespeicherte A/D-gewandelte Werte ohne Auslassungen liest und protokolliert. In dem Shared Memory 140, in welchem der A/D-Wandler 100 Daten mit hoher Geschwindigkeit speichern kann und aus welchem die CPU-Einheit 300 A/D-gewandelte Werte lesen kann, ohne einen komplizierten Kommunikationsprozess auszuführen, ist der Protokolldaten-Temporärspeicherbereich 141 daher als ein temporärer Speicherbereich zum Speichern von A/D-gewandelten Werten als Protokolldaten ausgebildet. In dem Protokolldaten-Temporärspeicherbereich 141 gespeicherte Protokolldaten können über den Einheiten-verbindenden Bus 500, die CPU-Einheit 300 und die Peripheriegerät-Schnittstelle 340 in das Peripheriegerät 2000 eingelesen werden.
  • Der Protokolldaten-Temporärspeicherbereich 141 ist so konfiguriert, dass er eine Ringspeicherstruktur aufweist. D. h., Protokolldaten werden sequenziell gemäß ihrer zeitlichen Reihenfolge in den Protokolldaten-Temporärspeicherbereich 141, beginnend bei einer Kopfadresse, geschrieben. Wenn die Speicheradresse der Protokolldaten die letzte Adresse erreicht, findet ein Überlauf der Adresse statt und Protokolldaten werden, beginnend bei der Kopfadresse, überschrieben.
  • Wenn aus dem A/D-Wandler 100 Protokolldaten mit hoher Geschwindigkeit abgerufen werden, muss der Rechenabschnitt 320 der CPU-Einheit 300 in dem Protokolldaten-Temporärspeicherbereich 141 gespeicherte Protokolldaten auslesen und in den internen Speicher 330 schreiben, bevor die in dem Protokolldaten-Temporärspeicherbereich gespeicherten Protokolldaten durch den Steuerabschnitt 122 überschrieben werden. In Anbetracht dessen ist der Protokolldaten-Temporärspeicherbereich 141 in drei oder mehr Bereiche geteilt und jeder dieser Bereiche ist als ein Transferbereich, ein Ausführungsbereich oder ein Randbereich allokiert. In 3 ist der Protokolldaten-Temporärspeicherbereich 141 in vier Bereiche so geteilt, dass für den Ausführungsbereich ein Bereich (a) allokiert ist und für den Randbereich jeder der Bereiche (b), (c) und (d) allokiert ist. Wenn der Steuerabschnitt 122 den A/D-Wandlungsabschnitt 130 aktiviert, um die Protokollierung zu starten, steuert der Steuerabschnitt den Digitalwert-Eingabeabschnitt 124 so, dass Protokolldaten in den Ausführungsbereich des Protokolldaten-Temporärspeicherbereichs 141 gespeichert werden. Wenn das Speichern der Protokolldaten in den Ausführungsbereich abgeschlossen ist, ändert der Steuerabschnitt 122 diesen Ausführungsbereich zu dem Transferbereich und veranlasst den Digitalwert-Eingabeabschnitt dazu, neue Protokolldaten in den nächsten Bereich zu speichern. Wenn das Speichern von Protokolldaten in den Bereich (a) abgeschlossen ist, ändert der Steuerabschnitt 122 den Bereich (a) zu dem Transferbereich und den Bereich (b) zu dem Ausführungsbereich und veranlasst den Digitalwert-Eingabeabschnitt dazu, Protokolldaten in den Bereich (b) zu speichern (3). Der Steuerabschnitt 122 der Eingaberecheneinheit 120 teilt dem Rechenabschnitt 320 der CPU-Einheit 300 über die Bus-Schnittstelle 150, den Einheiten-verbindenden Bus 500 und die Bus-Schnittstelle 350 mit, dass die Protokollierung in den Ausführungsbereich des Protokolldaten-Temporärspeicherbereichs 141 abgeschlossen ist. Ferner teilt der Steuerabschnitt 122 dem Rechenabschnitt 320 der CPU-Einheit 300 die für den Bereich (a) allokierte Datengröße und eine Adresse mit, an welcher die Protokolldaten zuletzt in dem Protokolldaten-Temporärspeicherbereich 141 gespeichert wurden. Wenn diese Mitteilung erhalten wird, veranlasst der Rechenabschnitt 320 den Interruptprogramm-Ausführungsabschnitt 321 dazu, das Interruptprogramm auszuführen. Gemäß dem Interruptprogramm liest der Rechenabschnitt 320 in dem Transferbereich des Protokolldaten-Temporärspeicherbereichs 141 gespeicherte Protokolldaten und schreibt diese in den internen Speicher 330.
  • Durch Wiederholung dieses Prozesses kann eine große Menge von Protokolldaten mit hoher Geschwindigkeit gelesen und in den internen Speicher 330 geschrieben werden, ohne dabei von einem Unterschied zwischen der Samplingperiode und der Periode des periodischen Prozesses beeinflusst zu werden. Im Allgemeinen weist der interne Speicher 330 einen größeren Bereich als der Shared Memory 140 des A/D-Wandlers 100 auf. Um jedoch die Protokollkapazität weiter zu erhöhen, können Protokolldaten über die Externe-Speicher-Schnittstelle 310 in dem externen Speicher 400 gespeichert werden, sobald Protokolldaten im Umfang einer bestimmten Größe in dem internen Speicher 330 gespeichert sind. Der externe Speicher 400 kann ein spezifischer Speicher oder ein Allzweckspeichermedium sein, beispielsweise eine SD-Speicherkarte oder eine CF-Karte.
  • Der A/D-Wandler 100 führt die Protokollierung durchgängig aus. Wenn der Steuerabschnitt 122 das Speichern von Protokolldaten in den Ausführungsbereich abschließt, bevor die CPU-Einheit 300 das Auslesen von in dem Transferbereich gespeicherten Protokolldaten abschließt, können daher Protokolldaten, die in dem Protokolldaten-Temporärspeicherbereich 141 gespeichert wurden, aber noch nicht ausgelesen und in den internen Speicher 330 geschrieben wurden, durch neu A/D-gewandelte Protokolldaten überschrieben werden. Um eine solche Situation zu verhindern, weist der Protokolldaten-Temporärspeicherbereich 141 zusätzlich zu dem Ausführungsbereich und dem Transferbereich den Randbereich auf. Wenn sich das von der CPU-Einheit 300 durchgeführte Abrufen von Protokolldaten verzögert, speichert der Digitalwert-Eingabeabschnitt 124 neu A/D-gewandelte Protokolldaten in den Randbereich des Protokolldaten-Temporärspeicherbereichs 141. Dementsprechend gibt es keine Bedenken, dass Protokolldaten, welche in den Protokolldaten-Temporärspeicherbereich 141 gespeichert wurden, aber noch nicht in den internen Speicher 330 eingelesen wurden, durch neu A/D-gewandelte Protokolldaten überschrieben werden. Wenn der Protokolldaten-Temporärspeicherbereich 141 in vier oder mehr Bereiche geteilt ist, ist für den Ausführungsbereich einer dieser Bereiche allokiert und für den Transferbereich ist ein anderer Bereich allokiert und jeder der verbleibenden Bereiche ist für den Randbereich allokiert. Auf diese Weise kann der Randbereich erweitert werden. Der Protokolldaten-Temporärspeicherbereich 141 kann so konfiguriert sein, dass die Anzahl seiner Teile optional durch einen Nutzer geändert werden kann.
  • Als Nächstes wird die von dem A/D-Wandler 100 gemäß der Ausführungsform durchgeführte Protokollierungsprozess basierend auf den 3 und 4 beschrieben. 4 ist ein Ablaufdiagramm, welches eine Betriebsweise des Steuerabschnitts 122 des A/D-Wandlers 100 gemäß der Ausführungsform zeigt. 3 zeigt einen Zustand, in welchem der Protokolldaten-Temporärspeicherbereich 141 in vier Bereiche geteilt ist, d. h. in den ersten, zweiten, dritten und vierten Bereich, und das Speichern von Protokolldaten in den ersten Bereich abgeschlossen ist.
  • Wie in 4 gezeigt, bestimmt der Steuerabschnitt 122 Datengrößen einzelner Bereiche des Protokolldaten-Temporärspeicherbereichs 141 in Schritt (nachfolgend bezeichnet als S) 101. Insbesondere teilt der Steuerabschnitt 122 eine Kapazität des Protokolldaten-Temporärspeicherbereichs 141, d. h. N Wörter, durch die Anzahl von Bereichen, um eine Datengröße für jeden Bereich zu bestimmen. Bezugnehmend auf 3 weist eine Datengröße jedes Bereichs N/4 Wörter auf, weil die N Wörter in vier Bereiche geteilt werden.
  • In S102 speichert der Steuerabschnitt 122 die in Schritt S101 bestimmten Datengrößen der einzelnen Bereiche in dem Shared Memory 140, welcher als Speicherabschnitt dient.
  • In S103 aktiviert der Steuerabschnitt 122 den A/D-Wandlungsabschnitt 130, um die Protokollierung zu starten.
  • In S104 steuert der Steuerabschnitt 122 den Digitalwert-Eingabeabschnitt 124 so, dass dieser durch den A/D-Wandlungsabschnitt 130 gewandelte Protokolldaten in den Ausführungsbereich des Protokolldaten-Temporärspeicherbereichs 141 speichert. Wenn in dem Ausführungsbereich keine Protokolldaten gespeichert sind, speichert der Digitalwert-Eingabeabschnitt 124 durch den A/D-Wandlungsabschnitt 130 gewandelte Protokolldaten an einer Kopfadresse des Ausführungsbereichs. Wenn in dem Ausführungsbereich Protokolldaten gespeichert sind, speichert der Digitalwert-Eingabeabschnitt 124 von dem A/D-Wandlungsabschnitt 130 gewandelte Protokolldaten an einer Adresse, die auf die Adresse folgt, an welcher die Protokolldaten zuletzt gespeichert wurden. Zu beachten ist, dass Protokolldaten eines Wortes an einer einzigen Adresse gespeichert werden.
  • In S105 speichert der Steuerabschnitt 122 die Adresse, an welcher die Protokolldaten in S104 gespeichert wurden, in dem Shared Memory 140, welcher als der Speicherabschnitt dient.
  • In S106 veranlasst der Steuerabschnitt 122 den Zähler 121 dazu, um einen Wert hoch zu zählen, welcher der in S104 gespeicherten Datengröße entspricht.
  • In S107 bestimmt der Steuerabschnitt 122, ob ein Zählwert des Zählers 121 die Datengröße des in dem Shared Memory 241 gespeicherten Bereichs erreicht hat. Wenn der Zählwert des Zählers 121 die Datengröße des in dem Shared Memory 140 gespeicherten Bereichs erreicht hat, führt der Steuerabschnitt 122 den Prozess bei S108 fort. Im Gegensatz dazu, wenn der Zählwert des Zählers 121 die Datengröße des in dem Shared Memory 140 gespeicherten Bereichs noch nicht erreicht hat, führt der Steuerabschnitt 122 den Prozess zu S105 zurück und setzt die Protokollierung fort.
  • In S108 teilt der Steuerabschnitt 122 der CPU-Einheit 300 eine Protokolldatenausleseaufforderung, eine Adresse, an welcher die Protokolldaten zuletzt gespeichert wurden, und die Datengröße des in S102 in dem Shared Memory 140 gespeicherten Bereichs mit. Wenn die Protokolldatenausleseaufforderung mitgeteilt wird, ändert der Steuerabschnitt 122 den Ausführungsbereich des Protokolldaten-Temporärspeicherbereichs 141 auf den Transferbereich und ändert den Bereich, welcher eine Adresse enthält, die der Adresse nachfolgt, an welcher die Protokolldaten zuletzt gespeichert wurden, auf den Ausführungsbereich. Bezugnehmend auf 3 stellt der Steuerabschnitt 122 den Bereich (a) auf den Transferbereich ein und stellt den Bereich (b) auf den Ausführungsbereich ein.
  • In S109 löscht der Steuerabschnitt 122 den Zählwert des Zählers 121 und der Prozess kehrt zu S104 zurück und die Protokollierung wird fortgesetzt.
  • Als Nächstes wird eine Betriebsweise des Interruptprogramms zum Transferieren von in dem Transferbereich des Protokolldaten-Temporärspeicherbereichs 141 gespeicherten Protokolldaten zu dem internen Speicher 330 der CPU-Einheit 300 in dieser Ausführungsform mit Bezug auf die 5 und 6 beschrieben. 5 ist ein Diagramm zur Beschreibung einer Zustandsänderung der Bereiche des Protokolldaten-Temporärspeicherbereichs 141 in dieser Ausführungsform. 6 ist ein Ablaufdiagramm, welches eine Betriebsweise des Interruptprogramm-Ausführungsabschnitts 321 in dieser Ausführungsform zeigt. Wenn der Steuerabschnitt 122 in S108 der 4 der CPU-Einheit 300 die Protokolldatenausleseaufforderung mitteilt, führt der Interruptprogramm-Ausführungsabschnitt 321 das Interruptprogramm zum Transferieren von in dem Transferbereich gespeicherten Protokolldaten zu dem internen Speicher 330 aus.
  • In 5 zeigt die linke Zeichnung einen Zustand, in welchem der Bereich (a) als der Ausführungsbereich eingestellt ist, jeder der Bereiche (b), (c) und (d) als der Randbereich eingestellt ist und das Speichern von Protokolldaten in den Ausführungsbereich abgeschlossen ist. Wenn das Speichern von Protokolldaten in den Ausführungsbereich abgeschlossen ist, teilt der Steuerabschnitt 122 der CPU-Einheit 300 die Ausleseaufforderung von in dem Bereich (a) gespeicherten Protokolldaten, eine Adresse, an welcher Protokolldaten zuletzt gespeichert wurden, und die für den Bereich (a) allokierte Datengröße mit. Die Adresse, an welcher die Protokolldaten zuletzt gespeichert wurden, ist eine Adresse, an welcher Protokolldaten zum Zeitpunkt (N/4)T in der linken Zeichnung von 5 gespeichert werden. Die mittlere Zeichnung zeigt einen Zustand, in welchem der Bereich (a) als der Transferbereich eingestellt ist, der Bereich (b) als der Ausführungsbereich eingestellt ist, jeder der Bereiche (c) und (d) als der Randbereich eingestellt ist und Protokolldaten in den Bereich (b) gespeichert werden. Während die CPU-Einheit 300 die in dem Bereich (a) gespeicherten Protokolldaten liest, speichert der Steuerabschnitt 122 von dem A/D-Wandlungsabschnitt 130 ausgegebene Protokolldaten in den Bereich (b). Die rechte Zeichnung zeigt einen Zustand, in welchem der Bereich (b) als der Transferbereich eingestellt ist, der Bereich (c) als der Ausführungsbereich eingestellt ist, jeder der Bereiche (d) und (a) als der Randbereich festgelegt ist und Protokolldaten in den Bereich (c) gespeichert werden. Während die CPU-Einheit 300 in dem Bereich (b) gespeicherte Protokolldaten liest, speichert der Steuerabschnitt 122 von dem A/D-Wandlungsabschnitt 130 ausgegebene Protokolldaten in den Bereich (c).
  • In S201 der 6 liest der Interruptprogramm-Ausführungsabschnitt 321 Protokolldaten aus dem Transferbereich des Protokolldaten-Temporärspeicherbereichs 141 und speichert diese in dem internen Speicher 330.
  • In S202 bestimmt der Interruptprogramm-Ausführungsabschnitt 321, ob eine Größe der gelesenen Daten die Datengröße des in dem Shared Memory 140 gespeicherten Bereichs erreicht hat. Wenn die Größe gelesener Daten die Datengröße des in dem Shared Memory 140 gespeicherten Bereichs erreicht hat, führt der Interruptprogramm-Ausführungsabschnitt 321 den Prozess bei S203 fort. Im Gegensatz dazu, wenn die Größe gelesener Daten die Datengröße des in dem Shared Memory 140 gespeicherten Bereichs noch nicht erreicht hat, führt der Interruptprogramm-Ausführungsabschnitt 321 den Prozess zu S201 zurück und führt das Auslesen von Protokolldaten fort.
  • In S203 bestimmt der Interruptprogramm-Ausführungsabschnitt 321, ob eine Größe von in dem internen Speicher 330 gespeicherten Daten eine vorbestimmte Datengröße erreicht hat. Wenn die Größe von in dem internen Speicher 330 gespeicherten Daten die vorbestimmte Datengröße erreicht hat, führt der Interruptprogramm-Ausführungsabschnitt 321 den Prozess bei S204 fort. Im Gegensatz dazu, wenn die Größe der in dem internen Speicher 330 gespeicherten Daten die vorbestimmte Datengröße noch nicht erreicht hat, beendet der Interruptprogramm-Ausführungsabschnitt 321 das Interruptprogramm.
  • In S204 transferiert der Interruptprogramm-Ausführungsabschnitt 321 die in dem internen Speicher 330 gespeicherten Protokolldaten zu dem externen Speicher 400 und beendet das Interruptprogramm. Zu beachten ist, dass sowohl S203 als auch S204 ausgelassen werden, wenn das SPS-System keinen externen Speicher 400 umfasst.
  • Der Prozess des Lesens von Protokolldaten aus dem Transferbereich des Protokolldaten-Temporärspeicherbereichs 141 in S201 kann Protokolldaten auf einteiliger Basis oder gemeinsam auf mehrteiliger Basis auslesen.
  • Wie vorangehend beschrieben, kann in dem A/D-Wandler 100 gemäß der Ausführungsform das Protokollieren durchgeführt werden, ohne eine Samplingrate des A/D-Wandlungsabschnitts 130 zu reduzieren und die protokollierten Daten können zu dem internen Speicher 330 der CPU-Einheit 300 ohne Auslassung transferiert werden, selbst wenn die Samplingperiode kürzer als die Periode des periodischen Prozesses ist. Durch Bereitstellen des Randbereichs zusätzlich zu dem Ausführungsbereich und dem Transferbereich innerhalb des Protokolldaten-Temporärspeicherbereichs 141 kann zudem verhindert werden, dass in dem Transferbereich gespeicherte Protokolldaten überschrieben werden, selbst wenn der Rechenabschnitt 320 der CPU-Einheit 300 ein Programm ausführt, dessen Priorität höher als die des Interruptprogramms bezüglich der Protokolldatenausleseaufforderung ist. Zudem werden in dem internen Speicher 330 der CPU-Einheit 300 gespeicherte Protokolldaten an den externen Speicher 400 transferiert, wenn das SPS-System den externen Speicher 400 umfasst. Somit kann die Protokollierung einer großen Menge mit hoher Geschwindigkeit ausgeführt werden, ohne von der Kapazität des Shared Memory 140 des A/D-Wandlers 100 abhängig zu sein.
  • Der A/D-Wandler 100 gemäß der Ausführungsform umfasst den A/D-Wandlungsabschnitt 130, welcher Analogdaten in Digitaldaten wandelt, den Shared Memory 140, welcher den Protokolldaten-Temporärspeicherbereich 141 mit einer Ringspeicherstruktur umfasst, wobei der Protokolldaten-Temporärspeicherbereich in den ersten Bereich und den zweiten Bereich geteilt ist und die Digitaldaten nach Wandlung durch den A/D-Wandlungsabschnitt 130 speichert; und den Steuerabschnitt 122, welcher Digitaldaten nach Wandlung durch den A/D-Wandlungsabschnitt 130 in den ersten Bereich des Protokolldaten-Temporärspeicherbereichs 141 speichert und welcher, wenn eine Größe der gespeicherten Digitaldaten mit der für den ersten Bereich allokierten Datengröße übereinstimmt, bewirkt, dass die in dem ersten Bereich gespeicherten Digitaldaten ausgegeben werden und dass durch den A/D-Wandlungsabschnitt 130 neu gewandelte Digitaldaten in den zweiten Bereich gespeichert werden. Dementsprechend können in dem Transferbereich gespeicherte Protokolldaten zu dem internen Speicher 330 der CPU-Einheit 300 transferiert werden, während die A/D-Wandlung fortgesetzt wird; und somit kann eine A/D-Wandlung mit hoher Geschwindigkeit durchgängig ausgeführt werden.
  • Ferner ist in dem A/D-Wandler 100 gemäß der Ausführungsform der Protokolldaten-Temporärspeicherbereich 141 in den ersten Bereich, den zweiten Bereich und den dritten Bereich geteilt und, wenn die in dem ersten Bereich gespeicherten Digitaldaten ausgegeben werden und eine Größe der in dem zweiten Bereich gespeicherten Digitaldaten mit der für den zweiten Bereich allokierten Datengröße übereinstimmt, bewirkt der Steuerabschnitt 122, dass die in dem zweiten Bereich gespeicherten Digitaldaten ausgegeben werden und dass durch den A/D-Wandlungsabschnitt 130 neu gewandelte Digitaldaten in den dritten Bereich gespeichert werden, während das Ausgeben der in dem ersten Bereich gespeicherten Digitaldaten fortgesetzt wird. Wenn der Transfer von in dem Transferbereich gespeicherten Protokolldaten noch nicht abgeschlossen ist, wenn das Speichern von Digitaldaten in den Ausführungsbereich abgeschlossen ist, speichert der Steuerabschnitt 122 daher Digitaldaten nach der A/D-Wandlung als Protokolldaten in den Randbereich. Dementsprechend gibt es keine Bedenken, dass Protokolldaten, die noch nicht transferiert wurden, überschrieben und durch neue A/D-gewandelte Protokolldaten auslöscht werden.
  • Ferner speichert der Steuerabschnitt 122 in dem A/D-Wandler 100 gemäß der Ausführungsform in dem Speicherabschnitt die Datengrößen, welche für die jeweiligen Bereiche, die den Protokolldaten-Temporärspeicherbereich 141 bilden, allokiert sind, und eine Adresse, an welcher die Digitaldaten nach Wandlung durch den A/D-Wandlungsabschnitt 130 zuletzt gespeichert wurden, und, wenn eine Größe der in einem der Bereiche des Protokolldaten-Temporärspeicherbereichs 141 gespeicherten Digitaldaten mit der für diesen Bereich allokierten Datengröße übereinstimmt, gibt der Steuerabschnitt die Aufforderung zum Auslesen der in dem einen Bereich gespeicherten Digitaldaten, der für den einen Bereich allokierten Datengröße und der Adresse, an welcher die Digitaldaten nach Wandlung durch den A/D-Wandlungsabschnitt 130 zuletzt gespeichert wurden, aus. Als Ergebnis kann die CPU-Einheit 300 Protokolldaten basierend auf den von dem Steuerabschnitt 122 mitgeteilten Informationen abrufen.
  • Ferner ist der A/D-Wandler 100 gemäß der Ausführungsform mit dem Zähler 121 ausgestattet, welcher eine Größe von in einem der Bereiche des Protokolldaten-Temporärspeicherbereichs 141 gespeicherten Digitaldaten zählt, und der Steuerabschnitt 122 setzt einen Zählwert des Zählers 121 zurück, wenn der Zählwert mit der für diesen Bereich allokierten Datengröße übereinstimmt. Wenn ein Zählwert des Zählers 121 einen vorbestimmten Wert erreicht, kann der Steuerabschnitt 122 daher der CPU-Einheit 300 die Protokolldatenausleseaufforderung mitteilen.
  • Wenngleich die Beschreibung dergestalt ist, dass der Protokolldaten-Temporärspeicherbereich 141 in drei oder mehr Bereiche geteilt ist, kann dieser Bereich in zwei Bereiche geteilt sein. In diesem Fall kann der Steuerabschnitt 122 in einem dieser Bereiche des Protokolldaten-Temporärspeicherbereichs 141 gespeicherte Protokolldaten zu dem internen Speicher 330 der CPU-Einheit 300 transferieren, während Protokolldaten in dem anderen Bereich des Protokolldaten-Temporärspeicherbereichs 141 gespeichert werden. Im Ergebnis kann eine große Menge von Protokolldaten mit hoher Geschwindigkeit gelesen und in den internen Speicher 330 geschrieben werden, ohne durch einen Unterschied zwischen der Samplingperiode und der Periode des periodischen Prozesses beeinflusst zu sein.
  • Der interne Speicher 330 kann so konfiguriert sein, dass er eine Ringspeicherstruktur wie der Protokolldaten-Temporärspeicherbereich 141 hat. In diesem Fall, wenn eine Adresse von in dem internen Speicher 330 gespeicherten Protokolldaten aus dem Protokolldaten-Temporärspeicherbereich 141 die letzte Adresse erreicht, findet ein Überlauf der Adresse statt und Protokolldaten werden durch den Rechenabschnitt 320, beginnend bei einer Kopfadresse, erneut überschrieben.
  • Wenngleich die Beschreibung dergestalt ist, dass der A/D-Wandler 100 für den Protokolldaten-Temporärspeicherbereich 141 einen einzigen Speicher mit Ringspeicherstruktur umfasst, ist die Ausführungsform darauf nicht beschränkt. Da der A/D-Wandler 100 im Allgemeinen mehrere Eingabekanäle aufweist, kann der A/D-Wandler mehrere Speicher mit Ringspeicherstruktur aufweisen, sodass die Verarbeitung parallel durchgeführt werden kann.
  • Wenngleich die Beschreibung dergestalt ist, dass die CPU-Einheit 300 die in dem Protokolldaten-Temporärspeicherbereich 141 gespeicherten Protokolldaten liest, ist die Ausführungsform darauf nicht beschränkt. Beispielsweise können Protokolldaten durch einen Datenprotokollierer oder dergleichen, welcher mit dem SPS-System verbunden ist, gelesen werden.
  • Wenn das System dergestalt ist, dass die Samplingperiode länger als die Periode des periodischen Prozesses ist, können Daten bei jeder Periode des periodischen Prozesses der CPU-Einheit 300 gelesen werden, ohne das Interruptprogramm zu verwenden. In diesem Fall können die Schritte S101 und S106 bis S109 in 4 weggelassen werden.
  • Zweite Ausführungsform
  • 1 ist das Konfigurationsdiagramm des SPS-Systems gemäß der Erfindung. Das SPS-System gemäß dieser Ausführungsform hat dieselbe Konfiguration wie die erste Ausführungsform.
  • 7 ist ein Diagramm, welches eine Konfiguration eines D/A-Wandlers 200 gemäß dieser Ausführungsform zeigt. Der D/A-Wandler 200 umfasst einen Rechenabschnitt 210, welcher den gesamten D/A-Wandler steuert; eine Ausgaberecheneinheit 220, welche Werte berechnet, die D/A zu wandeln und auszugeben sind; einen D/A-Wandlungsabschnitt 230, welcher eine D/A-Wandlung an Digitaldaten durchführt; einen Shared Memory 240, in welchen durch die CPU-Einheit 300 Daten geschrieben werden können; und eine Bus-Schnittstelle 250, welche eine Kommunikationsschnittstelle zum Kommunizieren mit Geräten ist, welche über den Einheiten-verbindenden Bus 500 verbunden sind. Der Shared Memory 240 ist ein Speicherabschnitt. Der D/A-Wandler 200 wandelt von der CPU-Einheit 300 verarbeitete Digitaldaten in Analogdaten und gibt die Analogdaten (D/A-gewandelte Daten) an ein Industriegerät oder dergleichen als ein durch eine speicherprogrammierbare Steuerung 1000 zu steuerndes Objekt aus. In dem Shared Memory 240 gespeicherte Digitaldaten werden von der CPU-Einheit 300 als eine Ausgabe von in dem periodischen Prozess enthaltenen Ausführungsergebnissen eines Nutzerprogramms, welches ein Programm zur Steuerung des Industriegeräts ist, transferiert.
  • Als Nächstes wird der Shared Memory 240 des D/A-Wandlers 200 beschrieben. 8 ist ein Diagramm, welches einen Wellenformdatensequenz-Temporärspeicherbereich 241 des D/A-Wandlers 200 gemäß der Ausführungsform und eine Datenstruktur von in dem Wellenformdatensequenz-Temporärspeicherbereich 241 gespeicherten Daten zeigt. Der Shared Memory 240 umfasst den Wellenformdatensequenz-Temporärspeicherbereich 241 als einen temporären Speicherbereich, welcher Digitaldaten speichert, die durch den periodischen Prozess der CPU-Einheit 300 als eine Wellenformdatensequenz ausgegeben werden. Die Wellenformdatensequenz ist eine Digitaldatensequenz, welche aus mehreren Digitalwerten besteht. Die Wellenformdatensequenz kann konfiguriert sein als eine optionale Anzahl von Datenteilen. Die Anzahl der Teile repräsentiert eine Datengröße. Ein einziges Teil ist beispielsweise äquivalent zu 16 Bit oder 32 Bit und entspricht einem einzigen Digitalwert. Üblicherweise ist eine Periode zum Samplen und Wandeln von Digitaldaten in Analogdaten (Samplingperiode) kürzer als eine Periode des periodischen Prozesses. Damit der D/A-Wandler 200 kontinuierlich Wellenformdatensequenzen ausgibt, die in den Wellenformdatensequenz-Temporärspeicherbereich 241 gespeichert sind, muss der D/A-Wandler 200 Wellenformdatensequenzen aus dem internen Speicher 330 der CPU-Einheit 300 lesen, während die Wellenformen ausgegeben werden. In Anbetracht dessen ist der Wellenformdatensequenz-Temporärspeicherbereich 241 in dem Shared Memory 240 bereitgestellt, aus welchem der D/A-Wandler 200 Daten mit hoher Geschwindigkeit lesen kann und in welchen die CPU-Einheit 300 Wellenformdatensequenzen schreiben kann, ohne einen komplizierten Kommunikationsprozess durchzuführen.
  • Der Wellenformdatensequenz-Temporärspeicherbereich 241 ist so konfiguriert, dass er eine Ringspeicherstruktur hat. D. h., in dem Wellenformdatensequenz-Temporärspeicherbereich 241 gespeicherte Wellenformdatensequenzen werden sequenziell, beginnend bei einer Kopfadresse, gelesen. Wenn eine gelesene Adresse der Wellenformdatensequenz die letzte Adresse erreicht, findet ein Überlauf der Adresse statt und Wellenformdatensequenzen werden erneut, beginnend bei der Kopfadresse, gelesen.
  • Wenn eine große Menge von Wellenformen durchgängig mit hoher Geschwindigkeit durch den D/A-Wandler 200 ausgegeben wird, bereitet zuerst der Rechenabschnitt 320 der CPU-Einheit 300 eine große Menge von Wellenformdatensequenzen in dem internen Speicher 330 vor und transferiert die Wellenformdatensequenzen in einem Umfang, welcher der Kapazität des Wellenformdatensequenz-Temporärspeicherbereichs 241 entspricht, bevor die Ausgabe von Wellenformen beginnt. Nach dem Beginn der Ausgabe von Wellenformen muss ein Steuerabschnitt 222 des D/A-Wandlers 200 aus dem internen Speicher 330 Wellenformdatensequenzen lesen, bevor alle in dem Wellenformdatensequenz-Temporärspeicherbereich 241 gespeicherten Wellenformdatensequenzen ausgegeben sind. In Anbetracht dessen ist der Wellenformdatensequenz-Temporärspeicherbereich 241 in drei oder mehr Bereiche geteilt und jeder dieser Bereiche ist als ein Transferbereich, ein Ausführungsbereich oder ein Randbereich allokiert. In 8 ist der Wellenformdatensequenz-Temporärspeicherbereich 241 in vier Bereiche so geteilt, dass ein Bereich (a) für den Ausführungsbereich allokiert ist und jeder der Bereiche (b), (c) und (d) für den Randbereich allokiert ist. Wenn der Steuerabschnitt 222 den D/A-Wandlungsabschnitt 230 aktiviert, um die Ausgabe von Wellenformen zu starten, steuert der Steuerabschnitt einen Digitalwert-Ausgabeabschnitt 224 so, dass dieser Wellenformdatensequenzen aus dem Ausführungsbereich des Wellenformdatensequenz-Temporärspeicherbereichs 241 liest. Wenn das Lesen der Wellenformdatensequenzen aus dem Ausführungsbereich abgeschlossen ist, ändert der Steuerabschnitt 222 diesen Ausführungsbereich zu dem Transferbereich und veranlasst den Digitalwert-Ausgabeabschnitt dazu, Wellenformdatensequenzen aus dem nächsten Bereich zu lesen. Wie in 8 dargestellt, wenn das Ausgeben von Wellenformdatensequenzen aus dem Bereich (a) abgeschlossen ist, ändert der Steuerabschnitt 222 den Bereich (a) auf den Transferbereich und den Bereich (b) auf den Ausführungsbereich und veranlasst den Digitalwert-Ausgabeabschnitt dazu, in den Bereich (b) gespeicherte Wellenformdatensequenzen auszugeben. Der Steuerabschnitt 222 der Ausgaberecheneinheit 220 teilt dem Rechenabschnitt 320 der CPU-Einheit 300 den Abschluss des Lesens von Wellenformdatensequenzen aus dem Ausführungsbereich des Wellenformdatensequenz-Temporärspeicherbereichs 241 über die Bus-Schnittstelle 250, den Einheiten-verbindenden Bus 500 und die Bus-Schnittstelle 350 mit. Zudem teilt der Steuerabschnitt 222 dem Rechenabschnitt 320 der CPU-Einheit 300 die für den Ausführungsbereich allokierte Datengröße und eine Adresse des Wellenformdatensequenz-Temporärspeicherbereichs 141 mit, von welcher die Wellenformdatensequenz zuletzt ausgegeben wurde. Wenn die Mitteilung erhalten wird, veranlasst der Rechenabschnitt 320 den Interruptprogramm-Ausführungsabschnitt 321 dazu, das Interruptprogramm auszuführen. Gemäß dem Interruptprogramm transferiert der Rechenabschnitt 320 aus dem internen Speicher 330 Wellenformdatensequenzen zu dem Transferbereich des Wellenformdatensequenz-Temporärspeicherbereichs 241.
  • Durch Wiederholen dieses Prozesses kann eine große Menge von Wellenformdatensequenzen mit hoher Geschwindigkeit ausgegeben werden, ohne von einem Unterschied zwischen der Samplingperiode und der Periode des periodischen Prozesses beeinflusst zu sein. Im Allgemeinen weist der interne Speicher 330 einen Bereich auf, welcher größer als der Shared Memory 240 des D/A-Wandlers 200 ist. Um jedoch die Kapazität zur Ausgabe von Wellenformen weiter zu erhöhen, kann in dem externen Speicher 400 eine Menge von Wellenformdatensequenzen vorbereitet werden, deren Größe größer als die Kapazität des internen Speichers 330 ist. Hierzu werden fortlaufende Wellenformdatensequenzen über die Externe-Speicher-Schnittstelle 310 aus dem externen Speicher 400 zu dem internen Speicher 330 transferiert, sobald eine bestimmte Menge von Wellenformdatensequenzen zu dem internen Speicher 330 transferiert wurde. Zu beachten ist, dass der externe Speicher 400 ein spezifischer Speicher oder ein Allzweckspeichermedium sein kann, beispielsweise eine SD-Speicherkarte oder eine CF-Karte.
  • Der D/A-Wandler 200 führt das Ausgeben von Wellenformen kontinuierlich aus. Wenn der Steuerabschnitt 122 das Ausgeben von in dem Ausführungsbereich gespeicherten Wellenformdatensequenzen abschließt, bevor die CPU-Einheit 300 das Transferieren von Wellenformdatensequenzen zu dem Transferbereich abschließt, können daher Wellenformdatensequenzen, die in dem Wellenformdatensequenz-Temporärspeicherbereich 241 gespeichert wurden, jedoch daraus noch nicht ausgegeben wurden, erneut ausgegeben werden. Um eine solche Situation zu verhindern, weist der Wellenformdatensequenz-Temporärspeicherbereich 241 zusätzlich zu dem Ausführungsbereich und dem Transferbereich den Randbereich auf. Wenn sich der Transfer von Wellenformdatensequenzen aus der CPU-Einheit 300 verzögert, gibt der Digitalwert-Ausgabeabschnitt 224 in dem Randbereich gespeicherte Wellenformdatensequenzen aus. Dementsprechend kann verhindert werden, dass in dem Wellenformdatensequenz-Temporärspeicherbereich 241 gespeicherte Wellenformdatensequenzen erneut ausgegeben werden. Wenn der Wellenformdatensequenz-Temporärspeicherbereich 241 in vier oder mehr Bereiche geteilt ist, ist einer dieser Bereiche als der Ausführungsbereich eingestellt, ein anderer Bereich ist als der Transferbereich eingestellt und jeder der übrigen Bereiche ist als der Randbereich eingestellt. Auf diese Weise kann der Randbereich erweitert werden. Der Wellenformdatensequenz-Temporärspeicherbereich 241 kann so konfiguriert sein, dass die Anzahl seiner Teile optional durch einen Nutzer geändert werden kann.
  • Als Nächstes wird der Wellenformausgabeprozess des D/A-Wandlers 200 gemäß der Ausführungsform basierend auf den 8 und 9 beschrieben. 9 ist ein Ablaufdiagramm, welches eine Betriebsweise des Steuerabschnitts 222 des D/A-Wandlers 200 gemäß der Ausführungsform zeigt. 8 zeigt einen Zustand, in welchem der Wellenformdatensequenz-Temporärspeicherbereich 241 in vier Bereiche, d. h. in den ersten, zweiten, dritten und vierten Bereich, unterteilt ist und das Ausgeben von in dem ersten Bereich gespeicherten Wellenformdatensequenzen abgeschlossen ist.
  • Wie in 9 gezeigt, bestimmt der Steuerabschnitt 222 in S301 Datengrößen in der einzelnen Bereiche des Wellenformdatensequenz-Temporärspeicherbereichs 241. Insbesondere teilt der Steuerabschnitt 222 eine Kapazität des Wellenformdatensequenz-Temporärspeicherbereichs 241, d. h. N Wörter, durch die Anzahl der Bereiche, um eine Datengröße für jeden Bereich zu bestimmen. Wie in 8 gezeigt, beträgt eine Datengröße jedes Bereichs N/4 Wörter, weil die N Wörter auf vier Bereiche aufgeteilt werden.
  • In S302 speichert der Steuerabschnitt 222 die in S301 bestimmten Datengrößen der einzelnen Bereiche in dem Shared Memory 240, welcher als der Speicherabschnitt dient.
  • In S303 liest der Steuerabschnitt 222 aus dem internen Speicher 330 der CPU-Einheit 300 Wellenformdatensequenzen im Umfang einer Größe, welche der Größe des Wellenformdatensequenz-Temporärspeicherbereichs 241 entspricht, und speichert diese in dem Wellenformdatensequenz-Temporärspeicherbereich 241.
  • In S304 aktiviert der Steuerabschnitt 222 den D/A-Wandlungsabschnitt 230, um das Ausgeben von Wellenformen zu starten.
  • In S305 steuert der Steuerabschnitt 222 den Digitalwert-Ausgabeabschnitt 224 so, dass dieser die Wellenformdatensequenzen aus dem Ausführungsbereich des Wellenformdatensequenz-Temporärspeicherbereichs 141 liest und an den D/A-Wandlungsabschnitt 230 ausgibt. Wenn die in dem Ausführungsbereich gespeicherten Wellenformdatensequenzen noch nicht vollständig gelesen wurden, liest der Digitalwert-Ausgabeabschnitt 224 die an einer Kopfadresse des Ausführungsbereichs gespeicherte Wellenformdatensequenz und gibt diese an den D/A-Wandlungsabschnitt 230 aus. Wenn die in dem Ausführungsbereich gespeicherten Wellenformdatensequenzen teilweise gelesen wurden, liest der Digitalwert-Ausgabeabschnitt 224 eine Wellenformdatensequenz, welche an einer Adresse gespeichert ist, die sich an die Adresse anschließt, von welcher die Wellenformdatensequenz zuletzt gelesen wurde, und gibt diese an den D/A-Wandlungsabschnitt 230 aus. Zu beachten ist, dass eine Wellenformdatensequenz eines Wortes an einer einzigen Adresse gespeichert ist.
  • In S306 speichert der Steuerabschnitt 222 die Adresse, von welcher die Wellenformdatensequenz ausgegeben wird, in dem Shared Memory 240, welcher als der Speicherabschnitt dient.
  • In S307 veranlasst der Steuerabschnitt 222 einen Zähler 221 dazu, um einen Wert hochzuzählen, welcher der in S305 ausgegebenen Datengröße entspricht.
  • In S308 bestimmt der Steuerabschnitt 222, ob ein Zählwert des Zählers 221 die Datengröße des in dem Shared Memory 240 gespeicherten Bereichs erreicht hat. Wenn der Zählwert des Zählers 221 die Datengröße des in dem Shared Memory 240 gespeicherten Bereichs erreicht hat, führt der Steuerabschnitt 222 den Prozess bei S309 fort. Im Gegensatz dazu, wenn der Zählwert des Zählers 221 die Datengröße des in dem Shared Memory 240 gespeicherten Bereichs noch nicht erreicht hat, führt der Steuerabschnitt 222 den Prozess zu S306 zurück und führt das Ausgeben von Wellenformen fort.
  • In S309 teilt der Steuerabschnitt 222 der CPU-Einheit 300 eine Wellenformdatensequenz-Abrufaufforderung, eine Adresse, von welcher die Wellenformdatensequenz zuletzt ausgegeben wurde, und die Datengröße des in S302 in dem Shared Memory 240 gespeicherten Bereichs mit. Wenn die Wellenformdatensequenz-Abrufaufforderung mitgeteilt wird, ändert der Steuerabschnitt 222 den Ausführungsbereich des Wellenformdatensequenz-Temporärspeicherbereichs 241 auf den Transferbereich und ändert den Bereich, welcher eine Adresse enthält, die der Adresse nachfolgt, an welcher die Daten zuletzt gespeichert wurden, auf den Ausführungsbereich. Bezogen auf 8 stellt der Steuerabschnitt 122 den Bereich (a) als den Transferbereich und den Bereich (b) als den Ausführungsbereich ein.
  • In S310 löscht der Steuerabschnitt 222 den Zählwert des Zählers 221, führt den Prozess anschließend zu S305 zurück und führt das Ausgeben der Wellenformen fort.
  • Als Nächstes wird eine Betriebsweise des Interruptprogramms zum Transferieren von in dem internen Speicher 330 der CPU-Einheit 300 gespeicherten Wellenformdatensequenzen zu dem Transferbereich des Wellenformdatensequenz-Temporärspeicherbereichs 241 in dieser Ausführungsform basierend auf den 10 und 11 beschrieben. 10 ist ein Diagramm zur Beschreibung einer Zustandsänderung der Bereiche des Wellenformdatensequenz-Temporärspeicherbereichs 241 in dieser Ausführungsform. 11 ist ein Ablaufdiagramm, welches eine Betriebsweise des Interruptprogramm-Ausführungsabschnitts 321 in dieser Ausführungsform zeigt. Wenn der Steuerabschnitt 222 der CPU-Einheit 300 die Wellenformdatensequenz-Abrufaufforderung in S309 der 9 mitteilt, führt der Interruptprogramm-Ausführungsabschnitt 321 das Interruptprogramm zum Transferieren von in dem internen Speicher 330 der CPU-Einheit 300 gespeicherten Wellenformdatensequenzen zu dem Transferbereich aus.
  • In 10 zeigt die linke Zeichnung einen Zustand, in welchem der Bereich (a) als der Ausführungsbereich eingestellt ist, jeder der Bereiche (b), (c) und (d) als der Randbereich eingestellt ist und das Ausgeben von in dem Ausführungsbereich gespeicherten Wellenformdatensequenzen abgeschlossen ist. Wenn das Ausgeben von in dem Ausführungsbereich gespeicherten Wellenformdatensequenzen abgeschlossen ist, teilt der Steuerabschnitt 222 der CPU-Einheit 300 die Wellenformdatensequenz-Abrufaufforderung bezüglich des Bereichs (a), eine Adresse, von welcher die Wellenformdatensequenz zuletzt ausgegeben wurde, und die Datengröße des in dem Shared Memory 240 in S302 gespeicherten Bereichs mit. Die Adresse, von welcher die Wellenformdatensequenz zuletzt ausgegeben wurde, ist eine Adresse, an welcher eine Wellenformdatensequenz (N/4) in der linken Zeichnung von 10 gespeichert ist. Die mittlere Zeichnung zeigt einen Zustand, in welchem der Bereich (a) als der Transferbereich eingestellt ist, der Bereich (b) als der Ausführungsbereich eingestellt ist, jeder der Bereiche (c) und (d) als der Randbereich eingestellt ist und in dem Bereich (b) gespeicherte Wellenformdatensequenzen ausgegeben werden. Während die CPU-Einheit 300 Wellenformdatensequenzen zu dem Bereich (a) transferiert, gibt der Steuerabschnitt 222 in dem Bereich (b) gespeicherte Wellenformdatensequenzen aus. Die rechte Zeichnung zeigt einen Zustand, in welchem der Bereich (b) als der Transferbereich eingestellt ist, der Bereich (c) als der Ausführungsbereich eingestellt ist, jeder der Bereiche (d) und (a) als der Randbereich eingestellt ist und in dem Bereich (c) gespeicherte Wellenformdatensequenzen ausgegeben werden. Während die CPU-Einheit 300 Wellenformdatensequenzen zu dem Bereich (b) transferiert, gibt der Steuerabschnitt 222 in dem Bereich (c) gespeicherte Wellenformdatensequenzen aus.
  • In S401 der 11 liest der Interruptprogramm-Ausführungsabschnitt 321 Wellenformdatensequenzen aus dem internen Speicher 330 und speichert diese in dem Transferbereich des Wellenformdatensequenz-Temporärspeicherbereichs 241.
  • In S402 bestimmt der Interruptprogramm-Ausführungsabschnitt 321, ob eine Größe von Daten, welche aus dem internen Speicher 330 zu dem Wellenformdatensequenz-Temporärspeicherbereich 241 übertragen wurden, die Datengröße des in dem Shared Memory 240 gespeicherten Bereichs erreicht hat. Wenn die Größe der transferierten Daten die Datengröße des in dem Shared Memory 240 gespeicherten Bereichs erreicht hat, führt der Interruptprogramm-Ausführungsabschnitt 321 den Prozess bei S403 fort. Im Gegensatz dazu, wenn die Größe der transferierten Daten die Datengröße des in dem Shared Memory 240 gespeicherten Bereichs noch nicht erreicht hat, führt der Interruptprogramm-Ausführungsabschnitt 321 den Prozess zu S401 zurück und führt das Transferieren von Wellenformdatensequenzen fort.
  • In S403 bestimmt der Interruptprogramm-Ausführungsabschnitt 321, ob eine Größe von Daten, welche aus dem internen Speicher 330 transferiert wurden, eine vorbestimmte Datengröße erreicht hat. Wenn die Größe der von dem internen Speicher 330 transferierten Daten die vorbestimmte Datengröße erreicht hat, führt der Interruptprogramm-Ausführungsabschnitt 321 den Prozess bei S404 fort. Im Gegensatz dazu, wenn die Größe der aus dem internen Speicher 330 transferierten Daten die vorbestimmte Datengröße noch nicht erreicht hat, beendet der Interruptprogramm-Ausführungsabschnitt 321 das Interruptprogramm.
  • In S404 liest der Interruptprogramm-Ausführungsabschnitt 321 Wellenformdatensequenzen aus dem externen Speicher 404 und speichert diese in dem internen Speicher 330 und beendet anschließend das Interruptprogramm. Zu beachten ist, dass die Schritte S403 und S404 weggelassen werden, wenn das SPS-System den externen Speicher 400 nicht umfasst.
  • Der Prozess des Transferierens von Wellenformdatensequenzen zu dem Transferbereich des Wellenformdatensequenz-Temporärspeicherbereichs 241 in S401 kann Wellenformdatensequenzen auf einteiliger Basis oder gemeinsam in mehrteiliger Basis transferieren.
  • Wie vorangehend beschrieben, kann in dem D/A-Wandler 200 gemäß der Ausführungsform das Ausgeben der Wellenform durchgeführt werden, ohne eine Samplingrate des D/A-Wandlungsabschnitts 230 zu reduzieren und eine große Menge von Wellenformdatensequenzen kann aus dem internen Speicher 330 der CPU-Einheit 300 gelesen werden, selbst wenn die Samplingperiode kürzer als die Periode des periodischen Prozesses ist. Durch Bereitstellen des Randbereichs zusätzlich zu dem Ausführungsbereich und dem Transferbereich innerhalb des Wellenformdatensequenz-Temporärspeicherbereichs 241 kann verhindert werden, dass in dem Transferbereich gespeicherte Daten erneut ausgegeben werden, selbst wenn der Rechenabschnitt 320 der CPU-Einheit 300 ein Programm ausführt, dessen Priorität höher als die des Interruptprogramms bezüglich der Wellenformdatensequenz-Abrufaufforderung ist. Wenn das SPS-System den externen Speicher 400 umfasst, werden zudem aus dem externen Speicher 400 Wellenformdatensequenzen zu dem internen Speicher 330 der CPU-Einheit 300 transferiert. Somit kann das Ausgeben einer großen Menge von Wellenformen mit hoher Geschwindigkeit durchgeführt werden, ohne von der Kapazität des Shared Memory 240 des D/A-Wandlers 200 abhängig zu sein.
  • Der D/A-Wandler 200 gemäß der Ausführungsform umfasst den D/A-Wandlungsabschnitt 230, welcher Digitaldaten in Analogdaten wandelt; den Shared Memory 240, welcher den Wellenformdatensequenz-Temporärspeicherbereich 241 mit der Ringspeicherstruktur umfasst, welcher in den ersten Bereich und den zweiten Bereich geteilt ist und von dem D/A-Wandlungsabschnitt 230 zu wandelnden Digitaldaten speichert; und den Steuerabschnitt 222, welcher, wenn die durch den D/A-Wandlungsabschnitt 230 zu wandelnden Digitaldaten in dem ersten und zweiten Bereich gespeichert sind, die in dem ersten Bereich des Wellenformdatensequenz-Temporärspeicherbereichs 241 gespeicherten Digitaldaten an den D/A-Wandlungsabschnitt 230 ausgibt und, wenn eine Größe der ausgegebenen Digitaldaten mit der für den ersten Bereich allokierten Datengröße übereinstimmt, bewirkt, dass durch den D/A-Wandlungsabschnitt 230 neu zu wandelnde Digitaldaten in den ersten Bereich geschrieben werden und dass die in dem zweiten Bereich gespeicherten Digitaldaten an den D/A-Wandlungsabschnitt 230 ausgegeben werden. Dementsprechend können aus dem internen Speicher 330 der CPU-Einheit 300 transferierte Wellenformdatensequenzen in dem Transferbereich gespeichert werden, während die D/A-Wandlung fortgeführt wird; und somit kann die D/A-Wandlung kontinuierlich mit hoher Geschwindigkeit durchgeführt werden.
  • Ferner ist in dem D/A-Wandler 200 gemäß der Ausführungsform der Wellenformdatensequenz-Temporärspeicherbereich 241 in den ersten Bereich, den zweiten Bereich und den dritten Bereich geteilt und die durch den D/A-Wandlungsabschnitt 230 zu wandelnden Digitaldaten sind in dem ersten Bereich, dem zweiten Bereich und dem dritten Bereich gespeichert; und, wenn die durch den D/A-Wandlungsabschnitt 230 neu zu wandelnden Digitaldaten in dem ersten Bereich gespeichert werden, wenn das Ausgeben der in dem zweiten Bereich gespeicherten Digitaldaten an den D/A-Wandlungsabschnitt 230 abgeschlossen ist, bewirkt der Steuerabschnitt 222, dass von dem D/A-Wandlungsabschnitt 230 neu zu wandelnde Digitaldaten in den zweiten Bereich geschrieben werden und dass die in dem dritten Bereich gespeicherten Digitaldaten an den W/A-Wandlungsabschnitt 230 ausgegeben werden, während das Speichern der durch den D/A-Wandlungsabschnitt 230 neu zu wandelnden Digitaldaten in den ersten Bereich fortgesetzt wird. Wenn der Transfer von Wellenformdatensequenzen aus dem internen Speicher 330 der CPU-Einheit 300 zu dem Transferbereich noch nicht abgeschlossen ist, wenn das Ausgeben der in dem Ausführungsbereich gespeicherten Wellenformdatensequenzen an den D/A-Wandlungsabschnitt 230 abgeschlossen ist, gibt der Steuerabschnitt 222 in dem Randbereich gespeicherte Daten an den D/A-Wandlungsabschnitt 230 aus. Dementsprechend gibt es keine Bedenken, dass D/A-gewandelte Wellenformdatensequenzen erneut ausgegeben werden.
  • Ferner speichert in dem D/A-Wandler 200 gemäß der Ausführungsform der Steuerabschnitt 222 in dem Speicherabschnitt die für die jeweiligen Bereiche, die den Wellenformdatensequenz-Temporärspeicherbereich 241 bilden, allokierten Datengrößen und eine Adresse, von welcher die durch den D/A-Wandlungsabschnitt 230 zu wandelnden Digitaldaten zuletzt ausgegeben wurden, und, wenn das Ausgeben von in einem der Bereiche des Wellenformdatensequenz-Temporärspeicherbereichs 241 gespeicherten Digitaldaten abgeschlossen ist, gibt der Steuerabschnitt die Aufforderung zum Abrufen von Digitaldaten in diesen Bereich, der für diesen Bereich allokierten Datengröße und der Adresse, von welcher die durch den D/A-Wandlungsabschnitt 230 zu wandelnden Digitaldaten zuletzt ausgegeben wurden, aus. Im Ergebnis kann die CPU-Einheit 300 Wellenformdatensequenzen basierend auf Informationen transferieren, welche durch den Steuerabschnitt 222 mitgeteilt wurden.
  • Ferner ist der D/A-Wandler 200 gemäß der Ausführungsform mit dem Zähler 221 ausgestattet, welcher eine Größe von Digitaldaten zählt, welche von einem der Bereiche des Wellenformdatensequenz-Temporärspeicherbereichs 241 ausgegeben werden, und der Steuerabschnitt 222 setzt einen Zählwert des Zählers 221 zurück, wenn der Zählwert mit der für diesen Bereich allokierten Datengröße übereinstimmt. Dementsprechend kann, wenn ein Zählwert des Zählers 221 einen vorbestimmten Wert erreicht, der Steuerabschnitt 222 der CPU-Einheit 300 die Wellenformdatensequenz-Abrufaufforderung mitteilen.
  • Ferner umfasst die SPS 1000 gemäß der Erfindung den A/D-Wandler 100, beschrieben in der ersten Ausführungsform, den D/A-Wandler 200, beschrieben in der zweiten Ausführungsform, und die CPU-Einheit 300, welche den internen Speicher 330 zum Speichern von Digitaldaten umfasst, wobei die CPU-Einheit die Digitaldaten in dem internen Speicher 330 speichert, wenn der A/D-Wandler 100 die in dem Protokolldaten-Temporärspeicherbereich 141 des A/D-Wandlers 100 gespeicherten Digitaldaten ausgibt, und aus dem internen Speicher 330 die Digitaldaten ausgibt, welche in dem Wellenformdatensequenz-Temporärspeicherbereich 241 des D/A-Wandlers 200 zu speichern sind. Dementsprechend kann die SPS 1000 Protokolldaten abrufen, während die A/D-Wandlung durchgängig mit hoher Geschwindigkeit ausgeführt wird, und Wellenformdatensequenzen ausgeben, während die D/A-Wandlung durchgängig mit hoher Geschwindigkeit ausgeführt wird.
  • Wenngleich die Beschreibung dergestalt ist, dass der Wellenformdatensequenz-Temporärspeicherbereich 241 in drei oder mehr Bereiche geteilt ist, kann dieser Bereich in zwei Bereiche geteilt sein. In diesem Fall speichert der Steuerabschnitt 222 aus dem internen Speicher 330 der CPU-Einheit 300 abgerufene Wellenformdatensequenzen in einem der Bereiche des Wellenformdatensequenz-Temporärspeicherbereichs 241, während in dem anderen Bereich gespeicherte Wellenformdatensequenzen ausgegeben werden. Im Ergebnis kann eine große Menge von Wellenformen mit hoher Geschwindigkeit ausgegeben werden, ohne durch einen Unterschied zwischen der Samplingperiode und der Periode des periodischen Prozesses beeinflusst zu sein.
  • Der interne Speicher 330 kann so konfiguriert sein, dass er eine Ringspeicherstruktur wie die des Wellenformdatensequenz-Temporärspeicherbereichs 241 aufweist. In diesem Fall, wenn eine Adresse einer in dem internen Speicher 330 gespeicherten Wellenformdatensequenz aus dem externen Speicher 400 die letzte Adresse erreicht, findet ein Überlauf der Adresse statt und die Wellenformdatensequenzen werden, beginnend bei einer Kopfadresse, erneut überschrieben.
  • Wenngleich die Beschreibung dergestalt ist, dass der D/A-Wandler 200 für den Wellenformdatensequenz-Temporärspeicherbereich 241 einen einzigen Speicher mit einer Ringspeicherstruktur aufweist, ist die Ausführungsform darauf nicht beschränkt. Da der D/A-Wandler 200 im Allgemeinen mehrere Ausgabekanäle hat, kann der D/A-Wandler mehrere Speicher mit einer Ringspeicherstruktur aufweisen, so dass der Prozess parallel durchgeführt werden kann.
  • Wenn das System dergestalt ist, dass die Samplingperiode länger als die Periode des periodischen Prozesses ist, können Daten bei jeder Periode des periodischen Prozesses der CPU-Einheit 300 transferiert werden, ohne das Interruptprogramm zu verwenden. In diesem Fall können die Schritte S301 und S307 bis S310 in 9 und S108 weggelassen werden.
  • Bezugszeichenliste
  • 100
    A/D-Wandler
    110
    Rechenabschnitt
    120
    Eingaberecheneinheit
    121
    Zähler
    122
    Steuerabschnitt
    124
    Digitalwert-Eingabeabschnitt
    130
    A/D-Wandlungsabschnitt
    140
    Shared Memory
    141
    Protokolldaten-Temporärspeicherbereich
    150
    Bus-Schnittstelle
    200
    D/A-Wandler
    210
    Rechenabschnitt
    220
    Ausgaberechenabschnitt
    221
    Zähler
    222
    Steuerabschnitt
    224
    Digitalwert-Ausgabeabschnitt
    230
    D/A-Wandlungsabschnitt
    240
    Shared Memory
    241
    Wellenformdatensequenz-Temporärspeicherbereich
    300
    CPU-Einheit
    310
    Externer-Speicher-Schnittstelle
    320
    Rechenabschnitt
    321
    Interruptprogramm-Ausführungsabschnitt
    330
    interner Speicher
    340
    Peripheriegerät-Schnittstelle
    350
    Bus-Schnittstelle
    400
    externer Speicher
    500
    Einheiten-verbindender Bus
    1000
    SPS
    2000
    Peripheriegerät

Claims (9)

  1. Ein A/D-Wandler, umfassend: einen A/D-Wandlungsabschnitt, welcher Analogdaten in Digitaldaten wandelt; einen Speicherabschnitt, welcher einen Temporärspeicherbereich mit einer Ringspeicherstruktur umfasst, wobei der Temporärspeicherbereich in einen ersten Bereich und einen zweiten Bereich geteilt ist und die Digitaldaten nach Wandlung durch den A/D-Wandlungsabschnitt speichert; und einen Steuerabschnitt, welcher die Digitaldaten nach Wandlung durch den A/D-Wandlungsabschnitt in dem ersten Bereich des Temporärspeicherbereichs speichert und, wenn eine Größe der gespeicherten Digitaldaten mit einer für den ersten Bereich allokierten Datengröße übereinstimmt, bewirkt, dass die in dem ersten Bereich gespeicherten Digitaldaten ausgegeben werden und dass durch den A/D-Wandlungsabschnitt neu gewandelte Digitaldaten in den zweiten Bereich gespeichert werden.
  2. Der A/D-Wandler nach Anspruch 1, wobei der Temporärspeicherbereich in den ersten Bereich, den zweiten Bereich und einen dritten Bereich geteilt ist; und wobei, wenn die in dem ersten Bereich gespeicherten Digitaldaten ausgegeben werden, wenn eine Größe der in dem zweiten Bereich gespeicherten Digitaldaten mit einer für den zweiten Bereich allokierten Datengröße übereinstimmt, der Steuerabschnitt bewirkt, dass die in dem zweiten Bereich gespeicherten Digitaldaten ausgegeben werden und dass durch den A/D-Wandlungsabschnitt neu gewandelte Digitaldaten in den dritten Bereich gespeichert werden, während das Ausgeben der in dem ersten Bereich gespeicherten Daten fortgesetzt wird.
  3. Der A/D-Wandler nach Anspruch 1 oder 2, wobei der Steuerabschnitt in dem Speicherabschnitt Datengrößen, die für die jeweiligen, den Temporärspeicherbereich bildenden Bereiche allokiert wurden, und eine Adresse, an welcher die Digitaldaten nach Wandlung durch den A/D-Wandlungsabschnitt zuletzt gespeichert wurden, speichert; und wobei, wenn eine Größe von in einem der Bereiche des Temporärspeicherbereichs gespeicherten Digitaldaten mit der für den einen Bereich allokierten Datengröße übereinstimmt, der Steuerabschnitt eine Aufforderung zum Auslesen der in dem einen Bereich gespeicherten Digitaldaten, der für den einen Bereich allokierten Datengröße und der Adresse, an welcher die Digitaldaten nach Wandlung durch den A/D-Wandlungsabschnitt zuletzt gespeichert wurden, ausgibt.
  4. Der A/D-Wandler nach einem der Ansprüche 1 bis 3, ferner umfassend: einen Zähler, welcher eine Größe von in einem der Bereiche des Temporärspeicherbereichs gespeicherten Digitaldaten zählt, wobei der Steuerabschnitt einen Zählwert des Zählers zurücksetzt, wenn der Zählwert des Zählers mit einer für den einen Bereich allokierten Datengröße übereinstimmt.
  5. Ein D/A-Wandler, umfassend: einen D/A-Wandlungsabschnitt, welcher Digitaldaten in Analogdaten wandelt; einen Speicherabschnitt, welcher einen Temporärspeicherbereich mit einer Ringspeicherstruktur umfasst, wobei der Temporärspeicherbereich in einen ersten Bereich und einen zweiten Bereich geteilt ist und die durch den D/A-Wandlungsabschnitt zu wandelnden Digitaldaten speichert; und einen Steuerabschnitt, welcher, wenn die durch den D/A-Wandlungsabschnitt zu wandelnden Digitaldaten in dem ersten und zweiten Bereich gespeichert sind, die in dem ersten Bereich des Temporärspeicherbereichs gespeicherten Digitaldaten an den D/A-Wandlungsabschnitt ausgibt und, wenn eine Größe der ausgegebenen Digitaldaten mit einer für den ersten Bereich allokierten Datengröße übereinstimmt, bewirkt, dass durch den D/A-Wandlungsabschnitt neu zu wandelnde Digitaldaten in den ersten Bereich geschrieben werden und dass die in dem zweiten Bereich gespeicherten Digitaldaten an den D/A-Wandlungsabschnitt ausgegeben werden.
  6. Der D/A-Wandler nach Anspruch 5, wobei der Temporärspeicherbereich in den ersten Bereich, den zweiten Bereich und einen dritten Bereich geteilt ist und die durch den D/A-Wandlungsabschnitt zu wandelnden Digitaldaten in dem ersten, zweiten und dritten Bereich gespeichert sind, und wobei, wenn die durch den D/A-Wandlungsabschnitt neu zu wandelnden Digitaldaten in den ersten Bereich gespeichert werden, wenn das Ausgeben der in dem zweiten Bereich gespeicherten Digitaldaten an den D/A-Wandlungsabschnitt abgeschlossen ist, der Steuerabschnitt bewirkt, dass durch den D/A-Wandlungsabschnitt neu zu wandelnde Digitaldaten in den zweiten Bereich geschrieben werden und dass die in dem dritten Bereich gespeicherten Digitaldaten an den D/A-Wandlungsabschnitt ausgegeben werden, während das Speichern der durch den D/A-Wandlungsabschnitt neu zu wandelnden Digitaldaten in den ersten Bereich fortgesetzt wird.
  7. Der D/A-Wandler nach Anspruch 5 oder 6, wobei der Steuerabschnitt in dem Speicherabschnitt Datengrößen, die für die jeweiligen, den Temporärspeicherbereich bildenden Bereiche allokiert wurden, und eine Adresse, von welcher die durch den D/A-Wandlungsabschnitt zu wandelnden Digitaldaten zuletzt ausgegeben wurden, speichert; und wobei, wenn das Ausgeben von in einem der Bereiche des Temporärspeicherbereichs gespeicherten Digitaldaten abgeschlossen ist, der Steuerabschnitt eine Aufforderung zum Abrufen von Digitaldaten in dem einen Bereich, der für den einen Bereich allokierten Datengröße und der Adresse, von welcher die durch den D/A-Wandlungsabschnitt zu wandelnden Digitaldaten zuletzt ausgegeben wurden, ausgibt.
  8. Der D/A-Wandler nach einem der Ansprüche 5 bis 7, ferner umfassend: einen Zähler, welcher eine Größe von aus einem der Bereiche des Temporärspeicherbereichs ausgegebenen Digitaldaten zählt, wobei der Steuerabschnitt einen Zählwert des Zählers zurücksetzt, wenn der Zählwert des Zählers mit einer für den einen Bereich allokierten Datengröße übereinstimmt.
  9. Eine speicherprogrammierbare Steuerung, umfassend: einen A/D-Wandler nach einem der Ansprüche 1 bis 4; einen D/A-Wandler nach einem der Ansprüche 5 bis 8; und eine CPU-Einheit, welche einen internen Speicher zum Speichern von Digitaldaten umfasst, wobei die CPU-Einheit in den internen Speicher Digitaldaten speichert, wenn der A/D-Wandler die in dem Temporärspeicherbereich des A/D-Wandlers gespeicherten Daten ausgibt, und aus dem internen Speicher die in dem Temporärspeicherbereich des D/A-Wandlers zu speichernden Digitaldaten ausgibt.
DE112015006089.8T 2015-01-30 2015-01-30 A/D-Wandler, D/A-Wandler und speicherprogrammierbare Steuerung Withdrawn DE112015006089T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/000417 WO2016120906A1 (ja) 2015-01-30 2015-01-30 A/d変換装置、d/a変換装置、及びplc

Publications (1)

Publication Number Publication Date
DE112015006089T5 true DE112015006089T5 (de) 2017-10-19

Family

ID=56542574

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015006089.8T Withdrawn DE112015006089T5 (de) 2015-01-30 2015-01-30 A/D-Wandler, D/A-Wandler und speicherprogrammierbare Steuerung

Country Status (6)

Country Link
JP (1) JP5987203B1 (de)
KR (1) KR101781324B1 (de)
CN (1) CN107210750A (de)
DE (1) DE112015006089T5 (de)
TW (1) TW201633168A (de)
WO (1) WO2016120906A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7067260B2 (ja) * 2018-05-18 2022-05-16 オムロン株式会社 制御装置及びデータ記録方法
JP6625278B1 (ja) 2018-11-22 2019-12-25 三菱電機株式会社 入出力制御ユニット、plc及びデータ制御方法
JP7358772B2 (ja) * 2019-05-09 2023-10-11 オムロン株式会社 制御装置、制御方法、制御プログラム
CN111313220A (zh) * 2020-04-15 2020-06-19 武汉博联特科技有限公司 基于三菱plc的qcw激光器控制系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05289847A (ja) * 1992-04-06 1993-11-05 Toshiba Corp リングバッファ管理装置
JP3569592B2 (ja) * 1996-02-20 2004-09-22 ヤマハ株式会社 符復号装置
JP2959519B2 (ja) * 1997-04-24 1999-10-06 日本電気株式会社 グラフィックス表示装置
JP2002042422A (ja) * 2000-07-19 2002-02-08 Sharp Corp ディスク再生装置
JP2002374167A (ja) * 2001-06-12 2002-12-26 Nissin Electric Co Ltd 監視制御のアナログ入力装置
JP4969315B2 (ja) * 2007-05-18 2012-07-04 株式会社キーエンス プログラマブルコントローラ
CN101632068B (zh) * 2007-12-28 2015-01-14 株式会社东芝 半导体存储装置
CN201345098Y (zh) * 2009-02-27 2009-11-11 武汉中岩科技有限公司 一种同时读写存储器的数据采集装置
CN102362232B (zh) * 2009-03-23 2014-10-29 三菱电机株式会社 A/d变换装置以及可编程控制器系统
JP5327395B2 (ja) * 2010-09-28 2013-10-30 三菱電機株式会社 D/a変換装置、周辺装置、及びplc
US20130304402A1 (en) * 2011-01-21 2013-11-14 Mitsubishi Electric Corporation Analog input unit and programmable controller
CN102157914B (zh) * 2011-04-02 2014-03-12 山东电力研究院 一种新的继电保护装置的半波快速检测方法

Also Published As

Publication number Publication date
WO2016120906A1 (ja) 2016-08-04
CN107210750A (zh) 2017-09-26
TW201633168A (zh) 2016-09-16
JP5987203B1 (ja) 2016-09-07
KR20170093986A (ko) 2017-08-16
KR101781324B1 (ko) 2017-09-22
JPWO2016120906A1 (ja) 2017-04-27

Similar Documents

Publication Publication Date Title
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE2953861C2 (de)
DE2928488A1 (de) Speicher-subsystem
DE102008055892A1 (de) Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich
DE2819571A1 (de) Datenverarbeitungsanlage mit mehreren prozessoren
DE2556661A1 (de) Steuerschaltung mit adressenerweiterung
DE19822776A1 (de) Datenverarbeitungsvorrichtung
DE112015006089T5 (de) A/D-Wandler, D/A-Wandler und speicherprogrammierbare Steuerung
DE112013001213T5 (de) Datentransfereinrichtung, Datentransferverfahren und Datentransferprogramm
DE2813080A1 (de) Einrichtung zur speicheradressierung
DE102015203202B4 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE112013002975T5 (de) Eingabe/Ausgabe-Vorrichtung, programmierbare logische Steuervorrichtung und Operationsverfahren
DE2054941C2 (de) Anordnung zur Auswahl von Datensätzen
DE602004008712T2 (de) Speicherbandbreiten-Steuereinrichtung
DE1953364A1 (de) Wahlausfuehrungsschaltung fuer programmgesteuerte Datenverarbeiter
DE102014010659A1 (de) Speicherzugriff unter verwendung von adressen mit permutation
DE2558417A1 (de) Datenverarbeitungssystem
DE69729818T2 (de) Sortier- und Mischprozessor und Sortier- und Mischprozessanlage
DE2403669C3 (de) SpezialComputer
DE2459476C3 (de)
DE3025167C2 (de) Datenverarbeitungseinrichtung
DE10110567B4 (de) Datenverarbeitungssystem mit einstellbaren Takten für unterteilte synchrone Schnittstellen
DE112012006587T5 (de) Leseanforderungs-Verarbeitungsvorrichtung
DE102015006624A1 (de) Steuervorrichtung, die in der Lage ist, eine Kommunikationszykluszeit zu verringern

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: DIEHL & PARTNER PATENT- UND RECHTSANWALTSKANZL, DE

Representative=s name: PATENT- UND RECHTSANWAELTE DIEHL & PARTNER GBR, DE

R016 Response to examination communication
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee