1. 首页
  2. 技术文章

西门子SINUMERIK808自定义界面开发加工配方功能——附源代码

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

SINUMERIK808自定义界面开发加工配方功能——附源代码
SINUMERIK808自定义界面开发加工配方功能——附源代码
SINUMERIK808自定义界面开发加工配方功能——附源代码
SINUMERIK808自定义界面开发加工配方功能——附源代码
SINUMERIK808自定义界面开发加工配方功能——附源代码
SINUMERIK808自定义界面开发加工配方功能——附源代码
SINUMERIK808自定义界面开发加工配方功能——附源代码
SINUMERIK808自定义界面开发加工配方功能——附源代码

    今天给大家分享的是一个自定义界面的一个示例:通过自定义界面开发加工配方功能。加工配方在一个磨床或者专机上用的比较多,通过一个配方可以记录上百个加工参数,根据加工工件的不同可以调用不同的加工配方来实施加工过程,如下:

SINUMERIK808自定义界面开发加工配方功能——附源代码

    该示例加工配方功能又分为“设定”和“读取”两步

SINUMERIK808自定义界面开发加工配方功能——附源代码

设定:可以在自定义界面中输入参数组号和对应的R参数,按下设定键可以保存这些参数在”para.ini”文件中,这个文件会保存在自定义界面文件的系统目录下,该文件也可以通过记事本打开编辑。

SINUMERIK808自定义界面开发加工配方功能——附源代码

读取:在“工艺参数组”输入框中输入配方的编号,比如“1”,按下“读取”键,系统就会在保存好的“para.ini”文件中读取参数值赋值到R参数中

SINUMERIK808自定义界面开发加工配方功能——附源代码

注意事项

  1. “读取”和“设定”功能对应自定义界面中定义的两个函数“pararead”和“paraset”;

  2. 样例程序可以读取/设定100个R参数;

  3. 该功能可以灵活的嵌入到其他自定义界面中;

  4. 读取时如果没有找到对应的参数组,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应用技术】,仅供大家学习交流,如侵权请联系站长删文。

发表评论

登录后才能评论

联系我们

在线咨询:点击这里给我发消息

联系微信:QQ594673193

工作时间:08:00~20:00

QR code