一种基于单片机的船舶机舱设备数据现场调试采集方法及装置与流程

文档序号:20034282发布日期:2020-02-28 10:53阅读:219来源:国知局
一种基于单片机的船舶机舱设备数据现场调试采集方法及装置与流程
本发明涉及数据采集领域,尤其涉及一种基于单片机的船舶机舱设备数据现场调试采集方法及装置。
背景技术
:船舶机舱数据采集单元在应用过程中需要设置一些参数,如船舶设备协议对应的485端口号,485端口的波特率,485端口发送modbus命令的周期,数据处理的方式,数据交换格式选择,网络传输层协议选择,以及现场临时增加某种协议等等,现阶段更改此类型参数的方式是直接更改单片机源代码,再利用烧写器烧写到单片机内。由于采集单元应用现场环境复杂,船舶机舱设备的协议种类繁多,在设置参数或调试过程中,采用直接更改单片机源代码的方式,会产生较大的工作量,而且在反复更改单片机源代码时,难免会出现误更改其他代码的情况,造成采集单元工作异常或不能工作,还需要大量的时间做查错、修复工作,降低了工作效率。技术实现要素:本发明提供的一种基于单片机的船舶机舱设备数据现场调试采集方法,旨在解决现有技术中存在通过直接更改单片机源代码,使工作效率比较低的不足之处。为实现上述目的,本发明采用以下技术方案:本发明的一种基于单片机的船舶机舱设备数据现场调试采集方法,包括以下步骤:生成一个预采集的船舶机舱设备的点表;以c语言解释器修改点表中的参数;根据修改后点表中的参数采集数据并将采集的数据上传至服务器。船舶设备采集单元在应用过程中需要设置一些参数,如船舶设备协议对应的485端口号,485端口的波特率,485端口发送modbus命令的周期,数据处理的方式,数据交换格式选择,网络传输层协议选择,以及现场临时增加某种协议等等,本发明使用c语言解释器对参数进行修改,不对源代码进行更改,能够减少错误率,提升工作效率。作为优选,所述以c语言解释器修改点表中的参数,包括以下步骤:编写脚本文件和c语言解释器;c语言解释器将脚本文件解析为中间代码;解析中间代码以修改点表中的参数。作为优选,所述根据修改后点表中的参数采集数据并将采集的数据上传至服务器,包括以下步骤:根据修改后点表中的参数发送读取数据的modbus命令;接收数据并根据修改后点表中的参数处理接收的数据;将处理后的数据转换格式后上传至服务器。一种基于单片机的船舶机舱设备数据现场调试采集装置,包括:生成点表模块,用于生成一个预采集的船舶机舱设备的点表;修改参数模块,用于修改点表中的参数;采集上传模块,用于采集数据上传至服务器。作为优选,所述修改参数模块包括:编写单元,用于编写脚本文件和c语言解释器;解析脚本文件单元,用于将脚本文件解析为中间代码;解析中间代码单元,用于解析中间代码以修改点表中的参数。作为优选,所述采集上传模块包括:发送命令单元,用于根据修改后点表中的参数发送读取数据的modbus命令;接收处理单元,用于接收数据并根据修改后点表中的参数处理接收的数据;转换上传单元,用于将处理后的数据转换格式后上传至服务器。一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述中任一项所述的一种基于单片机的船舶机舱设备数据现场调试采集方法。一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现上述中任一项所述的一种基于单片机的船舶机舱设备数据现场调试采集方法。本发明具有如下有益效果:采集单元在应用过程中需要设置一些参数,如船舶设备协议对应的485端口号,485端口的波特率,485端口发送modbus命令的周期,数据处理的方式,数据交换格式选择,网络传输层协议选择,以及现场临时增加某种协议等等,c语言解释器能够将脚本文件解析为中间代码,中间代码存于内存当中,单片机通过寻址方式对中间代码进行解析,然后执行命令,本发明只更改脚本文件,不对源代码进行更改,能够减少错误率,提升工作效率。附图说明图1是本发明示例实现一种基于单片机的船舶机舱设备数据现场调试采集方法流程图;图2是本发明示例实现一种基于单片机的船舶机舱设备数据现场调试采集装置示意图;图3是一种电子设备示意图。具体实施方式下面将结合附图,对本发明示例中的技术方案进行清楚、完整地描述,显然,所描述的示例仅仅是本发明一部分示例,而不是全部的示例。基于本发明中的示例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他示例,都属于本发明保护的范围。在介绍本发明技术方案之前,示例性的介绍一种本发明技术方案可能适用的场景。示例性的:船舶设备采集单元在应用过程中需要设置一些参数,如船舶设备协议对应的485端口号,485端口的波特率,485端口发送modbus命令的周期,数据处理的方式,数据交换格式选择,网络传输层协议选择,以及现场临时增加某种协议等等,现阶段更改此类型参数的方式是直接更改单片机源代码,再利用烧写器烧写到单片机内。由于采集单元应用现场环境复杂,船舶机舱设备的协议种类繁多,在设置参数或调试过程中,采用直接更改单片机源代码的方式,会增加较多的工作量,而且在反复更改单片机源代码时,难免会出现误更改其他代码的情况,造成采集单元工作异常或不能工作,还需大量的时间做查错、修复工作,降低了工作效率。示例性的,如图1所示,一种基于单片机的船舶机舱设备数据现场调试采集方法,包括以下步骤:s100生成一个预采集的船舶机舱设备的点表;s110以c语言解释器修改点表中的参数;s120根据修改后点表中的参数采集数据并将采集的数据上传至服务器。在采集船舶机舱设备的信息时,通过点表设置预采集的船舶机舱设备,需要采集不同设备信息时,通过c语言解释器修改点表中的参数即可改变需要采集的设备信息,相比直接更改单片机源代码,本发明的工作量较小,错误率少,使工作效率得以提高。示例性的,一种基于单片机的船舶机舱设备数据现场调试采集方法,包括以下步骤:生成一个预采集的船舶机舱设备的点表;编写脚本文件和c语言解释器;c语言解释器将脚本文件解析为中间代码;解析中间代码以修改点表中的参数。根据修改后点表中的参数采集数据并将采集的数据上传至服务器。通过c语言解释器将脚本文件解析为中间代码,单片机解析中间代码完成修改点表中的参数,能够减少修改过程中产生的错误,提升工作效率。示例性的,一种基于单片机的船舶机舱设备数据现场调试采集方法,包括以下步骤:生成一个预采集的船舶机舱设备的点表;以c语言解释器修改点表中的参数;根据修改后点表中的参数发送读取数据的modbus命令;接收数据并根据修改后点表中的参数处理接收的数据;将处理后的数据转换格式后上传至服务器。点表中的参数修改完成后,进行采集数据,采集数据通过发送读取数据modbus命令,接收数据后进行处理,从而得到需要的数据,对处理后的数据转换格式,然后上传到服务器,方便实时查看。示例性的,一种基于单片机的船舶机舱设备数据现场调试采集方法,包括以下步骤:生成一个预采集的船舶机舱设备的点表;编写脚本文件,以ascii码的形式存储;编写c语言解释器;仿内存池做内存管理;编写每类解析的解析函数,生成链表;c语言解释器将脚本文件解析为中间代码;单片机解析中间代码,执行命令;根据修改后点表中的参数,采集数据,将采集的数据上传至服务器。一种可能的具体实施方式:在采集船舶机舱设备数据时,以excel表格的形式编辑一个预采集的船舶设备或仪表的点表,表格内容为预采集船舶设备或仪表的数据的相关信息,包括:设备数据名称码、数据存储地址、数据精确度、数据类型、量程范围、报警阈值等。点表向上导入服务器平台软件,以备软件解析数据、存储及显示;向下存储于采集单元中,以备采集时查表,实现硬件与软件之间的协议。编写脚本文件,脚本文件是以c语言编写的文本文件,并以ascii码的形式存储于采集单元的外部flash中,c语言解释器是用c语言基于c开发环境keil、mdk等软件在计算机上开发的代码,与其他源代码一起烧写于单片机中,应用于解释ascii码形式的c语言语句,代码实现过程如下:仿内存池做内存管理,以备解析脚本文件每条语句时,快速申请与释放,根据c语言本身的结构,解释器解析c语言语句包括类型解析、表达式解析、函数解析、控制语句解析、代码块解析、局部变量的应用范围,编写每类解析的解析函数,并以相应的结构体生成链表形式表示其含义,通过一个函数扫描脚本的每一个词,标识其类型,如关键字、字符串、字符、定义的名字字符、分隔符等,经过词法分析过程决定去往具体类别的分支,例如:解析“int*p[5]”,扫描语句,标识“int”-关键字,“*”-分隔符,“p”-定义的名称字符,“[”-分隔符,“5”-数字常量,“]”-分隔符,“int”关键字表示类型定义,调用类型定义解析函数,找到“p”的位置;查找下一个词,是“[”,表示是一个数组,开始解析这个数组,达到“]”处,如果是“(”则表示是一个参数列表函数;再找“p”前面的位置,是“*”,表示是指针,再找前面,是“int”,指针指向的是一个整形,解析完成,解析之后存于结构体中,形成一个链表,各类语句解析处理完成后都是以链表形式存储,形如“@1=a+b”“c=@1”,称为中间代码,它是“c=a+b”表达式的中间代码,c语言解释器将脚本文件解析为中间代码,这种中间代码存于内存当中,单片机通过寻址方式对中间代码进行命令的解析,即执行命令,上述“c=a+b”例子,如表1所示对应关系,表1地址变量1a2b3c4@1*(int*)(4)=*(int*)(1)+*(int*)(2);*(int*)(3)=*(int*)(4);通过上面两条语句实现了“c=a+b”的命令执行。上述示例中,通过c语言解释器修改点表中的参数,达到现场调试的目的,无需对单片机源代码进行更改,能够减少错误率,避免更改单片机源代码时因错误更改而导致的采集单元工作异常或不能工作,节约查错、修复的时间,提升工作效率。示例性的,一种基于单片机的船舶机舱设备数据现场调试采集方法,包括以下步骤:生成一个预采集的船舶机舱设备的点表;以c语言解释器修改点表中的参数;根据修改后点表中的参数存储地址项,周期性地向船舶设备发送读取数据的modbus命令;船舶设备返回数据,根据修改后点表中的参数项,计算处理数据;将计算处理后的数据转换数据交换格式;将转换后的数据上传至服务器。一种可能的具体实施方式:采集单元设有多个485端口,支持modbus-rtu协议,船舶设备厂家自定义的支持485通讯的多种帧协议,其他协议,采集过程:modbus-rtu协议:采集单元以查表方式,根据点表中的数据存储地址项,通过485接口周期性地向船舶设备或仪表发送读取数据的modbus命令,待船舶设备或仪表返回数据后,采集单元再根据点表中的数据类型、数据精确度等参数项,计算处理数据,得到所需数据;帧协议:船舶设备或仪表会周期性的发送数据帧,采集单元通过485接口读取数据帧,并根据点表中的数据类型、数据精确度等参数项,解析数据帧,得到所需数据;其它协议:非485接口通信协议,可通过加入相应转换模块转换为485接口。结合点表中的“设备数据名称码”项,将计算处理后的数据,转换为json或xlm数据交换格式,并通过以太网接口发送至服务器,网络传输层协议可选择udp协议或tcp协议。采集单元兼容多个协议,方便对不同协议的设备进行采集,通过周期性地向船舶设备或仪表发送读取数据的命令,能够实现对设备数据状态的实时监测,提高采集精度和准确度。将采集后的数据通过以太网接口发送至服务器,能够减少本地内存的占用,把数据存储在服务器中方便实时查看。示例性的,如图2所示,一种基于单片机的船舶机舱设备数据现场调试采集装置,包括:生成点表模块400,用于生成一个预采集的船舶机舱设备的点表;修改参数模块410,用于修改点表中的参数;采集上传模块420,用于采集数据上传至服务器。一种可能的具体实施方式:生成点表模块400生成一个预采集的船舶机舱设备的点表,修改参数模块410修改点表中的参数,采集上传模块420采集船舶机舱内设备的数据,上传数据至服务器。示例性的,一种基于单片机的船舶机舱设备数据现场调试采集装置,包括:生成点表模块,用于生成一个预采集的船舶机舱设备的点表;编写单元,用于编写脚本文件和c语言解释器;解析脚本文件单元,用于将脚本文件解析为中间代码;解析中间代码单元,用于解析中间代码以修改点表中的参数;采集上传模块,用于采集数据上传至服务器。一种可能的具体实施方式:生成点表模块生成一个预采集的船舶机舱设备的点表,编写单元编写脚本文件和c语言解释器,解析脚本文件单元将脚本文件解析为中间代码,解析中间代码单元解析中间代码以修改点表中的参数,采集上传模块采集船舶机舱内设备的数据并上传数据至服务器。示例性的,一种基于单片机的船舶机舱设备数据现场调试采集装置,包括:生成点表模块,用于生成一个预采集的船舶机舱设备的点表;修改参数模块,用于修改点表中的参数;发送命令单元,用于根据修改后点表中的参数发送读取数据的modbus命令;接收处理单元,用于接收数据并根据修改后点表中的参数处理接收的数据;转换上传单元,用于将处理后的数据转换格式后上传至服务器。一种可能的具体实施方式:生成点表模块生成一个预采集的船舶机舱设备的点表,修改参数模块修改点表中的参数,发送命令单元根据修改后点表中的参数发送读取数据的modbus命令,接收处理单元接收数据并根据修改后点表中的参数处理接收的数据,转换上传单元将处理后的数据转换格式后上传至服务器。示例性的,如图3所示,一种电子设备,包括存储器701和处理器702,所述存储器701用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器702执行以实现上述的一种基于单片机的船舶机舱设备数据现场调试采集方法。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。示例性的,一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述的一种基于单片机的船舶机舱设备数据现场调试采集方法。示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器701中,并由处理器702执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机设备中的执行过程。计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,存储器701、处理器702。本领域技术人员可以理解,本示例仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。处理器702可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器702、数字信号处理器702(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-program503mablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器702可以是微处理器702或者该处理器702也可以是任何常规的处理器702等。存储器701可以是计算机设备的内部存储单元,例如计算机设备的硬盘或内存。存储器701也可以是计算机设备的外部存储设备,例如计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器701还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器701用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器701还可以用于暂时地存储已经输出或者将要输出的数据。以上所述仅为本发明的具体实施例,但本发明的技术特征并不局限于此,任何本领域的技术人员在本发明的领域内,所作的变化或修饰皆涵盖在本发明的专利范围之中。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1