串口返回" \ 0"

时间:2017-02-09 12:59:12

标签: c# serial-port

我正在尝试使用串行端口与工业重量桥进行通信。我知道如何编写代码(c#)。问题是当我将桥连接到指示器时,显示重量。但是,当我将网桥连接到我的PC并运行程序时,返回的所有内容都是" \ 0"(NULL)。当我将我的PC连接到指示器并运行程序时,我得到连续的" \ 0"。我正在使用xk3190-a9指标。这是示例程序

namespace SerialPort
{
    class Program
    {
        private static string dev = "";
        static void Main(string[] args)
        {
            System.IO.Ports.SerialPort mySerialPort = new System.IO.Ports.SerialPort("COM15")
            {
                BaudRate = 2400,
                Parity = Parity.None,
                StopBits = StopBits.Two,
                DataBits = 8,
                RtsEnable = true,
            };
            mySerialPort.DataReceived += DataReceivedHandler;
            mySerialPort.Open();
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
            mySerialPort.Close();
        }    
        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            System.IO.Ports.SerialPort sp = (System.IO.Ports.SerialPort) sender;
            dev += sp.ReadExisting();
                Console.WriteLine(dev);
        }
    }
}

我的问题是桥梁是否需要"特殊"命令发送重量或我可以做什么来获得重量。来自港口的任何其他数据都将是进展。此外,我尝试了不同的端口设置所有相同的结果。

1 个答案:

答案 0 :(得分:0)

在线搜索并没有找到适合我案例的解决方案后,我放弃了数字追逐,并咨询了一个权重桥“专家”。如果您也拔出头发,请注意以下几点:

  1. 大多数重量桥(卡车和车辆)将重量作为模拟信号发送。因此,即使他们有一个串口,你的计算机肯定不会“得到它”,因此\ 0返回。
  2. 要为您的软件增加任何重量,您必须通过一个指示器,该指示器的主板上有转换器,可读取模拟信号并将其转换为数字信号
  3. 尽管指标得到它,其中一些具有非常低的BaudRates并且速率可能设置为一个奇怪的数字(见4)所以你可能想尝试从100到9600.在我的情况下BaudRate是600,我从未尝试过因此连续的\ 0
  4. 知道如何配置指标 - 使用指标编号的简单谷歌搜索应该会产生一本好的​​英语手册,一开始可能会让人感到困惑,但这是您能够更改BaudRate的唯一方法(以及其他设置)并避免所有的猜测。
  5. 简单的指示器返回GrossWeight,大多数时候这是足够的,但是你需要每个轴的重量,或者你想要每个称重传感器的重量,你可能需要一个先进的指标,如Avery Weigh-Tronix E1310
  6. 这个笔记应该指导你找到一个可行的解决方案,我从1,3& 4。