设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5917|回复: 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'
/ f" b0 h" Y7 i# ^$ W. D*/4 d: Z3 ]$ d- D8 Y0 L
is$ @; e2 U, ~# x! d3 [% d
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! z& @7 \1 y9 n( b5 `  q+ r
do$ G8 V% H4 G9 i: r( d
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 b% N7 \4 |" W3 ^3 o& U* P& ~+ ^
        if current = @.Destination -- else return
- Z" s# O8 G2 a( f        then' z5 B! c' r1 q6 p& J4 |
                @.Destination := void;
4 C8 a$ z; z& J& K! L* g: S                if @.occupied then
5 b9 x4 ^. o) \8 ]0 @                        part := @.cont;) L6 t- z% X% q, n6 H! W( M5 S$ H3 C
                        @.transpOrder := void;3 \# b# m6 b0 r9 [  w6 s
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 Z3 r1 M6 z6 h, o/ I- Y
                                @,root.eventcontroller.simTime);0 u: y: P2 U* t* P
                        @.HasOrder := false;
! x$ p: ^% `" B6 Z                        @.DrivingHome := true;
0 `/ p& A% Z: B3 S7 @: S                        rgManager.tryToStartTransOrder;9 M; Q  C# u$ Q' z  S! y
                        if @.Destination = void
$ @4 u4 u* f" u. i9 j                        then -- no transport order for vehicle @7 ?- c* t* p) j' Z9 h
                                @.Destination :=
$ G" U7 J1 Y' l# n                                rgManager.nearestFreeStation(@,track.~);
) o2 m& c% v$ g* B! h& v6 X/ ~. p                                newDirection(@);   . u, p+ g. F! l% s5 a& g
                                if @.Destination /= void then3 a  ?% i$ g, N4 L5 P0 T' |) L1 S
                                        @.Destination.NumReservation :=
1 j& b7 ~9 r* M* i; x                                        @.Destination.NumReservation + 1;/ ~2 A0 d2 l2 p% N( ^% {1 i) Q
                                end;
/ W! q2 r% t1 \+ {5 ^/ Q' M: f! L                                @.CurrIcon := "drivingHome";
/ N! v- b3 [+ C1 O4 ]                                @.DrivingHome := true;
' S) z* Z# {! E4 k                        end;6 d. G" r5 J( M9 K/ a6 l/ T
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" n: A, d% \) [9 p* g
                        part := @.transpOrder;( L- k+ f9 C' y8 q# B
                        part.move(@);-- load part$ @) V# _/ v$ E5 c) h) _
                        @.CurrIcon := "load";
! d8 F" f& f2 D. J+ N                        GlobalDistObj := part.globDestination;. g$ J4 ~2 L# {0 ?/ J. @! D9 {4 L
                        assignLObj := rgmanager.rgAssignL;
: p3 L5 L$ D/ e. N1 q- u                        row := assignLObj.getRowNo(GlobalDistObj);
" Z% y% I% M$ G+ F3 }                        if Row = -1 then -- since 70
6 O0 K5 y1 V' A3 C4 v3 e6 k! `: j                                if lan=1 then* w6 d3 M4 A% K* J0 M: B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 e) `8 l! D& R; y                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  k$ Z0 B) i6 }' O                                else
) s8 L" v8 V! y( G                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 o0 ~% C$ t6 t
                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ l8 W- ~+ I1 j0 V                                end;
1 r5 {" W# q0 V0 k1 f                        else
, ~  p2 p- K8 t% w                                @.Destination := assignLObj[1,row];
4 w" h1 W9 |. C5 P, p                        end;                        " m8 l& D! s  _
                        newDirection(@);) A, x! Z( \, |2 s  s& G
                        @.HasOrder := true;$ n% h) j  f  i" P4 C% J
                end;, F4 E3 I" _3 ]4 |% k/ t* B+ i
        end;( t0 W/ ~* \0 N) [
end;        -- of the method
3 P1 U1 g& P) f7 E7 ?7 V9 d, M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 ?. t; Z) @4 G/ ?: G
4 x' S# P" o  {5 \4 [
这是AGV_putin中arrive的method。8 R8 D  a5 q% a- c4 q9 W

1 f$ `1 D" `2 v0 H8 r* z当到达物料速度越高时,这个报警更多,4 y$ [6 Q3 f2 [/ p/ l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 m$ h1 }. ]$ Y- u& x( w& f4 @" w" b; a
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 C/ c! m; b$ Q9 y- v; D
  n7 f3 ?8 T* t$ {) t1 K另外一个小建议,就是move,所有的move都可以这样6 ], ]* l4 G. t: _, {
if not move() then debug end
3 s1 {: Y) y8 @) S8 i3 n" z$ |这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 V+ Z4 Y5 S9 R: ^( [/ Zplant simulation中的free libraries有AGV模板,6 p. R) @1 g) F6 a
里面也有案例。+ O: U5 _+ q# Q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 r& F1 m9 h% {- g: d$ G

0 |/ f6 d' z' P& ?% p* ^我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 ]6 m4 b: z/ J9 f; |% m7 `7 W3 {4 `, h- Y! \. ]
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 ]: }& R5 w0 S; K1 \: i* H. O9 R
这是AGV_putin中arrive的method。
$ _: J4 o4 \7 _
# d# s, `: C* d7 S# s9 |  f3 v+ D当到达物料速度越高时,这个报警更多,
7 X. D" U! f! f5 t. Z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-1 23:27 , Processed in 0.024618 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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