通信协议是做上位机开发经常会听到的一个词。无论是单片机开发常用的串口通信协议,还是上位机开发常用的TCP/IP通信协议,以及网络通信常用的Http协议,可以这么说,通信协议无处不在。【公众号dotNet工控上位机:thinger_swj】
对于通信协议的理解,官方性的解释是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。通俗地说,为了保证机器与机器之间能够正常对话,两者之间需要共同使用同一种语言,这种语言就是通信协议,就和中国人之间沟通使用普通话、本地人之间沟通使用方言、不同国家的人之间沟通使用英语是一个道理。
本文主要针对的硬件是国内仪表市场占有率比较高的一个品牌——厦门宇电AI系列仪表。厦门宇电自动化科技有限公司专门为 AI 系列显示控制仪表开发了一个通讯协议——AIBUS,这个AIBUS会有一系列的协议说明,对上位机开发人员来说,这就是一个自定义协议。
如果要和一个自定义协议的仪表进行通信,我们需要从以下几个环节着手去做:通信协议剖析、硬件配置及环境搭建、根据协议编写通信库、编写测试软件进行测试。
1.协议剖析
这里首先找到了该仪表的通信协议说明书,一般仪表或者PLC的通信协议可以通过供应商提供或者官网下载,宇电仪表通信协议下载链接:
http://www.yudian.com/Download/11904/List.html
在协议说明书中,找到通信的核心报文部分(以下内容来自于《宇电 AIBUS 及 MODBUS 通讯协议说明(V8.0)》):
AI 仪表采用 16 进制数据格式来表示各种指令代码及数据。AI 仪表软件通讯指令经过优化设计,标准 的通讯指令只有两条,一条为读指令,一条为写指令,两条指令使得上位机软件编写容易,但能 100%完整地对仪表进行操作;标准读和写指令分别如下:
读: 地址代号+52H