gpt4 book ai didi

c# - 如何通过 rs232 与秤通信

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:54 24 4
gpt4 key购买 nike

我正在尝试使用 .net 中的 SerialPort 类使我的 C# 应用程序通过 rs232 与数字秤进行通信。不幸的是,我无法从秤上得到任何反馈。

这是一个 TSCALE TSQSP 秤,显然它使用 CAS 通信协议(protocol)。根据我对 CAS 协议(protocol)的理解,我需要发送“ENQ”等待“ACK”,然后发送“DC1”以获取信息,但发送“ENQ”后我没有收到任何回复。这是我的代码。有人有使用相同通信协议(protocol)的秤的经验吗?

非常感谢您的帮助

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();
}
}

感谢大家的帮助,所有的回答都很有帮助,我终于成功了。首先,我发现我没有正确设置秤,而且你是对的,我应该发送 05H。现在一切正常,谢谢。

最佳答案

我已经编写了很多权重,通常如果您甚至没有在 ENQ 上得到响应,那是因为您没有正确设置 SerialPort。 100% 确保波特率、数据位、停止位和奇偶校验设置正确。

我要做的是下载 LookRS232 .它是一个通过 COM 端口进行通信的程序。安装完成后,用我们的设置打开COM口,然后将ENQ直接写入COM口即可。测试大量设置以使其首先在此处工作更容易。然后,当您让它工作时,在您的程序中使用完全相同的设置。

编辑——从 HANS PASSANT 那里添加了一些重要的要点——最重要的是 ENQ 是 ASCII 值 5,而不是字符串

port.Write("ENQ");

ENQ、ACK和DC1是控制码,不是字符串。使用 ASCII 表来了解代码。修复:

port.Write(5);

您还应该打开硬件握手信号,许多设备使用它来确保机器已通电并准备好接收数据。所以他们知道他们收到的是真实数据而不是噪音。修复:

port.Open();            
port.DtrEnable = true;
port.RtsEnable = true;

如果仍然遇到问题,用另一个程序(如 HyperTerminal 或 Putty)测试连接总是一个好主意。使用键盘上的 Ctrl 键生成控制代码。 ENQ为Ctrl+E,DC1为Ctrl+Q。

关于c# - 如何通过 rs232 与秤通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7188324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com