宏程序契约逻辑合理性的讨论.pdf

宏程序契约逻辑合理性的讨论.pdf

ID:51458687

大小:137.11 KB

页数:2页

时间:2020-03-25

宏程序契约逻辑合理性的讨论.pdf_第1页
宏程序契约逻辑合理性的讨论.pdf_第2页
资源描述:

《宏程序契约逻辑合理性的讨论.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、宏程序契约逻辑合理性的讨论中国南车襄樊牵引电机有限公司机械分厂(湖北441047)郭晓龙契约式编程在数控宏程序中被广泛应用,以保证复漂亮清晰,程序的预定功能也比较实用,在论坛里讨论杂条件下的程序正确性,是一个非常有用的编程手段。的比较热烈。但是如何正确有效地制订程序契约却并不是一件简单的2.运行流程事,如果我们不注意程序契约中逻辑的合理性,就很容(1)读取系统变量#4120,这个变量在FANUC中为易产生无效契约,从而无法实现保证程序正确性,加工当前主轴刀号,将读到的值与调用宏时指定的刀具号进安全性的目的。行比较,以确定当前主轴上的刀具是否为我们想要使用1.程序介绍的刀具,如

2、果是则继续进行刀长补偿的确认。如果主轴下面这个宏程序契约的实例来自某数控论坛的一个刀号与希望使用刀号不相符则跳转到第3步。贴子,用于确认程序中使用的刀补是否正确。原作者对(2)依赖于当前主轴刀号得到对应的刀长偏置号日,程序说明如下:确认其中的刀具长度值是否符合要求,如果符合,程序程序作用:①防止使用错误刀具进行加工。②防止正常结束,返回主程序。如果不符合则跳转到第4步。修改刀具长度时小数点错位。(3)报警,主轴刀号与指定刀号不符。程序机制:加工时先比较主轴上的刀号和程序中设(4)报警,刀具长度不符合要求。定的刀号是否相同,再比较该刀号刀补和程序中设定的(5)程序结束。长度是否

3、在偏差许可范围内。整个程序看上去似乎没什么问题,大多数情况下也程序代码:可以完成检查刀长补偿的作用。但是这个程序却存在着%一个潜在的安全隐患。在程序契约上存在着漏洞,在契08100(TOOLOFFSETCHECK)约条件设定时有一个逻辑错误。我们来看看程序进行刀fG65P81OOTRA$、长补偿检查时的代码:fT=TOOINO.)IF[#[11000+#4120]LTE#18-#1]]GOTO99(R=TOOILENGTH)IF[#[11000+#4120]GTE#18+#1]]GOTO99(A=AREA)程序利用这两行代码来检查当前刀具长度是否在我(SPARETOOLCAN

4、NOTUSE)们希望的刀长范围内。当前刀具长度值的获取是通过用G53数值11000加上当前主轴刀号来得到刀具长度偏置HIrE#4120EQ#20]GOTO10的系统变量号,这个变量里保存着当前刀具号对应长度GOT088偏置H号里的值。将这个值分别与我们在调用宏程序时Nl0指定的刀长值与变化量的和差进行比较,以确认刀长补IFE#[11000+#4120]LT[#18一#1]]GOTO99IFE#[11000+#4120]GT[#18+#1]]GOTO99偿是否正确。GOTO999假设主程序代码如下:N88#3000=1O0(SPINDLETOOLDIFFERENT)T13M6N

5、99#3000=lOI(TOOLLENGTHERROR)G43Hl3N999M99fP8100Tl3R100A0.O】%原程序作者的代码编写很规范,格式、注释都非常参磊工冷加工2010年第6期WWW.meta/working7950.com圜;俎=。⋯其在进行刀长检查时各变量的值如下:号对应的H号。一旦出现主轴刀号与H号不对应的情#4120=13,#18=100,#1=0.O1况,就会令这个契约失效,导致整个检查宏失去应有的此时刀具补偿系统变量号为#l1013,刀长值允许的作用。那么,如何让这个契约符合逻辑,更加严密有效最大值为100.O1,最小值为99.99。当我们在刀长补

6、偿呢?有两种形式,一是在程序中增加对实际使用H号与偏置H13中输人的值在这个范围内则程序正确,否则程刀号是否一致的检查。代码如下:序报警。在这种情况下,我们的宏程序起到了检查刀长偏置的作用,不过,程序中检查的H号,是由主轴刀号IF[#4120EQ#20]GOTO10来决定的,这就给程序留下了一个漏洞。IF[#4111EQ#20]GOTO10GOTO88现在,假设我们的主程序代码变成了这样:T13M6G43H3上述代码可以保证主程序中刀号与H号的一致性,G65P8100T】3R100AO.02如果程序员产生输入错误,输入了错误的H号则程序会报警,让程序员有机会修正错误,防止产生

7、加工错误。请注意,在这里,主程序中实际使用的刀长偏置号不过这种修正方式与FANUC数控系统本身的语法规则为H3,它与刀号并不一致。这在FANUC数控系统中是不是很一致,它实际上限制了同一刀号使用不同H号的允许的,发生这种情况的可能性很多,比如临时换刀,能力,程序的通用性被降低了。或是利用不同的刀长偏置来实现利用同一程序段进行粗另一种修正方法则更简单,我们不管主程序实际使精加工等多个工序。但更多的可能,是编程人员在编程用的是哪个H号,而仅仅检查其中的值是否符合要求,时出现了输入错误,漏输了10位上的1,或

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。