一种基于cplc编写终端的控制程序及其执行装置制造方法

文档序号:6298168阅读:189来源:国知局
一种基于cplc编写终端的控制程序及其执行装置制造方法
【专利摘要】本发明公开了一种基于CPLC编写终端的控制程序,其通过对用户以自然语言的编写的程序进行特定的编译,可以使CPLC产品不需要使用严格的编写格式及编程语言,应用中文自然语言即可实现编辑逻辑程序,使用简单。
【专利说明】一种基于CPLC编写终端的控制程序及其执行装置
【技术领域】
[0001]本发明涉及一种基于CPLC编写终端的控制程序及其执行装置。
【背景技术】
[0002]现有在应用的类似技术是:可逻辑编辑控制器(PLC)。这种产品目前市场上较为普及,但在实现的编程过程是较为复杂的过程,在使用时必须严格遵守相应的专业技术要求来进行,必须非常专业的人员才能够进行,使用起来难度大。

【发明内容】

[0003]本发明提供一种新的方法,可以使产品不需要使用严格的编写格式及编程语言,应用中文自然语言即可实现编辑逻辑程序,使用简单。
[0004]本发明通过几下技术手段实现:
[0005]一种基于CPLC编写终端的控制程序,其通过以下步骤实现:
[0006]SI,读取用户用近自然语言编写的原始控制文件;
[0007]S2,把原始控制程序文件中“//”符号后面内容和“/*”到“*/”之间的内容全部自动去除;
[0008]S3,提取用户自定义的包括逻辑描述关键字和在程序开始段的别名在内的单词词素,将这些词素放到一个列表中;
[0009]S4,将用户定义的别名与逻辑描述关键字与系统预定义的名称和逻辑描述关键字一一对应,形成一个新的列表;
[0010]S5,检查S4列表中的每一个词素与对应的系统预定义的词素是否相同,如果不相同,则显示出错的位置和原因,返回第一步让用户修正写法,直到完全正确则进入下一步;
[0011]S6,编译程序:读入关键字词素流,根据关键字识别语义,生成由中间指令组成的能够实现语法描述的逻辑功能的程序段;
[0012]S7,检查由这些词素组成的语句的描述语法是否符合本系统定义的描述语法;如果语法没有错误,进入下一步;如果有错误则提示用户错误的位置和原因,让用户修正写法,从第一步进行下来直到完全正确则进入下一步;
[0013]S8,编译中间指令代码:把中间指令代码的跳转符号表连接成程序空间的地址,再把中间指令和指令参数由头到尾一一地转换成数值代号并装入到一个连续的地址空间,把数值存入程序空间,从而生成了可以让设备执行的由不同数字值组成程序流。
[0014]进一步的,所述的自然语言为中文自然语言。
[0015]进一步的,所述的关键字及逻辑关系对应表包括表述逻辑的关键字:〃如果(if)〃,”那么(then) 〃,〃否则(else) 〃,〃否则如果(elseif) 〃,〃结束如果(endif) 〃及表示输入口的关键字:〃输入口 O (XO) 〃~〃输入口 n (Xn) 〃,表示输出口的关键字〃输出口 O(YO)~"输出口 n (Yn)"和控制器资源关键字定时计数组O (TCO)"~〃定时计数组n (TCn) 〃,表述模拟量输入口的“ADC0 “~“ADCn”,表述输入状态关键字:“高”,“低”,“上升沿”,“下降沿”。
[0016]一种装载上述控制程序所生成程序流的执行装置,包含一个固有识别程序存储区,用于装载固有执行程序。还包含有一个用户编辑程序存储区,所述装置通过USB线连接到程序编写终端,并将编写的程序下载并烧写到存用户编辑程序存储区中。所述的固有执行程序会从用户编辑程序存储区中加载数据进行识别和逻辑运算,并根据运算结果进行更新执行。还包含若干输入端与输出端,所述的输入端和输出端的动作逻辑由所述用户编辑程序进行编写控制。
[0017]通过以上技术手段实现了使用中文或英文近自然语言的编程来实现根据在输入端口输入的数字值和模拟量值对产品的输出口进行灵活逻辑应用控制,使一般人员即可操作机器的编程及使用,大大降低了产品的使用难度。
【专利附图】

