设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9466|回复: 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'2 B4 \! H) z& m5 c1 y( L. W
*/
3 I7 F# \( b7 N8 E5 }/ l" X  Zis! L. d0 R; |) Y; O+ i7 Y1 h
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 y7 U# y8 E1 Q  K3 A; N& x
do
) `# ^' X3 r6 A/ T        Lan := rootfolder.Internal.Tools.AOLlanguage;8 ?- W; A) b2 N" k$ m
        if current = @.Destination -- else return7 x) }9 v! O& J9 C9 _3 Y7 E
        then; i; ]/ B0 z9 W2 s
                @.Destination := void;
% m0 f1 N8 P  f: o! l                if @.occupied then; L) u! h4 @$ }
                        part := @.cont;2 _5 u* Y+ H% z" u3 v0 {( u- |
                        @.transpOrder := void;# a4 ^% Q6 P# O2 p0 a
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) Q: n; d7 ]5 E0 {1 n) J                                @,root.eventcontroller.simTime);( L% Z# Q/ O5 [% Y$ |2 n
                        @.HasOrder := false;
' `# m4 |6 w4 m' Y8 G5 p                        @.DrivingHome := true;
% D9 T; k  }0 c8 I3 Q) [/ J                        rgManager.tryToStartTransOrder;  `" j, A( W3 C5 a: I+ b& F! ]
                        if @.Destination = void
2 o4 G9 T. d% Y' P+ L                        then -- no transport order for vehicle @
. u% f: D5 j# ~% A, A& j, N3 Y                                @.Destination :=
- p$ }' i) s" H7 x* c3 t                                rgManager.nearestFreeStation(@,track.~);
1 u" i* u0 g% ]: e& j; m* c. o3 M' T" X                                newDirection(@);   ; r2 z2 c6 s/ m5 l6 z
                                if @.Destination /= void then! G& J+ @/ u$ ]3 M  \
                                        @.Destination.NumReservation :=8 [5 a' P7 j+ f5 ?; Z3 Q9 }( W5 J9 B0 ^
                                        @.Destination.NumReservation + 1;
$ J1 B: f6 w* ~0 X% a$ R$ k                                end;2 H: B: w# w' X' e" u5 G
                                @.CurrIcon := "drivingHome";
! A9 c9 s+ ]$ s  W; X8 ]" ?1 ]                                @.DrivingHome := true;
- @1 e0 W3 [% l$ c2 u7 U8 E% a                        end;& g+ l# W+ ?7 l0 w+ ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  R" B/ j  }. |% u  ]) `( Q                        part := @.transpOrder;/ R! X7 n0 Q2 }3 S" Q) P0 C8 [0 U
                        part.move(@);-- load part
4 t/ T* W% ]# {- A0 E                        @.CurrIcon := "load";
4 E0 P3 J8 e2 l% R                        GlobalDistObj := part.globDestination;9 N8 B) T7 ]2 ]1 ]0 a8 t$ c4 n
                        assignLObj := rgmanager.rgAssignL;2 a# ]' ?8 ~; @& ^7 E  h
                        row := assignLObj.getRowNo(GlobalDistObj);
9 _+ v6 j( j5 G" N. M1 L: s; C% z. [                        if Row = -1 then -- since 70
" {2 ~' Z4 E  H- |* b4 Z% H                                if lan=1 then, L6 W# T/ n, `4 r2 c- e; @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- p( k+ j+ A: k' C$ L, V# F                                                to_str("in der Andockstation: \"",?.~.name,"\""));' C5 Q/ y1 C8 ]8 t! U
                                else
& m% i6 Q6 N) B. V; K! Q  ^9 l                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 l6 V, b8 G# W# Q                                                to_str("in docking station: \"",?.~.name,"\""));                                ( h5 C# k$ {/ C. h6 f6 I
                                end;
" ]. F; W$ Y3 G* Q/ i' h* K) Q% B                        else
/ h: V2 ]/ y) X6 M                                @.Destination := assignLObj[1,row];
8 r9 J5 o) e8 p) f; M/ l3 f1 _, q- a                        end;                       
* I0 B: @& }, D* B, f                        newDirection(@);3 _4 J1 c) M; C7 G
                        @.HasOrder := true;7 m  B- d9 \. p- z: }* L3 l, u
                end;
; Y- i% ~  R, T" p        end;  Q# y/ U. S$ Q" I( c: g' B& q
end;        -- of the method
/ `- r$ Q+ m4 \7 K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 }' S1 x: V' i* [  O  g
# K& x% r- F* K% x2 _这是AGV_putin中arrive的method。6 n9 [3 l/ T! [4 W

! U4 d5 T# Y. {6 X- k8 a当到达物料速度越高时,这个报警更多,
, J$ K; T) ]. @8 V可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  L2 p6 S0 T* t/ G
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 l8 N# V1 E) Q+ ~, W0 e! j4 G& y# {+ ]& k
另外一个小建议,就是move,所有的move都可以这样
/ Z  o9 G! y2 K) k/ D2 d" n5 l5 gif not move() then debug end
; T9 q" T( ?: W, A/ J# `: T" V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 a# R' O& Q0 v4 }. F2 oplant simulation中的free libraries有AGV模板,
+ X4 c$ b5 T9 R7 Q里面也有案例。6 o" \% T0 x; R1 R4 s# ~9 ?8 A
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 a5 C( E- Y$ W' \0 r

4 T( Q5 u2 u: h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( ^7 I' k8 b8 V' y" R" o# _+ n7 \+ _7 ^& Y. I+ V
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : W* V& J) r) O" Q6 b; |; p7 s# Q
这是AGV_putin中arrive的method。* F$ l8 s, C, ~! C# f; ~5 q' v
. k7 c1 J0 y& }% x
当到达物料速度越高时,这个报警更多,
: b+ O" Y& }, C" d" ^% X+ I9 Q) e
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-2 11:58 , Processed in 0.024777 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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