设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5518|回复: 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'+ ?% n* c; q& Y, w: c
*/
% k( b5 j8 H" R0 C- q& Y7 ris/ \6 b2 D1 E' ?/ f6 i, O/ `
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 n, H2 G& [6 `9 m# zdo
9 g  `( a! B1 v: i* T        Lan := rootfolder.Internal.Tools.AOLlanguage;
) m* ^! R* K" }, _+ @        if current = @.Destination -- else return' r, e+ X8 ]! s) T- ~6 C
        then
/ F8 `# F, Z6 D                @.Destination := void;) z; D+ S5 q$ H3 T
                if @.occupied then, `! O6 H8 |- r8 H1 T, H
                        part := @.cont;5 j9 c0 u' V2 o$ u  R0 U3 \" f$ E
                        @.transpOrder := void;
, H, }$ g7 M* k6 K* F                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 s2 b; N/ @6 u" W5 W                                @,root.eventcontroller.simTime);! l7 h4 c$ N# u: e, G3 |. c0 Q
                        @.HasOrder := false;
1 ~1 m4 x6 }0 B3 s  M$ J. ^                        @.DrivingHome := true;
) Q4 @- N' w. u                        rgManager.tryToStartTransOrder;$ O/ P& w) d. I7 q2 o' u6 w( Z. {
                        if @.Destination = void' D/ Z' k8 }: A2 e8 H4 i
                        then -- no transport order for vehicle @
& H* X: s" f' G                                @.Destination :=
& ^. E1 V8 O: u                                rgManager.nearestFreeStation(@,track.~);
! A2 ^) I( w4 o3 z                                newDirection(@);   
: E( y4 _) N$ G# t; ^- {                                if @.Destination /= void then% K$ x8 W& T: W
                                        @.Destination.NumReservation :=; L. q+ ?6 P+ \% s
                                        @.Destination.NumReservation + 1;3 x' m6 L- E0 c$ [, y
                                end;' Z8 W5 X% S7 ]7 W) A: L
                                @.CurrIcon := "drivingHome";
- p5 [0 w' _6 U( F                                @.DrivingHome := true;! N5 ~4 |1 s  O! f/ j
                        end;- l0 D6 a2 u/ B7 K8 w+ m" q* s
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( K2 j: i: W+ a( [& R
                        part := @.transpOrder;1 Y# G0 _1 R: s' D" w4 t
                        part.move(@);-- load part: w( h: }2 ^; m2 d- \2 W
                        @.CurrIcon := "load";0 o  y8 l8 r' b  A; G: }  O
                        GlobalDistObj := part.globDestination;' z: n! `# b$ ~# t  o
                        assignLObj := rgmanager.rgAssignL;8 C, m9 d5 F+ e* w7 Z2 a2 o
                        row := assignLObj.getRowNo(GlobalDistObj);
! C- F1 W) J* |; c% b                        if Row = -1 then -- since 70
7 w, k% D4 }: X) T) }& H9 @" }! T                                if lan=1 then, r: M/ C. `) a* g! d8 {8 g3 t$ ~. [2 X
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' [6 b( M# q4 i" q- ^9 u7 g. X                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; k  x" D, a. s+ o                                else
& t) d2 _: N( b5 L( l% q3 }0 {' p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' z, f7 _6 {( n$ U: n) p% X$ Q2 f                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ m# W8 d% q5 U$ |$ w                                end;
  k. c3 L4 X' m, d( Z' C) w( y, d5 a                        else
9 d' o4 W+ @1 t, z3 Z                                @.Destination := assignLObj[1,row];, d! \8 j! [, K  J7 P& |' h6 h$ }
                        end;                        # r0 _" x1 k8 u' c  I
                        newDirection(@);
5 h% z  v! O7 k" T8 S7 p                        @.HasOrder := true;
: Z: s; J0 H; }  h. E& G! K" ~! g                end;
% G, }/ Z6 o+ k7 j# D        end;
, W5 Z1 H& _) b" T& \end;        -- of the method* B. V2 L2 @4 _4 k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* Q: L! W' y, `$ x* Z  O  X3 B2 t! x8 w- |# n. `
这是AGV_putin中arrive的method。  [6 C( J0 E8 y2 B+ q
0 C7 d- B# {8 ~" Q% T" f' Y; t
当到达物料速度越高时,这个报警更多,& u: r8 g" F. ?6 N  h
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. a% R4 e( D: H1 E. z9 y) V" f7 W
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) {. B# i. h% `4 F& I  k
5 `$ i' c% O) [5 q% ~- b8 g# _: t8 P另外一个小建议,就是move,所有的move都可以这样
: E6 W$ {$ c5 D# O5 k+ e% H' ]  L; yif not move() then debug end6 J6 Y, B0 j; i+ s; y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" ~. s% w, s: ^
plant simulation中的free libraries有AGV模板,
" B- W4 d: h6 f9 U# ]  t里面也有案例。/ D  _) q9 }1 v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ ]8 r8 H6 k* B$ p! y' s, w6 _$ W( h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 y4 D" U& ?0 ^8 o1 `' r. Q
, z# q; Y2 y" `+ k, A6 w3 p1 u
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( C: v2 v6 x8 [
这是AGV_putin中arrive的method。
2 K3 V* `6 U0 L8 k6 P0 N
6 f1 K4 H6 n, Z: z当到达物料速度越高时,这个报警更多,
! e, C5 u+ _- B! B" Z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-30 21:24 , Processed in 0.043612 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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