找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
子程序在制造商循环里面。
N10 PROC STEP21 (VAR INT LENGTH1, VAR INT WITCH1)SAVE
N20 G0X=LENGTH
N30 LENGTH=20
G4F4
N50 G0X=LENGTH+WITCH
N60 G4F5.0
N70 M17
问题1,如何操作直接数值调用,不用EXTERN
问题2,主程序如果写成step21(length,witch)。子程序里面的LENGTH1, WITCH1,为什么不能写成和主程序length,witch一样的(12080,句法错误的报警)。
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
问题1:
子程序头:
PROC STEP21 (INT LENGTH1, INT WITCH1) SAVE
放在制造商循环里。
主程序调用的时候,不需要用EXTERN来说明。
主程序可以直接这样调用
N20 DEF INT LENGTH,WITCH
N30 LENGTH=3
N40 WITCH=4
N50 STEP21(6,7)
N60 G4F33.
N70 G0X=LENGTH
N80 M30
这里的问题主要就是带参数传递的子程序调动,VAR是带特殊说明主程序和子程序要唯一对应的变量关系,如果不带VAR,那么就不是变量对应,而是位置对应就可以了。
两个方式使用我都示范一下:
A:
主程序:
EXTERN STEP21 (VAR INT,VAR INT)
DEF INT LENGTH,WITCH
STEP21( LENGTH,WITCH)
M30
子程序:
PROC STEP21(VAR INT LENGTH,VAR INT WITCH)
这里不需要定义这两个变量,在主程序里定义。
M17
B:
主程序;
EXTERN STEP21(INT,INT)
DEF INT LENGTH,WITCH
LENGTH=3
WITCH=4
STEP21(LENGTH,WITCH)
M30
子程序
PROC STEP21(INT LENGTH,INT LENGTH)
M17
基本就是这样了。另外SAVE属性保存的指令,建议最好不带,这样就不用多余考虑一些东西。如果我说的不够明白,可以再提问我。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城