用户自定义界面功能是SINUMERIK 808数控系统常用的一个功能,利用这个功能,用户可以开发一些自己特有的机床画面,比如参数设定、故障诊断、工艺参数设定、产品介绍等,在机床行业竞争激烈的今天,通过自开发的机床界面可以形成机床厂一个独特的卖点。在常规的车床、铣床,特别是磨床、专机等一些非标机床上,设计和开发界面更是成了机床研发过程中一个必不可少的环节。








今天给大家分享的是一个自定义界面的一个示例:通过自定义界面开发加工配方功能。加工配方在一个磨床或者专机上用的比较多,通过一个配方可以记录上百个加工参数,根据加工工件的不同可以调用不同的加工配方来实施加工过程,如下:
该示例加工配方功能又分为“设定”和“读取”两步
设定:可以在自定义界面中输入参数组号和对应的R参数,按下设定键可以保存这些参数在”para.ini”文件中,这个文件会保存在自定义界面文件的系统目录下,该文件也可以通过记事本打开编辑。
读取:在“工艺参数组”输入框中输入配方的编号,比如“1”,按下“读取”键,系统就会在保存好的“para.ini”文件中读取参数值赋值到R参数中
注意事项:
-
“读取”和“设定”功能对应自定义界面中定义的两个函数“pararead”和“paraset”;
-
样例程序可以读取/设定100个R参数;
-
该功能可以灵活的嵌入到其他自定义界面中;
-
读取时如果没有找到对应的参数组,R参数会保持不变;
“pararead”函数代码:
<function_body name=”pararead”>
<let name=”filename” type=”string”></let>
<let name=”doext” type=”int”>0</let>
<let name=”filecont” type=”string”></let>
<let name=”midcont” type=”string”></let>
<let name=”paran” type=”int”>0</let>
<let name=”paracnt” type=”int”>0</let>
<let name=”readcont” type=”string”></let>
<let name=”entindex” type=”int”>0</let>
<let name=”substr” type=”string”></let>
<let name=”mindex” type=”int”></let>
<let name=”index”></let>
<let name=”numbstr” type=”string”></let>
<print name=”filename” text=”f:applpara%d.ini”>parach</print>
<function name=”doc.exist” return=”doext”>filename</function>
<if>
<condition> doext == 1</condition>
<then>
<function name=”doc.readfromfile” return=”readcont”>filename</function>
<for>
<init>
<op>index=0</op>
</init>
<condition> index<= 100</condition>
<increment>
<op>index = index + 1</op>
</increment>
<function name=”string.find” return=”entindex”>readcont, _T”\n”</function>
<function name=”string.left” return=”substr”>readcont, entindex</function>
<function name=”string.trimright”>substr</function>
<op>entindex = entindex +1</op>
<function name=”string.delete”>readcont,0,entindex</function>
<type_cast name=”substr” type=”float”/>
<op> “Nck/Channel/Parameter/R[$index]”= substr</op>
<type_cast name=”ftrans” type=”string”/>
</for>
</then>
<else>
</else>
</if>
</function_body>
“paraset”函数代码:
<function_body name=”paraset”>
<let name=”filename” type=”string”></let>
<let name=”doext” type=”int”>0</let>
<let name=”filecont” type=”string”></let>
<let name=”midcont” type=”string”></let>
<let name=”paran” type=”int”>0</let>
<let name=”paracnt” type=”int”>0</let>
<let name=”readcont” type=”string”></let>
<let name=”entindex” type=”int”>0</let>
<let name=”substr” type=”string”></let>
<let name=”index”></let>
<let name=”numbstr” type=”string”></let>
<let name=”R_1″ type=”float”></let>
<print name=”filename” text=”f:applpara%d.ini”>parach</print>
<for>
<init>
<op>index=0</op>
</init>
<condition> index <= 100</condition>
<increment>
<op>index = index + 1</op>
</increment>
<op>R_1=”Nck/Channel/Parameter/R[$index]”</op>
<print name=”midcont” text=”%f”>R_1</print>
<op>filecont = filecont + midcont + _T”\n”</op>
</for>
<function name=”doc.writetofile”>filename,filecont</function>
</function_body>
本文转载来自【公众号:Sinumerik808D应用技术】,仅供大家学习交流,如侵权请联系站长删文。