Share this

Entwicklung eines Datenerfassungssystems für einen Präzisionstemperaturregler auf Basis von Delphi 7.0

2026-02-21 14:22:21 · · #1
1. Einleitung Der Präzisions-Temperaturregler WSH_A (im Folgenden: Temperaturregler) ist ein von uns entwickeltes, intelligentes Dreipunkt-Temperaturregelgerät mit einem Mikrocomputer als Kern. Er kann an verschiedene Thermoelementtypen angeschlossen werden und ermöglicht so eine hochpräzise Temperaturerfassung und -regelung. Seine Erfassungsgenauigkeit beträgt 0,05 %, die Regelgenauigkeit erreicht bis zu 0,1 %. Er wird erfolgreich in der Temperaturregelung der Halbleiterindustrie eingesetzt. In der Praxis ist es häufig erforderlich, den Betriebszustand mehrerer Temperaturregler gleichzeitig zu überwachen und die Betriebsdaten zur Analyse aufzuzeichnen. Dieser Artikel stellt ein Datenerfassungssystem für Präzisions-Temperaturregler vor, das Funktionen wie die Überwachung mehrerer Temperaturregler, Datenspeicherung, Temperaturkurvendarstellung, Erstellung von Verlaufskurven, Datenabfrage und Berichterstellung in der Delphi 7.0-Umgebung implementiert und die Benutzerverwaltung erheblich vereinfacht. Das System nutzt RS485-Kommunikation und kann bis zu 16 Temperaturregler gleichzeitig überwachen. 2. Hardwarestruktur und Systemaufbau 2.1 Hardwarestruktur des Temperaturreglers Die Hardwarestruktur und das Schaltbild des Kommunikationsmoduls des Temperaturreglers sind in Abbildung 1 dargestellt: Abbildung 1: Funktionsschaltbild des Temperaturreglers. Nach dem MAX485 ist ein Schutzrelais für den Ausgang hinzugefügt. Das Relais wird von der 5-V-Systemversorgung gespeist. Wenn das System nicht eingeschaltet oder anormal heruntergefahren wird, wird die Verbindung zwischen dem Kommunikationsmodul und dem Netzwerk getrennt, um die Stabilität und Zuverlässigkeit des gesamten Netzwerks zu erhöhen [1]. 2.2 Systemaufbau Der Temperaturregler verfügt über ein optoisoliertes RS485-Kommunikationsschnittstellenmodul. RS485 zeichnet sich durch große Übertragungsreichweite und gute Störfestigkeit aus und ist ein in der Industrie weit verbreitetes Kommunikationsverfahren [4]. Die dreistufige analoge Temperatureingabe des Temperaturreglers wird vom internen Funktionsmodul des Temperaturreglers umgewandelt und an die serielle Schnittstelle des Host-Computers gesendet. Das Anschlussdiagramm des Systems ist in Abbildung 2 dargestellt: Abbildung 2: Strukturdiagramm des Kommunikationssystems. Die Kommunikation zwischen dem Host-Computer und dem Temperaturregler erfolgt über das Broadcast-Verfahren [4]. Während des Betriebs befindet sich der Host-Computer im aktiven Zustand. Nachdem der Temperaturregler den vom Host-Computer gesendeten Befehl passiv empfangen hat, prüft er, ob die Adresse mit der lokalen Adresse übereinstimmt, und entscheidet dann, ob Daten mit dem Host-Computer übertragen werden sollen. Der Host-Computer liest alle an den Bus angeschlossenen Temperaturregler der Reihe nach ihrer Adressnummer aus. Dies wird als Lesezyklus bezeichnet [1]. 3. Formulierung des Kommunikationsprotokolls und Implementierung der Kommunikation Um die Echtzeitfähigkeit des Host-Computers zu verbessern, sollte die Menge der Kommunikationsinformationen in jedem Lesezyklus minimiert werden. Der Schlüssel zur Formulierung des Kommunikationsprotokolls liegt in der sinnvollen Anordnung der Lesebefehlswörter, sodass Informationen mit hoher Änderungsfrequenz in jedem Lesezyklus übertragen werden, während Informationen mit niedriger Änderungsfrequenz erst nach einer Änderung übertragen werden. 3.1 Befehlswörter festlegen Die vom Datenerfassungssystem des Temperaturreglers zu erfassenden Informationen werden nach Aktualisierungsfrequenz in folgende Kategorien unterteilt: [1] Erfassungsparameter: Aktueller Temperaturwert von drei Messpunkten eines Gerätesatzes, aktuelle Segmentnummer, Segmentlaufzeit, Gesamtlaufzeit des Temperaturreglers, Umgebungstemperatur und Solltemperatur, aktueller Ausgangssteuerwert des Temperaturreglers sowie einige Schaltzustände. Diese Parameter ändern sich häufig und müssen in jedem Lesezyklus übertragen werden. [2] Regelparameter: PID-Regelparameter, Temperaturkorrekturparameter, Abtastzeit, Temperaturalarmwert, Thermoelementtyp und 20 Temperaturprozesskennlinienparameter, die gemäß den Prozessanforderungen eingestellt werden. Diese Parameter ändern sich selten und müssen nach jeder Änderung übertragen werden. Host-Computer und Temperaturregler übertragen Daten per Broadcast. Vom Host-Computer gesendete Befehle sind 6 Byte lang und haben folgendes Format: [#]+[XX] (Adresse)+[XX]+$0D. Das erste Byte ist der Header, Byte 2 und 3 enthalten die Adresse des Temperaturreglers und Byte 4 und 5 den spezifischen Inhalt, der gelesen werden soll. Beispielsweise liest [RE] den aktuellen Temperaturwert und die Regelparameter; [CT] liest die Regelparameter; [PI] liest die PID- und Korrekturparameter; und [LT] liest Parameter aus 20 Temperaturprozesskurven. 3.2 Priorität der Befehlswörter festlegen: [RE] ist das kritische Befehlswort mit hoher Priorität und dient zum Lesen der Detektionsparameter jedes Temperaturreglers in jedem Lesezyklus. Ein Statusflag [X] wird in den vom Temperaturregler hochgeladenen Daten gesetzt, um zu überwachen, ob der entsprechende Temperaturregler seine Regelparameter geändert hat, und um die Priorität anderer Befehlswörter anzuzeigen. Wenn der Benutzer die Regelparameter des Temperaturreglers ändert, wird das Statusflag auf 1 gesetzt, die Priorität des entsprechenden Befehlsworts zum Lesen der Regelparameter erhöht, der Host-Computer sendet das Befehlswort zum Lesen der Regelparameter, der Temperaturregler empfängt das vom Host-Computer gesendete Befehlswort zum Lesen der Regelparameter und setzt das Statusflag nach Bestätigung des Daten-Uploads zurück. 3.3 Kommunikationsprozess Dieses System legt im Kommunikationsprotokoll Schlüsselwörter fest, um den üblicherweise verwendeten Abfragemodus im Kommunikationsprozess in den Interruptmodus umzuwandeln. Dies verbessert die Arbeitseffizienz des Systems erheblich. Das Flussdiagramm des Kommunikationsprozesses ist in Abbildung 3 dargestellt: Abbildung 3: Kommunikationsflussdiagramm 3.4 Verwendung des MSComm-Steuerelements zur Implementierung der seriellen Kommunikation Das MSComm-Steuerelement ist ein serielles Port-Steuerelement von Visual Basic. Es ist einfach zu bedienen, bietet eine hohe Leistung und erfordert keine Berücksichtigung komplexer API-Funktionen während der Programmierung. Es wird häufig in der seriellen Kommunikation verwendet. MSComm bietet zwei Methoden zur Kommunikationsverarbeitung: den ereignisgesteuerten Modus und den Abfragemodus. Bei der Entwicklung von Kommunikationssoftware ist das Senden von Lesebefehlswörtern relativ einfach. Der Empfang der vom System zurückgegebenen Daten muss sorgfältig behandelt werden. Je nach Anwendungsfall muss zwischen dem ereignisgesteuerten Modus und dem Abfragemodus gewählt werden. Im ereignisgesteuerten Modus muss sichergestellt werden, dass die Länge der vom System im Empfangspuffer zurückgegebenen Daten dem festgelegten Wert des Attributs RThreshold entspricht, um das Ereignis OnComm() auszulösen. Wenn die Länge der von der untergeordneten Maschine auf verschiedene Befehle an die übergeordnete Maschine zurückgegebenen Daten unterschiedlich ist, muss der Polling-Modus zum Empfangen von Daten ausgewählt werden [4]. Beachten Sie, dass es beim Empfangen von Daten im Polling-Modus sehr wichtig ist, nach dem Senden des Lesebefehls an den Ausgabepuffer eine angemessene Verzögerungszeit einzustellen. Im Allgemeinen kann die Verzögerungsfunktion Sleep() verwendet werden, und eine angemessene Verzögerungszeit sollte entsprechend der Länge der zurückgegebenen Daten eingestellt werden. Nach dem Senden des Lesebefehls und der entsprechenden Verzögerungszeit gibt der Eingabepuffer die diesem Befehl entsprechenden Daten zurück. Es gibt drei Bedingungen, um zu beurteilen, ob die Daten korrekt sind: Der Datenkopf ist [#]; das Datenende ist $0D; und die Datenlänge entspricht der im Kommunikationsprotokoll festgelegten Länge. 4. Systemfunktion und Softwarestruktur 4.1 Systemfunktion Das System ist so konzipiert, dass es die Funktionen gemäß den Anforderungen der Benutzer im Produktionsbetrieb implementiert. [1] Überwachung des Betriebszustands des an den Bus angeschlossenen Temperaturreglers. Der Betriebszustand des Temperaturreglers umfasst den Erkennungs-, Regelungs- und Fehlerzustand. [2] Parameterauslesung: Auslesen der Detektions- und Regelparameter jedes Temperaturreglers, Speicherung in der Datenbank und Echtzeit-Dreipunkt-Temperaturkurvendarstellung. [3] Abfrage historischer Daten und Anzeige historischer Temperaturkurven. [4] Berichtserstellung und Datenexport. 4.2 Softwarestruktur Die Softwareimplementierung dieses Systems ist in drei Teile gegliedert: Der erste Teil dient dem Auslesen, Verarbeiten und Übertragen der Temperaturreglerdaten; der zweite Teil der Datenklassifizierung, -anzeige, -speicherung und Kurvendarstellung; der dritte Teil der Abfrage historischer Daten und Temperaturkurven, Berichtserstellung usw. Die Hauptaufgaben der einzelnen Teile sind: [1] Datenauslesung: Entsprechend den unterschiedlichen Auslesefrequenzen der verschiedenen Daten des Temperaturreglers wurden die beiden Subprozesse ReadTemperature() und ReadPIDQX() implementiert. Der Prozess ReadTemperature() sendet Befehlswörter zum Auslesen der Detektionsparameter, der Prozess ReadPIDQX() dient zum Auslesen der Regelparameter. Der formale Parameter des Subprozesses ist die Adresse des Temperaturreglers. Der Kerncode der Unterprozedur ReadTemperature() sieht wie folgt aus: procedure ReadTemperature (adress1, adress2: byte); var send_ReadTOrder: variant; // Schlüsselbefehle werden in Variantenvariablen gespeichert wendu_inputstring: string; // Die hochgeladenen Rohdaten werden in wendu_inputstring gespeichert string InputLen, string_dingwei: integer; // Datenlänge und Positionierung von wendu_inputstring Begin send_ReadTOrder: = VarArrayCreate([0,5], varByte); send_ReadTOrder[0]: = $23; send_ReadTOrder[3]: = $52; send_ReadTOrder[1]: = adress1; send_ReadTOrder[4]: = $45; send_ReadTOrder[2]: = adress2; send_ReadTOrder[5]: = $0D; if MainForm.MSComm.PortOpen then // Wenn die serielle Schnittstelle bereits geöffnet ist, sende den Befehl zum Auslesen der Temperatur begin MainForm.mscomm.InBufferCount:=0; // Eingabepuffer leeren MainForm.mscomm.OutBufferCount:=0; // Ausgabepuffer leeren MainForm.MSComm.Output:= send_ReadTOrder; // Sende den Befehl zum Auslesen der Temperatur an den Ausgabepuffer sleep(600); // Entsprechende Verzögerung InputLen:=MainForm.MSComm.InBufferCount; // Länge der aus dem Eingabepuffer gelesenen Daten wendu_inputstring:=MainForm.MSComm.Input; // Daten direkt im ASCII-Format empfangen string_dingwei:=pos('*',wendu_inputstring); // Den gelesenen String-Status ermitteln:=copy(string_dingwei,wendu_inputstring) if(InputLen>=50)&&(copy(string_dingwei,wendu_inputstring)='*') &&(copy(string_dingwei+50,wendu_inputstring)=' ') Then // Die Eintrittsbedingungen beachten, insbesondere die Bedingung (InputLen>50). 50 ist die im Kommunikationsprotokoll festgelegte Länge der zurückgegebenen Daten. Begin If (state=='1') then Begin // ReadPIDQX() senden und entsprechende Datenverarbeitung durchführen End else …… // Daten verarbeiten und senden End; end; [2] Datenanzeige und Temperaturkurvenzeichnung: Die Datenanzeige erfolgt mit der professionellen Industriesteuerungs-Software Iocomp, die Kurvenzeichnung mit Teechartpro6 und die Datenbank mit Access 2003. Bei der Darstellung der Temperaturkurve werden zunächst die 20 vom Temperaturregler gespeicherten Temperaturverlaufskurven rot und anschließend die Dreipunkt-Erkennungskurve blau, gelb und grün dargestellt. Beachten Sie, dass die Hilfsfunktionen wie Bildskalierung und -verschiebung nicht die integrierten Funktionen von Teechart nutzen. Fügen Sie zwei Scrollleisten-Steuerelemente hinzu und verwenden Sie deren Positionseigenschaft, um die Minimaleigenschaft der Zeitachse (Temperaturachse) zu steuern und so deren Verschiebung zu ermöglichen. Die Schrittweite der Temperatur- und Zeitachse kann frei eingestellt werden, um die Kurvenskalierung auf der Zeitachse (Temperaturachse) zu realisieren. Die Hauptschnittstelle des Systems ist in Abbildung 4 dargestellt: Abbildung 4: Hauptschnittstelle des Systems [3] Datenzugriff und Abfrage historischer Daten: Die historischen Datenaufzeichnungen jedes Temperaturreglers werden anhand ihrer Laufzeit abgefragt. Dabei werden die 20 Temperaturverlaufskurven sowie die historischen Dreipunkt-Temperaturkurven während des Betriebs dargestellt. Bei jedem Systemlauf wird die Funktion `getlocaltime()` verwendet, um die aktuelle Systemzeit zu ermitteln. Das Format dieser Zeitangabe ist `xxYxxMxxDxxHxxM`, das als Tabellenname der Datenbank dient. Die in diesem Lauf aufgezeichneten Daten werden in dieser Tabelle gespeichert und sind somit für Benutzer leicht abrufbar. Wählen Sie die Geräteadresse aus, und alle historischen Datensätze dieses Geräts werden in der Listbox angezeigt. Wählen Sie den Tabellennamen für die Abfrage, um die aufgezeichneten Daten anzuzeigen und gleichzeitig die historischen Kurven zu zeichnen. Der Bericht wird mit Rave5 [3] erstellt. Die historischen Daten können auch zur Bearbeitung und zum Drucken nach Excel exportiert werden [2]. 5. Fazit: Das in dieser Arbeit entwickelte Echtzeit-Datenerfassungssystem wurde zusammen mit dem Präzisionstemperaturregler vom Typ WSH_A zur Temperaturregelung in der Halbleiterfertigung eingesetzt. Legen Sie die Schlüsselbefehle im Kommunikationsprotokoll fest und ändern Sie den üblicherweise im Kommunikationsprozess verwendeten Abfragemodus in den Interrupt-Modus. Die optimierte Struktur sorgt für einen stabilen Systemlauf und eine hohe Echtzeitfähigkeit. Die flexible Nutzung von Drittanbieter-Steuerelementen wie Teechart und Iocomp ermöglicht eine professionellere Kurvendarstellung der Benutzeroberfläche, erfüllt die Benutzerbedürfnisse und erzielt gute wirtschaftliche Vorteile. 6. Literatur: [1] Wang Yuanting, Yang Gengjie, Guo Moufa. Entwicklung eines seriellen Kommunikationsprogramms mit Delphi+MSComm-Steuerung [J]. Industrial Control, 2004, 7 (2): 8-11. [2] Sai Kuichun, Chen Zihong, Song Kun. Schlüsseltechnologien und Anwendungsbeispiele der Delphi-Datenbankentwicklung [M]. Peking: People's Posts and Telecommunications Press, 2004.5 197-227. [3] Xiao Qinghang, Lu Dingshu. Delphi7-Datenbankentwicklungs-Tutorial [M]. Peking: Tsinghua University Press, 2004.3 216-231. [4] Zhao Lantao, Su Yanhua. Delphi-Serienkommunikationstechnologie und -praxis [M]. Peking: People's Posts and Telecommunications Press, 2004.6 56-77.
Read next

Eine kurze Diskussion über die Präzisionssteuerung von SPSen in Druckmaschinen

1. Einleitung. In den letzten Jahren hat die Fabrikautomatisierung in China dank des Fortschritts der Automatisierungste...

Articles 2026-02-20