同步发电机励磁调节器控制程序的二次开发方法

文档序号:9523496阅读:1236来源:国知局
同步发电机励磁调节器控制程序的二次开发方法
【技术领域】
[0001]本发明涉及一种同步发电机励磁调节器控制程序的实现方法,具体来说,涉及一种开发周期短,扩展能力强,维护成本低,相对独立运行的同步发电机励磁调节器控制程序集成嵌入式语言的二次开发方法。
【背景技术】
[0002]现有的励磁调节器控制程序一般在实时操作系统上进行直接开发,或者使用组态软件以及使用PLC进行开发。虽然使用组态软件和PLC进行开发技术难度低,开发测试周期短,但是,缺点也很明显,缺点在于不够灵活,开发有局限性;而直接在实时操作系统上开发的控制程序设计灵活,使用方便,但缺点在于编程难度较组态与PLC开发高,项目需求的改变需要重新开发支线程序。上述三种方式开发出来的应用程序对项目需求的变化都不具有可扩展能力,在需要少量修改、增加、删除部分信号状态、计算方法或控制逻辑的情况下都需要重新修改,测试,下载整个应用程序,重要的是如果主线版本的控制程序有升级,各分支版本的控制程序都需要逐个合并,测试升级,这会给程序版本管理带来麻烦,同时程序维护成本会随着支线版本程序的不断增多而增加。

【发明内容】

[0003]针对以上的不足,本发明提供了一种开发周期短,扩展能力强,维护成本低,相对独立运行的同步发电机励磁调节器控制程序集成嵌入式语言的二次开发方法,它包括:
[0004]1)编译嵌入式脚本程序;
[0005]2)根据使用的操作系统和编译器修改脚本程序的运行环境程序,以将脚本程序的运行环境以程序库的方式链入到宿主程序中;
[0006]3)编写从宿主程序调用脚本程序的接口函数,以及从脚本程序访问宿主程序的接口函数;
[0007]4)初始化脚本程序的运行环境和运行状态,在宿主程序中完成从宿主程序调用脚本程序的接口函数的注册,以便于宿主程序通过调用脚本程序的接口函数实现读入、编译和执行脚本程序。
[0008]为了进一步实现本发明,所述宿主程序与脚本程序之间的交互采用选择控制逻辑输出模式、顺序控制逻辑输出模式、并联控制逻辑输出模式,或者上述三种模式中任意至少两种的组合逻辑。
[0009]为了进一步实现本发明,所述脚本程序采用lua脚本语言进行二次嵌入式程序开发而来,宿主程序为在vxworks实时操作系统上开发的励磁调节器C语言控制程序,宿主程序通过调用lua_register函数向lua语言程序环境注册新的C语言程序,这样lua语言可以直接访问注册的新的C语言函数,宿主程序使用lua_getgl0bal C API函数封装C语言到lua语言的接口,C应用程序通过接口访问lua语言程序。
[0010]为了进一步实现本发明,所述选择控制逻辑输出模式是通过选择开关来选择运行宿主程序,还是运行脚本程序。
[0011]为了进一步实现本发明,所述顺序控制逻辑输出模式是通过选择开关选择是否将脚本程序串联到宿主程序中。
[0012]为了进一步实现本发明,所述并联控制逻辑输出模式是通过选择开关选择是否将脚本程序与宿主程序并行运行。
[0013]为了进一步实现本发明,所述宿主程序通过判断逻辑选择开关的位置信息来确定是否执行脚本程序。
[0014]为了进一步实现本发明,当脚本程序的脚本编译、执行出现错误时,脚本程序立刻暂停执行,脚本程序将“出现错误”的错误代码返回给宿主程序,由宿主程序控制选择开关切换至OFF位置,同时将获取的错误位置,错误代码和错误时间信息输出。
[0015]本发明的有益效果:
[0016]1、本发明的二次开发的脚本程序的源码可以动态的被宿主程序从文件系统加载到C语言应用程序中,并对脚本程序的代码进行编译、运行、暂停或退出,这些操作不影响宿主程序其它功能的正确性;另外,脚本程序与宿主程序的修改、升级相互不影响;再有,脚本程序的日志信息(包括文件路径、错误位置、错误代码、发生时间等信息)可以以文本方式写入文件,并最终显示在终端。
[0017]2、本发明的开发周期短,扩展能力强,维护成本低,在宿主程序或者脚本程序出现修改时,并不会影响对方的正常运行。
【附图说明】
[0018]图1为本发明的选择控制逻辑输出模式的原理图;
[0019]图2为本发明的顺序控制逻辑输出模式的原理图;
[0020]图3为本发明的并联控制逻辑输出模式的原理图。
【具体实施方式】
[0021]下面结合附图对本发明进行进一步阐述。
[0022]本发明的同步发电机励磁调节器控制程序集成嵌入式语言的二次开发方法的实现过程如下:
[0023]1)采用lua语言编译嵌入式脚本程序,并将脚本程序的语言运行环境以应用程序库的方式链入到宿主程序中,宿主程序为在vxworks实时操作系统上开发的励磁调节器C语言控制程序,根据操作系统及编译器的类型修改脚本环境程序,并编译通过返回状态指针。
[0024]2)按照函数原型、输入参数、输出三个部分编写从脚本程序访问宿主程序的接口函数:从lua访问C语言程序的接口函数都需要具有相同的原型typedef int(*lua_CFunct1n) (lua_State*L)的接口形式编写;在编写的新函数结构中,通过C API中的lua_toXXX函数获取脚本程序传递来的参数;需要返回结果时,由lua_pushXXX函数将结果压入栈中,再返回结果个数。
[0025]3)编写通过宿主程序调用脚本程序的接口函数,按照以下步骤编写:首先,接口函数通过C API中的lua_getglobal函数将脚本函数名压桟;然后,使用lua_pushXXX函数将需要的参数按顺序压入虚拟栈,再使用lua_pcall函数执行脚本程序;最后,使用lua_toXXX函数获取脚本应用程序的运行结果。
[0026]4)编写错误处理函数:当lua运行抛出异常时,通过lua_tostring函数从桟空间获取脚本错误代码,并将从操作系统获取的时间以及位置等信息保存到日志文件,并送至终端显示。
[0027]5)初始化脚本程序的运行环境和运行状态:
[0028]51)使用 C API 中的 luaL_ne
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1