五、协议层设计
不同厂商生产设备所采用的通讯协议不尽相同,有些尽管声称使用通用的协议,但实际也有小调整的可能。工控系统如果为每种协议修改主体程序,推出不同版本,那势必会造成工控系统版本的混乱。
本工控系统通过“设备配置+协议解析模块”的方式解决上述问题。
(1)大体相同的通信规则由协议解析模块处理,而更为细化的特点由设备配置处理。例如,标准的Modbus协议可定义一个协议解析模块,而A设备用地址1代表测量值,B设备用地址2代表测量值这一特点则由设备配置处理。
(2)协议解析模块的开发是独立于主体程序的开发的。两者通过接口交互。
(3)主体程序在加载设备配置时,动态地加载协议解析模块。
(4)协议解析模块负责将字节流转化为“设备名.因子名”的形式,以及将“设备名.因子名”的形式转化为字节流。
在技术上,主体程序是一个项目,接口是一个项目,而协议解析模块则是每种协议一个项目。主体程序和协议解析模块都引用接口项目。协议解析模块编译成DLL,被主体程序动态加载。主体程序使用反射技术,根据接口调用DLL的方法。