签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
请教:“循环”和子程序的区别?
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1742041&b_id=20&s_id=0&num=15
循环比子程序功能更全面点,循环可以用用户界面来传递变量,操作比较直观,而子程序就没有这个功能。
都是NC程序的一种方式,循环一般是比较简单的重复,子程序就不一定了,更灵活一些。
没有太大区别,习惯而已。
有可能不是,用户界面是制造商为了机床某些功能或者应用编写的,区别于标准界面。其位置看制造商编写放的位置。建议看制造商编写的说明书。
循环指令是系统厂家做好的做某个简单工序的宏程序,如G81等。
子程序是可以自己编写的针对具体遇到的工序的宏程序,如G65
楼主说的循环是指西门子的标准循环吗?如果是的话,循环其实就是一个程序名为CYCLExxx(xxx为数字)的带参数传递子程序,是西门子的工程师按应用场景编制好的子程序,并能能通过修改HMI界面来达到参数传递的效果。当你运用循环编程设置好一个循环后,实际上是把你设置的各个参数对应到子程序的参数列表中。因此,当你设置和接收一个循环后,在你的程序中实际上是生成了一段带参数传递子程序调用的代码。CYCLExxx的括号中就是子程序的参数列表,每个参数直接用逗号“,”分隔开,在子程序中庸PROC CYCLEXXX()的语句来定义子程序为带参数传递的子程序和变量列表,改语句必须放在程序的开头。如下图高亮显示部分。
循环的子程序都在标准循环的路径下面,如下图:
9楼解释的很清晰!
循环程序和子程序在程序本质上没有区别。
只不过循环程序放在了NC数据的循环文件夹里,NC启动的时候扫描到了这个程序,在后期调用时不需要使用EXTERN声明这是个带参数传递的子程序!这也是为什么第一次把循环程序放在循环里之后直接在加工程序里调用不能用的原因。
如果这个循环程序不放在循环文件夹里,放在子程序文件夹里,那么调用这个程序前必须声明他是带参数传递性质的子程序。
//////////////////////////////////////////////////////////////
举个“栗子”,DFGDS.SPF是带参数传递的子程序(传递的参数分别有8字节字符串、整数、实数、布尔),
DFGDS.SPF的内容大概如下:
;_N_DFGDS_SPF
PROC DFGDS(STRING[8] _Name,INT _Number,REAL _Data, BOOL _Err)
...
RET
下面我在POIUY.MPF的加工程序里调用它。
(1)DFGDS.SPF放在子程序文件夹内,NC不需要重启。
;$PATH=/_N_MPF_DIR
;_N_POIUY_MPF
EXTERN DFGDS(STRING[8],INT,REAL,BOOL)
DFGDS(TEST,101,3.14159,0)
M30
(2)DFGDS.SPF放在循环文件夹内,第一次放NC需要重启。
学到了感谢大神分享
完全是2个东西
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录