本发明涉及动环行业设备调试技术领域,特别涉及一种任意串口协议转modbus协议的方法及免编程模块。
背景技术:
机房作为信息中心,需要保证环境的运行稳定。恒温、恒湿,断电切换到后备电源,漏水、有火情需要及时报警。由此ups、空调、配电柜、电量仪、温湿度、蓄电池等设备均作为机房的标配,用来上述目标的设备。动环监控系统实现上述所有设备的信息采集、数据分析及进行报警动作。随着大数据、人工智能的火热发展,机房建设的需求也日益强烈。
相对于其他行业,动环行业的一大特点是没有标准产品,每个机房的情况都不一致,有些设备为甲方提供,有些则为动环产商提供。不同的机房有不同的配置,外围设备的情况也不一致。
目前动环监控行业的一大技术痛点为上述的各种设备对外的通信协议不同,不仅不同设备的通信协议不一,同设备的协议也不一致,并没有统一的通信协议与外部设备进行通信。现阶段大部分动环产商均为人工现场进行编码,然后烧录程序至硬件信息采集装置。不仅效率低下(反复烧录调试)、容易出错(现场编码未经过稳定性测试)而且对调试人员的要求较高(需要会写嵌入式代码)。
为此,需要设计一种可以无需现场进行程序编写,只需web操作即可的免编程的方法,以解决上述问题。
技术实现要素:
本发明为了弥补现有技术中动环行业每碰到一个新设备,都需要现场进行编码、调试的不足,提供了一种任意串口协议转modbus协议的方法及免编程模块。
本发明是通过如下技术方案实现的:
一种任意串口协议转modbus协议的免编程模块,包括pce模块,其特征在于:
所述pce模块为包含有主控单元、、存储芯片系统和硬件通讯电路的主板;
所述主控单元为32位arm单片机,32位arm单片机运行实时操作系统和web服务系统,32位arm单片机内保存有文件系统、json解析器、js代码和若干解析机制;
所述硬件通讯电路包括rs232通讯接口、rs485通讯接口、有线网口、和powerbus总线接口;pc端浏览器通过有线网口与主控单元通信,主控单元通过rs232通讯接口或rs485通讯接口或有线网口与设备进行通信。
进一步地,为了更好的实现本发明,所述解析机制包括mdobus协议、电总协议、字符类协议和自定义类型的协议生成及解析机制。
进一步地,为了更好的实现本发明,所述pce模块在运行在微型实时操作系统时为安装有arm单片机的主板,在运行在x86windows和linux系统时为服务器或pc主机。
基于上述免编程模块的任意串口协议转modbus协议的方法,包括以下步骤:
第一步,用户通过web浏览器访问免编程模块,浏览器端运行存储在主控中的网页及js程序;
第二步,用户在网页上添加设备,对添加的设备进行通信类型选择和设定通讯所需的参数,之后选择通讯编码模版;
第三步,选择通讯编码模版后进入数据测试界面进行数据收发测试,接收到的数据为一个数据帧;
第四步,用户确定收发数据正确后,进入数据提取界面对一个数据帧进行数据提取;
第五步,数据提取完毕后,保存配置文件,在本地生成配置文本;
第六步,返回设备信息界面,选择生成的配置文本上传,该设备的配置文件保存在采集模块中,免编程模块根据配置文件中的配置信息,完成参数的提取,并按照标准的modbus协议进行存储;
第七步,之后出现有相同的设备,直接上传第六步中生成的配置文件,无需再重复配置。
进一步地,为了更好的实现本发明,第三步中的数据收发测试具体方法为:在数据测试界面,用户根据设备的通讯协议手册,在web中填入相关的数据后点击测试,直观的看到发送数据和接收到的数据。
进一步地,为了更好的实现本发明,第四步中的数据提取具体方法为:用户输入关键的参数,选择一个数据帧中的起始和结束位置、参数名称、提取方法、期望数据类型,点击测试,查看数据是否提取正确,如果提取方法获得数据需要进一步提取,点击继续提取进行后续的提取动作。确定提取的数据正确后,点击添加参数按钮,将该参数的提取方法保存,若一个数据帧中的关键的参数有多个,则按照保存的提取方法进行重复提取。
进一步地,为了更好的实现本发明,上述参数若需要多个数据帧,则返回第三步中的数据收发测试获取另外的一个数据帧,之后在通过第四步对另外的一个数据帧进行数据提取。
本发明的有益效果是:
本发明针对工业设备的不同串口协议,将任意串口协议转为modbus协议,解决了需要人员到现场编写代码、调试才能提取数据的不便。预设常用的通信模版基质,且提供自定义的通信基质,调试简单,无需改动代码,在web端便可反复测试提取方方是否正确,不易出错,确定所有通信提取方法正确后再生成配置文件,且生成的配置文件可以复用,提高了工作效率。
附图说明
图1为本发明免编程模块的主控结构示意图;
图2为本发明任意串口协议转modbus协议的方法原理流程图;
图3为本发明任意串口协议转modbus协议的通信参数设置界面示意图;
图4为本发明任意串口协议转modbus协议的通信协议模版选择界面示意图;
图5为本发明任意串口协议转modbus协议的数据收发测试界面示意图;
图6为本发明任意串口协议转modbus协议的提取方式选择界面示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图1-图6为本发明的一种具体实施例,该实施例为一种任意串口协议转modbus协议的免编程模块以及方法。
本实施例包括有pce模块,pce模块为包含有主控单元、、存储芯片系统和硬件通讯电路的主板。
pce模块在本实施例运行在微型实时操作系统时为安装有arm单片机的主板,在本实施例运行在x86windows和linux系统时为服务器或pc主机。
图1显示了本实施中的主控单元的具体结构,主控单元为32位arm单片机,32位arm单片机运行保存在存储芯片系统中的实时操作系统和web服务系统,32位arm单片机内保存有文件系统、json解析器、js代码和若干解析机制;硬件通讯电路包括rs232通讯接口、rs485通讯接口、有线网口、和powerbus总线接口;pc端浏览器通过有线网口与主控单元通信,主控单元通过rs232通讯接口或rs485通讯接口或有线网口与设备进行通信。
其中,解析机制包括mdobus协议、电总协议、字符类协议和自定义类型的协议生成及解析机制。
图2为使用上述免编程模块的基于web操作的任意串口协议转modbus协议的方法,包括以下步骤;
第一步,用户通过web浏览器访问免编程模块,浏览器端运行存储在主控中的网页及js程序;
第二步,用户在网页上添加设备,对添加的设备进行通信类型选择和设定通讯所需的参数,之后选择通讯编码模版(如图3图4所示);
第三步,选择通讯编码模版后进入数据测试界面进行数据收发测试,在数据测试界面,用户根据设备的通讯协议手册,在web中填入相关的数据后点击测试,直观的看到发送数据和接收到的数据,接收到的数据为一个数据帧(如图5所示);
第四步,用户确定收发数据正确后,进入数据提取界面对一个数据帧进行数据提取,用户输入关键的参数,选择一个数据帧中的起始和结束位置、参数名称、提取方法、期望数据类型,点击测试,查看数据是否提取正确,确定提取的数据正确后,点击添加参数按钮,将该参数的提取方法保存,若一个数据帧中的关键的参数有多个,则按照保存的提取方法进行重复提取;参数若需要多个数据帧,则返回第三步中的数据收发测试获取另外的一个数据帧,之后在通过上述步骤对另外的一个数据帧进行数据提取;
第五步,数据提取完毕后,保存配置文件,在本地生成配置文本;
第六步,返回设备信息界面,选择生成的配置文本上传,该设备的配置文件保存在采集模块中,免编程模块根据配置文件中的配置信息,完成参数的提取,并按照标准的modbus协议进行存储;
第七步,之后出现有相同的设备,直接上传第六步中生成的配置文件,无需再重复配置。
其中,免编程模块支持多种数据的提取方式,具体的提取方式可以通过点击“帮助”按键进行查看,具体的提取方式举例如下:
uint8([x]):提取为无符号8位数
int8([x]):提取为有符号8位数
uint16([1],[2]):提取为无符号16位数,[1]为高8位
uint16([2],[1]):提取为无符号16位数,[1]为低8位
uint16([1],[2]):提取为无符号16位数,[1]为高8位
int16([2],[1]):提取为有符号16位数,[1]位低8位
uint32([1],[2],[3],[4]):提取为无符号32位数,[1]为高8位
int32([1],[2],[3],[4]):提取为有符号32位数,[1]为高8位
unt32([4],[3],[2],[1]):提取为无符号32位数,[4]为高8位
int32([4],[3],[2],[1]):提取为有符号32位数,[4]为高8位
float([1],[2],[3],[4]):float在内存中的顺序为[1][2][3][4]:提取为float类型,[1]为起始字节
float([4],[3],[2],[1]):float在内存中的顺序为[4][3][2][1]:提起为float类型,[4]为起始字节
raw([1]~[2]):取原始数据,不作任何处理
bit([bytepos],high~low):取[bytepos]位置处的high~low位,(high>=low)对某一个字节进行位提取,byteops为字节位置,high:位提取的上限,low:位提取的下限
a2b([]):将这个位置的字符表示的数转换为真实的数值:
a2fs([]~[]):将这个范围内的字符串表示的浮点数转化为真实的浮点数
a2us([]~[]):将这个范围内的字符串表示的无符号数据转化为真实的无符号数
a2ui([]~[]):将这个范围内的字符串表示的整数转化为真实的整数
a2hf([]~[]):将这个范围内的电总协议数据转为浮点数
a2hi([]~[]):将这个范围内的电总协议数据转为整数
a2hb([]~[]):将这个范围内的电总协议数据转为单字节数据
这些提取方式集成在本实施例的web端,可通过下拉框选择需要的提取方法对数据帧进行关键参数的提取。
如果上述方法提取后的数据需要继续运算,则点击继续提取,进行数据的加、减、乘、除、左移、右移等数学运算,直至获取到的数据为正确数据。(如图6所示)
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其他修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。