设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8900|回复: 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'
8 x. Z# g. [# V*/
' n. Z6 [' \3 Q; \3 F3 S" C: v: k' e1 @is
+ Y4 ~% e% H6 M+ W        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; W* O- d9 p0 _; [: h) p4 J" w7 X
do
0 g+ B/ x0 X6 W1 A9 e        Lan := rootfolder.Internal.Tools.AOLlanguage;* _% ~+ `" `% a
        if current = @.Destination -- else return1 F! L- p2 \3 E9 O3 F  z
        then
6 x# C6 V* e: @$ W1 _. f4 n                @.Destination := void;$ Y- ?5 c. ]) p5 J( A& e
                if @.occupied then5 V+ p) X8 V3 j0 y7 E, R6 i
                        part := @.cont;
' u0 f* L/ X, J- @: V                        @.transpOrder := void;
& m+ h$ M! N- z5 [8 |- I; c                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 q& K# L5 t1 E9 Y* |& \& @# U% o1 P
                                @,root.eventcontroller.simTime);
( K$ G4 B7 s0 z# U0 J5 i9 l                        @.HasOrder := false;6 H) ^: u6 r2 V
                        @.DrivingHome := true;; d6 x8 l7 O$ L. `" \% b% f/ r
                        rgManager.tryToStartTransOrder;
( D" `6 W( p$ {) d6 Q: D* _                        if @.Destination = void
4 t# A1 r5 n8 l& {: B                        then -- no transport order for vehicle @
# x- Z) ~8 R; @3 s: D                                @.Destination :=' p9 P# z" p0 a9 @! s
                                rgManager.nearestFreeStation(@,track.~);
5 B3 D$ R9 H3 U. Y8 f# C                                newDirection(@);   
& W& r' l, D; j4 T& S) ?( A, A                                if @.Destination /= void then& a: Q7 [' s6 b6 e3 R8 A5 f
                                        @.Destination.NumReservation :=( R' d, j6 B: C1 o
                                        @.Destination.NumReservation + 1;
% h3 d  ^- j; S% }8 L                                end;, y0 I, q" \' u+ n  H
                                @.CurrIcon := "drivingHome";
% F% i* j4 U# }7 L* E4 Y                                @.DrivingHome := true;
, T" Y" L6 D' a/ ]9 ~2 N                        end;
; a! v' [. c% \- B* O0 e                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 Z8 k1 x& h$ F! F  G: m7 f
                        part := @.transpOrder;' @2 z& U- m$ L, T$ y  c$ `
                        part.move(@);-- load part
$ r; G; u% \9 g. H1 P                        @.CurrIcon := "load";7 |, N$ L- _1 S$ n
                        GlobalDistObj := part.globDestination;. `. @3 X5 I! z/ F, f
                        assignLObj := rgmanager.rgAssignL;/ \5 h  ]; G. t
                        row := assignLObj.getRowNo(GlobalDistObj);: I+ |- ?, \$ f9 M6 {
                        if Row = -1 then -- since 70
" n/ R8 s6 [: j! s% d8 z& j                                if lan=1 then
, u0 q' [+ x/ E* f/ r) u9 J; V                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' S3 r5 {* H: o! ?' I+ K
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 Z/ d. |( m. ]8 ]                                else
( t0 i9 j" }( F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 Z5 {$ c9 \4 b3 R  R/ r6 q2 A6 v6 q9 r
                                                to_str("in docking station: \"",?.~.name,"\""));                                + o; z- b, \6 Y3 u4 A5 b
                                end;
1 L% @, K( T* g5 c                        else- o! c+ B# k6 w
                                @.Destination := assignLObj[1,row];
1 H6 N5 m% p1 Q- V% h( e                        end;                        # [; i, j8 R. d! Y
                        newDirection(@);3 R- T- p  \' u: U. L* ^7 K' ~. W
                        @.HasOrder := true;
2 W# U7 l, ^. R) m6 z7 A5 W                end;
* u% `4 t' K1 \% C% E        end;) b- N# ~7 J" D* Q
end;        -- of the method5 x4 ?+ B+ ]/ m; |+ Z6 E. o! m  v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 p6 t9 ]7 E) e4 m8 {; f) _# v% |3 s! P% |1 s; N( A/ Z
这是AGV_putin中arrive的method。
5 j1 \6 d3 }9 j$ {
1 o: o' ]: Y- s$ r8 D- e当到达物料速度越高时,这个报警更多,$ }" a2 @" a* D* |
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 W" U5 g& }* W) _# y! |* H/ W
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 Y6 s) C4 K$ L4 N$ Z. t. ]6 F. S
8 k  l( S) f9 F$ [  b4 y4 p' h另外一个小建议,就是move,所有的move都可以这样
: m$ \9 P, H! T( s3 m) S* G9 Bif not move() then debug end( R% z1 @9 ^8 E1 f
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 W4 h  S6 L- H4 qplant simulation中的free libraries有AGV模板,
. ?4 j0 _1 K+ a3 ?( z; t, d里面也有案例。
8 Y7 F( B1 S- _" |+ @* C! V我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 f- K0 |3 `( N1 h6 R4 r. s
1 n- A# j+ [2 c" _7 E我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 f- M0 {. [3 [7 p
$ j( a4 a2 Q$ U" \# G那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) C* I* g+ R5 E4 _0 H这是AGV_putin中arrive的method。1 j" J& b* B7 t# B; B

, n! f3 A8 _/ d# y/ f% c/ k当到达物料速度越高时,这个报警更多,

$ c$ a5 Z8 V7 C8 a( ~3 ~) I1 O另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-3 08:58 , Processed in 0.018099 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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