设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7062|回复: 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'
$ a" f: y( ]0 L6 I*/
& G$ F3 [/ s$ C1 @is
/ J/ u. f3 w7 Z2 \/ `% l8 I        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ E; k: `: s8 b0 @$ [& ]do
, N, i1 n( G1 I8 R' W        Lan := rootfolder.Internal.Tools.AOLlanguage;9 r6 p- {. k% I# A  h2 U
        if current = @.Destination -- else return: R- y2 e9 k0 A8 ^
        then5 C  g: [. l& K+ r6 w3 G% \
                @.Destination := void;% R9 {: U! I" \( v
                if @.occupied then) S: L; u& F" i5 K7 B4 `
                        part := @.cont;
2 e6 j9 Y$ J) u" U! ~" ~' ~7 Y                        @.transpOrder := void;
& M3 }+ f1 m8 Q# o0 s                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ Z$ R# B5 S/ r, d3 }) a* }                                @,root.eventcontroller.simTime);
" n# d& c1 ?* p8 J3 L8 \                        @.HasOrder := false;
( q3 n, L1 F( |7 ?, r- B' ?                        @.DrivingHome := true;
; S, V' T9 n+ u9 n! ]" Z                        rgManager.tryToStartTransOrder;0 P6 n1 H8 S0 s, h; U, G
                        if @.Destination = void+ _; ]1 _0 L1 t% K  _$ }( o6 V
                        then -- no transport order for vehicle @
$ T: s$ z! o7 ?: P- U! ^                                @.Destination :=, k3 F& W0 m2 a  k3 e! o
                                rgManager.nearestFreeStation(@,track.~);
" ?5 k7 h: a* A$ }3 m) {) z& |5 d                                newDirection(@);   
' Q4 ]+ O" U9 v2 G                                if @.Destination /= void then
, ]4 y5 R& {( a0 q: B9 p: a                                        @.Destination.NumReservation :=
5 h  \0 K2 O* t1 H5 P5 w; I' Y                                        @.Destination.NumReservation + 1;
( M0 z+ p; s% `' ]( |                                end;- [6 y) T' W& W; B" Y" A
                                @.CurrIcon := "drivingHome";
" {  T9 k, V+ r$ j1 l$ P                                @.DrivingHome := true;
0 k" ?1 r2 y4 {) A- v9 P                        end;
, T. N/ I  y1 E% p8 K7 f  |3 L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% Y3 r7 m4 V1 x$ s1 d, c1 V                        part := @.transpOrder;
8 M9 x! B0 _/ J: R5 c                        part.move(@);-- load part
8 }4 ?/ {' g# |! H                        @.CurrIcon := "load";# n  j1 {- J- X
                        GlobalDistObj := part.globDestination;
1 W- J* H$ S& t" h, ?                        assignLObj := rgmanager.rgAssignL;
# e# W% I6 e; V                        row := assignLObj.getRowNo(GlobalDistObj);
: a$ a" [3 c4 {& T9 K( r                        if Row = -1 then -- since 70. d0 w/ k$ y: z. f/ \' z  P
                                if lan=1 then
) X6 B- O3 `/ F9 M7 G                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ J8 T- c+ Q  I  m                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' R* g+ ^$ ~% R5 E4 I/ e                                else
$ Y. x) \2 B8 S' R                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) R/ ]* F+ o6 z: ?                                                to_str("in docking station: \"",?.~.name,"\""));                                . y) r5 B  L  ]4 u9 N
                                end;
) I: |3 M2 r- b6 ?                        else
6 l5 M. s" `' ^$ i5 W, T                                @.Destination := assignLObj[1,row];, h8 ?, N) i/ }$ E$ g( I
                        end;                        8 G: z5 j; _  W, n: ^! w" F
                        newDirection(@);4 S5 B( E1 R1 t' U$ S( h
                        @.HasOrder := true;
9 X' B2 E9 j+ B7 B3 ?6 A" E                end;
; Q) v4 V# |3 Z9 r$ \: P        end;5 o6 A5 [6 Q: w( C5 u2 D+ k6 B9 {% r& S
end;        -- of the method
8 H9 @: p* x6 `; n, [- w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 c3 }* |* P6 c* g& g% c
/ U1 ]2 w1 [7 d
这是AGV_putin中arrive的method。# u% M2 u4 O0 W& C& S

! r! h: y- w$ B: z" ^+ x& F+ E当到达物料速度越高时,这个报警更多,$ r3 W0 f# U& m7 x+ |/ ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 e7 p; _& F" j1 W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# g% O1 T9 g0 j8 Q: ?' }$ \- h6 V9 k, h8 ?4 ~/ [
另外一个小建议,就是move,所有的move都可以这样3 ~4 n( i& h- d- R9 }* k$ f3 j# K- s
if not move() then debug end
  C9 {3 G& x; G. j$ v9 B这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. X2 x6 v0 E" f: b4 H1 _
plant simulation中的free libraries有AGV模板,
8 O0 e! Z2 u2 E" ]里面也有案例。( L1 Z; U* b7 A+ q1 t% b( a6 H
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 l5 M* m  ]4 P

7 R7 R4 L7 O2 K9 A, Q( \; @. Z) \- ]2 z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % l! N* |3 K/ X
- e8 D! ^$ a8 C% M1 B
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. ~5 B" s% U% [( ?3 e. @! u8 Q这是AGV_putin中arrive的method。; \5 a# ]+ c+ H8 V/ d- M

! L$ ]( a$ g! V! }2 {当到达物料速度越高时,这个报警更多,

2 e+ r- b1 Y! S: l, }另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-14 09:00 , Processed in 0.023815 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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