功能包
功能包的概念来自于插件化开发的思想,指一个功能可能涉及多项技术,如参数、子程序、PLC等。但是,对于整个软件来说,无论涉及技术数量多少,在做业务定制时,增减的基本单位都是功能。
因此,Phoenix 框架衍生出功能包的概念,将功能包作为定制开发的基本单位。
功能包组成
每款软件的功能包文件数量不固定,取决于实际需求。可在软件包文件 \Tocs\
目录下找到。
一个功能包主要包括以下类型的文件:
.mod
文件:模型数据文件。.param
文件:参数文件。.ncprog
文件:子程序文件。.plc
文件:梯形图PLC文件。.target
文件:界面脚本文件。.toc
文件:功能包配置清单文件。
.mod 文件
用于定义数据模型的文件,包括数据的名称、类型、默认值等信息,文件格式为 XML。
添加功能前,必须先在 .mod
文件中定义所需的数据,以生成 寻址,供其他文件或函数中使用。
定义数据模型的基本语法如下:
<Mods>
<Class>
<Member Type="" Name="" Value="" />
</Class>
</Mods>
其中,
- Mods:根节点。一个数据模型对应一个根节点。
- Class:自定义的类名称。建议根据功能命名。
- Member:成员。
- Type:成员类型,支持Int,Boolean,Double和String类型的数据。
- Name: 成员名称。
- Value:默认值。根据Type类型合理定义成员的初始值。
在上述基本语法的基础上,可通过扩展和嵌套,配置多级更为复杂的 .mod
文件。有以下方式:
单层嵌套式:在每个类和成员之间,通过Items字段嵌套一层数据定义。
语法如下:
<Mods> <Class> <Items Type="" Name=""> <Member Type="" Name="" Value="" /> </Items> </Class> </Mods>
多层嵌套式:在每个类和成员之间,通过Items字段嵌套多于一层的数据定义。
语法如下:
<Mods> <Class> <Items Type="" Name=""> <Items Type="" Name=""> <Member Type="" Name="" Value="" /> </Items> </Items> </Class> </Mods>
复合式:在一个根节点下,定义两个及以上个类。
语法如下:
<Mods> <Class> <Member Type="" Name="" Value="" /> </Class> <Class> <Member Type="" Name="" Vlaue="" /> </Class> </Mods>
.param 文件
用于配置参数的文件。
定义一个参数的基本语法如下:
Users = {
Parameter = {
--此处配置具体的参数内容
}
}
以主轴停止延时参数为例,以下为参数的详细内容:
["Phoenix.G.Spindle.Delay"] = {
Name = "主轴启动停止延时",
Number = "MC00105",
Desc = "主轴启动停止延时",
Tag = "Manufacturer,MC",
Unit = "s",
Format = "%f3",
Condition = [[CanEdit]],
Check = [[
function(p)
local maxequal = 60
local minequal = 0
return Check_LE_GE(p,minequal,maxequal)
end;
]]
属性 | 含义 |
---|---|
Name | 名称 |
Number | 编号 |
Desc | 描述信息 |
Tag | 分类 |
Unit | 单位 |
Format | 格式化位数。如1位,则%f1 |
Condition | 允许编辑的条件 |
Check | 范围校验函数 |
Multiple | 显示值是该参数值的Multiple倍,主要对速度类参数应用。代码中速度的单位是mm/s,但显示的数据单位是mm/min. |
.ncprog 文件
用于编写运动控制子程序,使用G、M指令,遵循NcStudio编程规范。
详情请查阅维宏 《NcStudio编程手册》。
.plc 文件
用于编写PLC程序,遵循PLC编程规范。
.toc 文件
用于配置某一功能包中的插件清单。基本语法如下:
--在功能包配置清单中添加功能插件。Function为功能名称。
Tocs.Function = {}
--配置功能包文件清单。根据功能实际实现需要的文件配置。
Tocs.Function.Manifest = {
"Function.mod",
"Function.ncprog",
"Function.param",
"Function.plc",
--构建函数。选配。
Tocs.Function.Create = function()
end
--初始化函数。选配。
Tocs.Function.Initialization = function()
end
--启动函数。选配。
Tocs.Function.Initiate = function()
end
--关闭函数。选配。
Tocs.Function.Halt = function()
end
--释放函数。选配。
Tocs.Function.Dispose = function()
end
}
添加一个功能包
请参考以下步骤,自定义并添加一个功能包:
- 创建
.mod
文件,定义功能实现所需数据,生成寻址,供功能包中其他文件中使用。 - 创建功能包所需的文件,视具体实现而定。
- 创建
.toc
文件,配置功能包配置文件。