Share this

Entwicklung einer KI-Instrumenten-Host-Computer-Steuerungssoftware auf Basis von Delphi

2026-02-21 12:53:48 · · #1
Zusammenfassung: Die Instrumente der AI-Serie von Xiamen Yudian finden breite Anwendung in der Industrie. Informationen zur Entwicklung von Überwachungssoftware für diese Instrumente mit Delphi sind jedoch rar. Basierend auf meiner Erfahrung in der Entwicklung von Überwachungssoftware für Host-Computer von AI-Instrumenten beschreibt dieser Artikel detailliert die Entwicklung allgemeiner AI-Instrumentenprogramme mit Delphi. Er beinhaltet die Programmvorstellung zum Lesen und Schreiben von Daten der AI-Instrumente sowie Hinweise zu Problemen, die beim Lesen und Schreiben von Daten zu beachten sind. Schlüsselwörter: Delphi, AI-Instrument, serielle Kommunikation. Einleitung: Die Instrumente der AI-Serie von Xiamen Yudian zeichnen sich durch leistungsstarke Funktionen, einfache Bedienung und gute Regelgenauigkeit aus und werden daher häufig in der Industrie eingesetzt. In der Praxis ist es jedoch oft notwendig, die erfassten Daten mithilfe eines Computers zu lesen und zu speichern sowie die Instrumentenparameter auszulesen und einzustellen. Aus diesem Grund bietet Yudian ein serielles Kommunikationsschnittstellenmodul für die Instrumente der AI-Serie an. Nach der Installation dieses Moduls können Anwender Daten einfach über den 232-Port des Computers mit dem Instrument austauschen. Dieser Artikel verwendet das AI-708P-Instrument als Beispiel, um detailliert zu beschreiben, wie mit Delphi eine Host-Computer-Überwachungssoftware für Instrumente der AI-Serie entwickelt wird. 1. Das AI-Instrument ist über eine serielle Schnittstelle mit dem Computer verbunden. Es verfügt über ein eigenes serielles Kommunikationsprotokoll, mit dem Softwareentwickler Daten und Statusinformationen lesen und einstellen können. Die meisten online verfügbaren Beispiele für Kommunikationsprogramme von AI-Instrumenten sind in VB geschrieben. Diese Programme sind relativ einfach und bieten nur einen begrenzten Funktionsumfang, wodurch sie für die umfassende Entwicklung durch weniger erfahrene Entwickler ungeeignet sind. Daher hat dieser Autor eine Host-Computer-Überwachungssoftware für das AI-Instrument auf einem 708P-Temperaturregler entwickelt, um die Computerüberwachung des AI-Instruments zu ermöglichen. Basierend auf meiner Entwicklungserfahrung beschreibt dieser Artikel den gesamten Entwicklungsprozess eines universellen Host-Computerprogramms für AI-Instrumente auf Basis von Delphi sowie einige wichtige Hinweise für die Entwicklung. 1.1 Einführung in die Programmfunktionen Diese Software ist eine universelle Überwachungssoftware für AI-Instrumente und umfasst die folgenden Funktionen: 1) Erkennung und Identifizierung des AI-Instruments; 2) Lesen und Einstellen von Parametern des AI-Instruments; 3) Lesen und Einstellen des Status des AI-Instruments. Die Implementierung dieser Funktionen wird im Folgenden beschrieben. 1.2 Funktionsimplementierung Um den Entwicklungszyklus zu verkürzen, verwendet die Software während der Entwicklung die Drittanbieter-Steuerung SPCOMM zur Implementierung der seriellen Kommunikationsfunktionalität. Selbstverständlich können interessierte Leser diese Funktion auch selbst mithilfe von Windows-API-Funktionen implementieren. Die Verwendung von Windows-API-Funktionen und der SPCOMM-Steuerung wird in diesem Artikel nicht näher erläutert; hierzu verweisen wir auf entsprechende Literatur. Bevor wir die Programmfunktionen vorstellen, müssen zwei Prozesse erklärt werden: A. Der Prozess zum Lesen von Geräteparametern, TAI.ReadData(var msg: TMessage), hat folgenden Code: [COLOR=#8A2BE2]var NO1,NO2,NO3,NO4,NO5,NO6,NO7,NO8:Cardinal; {NO1,NO2,NO3,NO4,NO5,NO6,NO7,NO8 entsprechen den 8 zu sendenden Daten} s : string; p : PChar; begin NO1 := 128 + msg.WParam; // Für den Datenleseprozess speichert WParam die Adresse des auszulesenden Instruments. NO2 := NO1; NO3 := 82; NO4 := msg.LParam; // Für den Datenleseprozess speichert LParam die Adresse des auszulesenden Parameters. NO5 := 0; NO6 := 0; NO7 := 82 + msg.WParam; NO8 := msg.LParam; s := chr(NO1)+chr(NO2)+chr(NO3)+chr(NO4)+chr(NO5)+chr(NO6)+chr(NO7)+chr(NO8); p := PChar(s); Comm1.WriteCommData(p,Length(s)); end;[/COLOR] B. Geräteparameter schreiben TAI.SetData(var msg: TMessage) Der Programmcode lautet wie folgt: [COLOR=#8A2BE2]var NO1,NO2,NO3,NO4,NO5,NO6,NO7,NO8:Integer; {NO1,NO2,NO3,NO4,NO5,NO6,NO7,NO8 entsprechen den Bits 1 bis 8, die jeweils gesendet werden sollen} s : string; p : PChar; begin NO1 := 128 + Meter_Addr;// Meter_Addr ist eine globale Variable, die die Geräteadresse speichert. NO2 := NO1; NO3 := 67; NO4 := msg.WParam; // Für die Schreibprozedur speichert WParam die Adresse des zu schreibenden Parameters. {Berechne die Werte von NO5, NO6, NO7 und NO8 gemäß den Protokollvorgaben.} NO5 := (msg.LParam mod 256); // Für den Schreibvorgang speichert LParam den Wert des zu schreibenden Parameters. NO6 := (msg.LParam div 256); NO7 := ((67 + Meter_Addr + msg.LParam + msg.WParam * 256) mod 256); NO8 := ((67 + Meter_Addr + msg.LParam + msg.WParam * 256) div 256); s := chr(NO1)+chr(NO2)+chr(NO3)+chr(NO4)+chr(NO5)+chr(NO6)+chr(NO7)+chr(NO8); p := PChar(s); Comm1.WriteCommData(p,Length(s)); end; Im Programm sind zwei Nachrichtenkonstanten definiert: WM_Set = WM_USER + 100 und WM_Read = WM_USER + 200. Durch das Senden dieser beiden Nachrichten mit den entsprechenden Parametern werden die beiden oben genannten Prozesse aufgerufen, wodurch das Lesen und Setzen von Gerätedaten per Nachricht realisiert wird. Die beiden Prozesse berechnen die zu sendenden Daten für jedes Bit gemäß dem AI-Gerätekommunikationsprotokoll, kombinieren sie zu einem String und senden diesen an das Gerät. Die Bedeutung der einzelnen Parameter wird im Programm erläutert. 1.2.1 AI-Geräteerkennung In praktischen Anwendungen sind Computer häufig mit mehreren Geräten verbunden, was das Abrufen und Identifizieren von Geräten an verschiedenen Adressen erfordert. Das Abrufen von Geräten erfolgt über die Adressidentifizierung. Die Lesefunktion des AI-Kommunikationsprotokolls liest die Adressparameter der Geräte an den verschiedenen Adressen. Wird ein Wert zurückgegeben und stimmen die gelesenen Daten mit dem Wert der während der Übertragung festgelegten Adressvariablen überein, wird das Gerät an dieser Adresse identifiziert und der Gerätewarteschlange hinzugefügt. Die Geräteidentifizierung bezieht sich auf die Identifizierung vorhandener Geräte; jedes Gerät benötigt eine eindeutige und unabhängige Adresse. Der Schlüssel zur Geräteidentifizierung liegt in der Erkennung der Segmentanzahl (einzeln oder mehrere Segmente). Bei Geräten mit unterschiedlicher Segmentanzahl variiert die Bedeutung bestimmter Parameteradressen. In der Software wird dies durch das Auslesen von Daten von einer festen Parameteradresse realisiert. Beispielsweise gibt ein Gerät mit mehreren Segmenten beim Auslesen von Daten aus einem bestimmten Segment (dessen Parameteradresse üblicherweise größer als 25 ist) den entsprechenden Parameteradressenwert zurück. Bei einem Gerät mit nur einem Segment hingegen führt das Senden von Daten an diese Adresse zu keiner Antwort. 1.2.2 Die KI-Software zum Auslesen von Geräteparametern kann alle lesbaren Daten des Geräts auslesen, einschließlich Messdaten, Steuerdaten und Geräteeinstellungen. Sie erkennt automatisch die Anzahl der Dezimalstellen und zeigt die gelesenen Daten entsprechend dem Anzeigeformat des Geräts an. Informationen zum Ausleseprozess finden Sie im Abschnitt „Daten lesen“ (siehe oben) und im Gerätekommunikationsprotokoll von YuDian. Beachten Sie, dass während des Ausleseprozesses eine spezielle Datenverarbeitung erforderlich ist, insbesondere die Behandlung von Dezimalstellen und negativen Zahlen. A. Umgang mit Dezimalstellen: Beim Auslesen der Gerätedaten müssen diese nach Erhalt gemäß dem KI-Kommunikationsprotokoll analysiert und berechnet werden. Dabei kann es vorkommen, dass berechnete Daten das Zehnfache des tatsächlichen Wertes betragen, während andere mit diesem übereinstimmen. Erfahrungsgemäß müssen Daten, die laut Gerätehandbuch Dezimalstellen zulassen, mit 10 multipliziert werden. Das heißt, das Ergebnis der Berechnung muss durch 10 geteilt werden, um den korrekten Wert zu erhalten. B. Umgang mit negativen Zahlen: Negative Zahlen treten häufig beim Auslesen der Gerätedaten auf. In diesem Fall sind die gemäß dem KI-Kommunikationsprotokoll berechneten Daten oft sehr groß und stimmen nicht mit dem tatsächlichen Wert überein. Solche Daten kleiner als null müssen als negative Zahlen behandelt werden. Doch wie erkennt man eine negative Zahl? Tatsächlich ist das höchstwertige Bit einer negativen Zahl oft größer als 127. Daher kann man eine negative Zahl anhand ihres höchstwertigen Bits identifizieren. Nach der Erkennung einer negativen Zahl erfolgt eine Umwandlung zur Anzeige der korrekten Daten. Binär betrachtet ist das höchstwertige Bit der vom Gerät zurückgegebenen Daten ein Flag-Bit: Der Wert 0 repräsentiert eine positive Zahl, der Wert 1 eine negative. Um den Wert einer negativen Zahl zu erhalten, muss demnach lediglich 65536 vom berechneten Wert subtrahiert werden. Im Folgenden werden einige Verarbeitungsschritte während des Empfangsprozesses beschrieben: Empfangsprozess: [COLOR=#8A2BE2]var p : PChar; begin p := Buffer;[/COLOR] Der Puffer enthält die während des SPCOMM-Empfangsprozesses empfangenen Daten. Verarbeitungsprozess für negative Zahlen: [COLOR=#8A2BE2]Wenn (p7>127 dann ReData:=((p6+p7*256)-65536)/10 sonst ReData := (p6+p7*256)/10;[/COLOR] p6 und p7 sind das 7. und 8. Bit der empfangenen Daten, umgewandelt in Ganzzahlen. Diese können durch p6:=ord(p[6]) ermittelt werden (p ist p im Empfangsprozess). Die so erhaltenen Daten ReData können anhand des Dezimalpunkts analysiert werden, um mit den Messwerten des Instruments konsistente Daten zu erhalten. 1.2.3 Statusabfrage Der Status des Instruments umfasst den Betriebs- und den Alarmstatus. Diese können durch gleichzeitiges Auslesen des 21. Parameters des Instruments ermittelt werden. Beim Auslesen des Parameters 21 gibt das Instrument den Betriebsstatuswert des Systeminstruments zurück. Da jedes Bit einen anderen Betriebsstatus repräsentiert, ist eine Analyse erforderlich. Das dritte Bit der zurückgegebenen Daten stellt das Stoppbit dar, das zweite Bit das Pausenbit und die verbleibenden 0- und 1-Bits den Betriebszustand. Solange die Bits 2 und 3 nicht 1 sind, befindet sich das Gerät im Betriebszustand. Daher müssen zur Ermittlung des Betriebszustands des Geräts nur diese Bits identifiziert werden. Beim Auslesen von Parameter 21 gibt das Gerät auch den Alarmstatus zurück. Durch die Identifizierung der Alarmstatusbits kann der Alarmstatus des Geräts ermittelt werden. Die Bits 0, 1, 2 und 3 des MV-Werts repräsentieren jeweils den Alarmstatus für obere Grenze, untere Grenze, positive Abweichung und negative Abweichung des Geräts und sind gültig, wenn sie 1 sind. 1.2.4 Parametereinstellung: Informationen zur Parametereinstellung finden Sie im Kommunikationsprotokoll des Geräts und im SetData-Prozess. Beachten Sie die Datenberechnung, die Behandlung von Dezimalstellen und negativen Zahlen. Die Verarbeitungsmethode ist im Wesentlichen dieselbe wie die Datenauslesung und wird hier nicht detailliert beschrieben. 2. Fazit: Die oben beschriebene Methode ermöglicht den Datenaustausch zwischen Geräten und Computern und zeichnet sich durch Einfachheit, Modularität und Zuverlässigkeit aus. und umfassende Funktionalität. Der Quellcode dieses Programms findet breite Anwendung in der industriellen Anwendungssoftware unseres Unternehmens für KI-Instrumente.
Read next

ABCO integrierte SPS für die Montage und Prüfung von Automobilsensoren

Im heutigen Wettbewerbsumfeld ist die Nachfrage nach weiterer Automatisierung im gesamten Fertigungsprozess enorm gestie...

Articles 2026-02-20