【附图说明】
[0018]图1为本控制程序的实现过程示意图;
[0019]图2为CPLC装载执行本控制程序生成的程序流的过程示意图。
【具体实施方式】
[0020]以下将结合附图对本发明的具体实现过程进行详细描述。
[0021]如图1所示,一种基于CPLC的编写终端的控制程序,首先读取用户用近自然语言编写的原始控制文件;然后把原始控制程序文件中“//”符号后面内容和“/*”到“*/”之间的内容全部自动去除;提取用户自定义的包括逻辑描述关键字和在程序开始段的别名在内的单词词素,将这些词素放到一个列表中,这些词素包含但不限于〃如果(if) 〃,〃那么(then) 〃,〃否则(else) 〃,〃否则如果(elseif) 〃,〃结束如果(endif) 〃等。表示输入口的关键字:〃输入口 O (X0)〃?〃输入口 n (Xn)",表示输出口的关键字〃输出口 O (YO)〃?〃输出口 n (Yn) 〃和控制器资源关键字:〃定时计数组O (TCO) 〃?〃定时计数组n (TCn)〃,内部虚拟触点开关〃虚触点O (AO) 〃?〃虚触点n (An) 〃等。
[0022]之后,将用户定义的别名与逻辑描述关键字与系统预定义的名称和逻辑描述关键字一一对应,如:1定义为高电平,则所有程序中〃高电平〃则转换为“1”,如此形成一个新的列表;
[0023]接着,检查前面生成的关键字列表中的每一个词素与对应的系统预定义的词素是否相同,如果不相同,则显示出错的位置和原因,返回第一步让用户修正写法,直到完全正确则进入下一步;
[0024]具体来说,是检查每一个关键字是否是〃如果〃,〃那么〃,〃否则〃,〃否则如果〃,〃结束如果〃,〃结束定时〃,〃结束子块〃,〃结束主体〃,〃结速计数〃,〃结束当〃,〃延时〃,〃调用〃,〃子块〃,〃定时执行〃,〃主体〃,〃高〃,〃低〃,〃下降沿〃,〃上升沿〃,〃与〃,〃或〃,〃先循环〃,〃先循环条件",〃当〃,〃开始〃,〃取反〃,〃低速脉冲〃,〃低速计数", 〃〈>〃,">","〈","=",">=","〈=","+","*","%",〃(",") ",〃 I ","Χ0"-"Χη","Υ0"-"Υη"等中的字符,检查程序的逻辑描述语法是否正确。如:一个选择逻辑语句中文写法为:
[0025]如果输入口 =高电平
[0026]那么输出口 0=低高电平;[0027]否则输出口 0=低电平;
[0028]结束如果
[0029]英文写法:
[0030]If XO=H then
[0031]YO=H;
[0032]else
[0033]YO=L;
[0034]endif
[0035]然后进行编译程序,即读入关键字词素流,根据关键字识别语义,生成由中间指令组成的能够实现语法描述的逻辑功能的程序段;
[0036]具体来说,例如:一个选择逻辑语句:
[0037]如果输入口 0=高电平
[0038]那么输出口 0=高电平;
[0039]否则输出口 0=低电平;
[0040]结束如果
[0041 ] 显现这个语句描述的语义是:如果第O个输入口的输入电平为高电平时,则第O个输出口就输出高电平(即输出口 O对公共端口导通),否则输出为低电平(即输出口 O对于公共端口断开),〃结束如果〃用来表明这个语句的结束。编译系统通过〃如果〃这个关键字获取要进行条件判断执行,通过〃结束如果〃这个关键字来获取一条完整的逻辑选择描述语句。根据判断条件,系统生成一条读取输入口 O并判断读取到的电平是否为高的指令,同时建立指令跳转的标号表,在条件不成立时,由跳转指令进行跳转执行输出口 O输出低电平的指令,条件成立,则执行输出口输出高电平指令。
[0042]然后,检查由这些词素组成的语句的描述语法是否符合本系统定义的描述语法;如果语法没有错误,进入下一步;如果有错误则提示用户错误的位置和原因,让用户修正写法,从第一步进行下来直到完全正确则进入下一步;
[0043]最后,编译中间指令代码:把中间指令代码的跳转符号表连接成程序空间的地址,再把中间指令和指令参数由头到尾一一地转换成数值代号并装入到一个连续的地址空间,把数值存入程序空间,从而生成了可以让设备执行的由不同数字值组成程序流。
[0044]例如:1、JMP S2这条中间指令是指:"JMP"表示跳转,S2是一个参数,指明跳转到的地方。则在编译连接时,把"JMP"转换成一个数字值代号74并装入程序空间,接着把S2代表的地址数字值(假如是200)也装入程序空间中。2、THIG XO这条中间指令,THIG表示测试,XO表示测试的对像为输入口 0,编译时用数字值I表示THIG,用数字值O表示输入口0,并把数值存入程序空间。这样所有的中间指令代码处理完成后,就生成了一个可以让执行载体执行的由不同数字值组成程序代码流,既可通过USB下载到执行载体中让其内部的程序识别执行。
[0045]一种装载执行上述控制程序所生成程序流的执行装置,本实施例中为CPLC,包含一个固有识别程序存储区,用于装载固有执行程序。还包含有一个用户编辑程序存储区,所述装置通过USB线连接到程序编写终端,并将编写的程序下载并烧写到存用户编辑程序存储区中。所述的固有执行程序会从用户编辑程序存储区中加载数据进行识别和逻辑运算,并根据运算结果进行更新执行。还包含若干输入端与输出端,所述的输入端和输出端的动作逻辑由所述用户编辑程序进行编写控制。
[0046]如图2所示,CPLC装载执行本控制程序生成的程序流过程简单描述如下:
[0047]通过USB线将执行装置连接至控制程序编写终端,可以为PC电脑,在程序界面区域中点击“下载”,则生成的程序会下载到CPLC产品内用于仿真,但掉电后程序会消失,同时弹出下载完成的对话框,表示下载完成。
[0048]程序界面区域中点击“烧写”则将当前生成的程序烧写到产品内永久性保存,掉电也不会消失,然后弹出烧写完成的对话框,表示烧写完成。将编译调试完成的程序下载到产品后将产品与计算机连接的USB线拔掉,重新上电,产品正式脱机运行。
[0049]用户程序由CPLC的固有识别程序,即图2中的虚拟执行模块进行执行,不停地从用户程序空间取出数据,再根据数据进行逻辑执行。例如:
[0050]1、虚拟执行模块读到的数据为1,则表示用户程序的一条THIG指令,接着会再读出一个数据,若为0,则表示读取XO的状态,此端口输入为高电平时返回真(即I),反之则返回假(即O)。并返回保存结果,用于执行后面指令逻辑判断条件。
[0051]2、虚拟执行模块读到的数据为74,则表示用户编辑程序转换成的JMP指令,然后会接着读取下一个数据,若读取的数据为200,就跳转到地址为200的地方继续执行。
[0052]CPLC虚拟执行模块执行所有的指令都按照这个原理规则执行。
[0053]本发明涉及的方法实现了使用中文或英文近自然语言的编程来实现根据在输入端口输入的数字值和模拟量值对CPLC产品的输出口进行灵活逻辑应用控制,使一般人员即可操作机器的编程及使用,大大降低了产品的使用难度。
【权利要求】
1.一种基于CPLC编写终端的控制程序,其通过以下步骤实现: Si,读取用户用近自然语言编写的原始控制文件; S2,把原始控制程序文件中“//”符号后面内容和“/*”到“*/”之间的内容全部自动去除; S3,提取用户自定义的包括逻辑描述关键字和在程序开始段的别名在内的单词词素,将这些词素放到一个列表中; S4,将用户定义的别名、逻辑描述关键字与系统预定义的名称和逻辑描述关键字一一对应,形成一个新的列表; S5,检查S4列表中的每一个词素与对应的系统预定义的词素是否相同,如果不相同,则显示出错的位置和原因,返回第一步让用户修正写法,直到完全正确则进入下一步; S6,检查由这些词素组成的语句的描述语法是否符合本系统定义的描述语法;如果语法没有错误,进入下一步;如果有错误则提示用户错误的位置和原因,让用户修正写法,从第一步进行下来直到完全正确则进入下一步; S7,编译程序:读入关键字词素流,根据关键字识别语义,生成由中间指令组成的能够实现语法描述的逻辑功能的程序段; S8,编译中间指令代码:把中间指令代码的跳转符号表连接成程序空间的地址,再把中间指令和指令参数由头到尾一一地转换成数值代号并装入到一个连续的地址空间,把数值存入程序空间,从而生成了可以让设备执行的由不同数字值组成程序流。
2.根据权利要求1所述的基于CPLC编写终端的控制程序,其特征在于:所述的自然语言为中文书面自然语言。
3.根据权利要求1所述的基于CPLC的编写终端的控制程序,其特征在于:所述的关键字及逻辑关系对应表包括表述逻辑的关键字:〃如果(if) 〃,〃那么(then) 〃,〃否则(else)〃,〃否则如果(elseif)",〃结束如果(endif) 〃及表示输入口的关键字:〃输入口 O (XO)〃?〃输入口 n (Xn)",表示输出口的关键字〃输出口 O (YO) 〃?〃输出口 n (Yn) 〃和控制器资源关键字:〃定时计数组O (TCO)〃?〃定时计数组n (TCn)〃,表述模拟量输入口的“ADC0 “?“ADCn”,表述输入状态关键字:“高”,“低”,“上升沿”,“下降沿”。
4.一种装载有由权利要求1所述控制程序生成的程序流的执行装置,其特征在于:包含一个用户编辑程序存储区,所述执行装置通过USB线连接到程序编写终端,并将用户编写的程序流下载并烧写到存储区中。
5.根据权利要求4所述的执行装置,其特征在于:还包含有固有识别程序存储区,所述的固有识别程序存储区从用户编辑程序存储区中下载程序并执行。
6.根据权利要求4所述的执行装置,其特征在于:还包含若干输入端与输出端,所述的输入端和输出端根据用户编辑程序进行逻辑控制。
【文档编号】G05B19/05GK103645669SQ201310667073
【公开日】2014年3月19日 申请日期:2013年12月10日 优先权日:2013年12月10日
【发明者】梁日才, 吴境, 付婉芳 申请人:梁日才, 吴境, 付婉芳
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1