找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 4896|回复: 13

西門子840d 子程序問題求教

[复制链接]
发表于 2015-8-25 17:42:31 | 显示全部楼层 |阅读模式
參數傳遞問題,希望有經驗的朋友給個幫助5 u8 F, E, `, G" L" F
主程序:
0 g; \6 U; j4 [% f; y5 bLB_1234(1)      ;調用子程序
+ H# z5 |  }  b5 ]8 _! T. i8 |0 GM30" l2 i! m1 v* P7 r
$ f/ a4 |* |) |9 t1 |
子程序LB_1234:
4 w$ i+ [1 ?9 Xproc LB_1234(int type)
/ K2 x3 H0 g( pif ($p_sbupar==true )
8 J* J" S3 q* k: L" ?+ F$ }1 D: L7 igotof xxx* m( e) a' R% U& i, {. G
else
' z' Z2 M8 S& o) c9 d1 C# n: D, Vgotof xxx& a9 v! z/ T' c% M7 ~8 C
2 l* L% f+ J7 `8 z; ?
. S6 W8 m; n; J" L

% n, z* D# c* Jret8 K- W1 E; W. c' M; v* K
& z6 V5 H( Q1 X
如果主程序內不賦參數傳遞,程序可運行。一旦賦值了參數傳遞,主程序就報錯未激活未定義之類。感覺賦值子程序需要激活某參數或權限之類的,望高手解答。6 t3 N' z% x8 f4 p, b# k
回复

使用道具 举报

发表于 2015-8-25 20:05:18 | 显示全部楼层
主程序里没定义
 楼主| 发表于 2015-8-25 21:00:21 | 显示全部楼层
螺旋线 发表于 2015-8-25 20:05
/ q6 L+ v9 p' |7 x& x+ b+ O) u. {主程序里没定义

1 ^4 R4 }$ E% I. W+ m還要定義什麼?7 c, H# v0 j0 c$ f! Y' C, S
. X3 n. N" M# a2 G  h/ \
发表于 2015-8-25 23:33:54 | 显示全部楼层
wangice 发表于 2015-8-25 21:00
2 O/ _) M! m( @3 O" d還要定義什麼?

" P& ]2 r& G( N* Y1 N% p3 w: U' m所以说啊,看书要仔细。
$ A& o( u+ ]) r6 G" w6 Z9 d书上写的很清楚,要用参数传递的子程序调用,要在主程序里先声明,用EXTERN。$ I) [/ w5 [6 ?" E) S7 B
你写的子程序就是抄书上的,虽然没抄全。但为什么不把主程序抄全?# U( v" T& O5 L' x3 ]9 ~
而且报警也提醒得很清楚啊。
% o) p1 B" ?8 X2 t1 r  V: r; a
/ m- b2 a5 H7 `
 楼主| 发表于 2015-8-26 05:07:05 | 显示全部楼层
螺旋线 发表于 2015-8-25 23:33 * |* v7 _" W/ o+ @6 G
所以说啊,看书要仔细。
: J! ^/ h6 U1 k5 b$ b5 l/ F书上写的很清楚,要用参数传递的子程序调用,要在主程序里先声明,用EXTERN。
! Y8 U* S9 k- T# q. I/ M/ Y# ^9 X& X ...

2 S# _" u  b7 _$ l% `! Y* C需要在主程序中聲明嗎?
* S2 O! B5 f5 L% R4 T很多使用西門子系统的機床製造商,在系统內添加了很多自己製作的循環程序,這些程序在運行中也是可以賦值的,甚至可以在MDA模式下只運行賦值的子程序這一條指令,這個過程中也沒有對賦值有過任何說明。
0 _9 w- q+ r- [不知道他們是通過什麼方式實現的。' C% e( c& M6 W! C5 c  Y3 q3 f
 楼主| 发表于 2015-8-26 05:29:01 | 显示全部楼层
西門子標準循環指令CYCLE81(,,,),在使用中有誰對括號內的賦值有聲明嗎?唯一的區別是,不賦值或者關鍵項未附,該程序無法運行。

点评

多简单个事啊,你原封不动按书上写,看行不行不就得了。书上有说明的。  发表于 2015-8-26 19:44
问题是你的子程序是循环吗?  发表于 2015-8-26 19:43
 楼主| 发表于 2015-8-26 21:00:23 | 显示全部楼层
請不要無腦的抄書,我知道在主程序開始时聲明EXTERN加類型就能使子程序傳遞參數了。
( C6 D; i2 W) A4 Q  q5 E) F0 V但是為什麼有的程序不用聲明,他們是使用什麼方法?

点评

高級和工作手冊都看,但是很多地方講的很含糊,要靠自己摸索  发表于 2015-8-27 20:56
工作准备部分的编程手册。西门子编程有两本,一本是所谓的基础编程手册,一本就是这本,以前叫高级编程手册。有专门一章讲子程序的。还有一本讲循环的,没怎么看过。  发表于 2015-8-27 19:10
你看的哪本?  发表于 2015-8-26 23:26
你个呆逼,问你编的程序是不是循环,不懂?书上写得清清楚楚,循环不用声明。连书都看不仔细,看不明白,还搞个毛蛋啊。西门子的手册很严谨的,虽然某些翻译貌似抽风了。  发表于 2015-8-26 21:27
 楼主| 发表于 2015-8-28 21:10:36 | 显示全部楼层
怎麼區分是循環或者不是循環的子程序?

点评

存在“用户循环”目录下看看。  发表于 2015-8-28 22:19
 楼主| 发表于 2015-8-29 22:38:30 | 显示全部楼层
我記得我分別存在製造商循環、標準循環和子程序里,都不能直接賦值調用。

点评

说得很清楚,你验证一下就知道了。俺现在常用828,要用到异步子程序做紧急回退,就必须把规定的程序名的子程序存在制造商循环下才能用。编程,首先是要符合规则,这是必须的。  发表于 2015-8-29 22:55
http://www.doc88.com/p-3847917280010.html  发表于 2015-8-29 22:51
 楼主| 发表于 2015-8-30 20:47:17 | 显示全部楼层
嗯,這個界面是Power line的老界面了,我們現在已經開始用Solution Line了。5 o" a8 S0 ^3 T& S0 Y
明天我回去找找看試一下,多謝指點。

点评

西门子的东西传承性很好的,不会出现颠覆性的改变。无论是系统的升级还是不同档次的产品,HMI的风格很接近的。俺810,840D PL,840D SL ,802,802 SL,828都用过,现在主要用828,功能够用,价格有优势。  发表于 2015-8-30 22:12
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-9-20 03:24 , Processed in 0.077243 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表