本发明涉及Modbus设备的接入方法,包括以下步骤:预置包含数据配置信息和协议配置信息的配置文件;智能设备采集动态库读取并解析配置文件,将解析配置文件所得到的数据配置信息保存在智能设备采集动态库内部变量中;接入Modbus设备时,根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信。本发明还提供一种Modbus设备的接入系统。本发明可减少开发工作量,降低代码维护复杂度。
1.一种Modbus设备的接入方法,其特征在于,包括以下步骤:预置包含数据配置信息和协议配置信息的配置文件;
智能设备采集动态库读取并解析配置文件,将解析配置文件所得到的数据配置信息保存在智能设备采集动态库内部变量中;
接入Modbus设备时,根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信;
其中所述根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信包括:接收到采集指令后,结合数据配置信息,生成Modbus查询帧,发送给接入的Modbus设备;
接收Modbus设备返回的数据帧,结合数据信息对数据进行解析和封装,通过数据采集接口返回给上层系统。
2.一种Modbus设备的接入方法,其特征在于,包括以下步骤:预置包含数据配置信息和协议配置信息的配置文件;
智能设备采集动态库读取并解析配置文件,将解析配置文件所得到的数据配置信息保存在智能设备采集动态库内部变量中;
接入Modbus设备时,根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信;
其中所述根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信包括:接收到控制命令后,结合数据配置信息生成Modbus控制帧,发送给接入的Modbus设备;
3.如权利要求1或2所述的Modbus设备的接入方法,其特征在于,所述预置包含数据配置信息和协议配置信息的配置文件包括:用数据表描述Modbus设备在Modbus协议框架下采用的数据模型,并将所述数据模型与上层系统的数据采集接口模型进行映射;所述数据表包括:分组信息表、描述采集功能的数据表和描述控制功能的数据表。
4.如权利要求3所述的Modbus设备的接入方法,其特征在于,所述协议配置信息包括:协议帧传输模式,所述协议帧传输模式为RTUMode或ASCII Mode;或者,协议通讯等待延时和重试次数。
5.一种Modbus设备的接入系统,其特征在于,包括智能设备采集动态库和配置文件预置模块,其中:配置文件预置模块,用于预置包含数据配置信息和协议配置信息的配置文件;
配置解析模块,用于读取并解析配置文件,将解析配置文件所得到的数据配置信息保存在智能设备采集动态库内部变量中;
协议解析模块,用于接入Modbus设备时,根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信;
接收到采集指令后,结合数据配置信息,生成Modbus查询帧,发送给接入的Modbus设备;
接收Modbus设备返回的数据帧,结合数据信息对数据进行解析和封装,通过数据采集接口返回给上层系统。
6.一种Modbus设备的接入系统,其特征在于,包括智能设备采集动态库和配置文件预置模块,其中:配置文件预置模块,用于预置包含数据配置信息和协议配置信息的配置文件;
配置解析模块,用于读取并解析配置文件,将解析配置文件所得到的数据配置信息保存在智能设备采集动态库内部变量中;
协议解析模块,用于接入Modbus设备时,根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信;
接收到控制命令后,结合数据配置信息生成Modbus控制帧,发送给接入的Modbus设备;
7.如权利要求5或6所述的Modbus设备的接入系统,其特征在于,所述配置文件预置模块具体用于:用数据表描述Modbus设备在Modbus协议框架下采用的数据模型,并将所述数据模型与上层系统的数据采集接口模型进行映射;所述数据表包括:分组信息表、描述采集功能的数据表和描述控制功能的数据表。
8.如权利要求7所述的Modbus设备的接入系统,其特征在于,所述协议配置信息包括:协议帧传输模式,所述协议帧传输模式为RTUMode或ASCII Mode;或者,协议通讯等待延时和重试次数。
Modbus设备的接入方法及系统
技术领域
[0001] 本发明涉及动力环境监控领域,特别涉及一种Modbus设备的接入方法及系统。
背景技术
[0002] 动力环境监控的一项基本功能是以协议方式接入各种智能设备并在此基础上实施管理功能。Modbus协议是工业领域广泛应用的设备接入协议,接入基于Modbus协议的设备也成为动力环境监控系统常见的需求。
[0003] 目前主流的方法是对每一种特定设备开发一个采集动态库,通过此动态库实现Modbus协议解析,把解析后的数据通过监控系统内部接口送给上层系统。这种方法要求对每一种设备开发动态库,开发工作量大,代码维护复杂。
发明内容
[0004] 本发明的主要目的是提供一种Modbus设备的接入方法,旨在解决现有技术中开发工作量大,代码维护复杂的技术问题。
[0005] 为了解决上述技术问题,本发明提供一种Modbus设备的接入方法,包括以下步骤:
[0006] 预置包含数据配置信息和协议配置信息的配置文件;
[0007] 智能设备采集动态库读取并解析配置文件,将解析配置文件所得到的数据配置信息保存在智能设备采集动态库内部变量中;
[0008] 接入Modbus设备时,根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信。
[0009] 优选地,所述预置包含数据配置信息和协议配置信息的配置文件包括:
[0010] 用数据表描述Modbus设备在Modbus协议框架下采用的数据模型,并将所述数据模型与上层系统的数据采集接口模型进行映射;所述数据表包括:分组信息表、描述采集功能的数据表和描述控制功能的数据表。
[0011] 优选地,所述根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信包括:
[0012] 接收到采集指令后,结合数据配置信息,生成Modbus查询帧,发送给接入的Modbus设备;
[0013] 接收Modbus设备返回的数据帧,结合数据信息对数据进行解析和封装,通过数据采集接口返回给上层系统。
[0014] 优选地,所述根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信包括:
[0015] 接收到控制命令后,结合数据配置信息生成Modbus控制帧,发送给接入的Modbus设备;
[0016] 接收Modbus设备返回的确认帧。
[0017] 优选地,所述协议配置信息包括:
[0018] 协议帧传输模式,所述协议帧传输模式为RTUMode或ASCII Mode;或者,[0019] 协议通讯等待延时和重试次数。
[0020] 本发明还提供一种Modbus设备的接入系统,其包括智能设备采集动态库和配置文件预置模块,其中:
[0021] 配置文件预置模块,用于预置包含数据配置信息和协议配置信息的配置文件;
[0022] 所述智能设备采集动态库包括:
[0023] 配置解析模块,用于读取并解析配置文件,将解析配置文件所得到的数据配置信息保存在智能设备采集动态库内部变量中;
[0024] 协议解析模块,用于接入Modbus设备时,根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信。
[0025] 优选地,所述配置文件预置模块具体用于:
[0026] 用数据表描述Modbus设备在Modbus协议框架下采用的数据模型,并将所述数据模型与上层系统的数据采集接口模型进行映射;所述数据表包括:分组信息表、描述采集功能的数据表和描述控制功能的数据表。
[0027] 优选地,所述协议解析模块具体用于:
[0028] 接收到采集指令后,结合数据配置信息,生成Modbus查询帧,发送给接入的Modbus设备;
[0029] 接收Modbus设备返回的数据帧,结合数据信息对数据进行解析和封装,通过数据采集接口返回给上层系统。
[0030] 优选地,所述协议解析模块具体用于:
[0031] 接收到控制命令后,结合数据配置信息生成Modbus控制帧,发送给接入的Modbus设备;
[0032] 接收Modbus设备返回的确认帧。
[0033] 本发明通过配置文件把Modbus数据定义和协议解析相分离,接入不同的Modbus设备时只需定制配置文件即可,无需编码,简化了Modbus设备接入工作,降低了开发难度。并且,相对固定的协议解析工作通过同一个动态库实现,减少了代码维护量,避免了由于代码重写可能引入的漏洞,问题定位、修正、部署也更为方便。
附图说明
[0034] 图1是本发明Modbus设备的接入方法一实施例的流程图;
[0035] 图2是本发明Modbus设备的接入系统一实施例的结构示意图。
[0036] 下面结合实施例,并参照附图,对本发明目的的实现、功能特点及优点作进一步说明。
具体实施方式
[0037] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0038] 参照图1,本发明实施例中,Modbus设备的接入方法包括以下步骤:
[0039] 步骤S10,预置包含数据配置信息和协议配置信息的配置文件;具体的,可由工程人员预置该配置文件并保存,协议配置信息用以定义通信方式,例如,与Modbus设备之间以何种数据帧格式进行数据交互;数据配置信息用以定义数据帧中的数据的具体含义。数据配置信息可以以数据表的形式存在,具体可包括分组信息表、描述采集功能的数据表、描述控制功能的数据表等。协议配置信息取决于协议本身的配置,对Modbus协议而言,主要指协议帧传输模式(RTUMode或ASCII Mode)。不同的Modbus设备基于运行环境的不同,可采用不同的传输模式,可通过配置文件对此进行区分。协议配置信息可包括协议帧传输模式,例如RTUMode或ASCIIMode;协议配置信息还可包括协议通讯等待延时和重试次数协议通讯等待延时、重试次数等配置项,以优化对不同现场设备的适应性。配置文件可以采用以TAB符分隔的简单文本描述,也可以采用更严格的格式化文本描述,如XML。
[0040] 步骤S20,智能设备采集动态库读取并解析配置文件,将解析配置文件所得到的数据配置信息保存在智能设备采集动态库内部变量中;智能设备采集动态库用以从配置文件采集各种Modbus设备的配置信息,并对其配置信息进行解析,以将Modbus设备与上层系统的数据采集接口适配。智能设备采集动态库初始化时,从配置文件读取数据配置信息,并保存到动态变量g_ModbusDeviceInfo中,以供后续与Modbus设备进行数据交互时使用。
[0041] 步骤S30,接入Modbus设备时,根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信。例如,根据数据采集指令从g_ModbusDeviceInfo中提取描述采集功能的数据表,并根据约定的数据帧格式,从Modbus设备中采集数据。
[0042] 本发明实施例中,通过配置文件把Modbus数据定义和协议解析相分离,接入不同的Modbus设备时只需定制配置文件即可,无需编码,简化了Modbus设备接入工作,降低了开发难度。并且,相对固定的协议解析工作通过同一个动态库(即智能设备采集动态库)实现,减少了代码维护量,避免了由于代码重写可能引入的漏洞,问题定位、修正、部署也更为方便。
[0043] 具体的,上述步骤S10中包括:用数据表描述Modbus设备在Modbus协议框架下采用的数据模型,并将所述数据模型与上层系统的数据采集接口模型进行映射;所述数据表包括:分组信息表、描述采集功能的数据表和描述控制功能的数据表。
[0044] 例如,在Modbus协议中,数据通过功能码进行分组,数据采集以组为单元分批进行。在本发明实施例中,典型的分组信息表结构可参照表1所示:
[0045]
[0046] 表1
[0047] 其中,Function ID为功能码,RegStart为寄存器起始地址,RegCnt为从起始地址开始,需要读取的寄存器个数,Channel_offset为动力环境监控接口模型中对应的起始通道号。分组中具体信号以数据表的方式定义,通过tableID进行关联。
[0048] 对于描述采集功能的数据表,数据表内容和功能码相关,典型的描述采集功能的数据表结构可参照下表2所示:
[0049] #SN sigName DataType Offset Scale Channel
1 DuLine Setting 20 0 1 0
2 Hz 20 2 1 1
3 Voltage 20 4 1 2
4 Capacity 20 6 1 3
[0050] 表2
[0051] 其中,DataType表示数据类型,20为双字节模拟量,Offset为协议帧中字节偏移,Scale对于模拟量表示比例系数,对于开关量表示位号,Channel为动力环境监控数据采集接口中相对通道号(加上此表对应的起始通道号即为实际通道号)。
[0052] 对于描述控制功能的数据表,典型结构可参照下表3所示:
[0053] #SN SigDescrition RegAddr Scale
1 TimingRun 15 1
2 RoomTempCtl 16 1
3 HumiCtlMode 17 1
4 VSDSettingPoint 18 1
5 SendWindTempLimit 19 10
[0054] 表3
[0055] 其中RegAddr表示控制量所在的寄存器地址,Scale表示比例系数,SN表示控制命令相对通道号(加上此表对应的起始通道号即为实际通道号)。
[0056] 上述步骤S30的处理流程可进一步分为Modbus设备的数据采集流程和Modbus设备的控制流程两部分,在一实施例中,Modbus设备的数据采集流程可包括:
[0057] 接收到采集指令后,结合数据配置信息,生成Modbus查询帧,发送给接入的Modbus设备;例如,智能设备采集动态库接收到采集指令后,结合g_ModbusDeviceInfo提供的分组配置信息,生成Modbus查询帧,发送给Modbus设备。以RTU传输模式为例,其查询帧结构如下:
[0058] Slave Address Function Code Data CRC
1byte 1byte 0 up to 252 bytes 2bytes
[0059] 接收Modbus设备返回的数据帧,结合数据信息对数据进行解析和封装,通过数据采集接口返回给上层系统。接收Modbus设备返回的数据帧,结合g_ModbusDeviceInfo提供的描述采集功能的数据表信息,对数据进行解析、封装,通过动力环境监控数据采集接口返回给上层系统。
[0060] 在一实施例中,Modbus设备的控制流程可包括:
[0061] 接收到控制命令后,结合数据配置信息生成Modbus控制帧,发送给接入的Modbus设备;例如,智能设备采集动态库接收到控制命令后,结合g_ModbusDeviceInfo提供的描述控制功能的数据表信息,生成Modbus控制帧,发送给Modbus设备。
[0062] 接收Modbus设备返回的确认帧。接收到Modbus设备返回的确认帧后,表示控制成功,返回。
[0063] 参照图2,提出本发明Modbus设备的接入系统一实施例,该接入系统用以接入Modbus设备,其包括智能设备采集动态库10和配置文件预置模块20,其中:
[0064] 配置文件预置模块20,用于预置包含数据配置信息和协议配置信息的配置文件;具体的,可由工程人员通过配置文件预置模块预置配置文件并保存,协议配置信息用以定义通信方式,例如,与Modbus设备之间以何种数据帧格式进行数据交互;数据配置信息用以定义数据帧中的数据的具体含义。数据配置信息可以以数据表的形式存在,具体可包括分组信息表、描述采集功能的数据表、描述控制功能的数据表等。协议配置信息取决于协议本身的配置,对Modbus协议而言,主要指协议帧传输模式(RTUMode或ASCII Mode)。不同的Modbus设备基于运行环境的不同,可采用不同的传输模式,可通过配置文件对此进行区分。
协议配置信息可包括协议帧传输模式,例如RTUMode或ASCII Mode;协议配置信息还可包括协议通讯等待延时和重试次数协议通讯等待延时、重试次数等配置项,以优化对不同现场设备的适应性。配置文件可以采用以TAB符分隔的简单文本描述,也可以采用更严格的格式化文本描述,如XML。
[0065] 智能设备采集动态库10用以从配置文件采集各种Modbus设备的配置信息,并对其配置信息进行解析,以将Modbus设备与上层系统的数据采集接口适配。智能设备采集动态库10包括:
[0066] 配置解析模块11,用于读取并解析配置文件,将解析配置文件所得到的数据配置信息保存在智能设备采集动态库内部变量中;具体的,配置解析模块11用于在智能设备采集动态库10初始化时,从配置文件读取数据配置信息,并保存到动态变量g ModbusDeviceInfo中,以供后续与Modbus设备进行数据交互时使用。在一实施例中,配置文件预置模块11具体用于:
[0067] 用数据表描述Modbus设备在Modbus协议框架下采用的数据模型,并将所述数据模型与上层系统的数据采集接口模型进行映射;所述数据表包括:分组信息表、描述采集功能的数据表和描述控制功能的数据表。分组信息表、描述采集功能的数据表和描述控制功能的数据表的配置方式和典型格式可参见前述表1、表2和表3。
[0068] 协议解析模块12,用于接入Modbus设备时,根据操作指令从智能设备采集动态库内部变量提取所述数据配置信息,与Modbus设备通信。具体的,协议解析模块12可根据数据采集指令从g_ModbusDeviceInfo中提取描述采集功能的数据表,并根据约定的数据帧格式,从Modbus设备中采集数据。在一实施例中,协议解析模块12具体用于:
[0069] 接收到采集指令后,结合数据配置信息,生成Modbus查询帧,发送给接入的Modbus设备;例如,协议解析模块12接收到采集指令后,结合g_ModbusDeviceInfo提供的分组配置信息,生成Modbus查询帧,发送给Modbus设备。
[0070] 接收Modbus设备返回的数据帧,结合数据信息对数据进行解析和封装,通过数据采集接口返回给上层系统。
[0071] 在一实施例中,协议解析模块12具体用于:
[0072] 接收到控制命令后,结合数据配置信息生成Modbus控制帧,发送给接入的Modbus设备;例如,协议解析模块12接收到控制命令后,结合g_ModbusDeviceInfo提供的描述控制功能的数据表信息,生成Modbus控制帧,发送给Modbus设备。
[0073] 接收Modbus设备返回的确认帧。
[0074] 以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。