通过串口将命令发送到C#中的电动气动调节器

时间:2019-04-18 06:57:26

标签: c# serial-port ascii port

我有一个可编程的电动气动调节器,我需要通过串行端口与之通信,我从未做过类似的事情。该操作手册显示了一些与其进行通讯的说明。这些是以下内容:

Specification
==============
Comm. type
  Master/slave type
Synchronous type
  Asynchronous type
Comm. speed
  9,600[bps]
Start bit
  1[bit]
Data length
  8[bit]
Stop bit
  1[bit]
Parity bit
  N/A
Flow control
  N/A
Command end code
  CR・LF
Character-code
  ASCII

我已成功将其与计算机连接,但是当我试图控制它并发送命令时,通信LED会亮起,但它不会设置压力。我认为问题将出在命令结束代码或字符代码上。命令示例是:send "SET 614"(其工作范围是0-1023)。我在变量中使用推荐的规格(通信速度,起始位等)(只是为了多功能)。当您关闭UI表单时,程序将关闭端口。

  private void ComunicateComport() 
        {
            comtimer.Stop();
            Global.Refreshtime = Global.Refreshrate;
            comtimer.Start();
            SerialPort ComPort = new SerialPort(Global.COMPort,Global.Baudrate,Parity.None,Global.Databits,StopBits.One); 
            if (ComPort.IsOpen == false)
            {
                ComPort.Open();
            }
            Global.Error = 0;
            ComPort.DiscardOutBuffer();
            ComPort.WriteLine("SET 100"); 

        }

1 个答案:

答案 0 :(得分:1)

不要使用WriteLine替换为ComPort.Write(String),然后使用ComPort.Write({0x0D,0x0A},0,显式发送 作为带有字节数组的命令字符串的结尾2)。