设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6272|回复: 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'
+ h7 _' j" r' f6 K*/) p3 b- T9 h, a' z' Q9 ^
is
9 @. t( {/ V' X# j( ]  o8 [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, R' y' K3 A/ ?( ?  E6 d$ K
do& L8 h  s# ~- P5 Q( D
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ N+ s/ U) s$ ~% t! ?/ m
        if current = @.Destination -- else return: ~3 q4 o0 O7 F  L
        then
+ I# L2 V' u/ P( V2 X" B" w" }# v                @.Destination := void;
* S* l6 g$ y' p( Q                if @.occupied then% p, O0 P0 v9 g& e; h% a" e* G9 T( N
                        part := @.cont;( c4 u/ J' d7 B- o
                        @.transpOrder := void;
: Y3 {  ^  E0 L0 |                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ e+ R. R- u& Q, p
                                @,root.eventcontroller.simTime);* W& S9 J2 K- N; z% U
                        @.HasOrder := false;( s3 z1 ~8 Y- C$ p3 R$ Y
                        @.DrivingHome := true;
! ]: N) n) s7 M  @, B% P                        rgManager.tryToStartTransOrder;
8 q( {) T* k7 `                        if @.Destination = void: e9 W4 v# ?1 C2 K7 }
                        then -- no transport order for vehicle @5 G" s$ A# Z1 J0 P0 I" v4 k( T0 B
                                @.Destination :=
2 `; P( Q8 p6 B4 G                                rgManager.nearestFreeStation(@,track.~);- y7 A: r+ V+ A! G5 `" N6 Z& o# s
                                newDirection(@);   * s  Q) x6 N, u+ M
                                if @.Destination /= void then, h8 U* E; ]3 z' i, v5 O! t2 t" ]
                                        @.Destination.NumReservation :=
# J. F' q- x& p* ^' k8 Y. e                                        @.Destination.NumReservation + 1;0 p4 Y$ O5 `6 n6 D8 K" ]) A
                                end;8 K8 t% a  c7 @
                                @.CurrIcon := "drivingHome";
2 m; |/ k% ]) y1 _3 r                                @.DrivingHome := true;
5 U+ J; {  d( x5 a$ X; Y, f% n: @& S                        end;/ S. D8 ]8 v) j" e+ O3 X1 p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ n7 h; L3 J0 J; k                        part := @.transpOrder;
- {, {( J6 m4 r5 a6 @                        part.move(@);-- load part* @3 X1 h3 J0 e1 y, m9 H* V6 o. B' X
                        @.CurrIcon := "load";
3 I4 d% N4 b5 f! X7 `* [/ G8 i                        GlobalDistObj := part.globDestination;
8 F7 D: e* E1 [1 |" ]                        assignLObj := rgmanager.rgAssignL;5 H, Y, \: B' \: |3 N8 h
                        row := assignLObj.getRowNo(GlobalDistObj);0 z% r  u# Z% m% Z
                        if Row = -1 then -- since 70
3 ^9 ]" V) n: d& y! C) v$ j                                if lan=1 then
+ |8 H/ ?5 X5 G" @  z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 M4 R- A( V/ B% ?' \
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 ~/ {( c' b& h: u5 S                                else/ h" _6 x# g1 h; e; t
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# ^5 U! c' Q6 S; y! e5 U. L
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; s5 C* I6 p* a( x" y) z                                end;
. I) ^2 `5 K9 \- z; k                        else
5 e: P- K& {' X                                @.Destination := assignLObj[1,row];/ I. N8 y# o% K
                        end;                        , i& {1 t4 n, m! s: F) X# L
                        newDirection(@);: Z" G* Z; C# t5 ~
                        @.HasOrder := true;  G* `/ g- a1 ^5 v
                end;
" F$ V  P3 g  y6 I        end;9 o/ o" ~( M3 _. m  a, m) c
end;        -- of the method" ?. O, R5 D) ^% k; {$ a! C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" ?4 ?% r; M+ q6 Y0 k1 c; C4 M) l  J3 j
这是AGV_putin中arrive的method。5 W/ p8 a; z, L" H9 @1 d
- b( g6 z" N  A. P" K  ]8 I& A
当到达物料速度越高时,这个报警更多,
3 h; h/ k/ Y$ {4 h2 j5 o可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; ^/ h/ `; D' C; J# _% p  F; V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ [. T4 p) @9 ^% @4 U
; X7 n4 {1 F4 M8 S- o' t3 G' Y1 ?  \另外一个小建议,就是move,所有的move都可以这样( }1 }9 C# d* P# f
if not move() then debug end5 H+ `$ q/ e# z( z6 c' j# V0 g
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  N- w* u3 y  M" F3 j
plant simulation中的free libraries有AGV模板,8 U0 o0 @2 b, v1 Q) g
里面也有案例。2 U: e! j- M& e& K+ X2 t& ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) T9 U  a. o* o& F+ W, Q& N% }' l
2 `) A# w; V8 l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 u+ P8 M9 S; U( ~6 k: i
) Y) d) v/ v- }$ B' x+ r1 p; \4 h6 v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  T) ?1 y4 q1 o" h这是AGV_putin中arrive的method。* B8 ]5 o( _( o/ Y5 i1 b

% L0 @1 B$ P6 n2 ~. V% _当到达物料速度越高时,这个报警更多,
8 f' x* h: n, X, P% B
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-28 05:28 , Processed in 0.017034 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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