设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6362|回复: 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'
! C! `) o4 u0 F2 m& k*/
0 l4 G) j- F/ l( s5 _is. Y& ^$ p, Y0 K  j! s" z- O
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ i; P* E" S+ y& {
do
# @7 W, `! d7 D3 |( D! Z1 ^+ O/ z, K        Lan := rootfolder.Internal.Tools.AOLlanguage;
; M6 G1 V1 k# A        if current = @.Destination -- else return# X+ h' R$ f+ H" T# R6 [+ z
        then+ f' p% p7 _  S6 O, t' i! Z, o
                @.Destination := void;
' z9 f- T- M, \4 T5 b' j! Q+ h                if @.occupied then
0 r$ A" A% {/ F4 I                        part := @.cont;
0 j- z9 B- X, h4 m/ Z# @                        @.transpOrder := void;
, \6 F: J4 i$ t                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
; k$ ]1 h2 L* p                                @,root.eventcontroller.simTime);  H8 L) C9 ~7 d  D; f# |) s# @
                        @.HasOrder := false;  q$ y) ~3 X0 N# j; U2 Q' c7 g
                        @.DrivingHome := true;- e* l  @5 i% M9 y8 o1 s
                        rgManager.tryToStartTransOrder;
4 a# m! F4 Y- b8 x1 Q                        if @.Destination = void- K8 |6 }) w) Z" m0 N3 f3 Q
                        then -- no transport order for vehicle @. U) C3 ]# G, |! e) b
                                @.Destination :=% |% S( t. I1 o: T& A* p* d
                                rgManager.nearestFreeStation(@,track.~);
3 I: ^% ^" n" R0 }; E                                newDirection(@);   ( c, B2 z, `9 a! I6 o9 d4 X' _
                                if @.Destination /= void then0 {- [. K# G( M2 J# V3 |
                                        @.Destination.NumReservation :=0 T: V* \" k8 ]' }( U# ]" Q+ Y% T7 v' {8 y
                                        @.Destination.NumReservation + 1;
4 G" I& ^' q8 F6 ^4 s                                end;
  e: g/ I% s5 O                                @.CurrIcon := "drivingHome";
* |2 @; s# Y) J  ~4 h* f                                @.DrivingHome := true;
7 i: _" F. v- n2 C+ f                        end;; y+ Z1 R6 E# Y) Y! D
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 w# {1 Z( h7 |) H' u. `( n% G/ M
                        part := @.transpOrder;
$ j5 X  z3 t3 J* R1 |& r* n: n% _5 @                        part.move(@);-- load part
* r0 o8 @; x. ]; Q' v. V                        @.CurrIcon := "load";$ ]' l' R( O! z
                        GlobalDistObj := part.globDestination;" G$ p( K  l# n: Z
                        assignLObj := rgmanager.rgAssignL;
: g4 {( p4 v; D7 o9 i                        row := assignLObj.getRowNo(GlobalDistObj);
9 _9 G/ `) H% H; k- ], T4 X$ }                        if Row = -1 then -- since 70* G: V* R# O5 j1 B1 v
                                if lan=1 then
7 I/ E/ y- ?( B$ E2 Q  M7 i8 B0 l                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; T( F0 H. O4 Q% m% ^' ?1 J5 ^7 v3 o% L                                                to_str("in der Andockstation: \"",?.~.name,"\""));- t9 X, {3 T7 b$ f
                                else* I1 d6 U/ }+ @5 S. F2 b9 T
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ u  t1 W) b2 l. ^# |$ D                                                to_str("in docking station: \"",?.~.name,"\""));                                ! J. W/ Y" c1 l9 q
                                end;( o4 V  w/ M+ i  H
                        else1 g' s& y5 z4 H- G! ?# i
                                @.Destination := assignLObj[1,row];) i) n- N6 Q/ y0 R
                        end;                        . s2 }9 `, g8 u( t4 i
                        newDirection(@);
4 v& M) q2 N( n! j" u: ~& _4 t                        @.HasOrder := true;
  h& t3 ?# p5 C' I3 |) j, i: k                end;
- f/ I. Q) ^  h% C' v7 c; x        end;* G3 S5 C$ n8 T
end;        -- of the method1 y  Y$ T/ u- @5 {. P  o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   B) Z0 U; |$ `7 b% |" S) @) u
! x, m: S' d' ^* E
这是AGV_putin中arrive的method。- F- U* D$ U% D: u6 V! Z
0 N+ N/ O$ n& X/ T2 N
当到达物料速度越高时,这个报警更多,
! h5 S# |+ }" j* S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) q% ]. G8 `: E4 o- u6 [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 @0 L- m: @& ^6 _- Y/ `

* B, J2 ]2 |) V另外一个小建议,就是move,所有的move都可以这样; o% j& Y: W- H% \) j3 w3 F
if not move() then debug end
% X9 K% p0 o/ _2 K这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. E; T( [" \% k- H0 j  d) P$ {8 kplant simulation中的free libraries有AGV模板,: a0 o9 |: l  w0 e0 `
里面也有案例。
7 C' ^) J4 P! C3 J3 O5 b4 F& X我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 \2 |( Z, |" B8 I7 i

% m) E# c" n, g1 u: H4 i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 k7 T; l8 i# I3 m$ O2 g. W* |& d
/ @( r/ r: J; q& \: Q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 e! g6 p5 P7 m& d
这是AGV_putin中arrive的method。
; K, j- t! g+ Y4 g% g
( `  j# Y8 j$ a1 S  p/ @当到达物料速度越高时,这个报警更多,
  k% L, t' }5 c$ p' E- v( z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-1 19:31 , Processed in 0.018070 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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