机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 4261|回复: 13
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2015-8-25 17:42:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
參數傳遞問題,希望有經驗的朋友給個幫助
+ Q8 A9 |1 L9 w: `) g主程序:5 u7 g3 t) N4 U7 a; e
LB_1234(1)      ;調用子程序2 r8 g* M* q# \( t0 j8 k
M30" @( D$ x0 V0 D! \
2 I* H/ q& w, f7 D
子程序LB_1234:
, x$ Q% o/ ~; M* {  zproc LB_1234(int type)
9 a4 s- h8 U* U: Wif ($p_sbupar==true )   v5 e, [- F) Z' m6 n, }2 a% h
gotof xxx2 A* P, b5 B6 J6 G# o0 K# e
else# F3 o% }. ?; m* E6 ?
gotof xxx! N2 N# K2 r# p% z1 Z

: L$ Q. I( |/ g% x
0 {2 U: A7 _9 M0 Z
5 M( @( w& p: c' \) G, ~/ q6 Q  kret
+ M# v7 |$ @" W, A8 b+ `! Z! W. c* Z) y4 S& I. w/ Y4 t/ \
如果主程序內不賦參數傳遞,程序可運行。一旦賦值了參數傳遞,主程序就報錯未激活未定義之類。感覺賦值子程序需要激活某參數或權限之類的,望高手解答。, p( c8 A6 ~' r& }  U3 u/ Y
回复

使用道具 举报

2#
发表于 2015-8-25 20:05:18 | 只看该作者
主程序里没定义
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2015-8-25 21:00:21 | 只看该作者
螺旋线 发表于 2015-8-25 20:05 2 g! A: l4 v, r  P0 Y3 }$ x1 R) c
主程序里没定义

  a' Q) V* ]2 R  k3 s2 v6 q* M還要定義什麼?
  s* m4 G; n' I( Y7 P
: W2 _! Y( m# P4 m0 \" M
回复 支持 反对

使用道具 举报

4#
发表于 2015-8-25 23:33:54 | 只看该作者
wangice 发表于 2015-8-25 21:00 5 N0 E* ?, O$ k9 O: Y+ _& Y1 r( a
還要定義什麼?

2 L4 D- L: W/ w' p, L# V所以说啊,看书要仔细。
$ ]- D# p4 g" T, p# [& x+ E8 [: L1 D书上写的很清楚,要用参数传递的子程序调用,要在主程序里先声明,用EXTERN。
3 W5 G9 q" q. l3 Q你写的子程序就是抄书上的,虽然没抄全。但为什么不把主程序抄全?
" ~( e$ L4 C' U5 J" i0 C" o而且报警也提醒得很清楚啊。6 o  ]7 Y2 H2 {' Q/ z$ L9 Z
0 W1 d/ s6 u1 X5 B" E. E1 i
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2015-8-26 05:07:05 | 只看该作者
螺旋线 发表于 2015-8-25 23:33
' e: T6 l) X! k) a9 T& f4 Y: P$ |2 u所以说啊,看书要仔细。; A" J5 o7 x8 d% L( {6 k
书上写的很清楚,要用参数传递的子程序调用,要在主程序里先声明,用EXTERN。
; N. X% |: d& q" [  Z4 U/ R8 | ...

, R! U: ~: E/ ^& g$ P" g4 I! s8 n1 f需要在主程序中聲明嗎?
) z( ]. c  ]7 T- z: S6 o  ~  V' a很多使用西門子系统的機床製造商,在系统內添加了很多自己製作的循環程序,這些程序在運行中也是可以賦值的,甚至可以在MDA模式下只運行賦值的子程序這一條指令,這個過程中也沒有對賦值有過任何說明。
" r  o4 ~  W  G' Y! ~6 w! K不知道他們是通過什麼方式實現的。
8 |" r9 E1 F, \% q1 L) e& T4 d2 _
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2015-8-26 05:29:01 | 只看该作者
西門子標準循環指令CYCLE81(,,,),在使用中有誰對括號內的賦值有聲明嗎?唯一的區別是,不賦值或者關鍵項未附,該程序無法運行。

点评

多简单个事啊,你原封不动按书上写,看行不行不就得了。书上有说明的。  发表于 2015-8-26 19:44
问题是你的子程序是循环吗?  发表于 2015-8-26 19:43
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2015-8-26 21:00:23 | 只看该作者
請不要無腦的抄書,我知道在主程序開始时聲明EXTERN加類型就能使子程序傳遞參數了。% A- ~6 p4 G9 R" r& ]8 U4 J
但是為什麼有的程序不用聲明,他們是使用什麼方法?

点评

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

使用道具 举报

8#
 楼主| 发表于 2015-8-28 21:10:36 | 只看该作者
怎麼區分是循環或者不是循環的子程序?

点评

存在“用户循环”目录下看看。  发表于 2015-8-28 22:19
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2015-8-29 22:38:30 | 只看该作者
我記得我分別存在製造商循環、標準循環和子程序里,都不能直接賦值調用。

点评

说得很清楚,你验证一下就知道了。俺现在常用828,要用到异步子程序做紧急回退,就必须把规定的程序名的子程序存在制造商循环下才能用。编程,首先是要符合规则,这是必须的。  发表于 2015-8-29 22:55
http://www.doc88.com/p-3847917280010.html  发表于 2015-8-29 22:51
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2015-8-30 20:47:17 | 只看该作者
嗯,這個界面是Power line的老界面了,我們現在已經開始用Solution Line了。; ^, M% ^, Q% G/ u3 b/ z3 B6 D7 h2 b
明天我回去找找看試一下,多謝指點。

点评

西门子的东西传承性很好的,不会出现颠覆性的改变。无论是系统的升级还是不同档次的产品,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, 2024-12-26 14:53 , Processed in 0.054536 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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