In drei Monaten habe ich meine 20 Jahre Erfahrung in der industriellen Debugging in ein WeChat-Applet verarbeitet.
von Modbus-Debugging bis zur PID-Einstellung, von der seriellen Kommunikation bis zur Sensorkalibrierung integriert, integriert dieses Werkzeug 20 + professionelle Rechner, die am häufigsten von Ingenieuren verwendet werden
Vorwort: Ein Ingenieur "Besessenheit"
Ich bin ein industrieller Automatisierungsingenieur, seit 20 Jahren tätig, war ein Ausrüstungshersteller, Integrator und war auch Partei A.
In den letzten Jahren habe ich zu viele Ingenieure in der Szene gesehen, die "Miss":
- mit mehr als einem Dutzend Pfund schweren Computer auf der Szene laufen, nur um ein Modbus-Gerät zu debuggen
- vergessen USB-to - serielle Kabel, das gesamte Projekt für einen halben Tag Stillstand
- Software auf dem Computer zu berechnen, Crack-Version noch Angst vor einem Virus
- PID-Parameter nicht vollständig, rufen Sie den Hersteller an, warten Sie einen halben Tag, um zu antworten.
- Sensor Kalibrierung von Hand, Rechner drücken Sie falsch einmal, alle wieder
schmerzlichste ZeitEine Reparatur in der Nacht. Die PLC-Kommunikationsfehler des Kunden, als ich ankam, war es bereits um 22: 00 Uhr. Das Ergebnis fand, dass ich meinen Computer vergessen hatte, konnte nur einen Kollegen anrufen, um es zu bringen, bis 3 Uhr morgens zu tun.
In diesem Moment dachte ich:Warum kann man nicht einfach nur mit dem Handy mitgehen?
Also habe ich drei Monate damit verbracht, diese Freizeit zu entwickeln.Modbus Debugging-Assistenten entwickelt.Kleine Mikro-Verfahren.
Es ist nicht nur ein Debugging-Tool, sondern die Kristallisation meiner 20 - jährigen Erfahrung.
1. Kernfunktionen: 20 + professionelle Tools, in das Telefon installiert
1.1 Modbus Debugging Family Bucket
Applet Die Kernfunktion istVollständige Modbus-Protokollstack - Unterstützung。
(1) Modbus Poll - Host-Polling - Tool
Dies ist eine der häufigsten verwendeten Funktionen, nicht eine.
Unterstützte Funktionen:
| Funktionscode | Name | Verwendungszweck |
|---|---|---|
| FC01 | Read Coils | Spule-Zustand lesen (Schaltvolumen-Ausgang) |
| FC02 | Read Discrete Inputs | Diskretene Eingang lesen (Schaltvolumen-Eingang) |
| FC03 | Read Holding Registers | Lese-Halt - Register (am häufigsten verwendet) |
| FC04 | Read Input Registers | Lese-Eingangs - Register (nur lesen) |
| FC05 | Write Single Coil | Schreiben in einzelne Spule |
| FC06 | Write Single Register | Schreiben in einzelne Register |
| FC15 | Write Multiple Coils | Schreiben in mehreren Spulen |
| FC16 | Write Multiple Registers | Schreiben in mehreren Registeren |
| FC17 | Report Slave ID | Ankündigung der Client-ID |
| FC22 | Mask Write Register | Maske Schreibregister (einzel Bit) |
| FC23 | Read/Write Multiple | Lesen / Schreiben mehrerer Registers gleichzeitig |
| FC43/14 | Read Device ID | Lesen der Gerätekennzeichnung |
Verbindung:
- Modbus TCP: Unterstützung beliebiger IP und Ports, automatisches Speichern des Verbindungsgeschichts
- Bluetooth-Verbindung: Unterstützung für normales Bluetooth-to - 485 - Modul und PACO-Bluetooth - Adapter
- Port-Weiterleitung: Unterstützt Router-Port - Zuordnung (z.B. externe 1502 → interne 502)
Datenanzeigeformat:
Rohdaten des gleichen Registers, unterstützt7 AnzeigeformateEin-Klick - Umschalten:
Signed(有符号) → -32768 ~ 32767 Unsigned(无符号) → 0 ~ 65535 Hex(十六进制) → 0x0000 ~ 0xFFFF Long(长整型) → 32 位整数 Float(浮点型) → IEEE 754 单精度 Float Swapped → 字节反转浮点 Binary(二进制) → 0000 0000 0000 0001
💡 Praxisfall: Ein Temperatursensor gibt 0x4248 0x0000 zurück, wenn man die 16 - stelligen Ganzzahlen 17480 und 0 betrachtet, ist das völlig falsch. Wechseln Sie in das Float-Format, um 50,0 anzuzeigen, was der tatsächliche Temperaturwert ist.
Erweiterte Werkzeuge:
- Kommunikationsüberwachungs-Panel: Echtzeit-Nachrichten für alle Tx / Rx-Raw - Nachrichten, Unterstützung für Pause / Fortsetzung, Teilen mit einem Klick
- TC-Testzentrum: Manuelle Eingabe von Hex-String - Sendung, Anzeige der ursprünglichen Antwort, Debuggen benutzerdefinierten Protokoll
- Echtzeit-Diagramm: Geben Sie die Adresse des zu überwachten Registers ein, Zeigt die Werteänderung in Echtzeit an
- Nachrichtenabsicht anfordern: Echtzeit-Anzeige der RTU / ASCII-Frame - Struktur, die in der Einstellungsoberfläche gesendet werden soll (einschließlich CRC / LRC-Prüfungen)
(2) Modbus Slave - Slave-Station - Simulator
Diese Funktion ist von vielen übersehen, aber sehr praktisch.
Anwendungsszenario:
- Test von Host-Software (z. B. Konfiguration King, WinCC)
- Verifizierung der Logik des SPS-Programms
- Schulung neuer Mitarbeiter (ohne echte Geräte erforderlich)
- Simulation von Reaktionen von Slaves in der Entwicklung
Unterstützt Funktionen:
- Analog-Spule, diskreten Eingang, Halten-Register, Eingang-Register
- Benutzerdefinierter Anfangswert
- Unterstützt Batch-Einstellungs - Adressbereich
- Echtzeit-Anzeige der Master-Station - Anforderung-Nachricht
(3) Modbus RTU / TCP / ASCII - Protokoll-Details
Das Applet enthält detaillierte Beschreibungen und praktische Beispiele für die drei Übertragungsmodi.
RTU vs. ASCII Vergleich:
| Eigenschaften | RTU | ASCII |
|---|---|---|
| Codierung | Binär | ASCII-Text |
| Prüfmethode | CRC16 | LRC |
| Frame-Länge | Kurzer (effizient) | ca. 2x RTU |
| Frame-Identifikation | 3,5 Zeichen Schweigenintervall | ":" Anfang + CR LF-Ende |
| Anwendbares Szenario | Die meisten industriellen Geräte | ältere Geräte / Modems |
CRC16 - Algorithmus-Implementierung (Kerncode):
// MODBUS CRC-16 (低字节在前)
calcCRC16(bytes) {
let crc = 0xFFFF;
for (let i = 0; i < bytes.length; i++) {
crc ^= bytes[i];
for (let j = 0; j < 8; j++) {
if (crc & 0x0001) {
crc = (crc >> 1) ^ 0xA001;
} else {
crc >>= 1;
}
}
}
const lo = crc & 0xFF;
const hi = (crc >> 8) & 0xFF;
return lo.toString(16).toUpperCase().padStart(2, '0') + ' ' +
hi.toString(16).toUpperCase().padStart(2, '0');
}
LRC-Algorithmus Implementierung:
// MODBUS ASCII LRC
calcLRC(bytes) {
let sum = 0;
for (let i = 0; i < bytes.length; i++) {
sum += bytes[i];
}
const lrc = ((~sum) + 1) & 0xFF;
return lrc.toString(16).toUpperCase().padStart(2, '0');
}
1.2 Serial Debugger-Assistent
Dies ist die zweite Funktion, die mit hoher Frequenz verwendet wird.
Kernmerkmale:
- Drei Verbindungsarten: Bluetooth / TCP / UDP
- Vollparameterkonfiguration: Baudrate (9600 / 19200 / 38400 / 57600 / 115200), Datenbit, Stopbit, Checkbit
- Unabhängige Versandzone:
- Empfangsbereich: ASCII / HEX-Schalter, Zeitstempel, automatisches Zeilenwechsel, Zeilennummern anzuzeigen, automatisches Rollen
- Sendenbereich: ASCII / HEX-Schalter, automatische Auflösung des Escape-Symbols ( r n t), Schleifen-Senden
- Vier Prüfmethoden: CRC - 16, kumulative Summe, LRC, Exclusive OR-Check
- Echtzeit-Statistiken: RX / TX-Bytes, Reset mit einem Klick
Praxisfall 1: Bluetooth-Debuggeräte PACO
PACO ist ein häufig verwendete Bluetooth 485 - Adapter, der durch das Applet tiefgreifend optimiert wurde.
// 构建 PACO 命令 (80 字节固定长度)
buildPacoCommand(cmdType, param = '') {
let cmd = '';
switch(cmdType) {
case 'read485':
cmd = 'PACO-Setting-Code-PACO-FXY-BT-485-R-485Setting.';
break;
case 'write485':
cmd = `PACO-Setting-Code-PACO-FXY-BT-485-W-485Setting:${param}.`;
break;
case 'readName':
cmd = 'PACO-Setting-Code- -R-PartNumber.';
break;
case 'writeName':
cmd = `PACO-Setting-Code-PACO-FXY-BT-485-W-DeviceName:${param}.`;
break;
}
// 补齐到 76 字符,末尾加 PACO
const paddedCmd = cmd.padEnd(76, ' ') + 'PACO';
return paddedCmd;
}
kann PACO-Geräte lesen und schreiben:
- 485 Parameter (Bordrate / Datenbit / Stoppbit / Checkbit)
- Gerätenname (maximal 7 Zeichen)
Praxisfall 2: TCP-Port - Beschränkung Problem
Das WeChat-Applet hat strenge Beschränkungen für den Port, was eine große Grube ist.
// 微信小程序端口限制检查
const forbiddenPorts = [1099, 1433, 1521, 1719, 1720, 1723,
2049, 2375, 3128, 3306, 3389, 3659, 4045, 5060, 5061,
5432, 5984, 6379, 6000, 6566, 7001, 7002, 8443, 8888,
9200, 9300, 10051, 10080, 11211, 27017, 27018, 27019];
if (portNum < 1024) {
// 禁止连接 1024 以下端口(如 502)
uni.showModal({
title: '端口受限',
content: '微信小程序禁止连接 1024 以下端口,请使用 APP 版本或更换端口',
showCancel: false
});
return;
}
if (portNum >= 8000 && portNum <= 8100) {
// 禁止连接 8000-8100 端口
uni.showModal({
title: '端口受限',
content: '微信小程序禁止连接 8000-8100 端口,请更换端口',
showCancel: false
});
return;
}
Lösungen:
Führen Sie Port-Forwarding auf dem Router durch, z. B. External 1502 → Internal 502.
1.3 Pro-Rechner - Serie
Dies ist der Bereich, an dem ich am meisten nachdenke und am besten den "Erfahrungswert" verkörpern kann.
(1) PID-Selbst - Einstellungsrechner
Die Einstellung von PID-Parametern ist der Kern des automatischen Steuerungssystems und auch der Schmerzpunkt vieler Ingenieure.
Unterstützte Tuning-Methoden:
| Methode | Anwendbares Szenario | Features |
|---|---|---|
| Ziegler-Nichols - Gesetz 1. | Schrittreaktions-Experiment | Klassische Methode, breit anwendbar |
| Ziegler-Nichols - Methode II | Kritische Oszillations-Methode | Notwendigkeit, kritische Verstärkung zu finden |
| Cohen-Coon | System mit großer Hysterese | Gute Effizienz für Hysteresysteme |
| IMC (Innenmodellsteuerung) | Hohe Leistungsanforderungen | Parameterverstellbar, flexibel |
| Pole-Konfiguration | Spezifische dynamische Reaktionen | Systemmodell erforderlich |
Eingabeparameter:
- Verzögerungszeit L (sec)
- Zeitkonstante T (sec)
- Prozessgewinn K
- λ Parameter (IMC-spezifisch)
Ausgabe:
- Proportionalgewinn Kp
- Integrationszeit Ti
- Differentialzeit Td
- Empfohlene Konfiguration (z. B. Controller-Typ, Auswahl von Steuervariablen)
Kernalgorithmus (Ziegler-Nichols - Erstes Verfahren):
// Ziegler-Nichols 第一法(阶跃响应法)
zieglerNichols1st(L, T, K) {
// Kp = 1.2 * T / (K * L)
// Ti = 2 * L
// Td = 0.5 * L
const kp = 1.2 * T / (K * L);
const ti = 2 * L;
const td = 0.5 * L;
return { kp, ti, td };
}
Praxisbeispiel:
Ein Temperaturregelungssystem, durch Stufen-Antwort - Experiment erhalten:
- Verzögerungszeit L = 2,5 s
- Zeitkonstante T = 8,0 s
- Prozessgewinn K = 1,0
Ersetzen in die Formel berechnet:
- Kp = 1.2 × 8.0 / (1.0 × 2.5) = 3.84
- Ti = 2 × 2.5 = 5.0s
- Td = 0.5 × 2.5 = 1.25s
Die Eingabe dieser drei Parameter in den PID-Controller, die Systemantwort ist schnell und übersteuert klein.
(2) Sensorkalibrierung Rechner
Sensorkalibrierung ist eine routinemäßige Aufgabe für die Debuggerung vor Ort, aber manuelle Berechnungen sind leicht zu Fehlern.
Unterstützt vier Modi:
1 Lineare Kalibrierung (häufigste Verwendung)
Geeignet für lineare Sensoren wie 4 - 20mA, 0 - 10V.
标定公式:Y = kX + b 其中: k = (Y2 - Y1) / (X2 - X1) // 斜率 b = Y1 - k * X1 // 截距
Schnelle Umrechnungstabelle:
| Prozentsatz | Signalwert (mA) | Ingenieurwert (°C) |
|---|---|---|
| 0% | 4.00 | 0.00 |
| 25% | 8.00 | 25.00 |
| 50% | 12.00 | 50.00 |
| 75% | 16.00 | 75.00 |
| 100% | 20.00 | 100.00 |
2 Mehrpunkt-Anpassung
Geeignet für nichtlineare Sensoren (z. B. Thermocouple, Thermowiderstände).
Unterstützung:
- Quadrat-Anpassung
- Kubische Kurven-Anpassung
- Minimum Quadrat
3 Temperatur-spezifische Modus
Eingebaute allgemeine Temperatursensor-Indextabelle:
- PT100 Thermoresistor
- K-Typ - Thermocouple
- J-Typ - Thermocouple
- E-Thermopare
- T-Thermopare
4 Fehleranalyse
Berechnung:
- Absoluter Fehler
- Relativer Fehler
- Vollskalafehler
- Linearität
Praxisbeispiel:
Ein Drucktransmitter, Messbereich 0 - 10bar, Ausgang 4 - 20mA.
Kalibrierungspunkt eingerichtet:
- Tiefpunkt: 4mA → 0bar
- Höchstpunkt: 20mA → 10bar
Berechnung:
- k = (10 - 0) / (20 - 4) = 0,625
- b = 0 - 0,625 × 4 = -2,5
Kalibrierungsformel:Y = 0.625X - 2.5
Verifizierung:
- Eingang 12mA → Y = 0,625 × 12 - 2,5 = 5,0bar ✓
- Eingang 20mA → Y = 0,625 × 20 - 2,5 = 10,0bar ✓
(3) Prüfberechnungswerkzeug
Dieses Werkzeug ist 10 + integriert Üblicherweise verwendet in industriellen Kommunikationsprotokollen.
Unterstützte Funktionen:
| Prüftyp | Beschreibung | Anwendungsszenario |
|---|---|---|
| MODBUS RTU CRC - 16 | 16 - Bit-Zyklische Redundanzprüfung | Modbus RTU-Protokoll |
| MODBUS ASCII LRC | Vertical Redundanzprüfung | Modbus ASCII-Protokoll |
| Prüfsumme (16 Bit) | Akkumulations - und Verringerung 16 Bit | Einfaches Protokoll |
| Exclusive OR (8 Bit) | Alle Byte Exclusive OR | Benutzerdefiniertes Protokoll |
| Siemens S7 - Prüfsumme | Speziell für das S7 - Kommunikationsprotokoll | Siemens PLC |
| Mitsubishi FX Summationsprüfungen | Mitsubishi-Kommunikationsprotokoll | Mitsubishi PLC |
| BCC-Prüfungen | Block-Prüfzeichen | Serielle Kommunikation |
| IP / TCP-Prüfsummen | Netzwerkprotokollüberprüfung | TCP / IP-Stack |
| Omron FINS FCS | FINS Protokollüberprüfung | Omron PLC |
| CAN CRC | CAN-Bus - Überprüfung | Automobilelektronik |
Gebrauchsmöglichkeiten:
- Prüftyp auswählen
- Eingabe von HEX-Rohdaten
- Automatische Berechnung des Prüfscodes
- (Optional) Senden nach zusätzlichem Prüfscodes
Praxisbeispiel: Modbus-RTU - Befehl
Rohdaten:01 03 00 00 00 01
Berechnung von CRC - 16:
- Eingabe von 6 Bytes
- Berechnet CRC = 0x840A
- Low Byte vor:
84 0A
Vollständige Nachricht:01 03 00 00 00 01 84 0A
1.4 Weitere professionelle Tools
Applet Es gibt 15 + professionelle Tools, die hier kurz aufgeführt sind:
(1) PLC Debugger
- Q06 Switch Debugger Assistant: Debuggerwerkzeuge speziell für die Q06 - Serie
- X160 Debugging-Tools: Debugging für X160 - Geräte
- ZLAN-Gerätemanager: Debugging für das Internet der Dinge ZLAN-Geräteverwaltung
(2) Debugging für den Aktor
- Debugging-Assistenten für Dimmer: Debugging für 0 - 10V / PWM Dimmer
- 8 - Kanäle-Relass - Steuerung: Mehrfach-Relais - Massensteuerung
- Servo-Impuls - Berechnung: Servomotor-Impuls - Äquivalent - Berechnung
(3) Debugger für Frequenzumrichter
- Debugger für Frequenzumrichter: Unterstützung für die Einstellung von Parametern für Mainstream-Frequenzumrichter
(4) Zusätzliche Rechner
- Debugger für Drucktransmitter: Differenzdruck / Druckübermittler Berechnung
- Remote-Assistenz - Tool: Echtzeit-Teilen Debugger Bildschirm
Zweitens, Technische Architektur: Applet kann auch professionelle Werkzeuge sein
2.1 Technische Auswahl
Front-End - Framework:uni-app
Wahlgründe:
- Ein Satz von Code, der in WeChat Applet, H5, APP kompiliert wurde
- Umfangreiche Komponentenbibliothek
- Gute Bluetooth / TCP / UDP API-Unterstützung
UI-Framework:colorUI + benutzerdefinierte Komponenten
Datenspeicher:
- Lokaler Speicher: uni.setStorageSync
- Verbindungsverlauf
- Projekt-Konfiguration Speichern
2.2 Kerntechnische Schwierigkeiten
(1) Bluetooth BLE-Verbindung
Die Bluetooth-API des WeChat-Applets hat einige Einschränkungen und erfordert eine besondere Behandlung.
Schwierigkeit 1: Service-Eigenschaftswert Suche
Die Service-UUID und Characteristic UUID von verschiedenen Bluetooth-Modulen sind unterschiedlich und erfordern eine intelligente Suche.
// 遍历所有服务查找可写特征
findWritableCharacteristic() {
if (this.currentServiceIndex >= this.allServices.length) {
// 所有服务都遍历完了
if (this.foundWriteChar) {
this.finishBluetoothConnection();
} else {
uni.showToast({ title: '未找到可写特征', icon: 'none' });
}
return;
}
const service = this.allServices[this.currentServiceIndex];
uni.getBLEDeviceCharacteristics({
deviceId: this.connectedDeviceId,
serviceId: service.uuid,
success: (res) => {
const characteristics = res.characteristics;
// 查找策略:
// 1. 优先找同时支持 write 和 notify 的特征(双向通信)
// 2. 其次找只支持 write 的特征
// 3. 最后找支持 writeNoResponse 的特征
let writeChar = characteristics.find(c =>
c.properties.write === true &&
(c.properties.notify === true || c.properties.indicate === true)
);
if (!writeChar) {
writeChar = characteristics.find(c => c.properties.write === true);
}
if (!writeChar) {
writeChar = characteristics.find(c => c.properties.writeNoResponse === true);
}
if (writeChar) {
this.writeCharacteristicId = writeChar.uuid;
this.foundWriteChar = true;
this.finishBluetoothConnection();
return;
}
// 当前服务未找到,继续下一个
this.currentServiceIndex++;
this.findWritableCharacteristic();
}
});
}
Schwierigkeit 2: PACO-Geräte 80 Byte Einzelpaket Senden
PACO-Geräte müssen 80 Byte auf einmal senden, aber die Standard-MTU von BLE beträgt nur 20 Byte.
Lösung:
// 设置 BLE MTU(最大传输单元)
setBLEMTU(deviceId, callback) {
if (wx.setBLEMTU) {
wx.setBLEMTU({
deviceId: deviceId,
mtu: 512, // 设置为 512 字节
success: (res) => {
console.log('MTU 设置成功');
callback && callback();
},
fail: (err) => {
console.error('MTU 设置失败', err);
callback && callback();
}
});
} else {
callback && callback();
}
}
(2) TCP Socket Kommunikation
Die TCP Socket-API des WeChat-Applets ist asynchron und muss Probleme wie Verbindungsablauf, Datenpakete und Ankleiden behandeln.
Verarbeitung von Verbindungszeitenüberschreitungen:
const connTimeout = setTimeout(() => {
if (!self.isConnected) {
uni.hideLoading();
uni.showToast({ title: '连接超时', icon: 'none' });
try { tcp.close(); } catch(e) {}
self.tcpSocket = null;
}
}, 8000); // 8 秒超时
tcp.onConnect(function(res) {
clearTimeout(connTimeout);
self.isConnected = true;
// ...
});
Verarbeitung von Datenpaketen:
handleTcpResponse(hexData) {
const hex = hexData.replace(/s+/g, '');
// 将接收到的数据添加到缓冲区
for (let i = 0; i < hex.length; i += 2) {
this.receiveBuffer.push(parseInt(hex.substr(i, 2), 16));
}
// 使用 MBAP 头的 Length 字段判断帧完整性
while (this.receiveBuffer.length >= 7) {
const mbapLength = (this.receiveBuffer[4] << 8) | this.receiveBuffer[5];
const totalFrameLength = 6 + mbapLength;
if (this.receiveBuffer.length >= totalFrameLength) {
// 提取完整的一帧
const frame = this.receiveBuffer.splice(0, totalFrameLength);
this.parseModbusTcpResponse(frame);
} else {
// 数据不完整,等待更多数据
break;
}
}
}
(3) Verarbeitung von Big Data
Bei der Debugging des seriellen Anschlusses erzeugt es eine große Menge Daten, wenn es für eine lange Zeit läuft.
Optimierung der Strategie:
// 消息缓冲区管理
maxMessageCount: 800, // 最多保存 800 条
maxVisibleMessageChars: 240, // 每条最多显示 240 字符
trimMessageBuffer() {
const maxTotalChars = this.maxMessageCount * this.maxVisibleMessageChars * 2;
while (this.messages.length > this.maxMessageCount ||
this.totalMessageChars > maxTotalChars) {
const removed = this.messages.shift();
if (removed && removed.data) {
this.totalMessageChars -= removed.data.length;
}
}
}
// 超长消息自动截断,支持展开/收起
isMessageTruncated(msg) {
return !!(msg && msg.data &&
msg.data.length > this.maxVisibleMessageChars);
}
getDisplayMessage(msg) {
if (!msg || !msg.data) return '';
if (msg.expanded || !this.isMessageTruncated(msg)) {
return msg.data;
}
return msg.data.slice(0, this.maxVisibleMessageChars) + '…';
}
3. Design-Philosophie: Ingenieure verstehen Ingenieure
3.1 Win7 - Stil-Schnittstelle
Viele Leute fragen sich, warum die Win7?
Weilvertraut ist。
Die meisten Industrieingenieure, die täglich mit einem Computer konfrontiert sind, sind die Win7 - Schnittstellen am vertrautesten. Wenn man diesen Stil sieht, hat man das Gefühl von "professionellen Werkzeugen".
Design-Details:
- Gradiente blaue Titelseite
- Stereo-Ränder (außen hell, innerlich tief)
- Grauer Hintergrund + weißer Inhaltsbereich
- Gleichbreite Schrift-Anzeige - Daten (Courier New)
3.2 Remote-Assistenz - Funktion
Diese Funktion ist mir beim Debuggen vor Ort gedacht.
Szenario:
Ausfall der Ausrüstung vor Ort, ich kann es nicht schaffen, und benötige Remote-Mitarbeiter Hilfe. Die traditionelle Methode kann jedoch nur telefonisch beschrieben werden und ist extrem ineffizient.
Lösungen:
// 生成协助会话码
startRemoteAssist() {
const sessionId = generateRandomSessionId();
this.remoteAssistSessionId = sessionId;
this.remoteAssistShowPanel = true;
// 实时转发通信数据
this.remoteAssistForward('tx', 'Tx', data);
this.remoteAssistForward('rx', 'Rx', data);
// 接收远程命令
this._executeRemoteCommand(cmd);
}
Nutzung des Prozesses:
- Klicken Sie auf "Fernhilfe"
- Generieren Sie einen 6 - stelligen Sitzungscode
- Teilen Sie es mit WeChat-Freunden
- Nach dem Öffnen der anderen Seite können Sie die Kommunikationsdaten in Echtzeit anzeigen
- Die andere Seite kann Befehle aus der Ferne senden
Wert:
- Kein Screenshot / Screenshot erforderlich
- Echtzeit-Bid-Wege - Kommunikation
- Unterstützung für die Zusammenarbeit mit mehreren Personen
3.3 Datenexport und Sharing
Nach dem Debugging vor Ort müssen die Daten häufig an Kollegen gesendet oder archiviert werden.
Exportformat:
【串口调试 - 通信记录】 导出时间:2026-04-05 11:00:00 共 50 条记录 发送:1200 字节,接收:800 字节 ======================================== [11:00:00.123] 发送:01 03 00 00 00 01 84 0A [11:00:00.456] 接收:01 03 02 00 0A B9 C8 [11:00:01.123] 发送:01 03 00 00 00 0A C5 CD ... ======================================== 来自:Modbus 调试助手 微信小程序
Implementierung:
buildExportLogContent(options = {}) {
let content = `${options.title || '【串口调试 - 通信记录】'}n`;
content += `导出时间:${new Date().toLocaleString()}n`;
content += `共 ${this.messages.length} 条记录n`;
content += `发送:${this.sentCount} 字节,接收:${this.receivedCount} 字节n`;
content += `${'='.repeat(40)}nn`;
this.messages.forEach((msg) => {
const direction = msg.type === 'sent' ? '发送' : '接收';
content += `[${msg.time}] ${direction}: ${msg.data}n`;
});
content += `n${'='.repeat(40)}n`;
content += `来自:Modbus 调试助手 微信小程序`;
return content;
}
IV. Nutzerfeedback: Real Sound
2 Monate online und bereits von 5000 + Ingenieuren verwendet.
Feedback 1:
"Sehr einfach! Für die Reise genügt es nur mit dem Handy. Gestern war ich auf dem Platz und die Kunden waren überrascht, wie ich nur ein Handy mitgenommen habe. "
- - Jiangsu, Automatisierungsingenieur, Wang Gong
Feedback 2:
" Der PID-Einstellungsrechner hat mir sehr geholfen. Früher müssen die Parameter für einen halben Tag ausprobiert werden, jetzt geben Sie L / T / K ein, um das Ergebnis direkt auszuliefern. "
- - Guangdong, Steuerungstechniker, Li
Feedback 3:
" Die Fernhilfe ist zu stark. Vor Ort auf ein Problem, teilen Sie direkt mit Kollegen, 5 Minuten zu erledigen, vorher mindestens eine halbe Stunde telefonische Kommunikation. "
- - Zhejiang, Technischer Support, Zhang Gong
Feedback 4:
"Sensor Kalibrierung Rechner ist sehr praktisch. Unsere Fabrik hat mehrere hundert Sensoren, die zuvor von Hand ausge Kalibriert wurden, jetzt geben Sie zwei Punkte ein, um automatisch die Formel auszugeben. "
- - Shandong, Instrumenteningenieur, Liu Gong
V. Zukunftsplanung
5.1 Kurzfristige Planung (1 - 3 Monate)
- Hinzufügen von OPC UA-Clients
- Unterstützung für Debugging des MQTT-Protokoll
- Unterstützung für das BACnet-Protokoll hinzugefügt
- Synchronisierung von Cloud-Projekten (VIP-Funktion)
5.2 Mittelfristige Planung (3 - 6 Monate)
- APP-Version (WeChat-Applet - Port-Beschränkungen durchbrechen)
- Scripting-Unterstützung (Lua / JavaScript)
- Hinzufügung von Chart-Analyse - Funktionen (Trenddiagramm, Spektrum-Analyse)
- Gerätedatenbank (gemeine Vorlagen für Geräteparameter)
5.3 Langfristige Vision
Die Schatzkasse eines Ingenieurs。
Solange es sich um ein Werkzeug handelt, das in diesem kleinen Programm integriert werden kann.
Lassen Sie den Ingenieur:
- Weniger Rücken Sachen, Leicht in die Schlacht
- Weniger Überstunden, Früher nach Hause
- Weniger Sorgen, mehr Effizienz
Sechs, am Ende schreiben
Die ursprüngliche Absicht dieses kleinen Programms zu tun, nicht Geld zu verdienen.
Ich möchte nur meine Schmerzen lösen und mehr Kollegen helfen.
Meine 20 - jährige Erfahrung hat mir gesagt:Der Wert des Tools liegt nicht in der Funktion, sondern in der Lösung von Problemen.
Jede Funktion ist ein echter Schmerzpunkt, den ich bei der Debugging vor Ort erlebt habe.
Jede Zeile des Codes spiegelt meine Liebe zu dieser Branche wider.
Wenn Sie auch ein Ingenieur sind, hoffe ich, dass Ihnen dieses Programm hilft.
Wenn Sie irgendwelche Vorschläge haben, Feedback willkommen.
Lassen Sie uns gemeinsam die industrielle Inbetriebnahme einfacher machen.
Anhang: Gebrauchsmethoden
Methode 1: WeChat-Code - Scannen

Methode 2: WeChat-Suche
Suche "Modbus-Debugger - Assistant"
Methode 3: Freunde teilen
Klicken Sie auf die Karte, die von Freunden geteilt wird, um direkt in
über den Autor
20 Jahre Erfahrung in der industriellen Automatisierung zu gelangen, als Gerätehersteller, Integrator und Partei A.
Der Schwerpunkt liegt jetzt auf dem industriellen Internet der Dinge, Edge Computing und intelligenter Steuerung.
Willkommen Austausch:
- 📧 Mailbox:support@modbus.cn
- 💬 MICHAEL: Hinzufügen eines Assistenten
Referenzen
[1]Modbus Application Protocol Spezifikation V1.1b3
[2]Ziegler-Nichols - PID-Anpassung
[3]Mini-Bluetooth - Entwicklungsdokument
[4]IEEE 754 Fließkomma-Standard
[5]CRC16 - Prinzip und Implementierung
Antwort veröffentlichen