Hi,
ich hoffe jemand von euch kann mir bei meinem problem helfen. Ich soll mit c# einen com-port auslesen, über den ich als "Slave" Daten in Form von MODBUS/RTU-Telegramme erhalte. Eine Verbindung konnte ich mit folgendem Programm bereits aufbauen, jedoch zeigt er in meinem fertigen Programm nur kryptische Zeichen bei Datenempfang und nicht die Standart-Hexazeichen des Modbus-Protokolls an. Via eines Portmonitors habe ich auch schon geprüft, ob die Daten richtg per "ModbusView", das als Master fungiert, in den "Slave"-Puffer geladen werden.
Hier mal der Quelltext:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace COM_Port_schicken
{
public partial class Form1 : Form
{
private delegate void AddTextDelegate(string newText);
public Form1()
{
InitializeComponent();
}
System.IO.Ports.SerialDataReceivedEventArgs e)
private void button1_Click(object sender, EventArgs e)
{
serialPort1.Open();
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
AddText(Convert.ToString(serialPort1.ReadExisting()));
}
private void AddText(string newText)
{
if (listBox1.InvokeRequired)
{
AddTextDelegate del = new AddTextDelegate(AddText);
listBox1.BeginInvoke(del, new object[] { newText });
}
else
{
listBox1.Items.Add(newText);
}
}
}
}
Viele Dank im Vorraus schonmal für eure antworten !
Original von maggo
Via eines Portmonitors habe ich auch schon geprüft, ob die Daten richtg per "ModbusView", das als Master fungiert, in den "Slave"-Puffer geladen werden.
Gruß Hape
Also es muss generell müsste es an meinem Programm liegen, nur ich find den Fehler nicht, warum er den das "eingentlich richtige" aus dem Buffer falsch ausgibt
Ich habe intern eine Virtuelle rs232-Verbindung aufgebaut. Programmien muss ich den Slave. Die Masterkommunikation habe ich über "ModbusView" laufen. Da eigentliche Problem ist das auslesen des Buffers
Einstellungen:
8 Datenbits
ein Stopbit
even parity
baudrate 115200
Hi maggo,
ok - jetzt nochmals die Frage, kriegst du mit einem anderen Modbus-Slave-Client die Übetragung hin - oder hast Du keinen anderen Slave-Client?
Falls Du einen alternativen Client ausprobieren könntest, könntest Du ausschließen dass es Probleme mit dem virtuellen RS232 gibt. Falls nicht einmal der alternative Client mit dem Master, also ModbusView, erfolgreich kommunizieren kann, hast Du den Fehler zumindest stärker lokalisiert.
Gruß Hape