设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9111|回复: 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'2 ^2 h% c5 P& [: d3 H
*/" {7 k2 J/ ~. t0 d8 l" I9 P
is% M5 x- }9 R3 d* K4 I
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; q2 ]9 g2 K9 P: S+ Ido* I& m% Z0 }  d8 p" c
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: Q: B) s9 e7 N0 E( G- c        if current = @.Destination -- else return
6 A) x# ]$ s6 u( \# u        then1 h+ s1 Q! ?# G: D
                @.Destination := void;
. t6 t  `3 V9 @7 {                if @.occupied then
. A  T4 l& Y- Y4 C! t                        part := @.cont;
+ D7 Z0 @) R2 m9 T- Q                        @.transpOrder := void;
( M# i+ c' ~7 p1 t3 P1 H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 n4 _) W, N' H                                @,root.eventcontroller.simTime);
; c) Q, [# ~0 m! `* J" {                        @.HasOrder := false;- d3 u: x5 B; v! G8 }
                        @.DrivingHome := true;
4 _( C8 k- b* p$ k, _1 \; z' ~                        rgManager.tryToStartTransOrder;- ^3 h1 ?0 B: |) v6 {% U( [
                        if @.Destination = void
# U/ C! |6 h7 C/ U" u. @. \                        then -- no transport order for vehicle @% p3 z+ ~; ~- p( J# ^
                                @.Destination :=
7 T8 e8 o+ J# \' D4 I6 i$ x* U                                rgManager.nearestFreeStation(@,track.~);' Q+ v# M& O8 P7 T
                                newDirection(@);   ( N% ]8 o1 j1 w- D4 J' u0 v* s
                                if @.Destination /= void then
/ g7 c. t4 i- E, p- S                                        @.Destination.NumReservation :=
8 |2 S$ k8 M* C, G5 H1 x9 d                                        @.Destination.NumReservation + 1;9 H1 u( p$ n* V' }* C2 _$ i
                                end;
* p; g% ]5 v$ B% `) u" u                                @.CurrIcon := "drivingHome";
0 Z8 R4 V- @" r                                @.DrivingHome := true;8 x2 @: d; L% C) W
                        end;- u. I- i; f0 _% x0 f
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% G  ?: i6 k: F# l; Q                        part := @.transpOrder;
% h& [" O3 d6 }& ?6 V4 {0 m& B9 t; q                        part.move(@);-- load part
9 i0 \% q% O4 r/ N# {* v" [+ B                        @.CurrIcon := "load";( d  X" r, R6 r- L+ r
                        GlobalDistObj := part.globDestination;1 ?6 K+ v: H# u9 c, w9 d4 O( ^
                        assignLObj := rgmanager.rgAssignL;% q( D5 h+ t2 b0 `6 N  a
                        row := assignLObj.getRowNo(GlobalDistObj);% R: z% M3 e/ d5 [4 z% v
                        if Row = -1 then -- since 703 _+ d* @# \4 H6 G
                                if lan=1 then' C5 ^% m- ]# u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, V) u9 r7 l9 a                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) B# b0 W3 q& X                                else
! r) J+ `1 \3 X                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# h/ [" X4 M* w3 S5 t) J                                                to_str("in docking station: \"",?.~.name,"\""));                               
; e2 F# f% k# I! l                                end;7 C: K* W% Q. q7 t0 g% Y
                        else
* B5 \9 y' _0 w! }' {. U* T                                @.Destination := assignLObj[1,row];# S3 r: n5 F) ^; a6 _  V* q
                        end;                       
( g/ B) b/ P9 P                        newDirection(@);
( I) _5 ?. V# v5 s, B& X                        @.HasOrder := true;7 P2 V* B, N- [$ v! Y$ z$ r
                end;
2 I# |# E2 d( Q* ~& Q        end;
( D9 C8 V+ h& \& I0 ~end;        -- of the method  k" r9 d# d  Z7 A) G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  |8 @$ P4 x1 p9 B4 t2 M7 d" ]/ Q  X& V) E
这是AGV_putin中arrive的method。0 l3 l! O* C2 D2 w/ F& p
6 b- `# w; O! _6 ^8 Z
当到达物料速度越高时,这个报警更多,1 O1 ?6 o2 u0 F! p& c2 g5 T7 _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. K- X# X" E% b* ^( }6 _程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 ]9 w& f: }+ \. k
/ H) d7 [% ~1 e7 h0 i4 @
另外一个小建议,就是move,所有的move都可以这样
) D+ M5 {/ O1 U8 \if not move() then debug end
) ]8 J: ^& i1 T! W: b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, {, y: i) g' s8 yplant simulation中的free libraries有AGV模板,
: a# V; C) _  `9 `' O里面也有案例。
; [" x( G- L" v8 v5 _8 U, w+ y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 [; V; Y- Y5 d  ~) I5 z
1 X" D7 N" Q* M6 l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . X$ ^+ ]/ w0 M$ r
- N( M  a% M" e% n7 M: F5 U
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& R3 M# k/ M. {; m这是AGV_putin中arrive的method。, @& o( J3 b, ]1 ]

$ f- {, Y9 U3 c* N当到达物料速度越高时,这个报警更多,
2 a0 h0 g" E4 h8 U
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-14 06:02 , Processed in 0.015440 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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