简介:
上位机和下位机的通信常用的有两种,第一种是串口通信,第二种是网口通信,本文以C#语言为基础总结一下开发中常用的通信知识点。
一:串口通信
C#中提供SerialPort以支持开发者进行原生的串口通讯开发,学习入口:C#之SerialPort
二:网口通信:UDP 和TCP
- UDP:C#中提供UdpClient以支持开发者进行原生的串口通讯开发,学习入口:C#之UDP通讯
- TCP:C#中提供TcpClient和TcpListener以支持开发者进行原生的串口通讯开发,学习入口:C#TCP通讯
三:Modbus协议
所谓协议是什么,这里我就不多解释了,有时候我们制定的通信方式很简单,不需要那么复杂的协议,那我们就可以根据场景直接去使用原生类库直接通信,然后根据制定的协议简单进行解析,即可完成项目需求。
但是,如果我们需要和一些三方的厂家对接,或者数据交互比较复杂,那我们就很头痛了,需要不停的修改和对接协议,这是不是很耗时?有没有一种协议,大家都公认而且又能满足复杂的数据交互呢?有,而且不止一种,但这里我们用的最常见的还是Modbus协议,学习入口:Modbus协议
四:三方库
实战中,我们发现每次都要对SerialPort或者UdpClient 、TcpClient、TcpListener进行封装,可以说是不胜其烦,有没有一种方式让我们从这些原生封装中解脱出来呢,有,那就是三方库,这里就需要仁者见仁了,大家尽量选一些大库,知名库进行学习使用。
但是...!即使这样,当碰到Modbus协议的项目时,我们依然要组装Modbus数据,解析Modbus协议,还是不胜其烦,有没有一种库又封装了Modbus协议又封装了原生的通信方式,让我们直接拿来用呢?有,而且不止一种,博主这里常用的是EasyModbus和NModbus。