C#如何接入串口设备(扫码枪,电子秤等)
在工业上位机开发中接入各类设备,有很大一部分都配备有串口接口,用于实现设备之间的通信与连接。我们经常需要通过上位机对这些串口设备进行访问与控制。其中,串口设备向PC主动发送数据的场景较为常见,例如各类传感器采集的数据,都需要通过串口发送给PC软件。为了实现这样的串口通信与数据采集,我们需要对PC软件进行相应的串口对接开发。
本文将重点介绍串口设备主动推送数据时的通用串口访问方法,以及在上位机中如何接收解析这些串口数据。而对于光源设备,IO开关,PLC等由上位机主动发送控制指令的场景,各家厂商通常会提供现成的串口编程接口和Demo,这里不再赘述。具体步骤如下:
一、添加命名空间using System.IO.Ports;
二、创建SerialPort类的对象。这里有2种方法:
1.通过代码创建:指定串口号、波特率等参数:
2.通过界面拖动,直接修改属性。



其中串口号与接口有关系,正常不同的接口对应串口号,并且在一些情况下串口号可能会改变,需要提前测试好。
波特率不同的厂家不一样,比如霍尼韦尔的扫描枪是115200,得力捷扫码枪是9600,这个可以使用串口助手测试,正常设置错误会导致返回的数据有误。
3.打开串口,正常加在界面初始化函数或者按钮事件中。
4.添加串口的回调函数。(这里大部分需要回调的设备类似,就是当某种事件不是由上位机控制,而是由设备控制的时候都需要。比如工业相机中的触发,传动带的产品经过动态称,扫码这些有设备来决定的事件)
5.添加数据接收函数。
对data数据进行解析,就能拿到对应的内容了。
6. 关闭串口(这个根据实际情况来,长连接可以一直连着,不用断开)
以上的部分我们讲解了串口设备对接的一些通用方法,主要就是读取串口数据、解析协议这些基本操作,以上的部分可以解决我们大部分的串口对接需求,希望对大家有所帮助。