设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4580|回复: 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'
9 q, @- t0 a. Z$ k/ X*/
8 v6 d8 o8 t  a" V+ }is
% o$ I. i) _- Q( b  I3 ~  i8 R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: I9 _% {) A( n# }! p5 q$ {5 ddo, D2 w1 E5 q) C& x, [3 [+ `
        Lan := rootfolder.Internal.Tools.AOLlanguage;5 R; K' g3 v; w
        if current = @.Destination -- else return) \( J+ b9 w. N0 r1 D" F7 \# }, m
        then
  F2 a3 W) t8 r: t; b0 n                @.Destination := void;7 }8 t8 S8 l9 e
                if @.occupied then
/ W2 K* H8 Q# U6 b) @                        part := @.cont;
# ^3 X: ~$ B" Y# A, g6 s3 z. l                        @.transpOrder := void;
6 T/ J( c, `+ t5 y, v                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: F' U- R6 M! N( a$ a                                @,root.eventcontroller.simTime);/ h  k3 e! D4 [) X2 a0 b: y
                        @.HasOrder := false;
% m" C2 n. S+ [2 q6 \8 {9 G                        @.DrivingHome := true;
2 `: M& M& r1 n  P                        rgManager.tryToStartTransOrder;
0 m7 g1 K; w, G% @  _                        if @.Destination = void7 ^% j3 `: l7 H$ M+ k  \
                        then -- no transport order for vehicle @  j6 B( l0 t0 S& i) J5 q
                                @.Destination :=0 R; a) {# ]  Q  r
                                rgManager.nearestFreeStation(@,track.~);; v0 _+ V9 X% T! n2 [
                                newDirection(@);   9 k7 k( R/ m2 _! p8 B# }+ s
                                if @.Destination /= void then- H. x& v% Y" x+ I
                                        @.Destination.NumReservation :=* ?9 T, e0 G7 j( h, d7 R
                                        @.Destination.NumReservation + 1;
& A' ^5 i! P  F                                end;3 l8 S8 b7 B& Z) ]  |% k2 Y
                                @.CurrIcon := "drivingHome";$ |. l( S, S. v& M: ^1 O% b
                                @.DrivingHome := true;. Z# Q1 }4 {  V
                        end;5 d, T) z+ g# a
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* i. K" k  I" R4 @
                        part := @.transpOrder;
5 z. [! `! _4 D. P: U% S/ ?                        part.move(@);-- load part0 P4 w+ C+ ~5 K$ @1 L. Y" a3 P
                        @.CurrIcon := "load";+ K, K! g5 ~. n1 Z7 g$ j
                        GlobalDistObj := part.globDestination;
# j& b6 k1 P' [5 `: w5 s* k6 r4 ~                        assignLObj := rgmanager.rgAssignL;- M- C( O, ~. V6 C9 s: J  X, h
                        row := assignLObj.getRowNo(GlobalDistObj);9 x, u( W) b+ F+ w( G
                        if Row = -1 then -- since 70' D6 z0 a" P) w+ H- c3 A
                                if lan=1 then4 ^3 A7 A& `& N( M$ ~/ a
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% w& K4 z( j' C- c' D+ ?
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 w* n, V/ H1 A' C  i" L
                                else# E6 t1 ~1 m7 j+ [: N# e1 y2 N
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 ~6 x0 H8 U+ F# Q                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 y2 Z/ o5 v" L: R8 a: U9 C( C                                end;
+ ^9 `% P" n& R6 x: Y6 T6 M                        else
8 ^  n/ v: U2 d5 a: I                                @.Destination := assignLObj[1,row];
% [) g: y: t& D/ |) A/ u- Y                        end;                       
* t9 v  V8 `) s: k7 Z! x1 G5 o                        newDirection(@);) D8 k: ?" `, U/ a4 K
                        @.HasOrder := true;; k' ~; C& `$ Z$ `6 P2 b
                end;
1 ^. _. i" ?% q' |8 p- _) x        end;
" A  Y+ f* `# f# l. D# ]2 Aend;        -- of the method: G' F  O' m8 m7 q' d9 P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 ~# x7 m- A) I- E  L

' Q, I9 ]$ v" n- ]这是AGV_putin中arrive的method。; {& w* d4 i! [) ?) M4 R' t7 X0 Z

" [1 w5 M0 c+ W当到达物料速度越高时,这个报警更多,
4 G) U8 X/ E: x" N: r. A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ y2 m9 H7 X( q& I% L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?5 Y2 }: G0 u, @+ ?1 z: p
$ j. q" d) \, }1 F2 O2 ]
另外一个小建议,就是move,所有的move都可以这样
3 I* h& A4 y+ d# pif not move() then debug end! n3 E3 ^2 u. E1 W' i( c
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( w* a% x( ?# G  U1 v. t. o+ Eplant simulation中的free libraries有AGV模板,
" T7 `- x  ?( C3 Z3 g: G里面也有案例。
3 _% H0 h" e4 d1 v+ R. b6 l我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& S, a% X# m$ }
8 S1 u7 D6 H9 R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: ~3 T3 s$ r/ P) g) G$ \4 {' v5 u. Y7 r5 v* L
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / T( ]: d$ i  ^. P  c
这是AGV_putin中arrive的method。
, Y9 g9 u6 Z3 R5 k# T4 p; ]  |  s
6 m# _+ C- M4 m4 M当到达物料速度越高时,这个报警更多,

4 X8 e$ B- \, @( z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-4 13:04 , Processed in 0.014396 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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