设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7443|回复: 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'
( \6 j& p% C2 b7 r: a- A*/& g( U7 j' \/ X4 L' A' ^9 ^
is1 n, w$ u- @% X8 X& N( s, q# P
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" B: u5 M, @& H( j9 ~% _) A4 A0 Fdo
( e, K$ a7 A/ O7 x  |& @        Lan := rootfolder.Internal.Tools.AOLlanguage;
, P2 @, @  E/ T) |        if current = @.Destination -- else return
* d* y6 a& ?+ l" E* F        then
% l9 ^! D! t& C4 O. J. q/ u5 r/ h5 V                @.Destination := void;
0 v& l# ~3 `7 T7 G, m, l# S                if @.occupied then; ]/ V+ c  h  S
                        part := @.cont;2 N4 ^. h, s7 q1 g- n+ I! o5 h
                        @.transpOrder := void;
7 f* |, J% v4 m" j/ ?& Y  x; R$ M6 b                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) [. L3 u" h  Z  {4 u                                @,root.eventcontroller.simTime);
9 W; ?/ Z3 N& B9 S0 _3 @, F                        @.HasOrder := false;
" T+ x( c, V- g, l0 R! W% ]7 L6 D8 M$ v                        @.DrivingHome := true;; V& n. ?, F+ d/ |5 R2 _
                        rgManager.tryToStartTransOrder;9 u  {0 A. R' ^- |3 O& j8 W
                        if @.Destination = void7 ~0 w. b) V/ g6 e5 i% `
                        then -- no transport order for vehicle @
, v  U+ T( t/ @                                @.Destination :=  y. v8 S* R. U0 p0 N: {$ E
                                rgManager.nearestFreeStation(@,track.~);
( h; l) ~4 z) ], X4 y' j; N                                newDirection(@);   , R; l; C" B7 Z" X
                                if @.Destination /= void then8 a: I+ \4 P, [( u7 x
                                        @.Destination.NumReservation :=: c+ _, P6 Z, v/ c
                                        @.Destination.NumReservation + 1;3 U1 s( |: e) w* }5 d
                                end;
' T; `/ H/ E2 Q/ n4 Z& Z                                @.CurrIcon := "drivingHome";/ k0 w( o( d0 F' n' p
                                @.DrivingHome := true;
" l8 `% }' `8 j! Q' }* `2 n                        end;
- R( B# c! d) R                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" I3 k, D; D4 j* c% Y! z. V
                        part := @.transpOrder;% w" i+ N+ k. K  {+ `/ J2 e
                        part.move(@);-- load part
/ X1 K! B* [3 @/ \, L- i3 s                        @.CurrIcon := "load";- [* |4 b+ \* S+ q% P# V4 R2 \
                        GlobalDistObj := part.globDestination;
2 k$ }- ?! q* E. P$ x0 D                        assignLObj := rgmanager.rgAssignL;3 {: l/ Z( e  ~" G& \  m" a
                        row := assignLObj.getRowNo(GlobalDistObj);
8 Z0 s# l2 f# {0 d5 u$ ^                        if Row = -1 then -- since 70
0 [( k" ~7 R2 k* \* n8 h                                if lan=1 then
9 }4 _2 V0 v! e* ~9 i, [                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 _$ a4 c6 {! o; F$ T/ B
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! B9 @% A2 |  `3 C' i                                else
2 p- H* p: A3 _2 y' |) _) ~( b) r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 x/ C1 `2 y' a; q                                                to_str("in docking station: \"",?.~.name,"\""));                                ) R# A2 v% T3 n( X
                                end;! ^7 N# ?1 [6 {1 t. V
                        else- t8 y; J: h% n$ _; x
                                @.Destination := assignLObj[1,row];
6 t6 e1 g. T% Q/ ~                        end;                        7 s- E/ z5 U$ a2 t' k0 T7 o
                        newDirection(@);5 b  U) ]# h2 J( E& E
                        @.HasOrder := true;
$ T9 O; Q- H- J# B                end;
( D- T% s! s8 I: h7 w' ]8 N        end;, y. }/ Q1 n, D6 g8 J6 K3 \
end;        -- of the method3 r8 D, j8 f; c, v8 L% A; [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ m$ ~' j$ s$ P  `1 Y. g2 c

3 |, y# _2 q' h% z. G6 d$ O6 r这是AGV_putin中arrive的method。9 L/ s2 N% G$ d
, D8 m$ A- l# }0 ^1 T& T/ X5 u3 r
当到达物料速度越高时,这个报警更多,: d& k' N, o& _2 }" s
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 ?- x. b$ r: Q1 U, w) M  t$ Q3 p
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( y9 E7 d" N- G" i: s0 N8 g0 Z+ O+ V1 m6 w/ k5 x( u
另外一个小建议,就是move,所有的move都可以这样
; D* P) i0 P  W+ s! j" I! Xif not move() then debug end$ X5 h' w1 O" h
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' \/ m* p( Y) t5 S$ Q8 V7 Y7 u3 h& x6 l
plant simulation中的free libraries有AGV模板,% A* Y, [! b: v5 G2 |2 X
里面也有案例。6 B! J) q( F8 N3 G0 a/ V3 b( k6 N+ |
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 v3 S5 M6 S( j8 d0 k* _3 s
- C" J& V  k+ M9 V, d8 A
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ x' X" X+ _$ K: @* n1 W/ W- z! k5 D8 @+ {( w
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 v4 I3 r3 X! U2 n这是AGV_putin中arrive的method。: D2 A! A9 b/ Y; j6 z
& v' P/ P% O4 f$ [. U9 ~. {
当到达物料速度越高时,这个报警更多,
) |  [+ @6 d; x" q! \3 M) P' m: s
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-11 17:48 , Processed in 0.018371 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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