设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5533|回复: 9

[求助] 用AGV模板发生了以下错误,请解!

  [复制链接]
发表于 2011-11-5 16:38:28 | 显示全部楼层 |阅读模式
问题在哪里?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2011-11-14 10:37:54 | 显示全部楼层
没有解决,再顶一下。
 楼主| 发表于 2011-11-17 11:03:27 | 显示全部楼层
/* called by:        entrance ctrl of the object 'track'
) b4 Y& r- G* V, f$ {*/
; X, b6 n5 Q1 s/ C" `is* U1 `: q0 ]; a, ]( o
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% k7 I3 w+ f9 L/ m
do  D! O" e, P' _) {4 D% W+ H
        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ Y  H3 t8 d) d  f        if current = @.Destination -- else return; F( L$ U1 W. j2 J0 G3 I
        then6 l( D+ e$ a( E. D# _
                @.Destination := void;
, t3 G% I0 m8 h9 }# l/ k# ~, M                if @.occupied then9 f* Q, v& S( l5 [) p; W  G7 G
                        part := @.cont;
+ s! g% D$ [/ G9 S* }  i                        @.transpOrder := void;# ?. {# b; E- f- N+ V
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. m1 ^' _% ?! |) k4 r/ w4 R* ]
                                @,root.eventcontroller.simTime);
6 U# a- z% L, o' ?' `                        @.HasOrder := false;- D7 \  C+ M2 U9 l1 Z$ g; d
                        @.DrivingHome := true;
6 A/ W6 h8 r& ]! E4 u/ z- W- F                        rgManager.tryToStartTransOrder;5 ?% A3 F6 c" M5 \1 H4 F
                        if @.Destination = void
6 v* P  d( N6 }3 ^6 p                        then -- no transport order for vehicle @
2 q  H/ t& o5 V* r/ a                                @.Destination :=5 w  }3 R9 d* K+ S7 A: S
                                rgManager.nearestFreeStation(@,track.~);
+ p7 _7 B, s& d6 _# m                                newDirection(@);   $ @% p9 I4 f- {" j
                                if @.Destination /= void then
0 b( m  g: K1 L, B1 ?                                        @.Destination.NumReservation :=! g* _8 f7 H0 z8 }( W1 L4 @
                                        @.Destination.NumReservation + 1;/ e, M5 s- x# t- p! m
                                end;
' z5 i; {5 x9 e" h  {5 B                                @.CurrIcon := "drivingHome";
. \- ?" T- j) W                                @.DrivingHome := true;8 J- V6 ?7 Y" A' L) q3 k7 l( C7 d
                        end;- s5 w6 K$ [9 [& H
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station, q. O9 i+ c$ m7 F. B  ~
                        part := @.transpOrder;" j% p5 }) }) b7 H& I- B8 }* R6 E
                        part.move(@);-- load part
. J4 t7 w* I8 L                        @.CurrIcon := "load";; [6 Q; x% K. E6 v0 q. T
                        GlobalDistObj := part.globDestination;
- E6 V5 b8 z( S0 \8 R4 K% P                        assignLObj := rgmanager.rgAssignL;
( x  e/ y6 [, P! d; v# \8 s8 o3 V                        row := assignLObj.getRowNo(GlobalDistObj);
2 e2 h, p  ]+ c+ c  ~* H# \+ C9 B                        if Row = -1 then -- since 706 ~0 ^5 u/ a$ o; m# b8 n
                                if lan=1 then  g5 r& J6 M: H3 p. [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 d5 o( Z7 |( ~# S- P8 M
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 x8 y2 B% J- O1 l. M5 ^9 _+ ?/ P/ H  o
                                else
! C8 [; N0 C1 _( O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 q  b1 [8 ^' J
                                                to_str("in docking station: \"",?.~.name,"\""));                                $ e- N: _2 a2 Y  }: E
                                end;# i2 U$ U: ^' [2 s- F% w
                        else' h5 S9 m7 e" |/ w* ]+ U, O0 M
                                @.Destination := assignLObj[1,row];
+ W5 |5 o5 b6 N! @' P5 E                        end;                        " J- F9 o' E/ K! r- K
                        newDirection(@);
( ?2 Q$ R2 H. s5 y+ Y  t. N) A0 s                        @.HasOrder := true;
$ G( E  d2 M) z                end;1 n, k+ c- X' @$ V9 r1 U1 p
        end;
4 j0 `3 I  S7 w. d* v) Z+ fend;        -- of the method  D" V1 X- A) l3 l. \3 V$ o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  ?- W3 v! w& p# x; c1 o- J+ Z/ b' u1 I. G7 w. s7 S) g
这是AGV_putin中arrive的method。
" X- T# N! z$ T* q5 M$ T
# j6 K" \' k0 o$ i2 |" M当到达物料速度越高时,这个报警更多,3 F1 d$ W0 a- Q- ]3 k- k/ v8 ~
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 {/ `- q- O3 S4 D6 `5 P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?5 n5 D5 e( @+ X2 K; }& n2 G

* Z1 u" P% k9 D( _3 D* X另外一个小建议,就是move,所有的move都可以这样
! b) c) X4 b1 q% M0 O7 d2 ~if not move() then debug end& D- b$ J1 c# r& N2 c
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 a- d$ X/ H) ]2 kplant simulation中的free libraries有AGV模板," ]' r6 r0 M# j5 q
里面也有案例。- m! }4 [9 E7 Q3 W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; h, S0 p0 x) ^- I3 A
, I. L0 J$ e) {, |& m8 p/ A
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 S& }* e" Q4 h' V+ s( }. q+ `1 Z6 z3 t
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % Y% C6 e2 B6 _4 B3 l% c2 P
这是AGV_putin中arrive的method。
: `% t4 ?' P0 P5 d; m! K
/ R. Q& f8 Z8 k6 C1 i) j: q# l" C: K2 Q当到达物料速度越高时,这个报警更多,

# h' q5 S, `" H9 D+ i- x. j另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2025-12-2 19:18 , Processed in 0.017907 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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