1.本发明涉及工业控制编程语言技术领域,尤其涉及一种基于条件编译的柔性下载方法。
背景技术:
2.可编程逻辑控制器作为智能工厂建设的重要一环,其承担着“工业控制大脑”举足轻重 的角色。针对柔性化智能制造解决方案新挑战,目前急需研发一种基于条件编译的柔性下载 方法,可以实现控制程序的多样性、柔性化需求。
[0003][0004]
一种模式的工业控制程序很难满足日益复杂的柔性化控制需求,尤其是对于不同控制机 型、不同控制工艺、可伸缩性和可扩展性好的个性化需求程序,目前需要开发多个版本的控 制程序,每个版本的程序只能实现一种业务场景逻辑,此模式比较单一并且不灵活,用户程 序维护成本极高而且不易管理和保存,同时也不具备灵活性和良好的可扩展性,所以研发一 种基于条件编译的柔性下载方法刻不容缓。
技术实现要素:
[0005]
本发明的目的在于克服上述现有技术的问题,提供了一种基于条件编译的柔性下载方 法,为用户程序配对代码段附加条件编译标签,尤其是国际电工委员会编写的梯形图、指令 表、结构文本、顺序功能图、功能块图、连续功能图六种标准语言,可以在程序上附加条件 编译标签选择性编译用户控制程序。用户通过在已有配对程序代码段上附加标签的方式来实 现用户控制程序的按条件方式选择性编译,同时也可以充当代码注释的作用,不同的标签视 实际情况可以定义不同的含义,并可以通过标签编辑灵活组合的方式实现复杂的条件编译业 务逻辑。可以快速、方便地解决用户控制程序支持多机型不适配、不灵活、可扩展性差、可 伸缩性差等痛点问题,满足了用户多样性、个性化、柔性化等开发需求,极大地提高了用户 的便利性和黏性程度,降低了用户控制程序维护成本和业务逻辑实现的复杂性。
[0006]
上述目的是通过以下技术方案来实现:
[0007]
一种基于条件编译的柔性下载方法,包括标签管理模块、标签编辑模块、标签语法模块、 条件编译模块、下载模式模块和下载程序模块,步骤如下:
[0008]
步骤s1:通过标签管理模块为用户程序配对代码段创建标签,并生成标签仓库;
[0009]
步骤s2:通过标签编辑模块在程序代码段任意位置自由插入所述标签仓库中的标签,生 成有标签匹配的程序代码;
[0010]
步骤s3:通过标签语法模块对所述标签匹配的程序代码的标签的有效性进行语法规则检 查,若为有效标签匹配的程序代码则予以通过,以黑色显示;若为无效标签匹配的程序代码 段则予以不通过,以灰色淡化显示;
[0011]
步骤s4:通过条件编译模块对所述有效标签匹配的程序代码进行编译,生成机器
最终可 以执行的代码;
[0012]
步骤s5通过下载模式模块按需快速切换多种下载模式,不同的下载模式匹配对应不同 的定义标签,可以灵活智能的条件编译包含所述定义标签的用户程序代码段;
[0013]
步骤s6通过下载程序模块对选择的下载模式下对应的机器最终可以执行的代码实现柔 性下载。
[0014]
进一步地,所述步骤s6中还包括规则检查模块,柔性下载前通过所述规则检查模块对 需要下载的程序代码进行规则检查与编译。
[0015]
进一步地,所述规则检查模块主要包括单标签语法检查、多标签表达式语法检查、用户 程序语法检查、下载数据检查;
[0016]
所述单标签语法检查主要检查标签名是否合法,命名规则是只能包括字母、数字、下划 线,首单词只能是字母和下划线;
[0017]
所述多标签语法检查在单标签语法检查的基础上加入了与或非等操作符规则的检查;
[0018]
所述用户程序主要检查语法及语义是否合法,按特定规则检查;
[0019]
所述下载数据检查主要检查用户数据是否合法及有效。
[0020]
进一步地,步骤s1中所述创建标签,包括标签定义、标签删除和标签修改;所述标签 包括预定义标签和自定义标签;所述预定义标签事先根据机型信息或特定条件预先定义,用 户可以直接使用不需要定义,预定义标签不能删除,主要用于快速绑定机型的程序,实现机 型差异化控制程序的目的;所述自定义标签完全由用户控制不受预定义限制。
[0021]
进一步地,所述步骤s2中标签编辑时支持单标签或多标签表达式,多标签支持标签自 由灵活组合,通过与或非连接符连接可以实现复杂控制程序业务需求。
[0022]
进一步地,步骤s3中所述语法规则检查,具体为:所述标签语法模块定义了父子标签 嵌套规则和单标签或多标签语法规则,配对程序代码段可以支持父子级标签多层嵌套规则;
[0023]
若父子级标签嵌套规则是父标签有效,若子标签同时有效则将子标签匹配的程序代码段 参与条件编译,若子标签无效则子标签匹配的程序代码段不参与条件编译,父子级标签搜索 支持递归遍历查找;
[0024]
若父标签无效,则不搜索其子标签,父标签匹配的所有程序代码段都不参与到条件编译, 通过父子级标签的嵌套组合可以实现复杂的控制程序业务逻辑;
[0025]
多标签表达式由多个单标签组成,单标签通过与或非连接符连接可以实现复杂组合条件 关系。
[0026]
进一步地,步骤s5中所述下载模式模块与用户定义的标签相互关联,建立了匹配映射 关系表,一种下载模式可以包含多个标签并实现单向的一对多逻辑关系,实现下载模式与定 义标签完全绑定匹配;所述下载模式的编辑包括:自定义增加、删除、修改。
[0027]
进一步地,还包括标签检索模块,所述标签检索模块可以按序递归遍历标签树,实现对 待检索标签的高亮匹配和定位。
[0028]
进一步地,所述标签检索模块中标签检索方式主要包括:精确匹配和模糊匹配两种检索 方式,两者都可以预先设置大小写是否敏感,精确匹配是按标签名完全匹配,模糊匹配支持 正则表达式或通配符模糊匹配。
[0029]
进一步地,所述标签检索模块的操作为,用户输入待检索的标签,匹配后以高亮颜色显 示,并定位滚动到用户最佳程序可视区,最终以表格方式列举出检索信息,主要信息包括标 签名称、标签位置、程序代码段引用,双击表格行可以定位到具体位置。
[0030]
有益效果
[0031]
本发明所提供的一种基于条件编译的柔性下载方法,用户通过在已有配对程序代码段上 附加标签的方式来实现用户控制程序的按条件方式选择性编译,同时也可以充当代码注释的 作用,不同的标签视实际情况可以定义不同的含义,并可以通过标签编辑灵活组合的方式实 现复杂的条件编译业务逻辑。本方法可以很好的满足用户个性化、多样化的柔性控制需求, 以实现不同控制机型和厂家适配,并实现控制工艺个性化目的,此外,基于条件编译可以极 大地提高用户程序模块化编译速度,程序支持多种条件模式适配,有利于后期长期维护和管 理。
附图说明
[0032]
图1为本发明所述一种基于条件编译的柔性下载方法的流程图;
[0033]
图2为本发明所述一种基于条件编译的柔性下载方法的功能模块图;
[0034]
图3为本发明所述一种基于条件编译的柔性下载方法的标签管理模块操作示意图;
[0035]
图4为本发明所述一种基于条件编译的柔性下载方法的标签编辑模块操作示意图;
[0036]
图5为本发明所述一种基于条件编译的柔性下载方法的标签语法模块操作示意图;
[0037]
图6为本发明所述一种基于条件编译的柔性下载方法的条件编译模块操作示意图;
[0038]
图7为本发明所述一种基于条件编译的柔性下载方法的下载模式模块操作示意图;
[0039]
图8为本发明所述一种基于条件编译的柔性下载方法的下载程序模块操作示意图;
[0040]
图9为本发明所述一种基于条件编译的柔性下载方法的规则检查模块操作示意图;
[0041]
图10为本发明所述一种基于条件编译的柔性下载方法的标签检索模块操作示意图。
具体实施方式
[0042]
下面根据附图和实施例对本发明作进一步详细说明。所描述的实施例仅仅是本发明一部 分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出 创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0043]
如图1和2所示,一种基于条件编译的柔性下载方法,一种基于条件编译的柔性下载方 法,包括标签管理模块、标签编辑模块、标签语法模块、条件编译模块、下载模式模块和下 载程序模块,步骤如下:
[0044]
步骤s1:通过标签管理模块为用户程序配对代码段创建标签,并生成标签仓库;
[0045]
步骤s2:通过标签编辑模块在程序代码段任意位置自由插入所述标签仓库中的标签,生 成有标签匹配的程序代码;
[0046]
步骤s3:通过标签语法模块对所述标签匹配的程序代码的标签的有效性进行语法规则检 查,若为有效标签匹配的程序代码则予以通过,以黑色显示;若为无效标签匹配的程序代码 段则予以不通过,以灰色淡化显示;
[0047]
步骤s4:通过条件编译模块对所述有效标签匹配的程序代码进行编译,生成机器最终可 以执行的代码;
[0048]
步骤s5通过下载模式模块按需快速切换多种下载模式,不同的下载模式匹配对应不同 的定义标签,可以灵活智能的条件编译包含所述定义标签的用户程序代码段;
[0049]
步骤s6通过下载程序模块对选择的下载模式下对应的机器最终可以执行的代码实现柔 性下载。
[0050]
具体的,如图9所示,所述步骤s6中还包括规则检查模块,柔性下载前通过所述规则 检查模块对需要下载的程序代码进行规则检查与编译。
[0051]
所述规则检查模块主要包括单标签语法检查、多标签表达式语法检查、用户程序语法检 查、下载数据检查;
[0052]
所述单标签语法检查主要检查标签名是否合法,命名规则是只能包括字母、数字、下划 线,首单词只能是字母和下划线;
[0053]
所述多标签语法检查在单标签语法检查的基础上加入了与或非等操作符规则的检查;
[0054]
所述用户程序主要检查语法及语义是否合法,按特定规则检查;
[0055]
所述下载数据检查主要检查用户数据是否合法及有效。
[0056]
如图3所示,步骤s1中标签管理模块管理了所有的标签信息,所述创建标签包括标签 定义、标签删除和标签修改等操作;标签定义时用户可以附加有含义的说明信息,标签名不 支持重复且必须遵循特定的命名规则。
[0057]
标签定义方式主要包括预定义和自定义两种,预定义标签事先根据机型信息或特定条件 预先定义,用户可以直接使用不需要定义,预定义标签不能删除,主要用于快速绑定机型的 程序,实现机型差异化控制程序的目的。用户可以自定义标签,完全由用户控制不受预定义 限制,例如绑定特定厂家和条件的程序代码段,通过单标签或多标签表达式实现条件编译。
[0058]
预定义标签和自定义标签构成了标签仓库,在标签编辑时为用户标签过滤筛选及智能化 提示,这是支持用户控制程序条件编译的先要基础条件,为标签编辑模块提供了强有力的支 撑。
[0059]
如图4所示,所述步骤s2中标签编辑模块标签编辑的位置必须附加在配对程序代码段 上,条件编译标签赋予了用户程序特定的条件编译属性,标签输入时按标签库定义的标签智 能下拉提示和筛选过滤,提高了编辑速度和效率。标签列表下拉时可以显示详细的标签信息 供用户参考选择,通过快捷键可以显示语法向导信息提示。
[0060]
标签定义编辑时支持单标签或多标签表达式,多标签支持标签自由灵活组合,通过与或 非连接符连接可以实现复杂控制程序业务需求。
[0061]
标签编辑完毕,待语法检查确认标签是否合法,若标签合法予以通过;
[0062]
标签非法则友好信息提示,通过标签编辑的颜色可以显示标签是否合法。
[0063]
具体的,所述标签编辑模块编辑方式主要是标签手动录入,用户可以在特定程序代码段 位置方便的自由编辑单标签或多标签表达式,标签录入只能附加到配对的程序代码段上。标 签编辑时弹出输入标签智能提示,帮助用户快速筛选过滤标签和提示标签详细信息,标签编 辑完毕通过标签语法检查确认标签是否符合语法规则,只有合法的单标签或多标签表达式方 可语法检查通过,不合法的单标签或多标签表达式给予用户友好提示以实现人性化交互,多 标签间可以通过与或非等操作符连接。有效标签匹配的程序代码段以黑色显示,无效标签匹 配的程序代码段以灰色淡化显示,方便用户浏览。
[0064]
如图5所示,步骤s3中所述语法规则检查,步骤为:所述标签语法模块定义了父子标 签嵌套规则和单标签或多标签语法规则,配对程序代码段可以支持父子级标签多层嵌套规 则;
[0065]
若父子级标签嵌套规则是父标签有效,若子标签同时有效则将子标签匹配的程序代码段 参与条件编译,若子标签无效则子标签匹配的程序代码段不参与条件编译,父子级标签搜索 支持递归遍历查找;
[0066]
若父标签无效,则不搜索其子标签,父标签匹配的所有程序代码段都不参与到条件编译, 通过父子级标签的嵌套组合可以实现复杂的控制程序业务逻辑;
[0067]
多标签表达式由多个单标签组成,单标签通过与或非连接符连接可以实现复杂组合条件 关系。
[0068]
具体的,所述标签语法模块定义了标签命名及多标签之间的操作符连接规则、父子级标 签嵌套关系等。单标签命名方式遵循只能包含字符、数字、下划线,标签首单词只能是字符 或下划线。多标签可以通过与或非等操作符连接,但必须符合多标签表达式定义规则。父子 级标签嵌套规则是父标签有效,若子标签同时有效则将子标签匹配的程序代码段参与条件编 译,若子标签无效则子标签匹配的程序代码段不参与条件编译,父子级标签搜索支持递归遍 历查找;若父标签无效,则不搜索其子标签,父标签匹配的所有程序代码段都不参与到条件 编译,通过父子级标签的嵌套组合可以实现复杂的控制程序业务逻辑。多标签表达式由多个 单标签组成,单标签通过与或非连接符连接可以实现复杂组合条件关系,父子级标签嵌套组 合可以实现复杂的嵌套条件编译,基本可以完全符合用户复杂控制需求。
[0069]
如图6所示,所述条件编译模块主要就配对程序代码段所在的标签是否有效可以选择性 的条件编译用户程序,编译生成机器最终可以执行的代码。
[0070]
条件编译特指包含有效标签的用户程序代码段,程序在转换成对应抽象语法树的同时过 滤包含无效标签匹配的用户程序代码段,有效标签包含的用户程序代码段才参与编译。
[0071]
编译过程主要包括代码预处理、编译过程、汇编过程、链接过程,最终生成机器可执行 的代码。条件编译按用户个性化需求选择性编译用户程序代码段,一套用户程序即可实现多 样性、个性化复杂业务逻辑,并支持多机型信息适配,极大地降低了用户程序维护成本,同 时减小了用户程序的体积,提高了模块化编译速度和下载速度。
[0072]
所述条件编译模块检索用户程序查找配对标签代码段,不包含条件编译标签的程
序代码 段默认全部参与编译,包含条件编译标签的程序代码段首先进行标签语法检查,父子级标签 支持递归层级查找,有效的父子级标签匹配的程序代码段才参与编译。父子级标签嵌套时若 父标签有效,则将父标签匹配的程序代码段参与编译过程,若父标签无效则不参与编译过程, 父标签嵌套的子标签编译过程同理所述。条件编译优势是支持程序按用户实际需求选择性编 译,极大地提高了用户程序的柔性,支持用户开发多样性、个性化控制需求。
[0073]
如图7所示,步骤s5中所述下载模式模块与用户定义的标签相互关联,建立了匹配映 射关系表,一种下载模式可以包含多个标签并实现单向的一对多逻辑关系,实现下载模式与 定义标签完全绑定匹配;所述下载模式的编辑包括:自定义增加、删除、修改,并备注下载 模式相应的说明。用户无需手动输入提高匹配速度和时间。用户通过下载模式的快速切换, 可以控制相应标签的有效性,即控制用户程序代码段是否参与条件编译,帮助用户程序实现 柔性化、个性化、多样化快速下载的目的,同时极大地降低了代码维护成本。
[0074]
如图8所示,所述下载程序模块通过快速切换下载模式可以实现柔性化下载,不同的下 载模式匹配对应不同的定义标签,可以灵活智能的条件编译包含定义标签的用户程序代码 段。
[0075]
下载前自动调用规则检查并编译、下载生成的最终机器可执行的代码,精简用户程序并 极大地减小了程序体积和执行时间。
[0076]
如图9所示,所述规则检查模块主要包括单标签语法检查、多标签表达式语法检查、用 户程序语法检查、下载数据检查;
[0077]
所述单标签语法检查主要检查标签名是否合法,命名规则是只能包括字母、数字、下划 线,首单词只能是字母和下划线;
[0078]
所述多标签语法检查在单标签语法检查的基础上加入了与或非等操作符规则的检查;
[0079]
所述用户程序主要检查语法及语义是否合法,按特定规则检查;
[0080]
所述下载数据检查主要检查用户数据是否合法及有效。
[0081]
如图10所示,还包括标签检索模块,所述标签检索模块主要帮助用户快速定位标签所 在的位置和替换标签功能,可以按序递归遍历标签树,实现对待检索标签的高亮匹配和定位。 所述标签检索模块中标签检索方式主要包括:精确匹配和模糊匹配两种检索方式,两者都可 以预先设置大小写是否敏感,精确匹配是按标签名完全匹配,模糊匹配支持正则表达式或通 配符模糊匹配。所述标签检索模块的操作为:用户输入待检索的标签,匹配后以高亮颜色显 示,并定位滚动到用户最佳程序可视区,最终以表格方式列举出检索信息,主要信息包括标 签名称、标签位置、程序代码段引用,双击表格行可以定位到具体位置。
[0082]
具体的,标签检索方法是自标签树根部开始按序遍历递归搜索到叶子节点为止,待匹配 到检索的标签即可获取标签相应程序代码段所在的位置。检索规则支持标签精确检索和模糊 检索,精确检索需要完全匹配标签名称,但可以设置是否区分标签名大小写,模糊检索可以 支持正则表达式、通配符等检索方式,由用户视具体应用方式选择特定标签检索规则,尤其 是在用户程序代码量比较大时可以方便快速匹配定位标签具体位置,双击标签名可以快速定 位并浏览相关程序代码段。
[0083]
以上所述仅为说明本发明的实施方式,并不用于限制本发明,对于本领域的技术人员来 说,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发 明的保护范围之内。
转载请注明原文地址:https://doc.8miu.com/index.php/read-1722199.html