Wie die Kommunikation mit Waage über rs232
Ich versuche, meine C# - Anwendung die Kommunikation mit digital-Waage über rs232 durch Verwendung SerialPort-Klasse .net. Leider kann ich nicht bekommen keine Rückmeldung von der Waage.
Es ist ein TSCALE TSQSP Skala und sich es mit CAS-Kommunikationsprotokoll. Von meinem Verständnis in der CAS-Protokoll, die ich brauche zu senden "ENQ" warten "ACK" und dann senden "DC1", um Informationen zu bekommen, aber nach dem senden von "ENQ" ich bin nicht immer eine Antwort. Hier ist mein code. Hat jemand Erfahrung mit Skala mit gleichen Kommunikations-Protokoll?
Vielen Dank für jede Hilfe
public partial class Form1 : Form
{
private SerialPort port = new SerialPort("COM6", 4800, Parity.None, 8, StopBits.One);
public Form1()
{
InitializeComponent();
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
port.Open();
}
private void button1_Click(object sender, EventArgs e)
{
port.Write("ENQ");
}
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
this.textBox1.Text = port.ReadExisting();
}
}
Vielen Dank an alle für die Hilfe, alle Antworten waren hilfreich, ich war schließlich in der Lage, damit es funktioniert. Zuerst fand ich heraus, ich habe nicht die Skala richtig eingestellt, und auch da haben Sie Recht, ich sollte das senden 05H. Alles funktioniert jetzt, thx.
- Connectet via putty auf den COM-port und getestet, um sicherzustellen, dass seine Handhabung des Eingabe/Ausgabe, wie Sie es erwarten? Wenn nicht, würde ich das tun - wenigstens auf diese Weise können Sie sicherstellen, dass Sie wissen, wie das Gerät funktioniert, dann schreiben Sie code, um die.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich programmiert habe eine Menge von gewichten, und in der Regel, wenn Sie nicht einmal eine Antwort bekommen auf die ENQ es ist, weil Sie den SerialPort uncorrectly. 100% sicher, dass die Baud-rate, data bits, stop bits und parity richtig eingestellt ist.
Was ich tun würde, ist zum herunterladen LookRS232. Sein ein Programm, um die Kommunikation über den COM-port. Nachdem es installiert ist, öffnen Sie die COM-port-mit unseren Einstellungen und dann schreiben ENQ direkt auf den COM-port. Es ist einfacher zu testen, eine Menge von Einstellungen, um es an die Arbeit, hier als erstes. Dann, wenn Sie es erhalten, um zu arbeiten, verwenden Sie die exakt gleichen Einstellungen in Ihrem Programm haben.
BEARBEITEN - HINZUGEFÜGT EINIGE PUNKTE VON HANS PASSANT HIER, DAS IST wichtig - sehr WICHTIG IST, DASS ENQ ASCII-WERT 5, UND NICHT EIN STRING
ENQ, ACK und DC1 werden die Kontroll-codes, keine Zeichenfolgen. Verwenden Sie eine ASCII-Tabelle, um den code kenne. Update:
Sollten Sie auch schalten Sie die hardware-handshake-Signale, viele Geräte verwenden es, um sicherzustellen, dass die Maschine eingeschaltet ist und bereit, Daten zu empfangen. Damit Sie wissen, was Sie erhalten, ist real-Daten und keine Geräusche. Update:
Testen der Verbindung mit einem anderen Programm wie HyperTerminal oder Putty ist immer eine gute Idee, wenn Sie immer noch Schwierigkeiten haben. Generieren Sie die control-codes mit der Strg-Taste auf Ihrer Tastatur. ENQ ist Strg+E, DC1 ist Strg+Q.
Wenn Sie brauchen, um zu senden nach unten ENQ, müssen Sie zum senden einer binären 5, nicht einen string 5.
Wenn Sie schreiben
Dann sind Sie zu senden Sie eine binäre 53 ( ASCII-Tabelle)
Finden Sie auf der ASCII-Tabelle wie Dec 5 ist die Anfrage-und Dec-53 ist der char '5'?
Versuchen Sie dies:
Das andere Problem ist, hast du das richtige Kabel? Eine breakout-box funktioniert Super, um zu überprüfen Sie die Verkabelung.