设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6505|回复: 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'
+ m0 B8 d) n" u5 U( n' z# D*/
$ C. s* o( U& P; e* lis
! O4 ^; Z3 Z2 k9 z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: J$ r9 R  j4 w' k
do1 ~% E1 |5 G0 n" j
        Lan := rootfolder.Internal.Tools.AOLlanguage;1 ~' J& {1 d5 D$ w! {  r7 C
        if current = @.Destination -- else return" |$ N+ p! f  ~
        then. X; r( F# V, P0 S
                @.Destination := void;
7 i) I- Y# O, k" f: v& \* l                if @.occupied then& N! u, x( q% T  z4 I
                        part := @.cont;
3 A$ h( w* S1 W# d. W3 Q' V0 p8 p: p                        @.transpOrder := void;
- l/ k2 p7 J' m2 A' ?2 x                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
- Q6 o+ v4 Q+ {5 V* @+ e                                @,root.eventcontroller.simTime);1 @* A! O  {( x. F4 E# }( v* v" X
                        @.HasOrder := false;# x2 e/ D# I( r
                        @.DrivingHome := true;' w+ p# d8 ?# {7 j; A; p
                        rgManager.tryToStartTransOrder;
: f* x7 h% v: G! }* h* c                        if @.Destination = void: W) z- T; \/ W# G- R( r( H3 i. d, p  E
                        then -- no transport order for vehicle @9 w# t9 A' j2 }+ e
                                @.Destination :=  }0 @5 R# l2 z- a' o# Z6 M
                                rgManager.nearestFreeStation(@,track.~);1 J! g/ ~' ]8 [7 a
                                newDirection(@);   
$ }* S/ ~0 X2 z. d                                if @.Destination /= void then
9 i+ A5 o2 z# I+ ^                                        @.Destination.NumReservation :=
4 \- m- k$ [  @: o                                        @.Destination.NumReservation + 1;
" r/ A6 K5 a- c! J                                end;# O( ]! `* U1 D) r4 i5 Q7 H& X. X) D; f
                                @.CurrIcon := "drivingHome";
* f- ^2 d9 M# }5 V  H& V                                @.DrivingHome := true;- T) L" e, \  ]  O; B# I/ j) t
                        end;
3 ?1 s, m9 [8 u- W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* w: |* e$ l2 D0 F2 N! M4 A& t: c
                        part := @.transpOrder;6 W# [7 V, F  R3 X1 u  R
                        part.move(@);-- load part% e2 x3 z( D$ e2 v# z, z
                        @.CurrIcon := "load";6 c5 M  F, `- ~0 a4 B7 n3 P
                        GlobalDistObj := part.globDestination;
% y" t( ?, a) g' S7 F                        assignLObj := rgmanager.rgAssignL;
1 ?4 ?4 M' s* W                        row := assignLObj.getRowNo(GlobalDistObj);) o1 w1 E# I! d" L- X8 |
                        if Row = -1 then -- since 70
% p9 q3 D1 c! M' q                                if lan=1 then
+ }+ Y* ?* \; g  w  E* S                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# `; L5 @& O  ^6 \, X! i                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: x, a2 y; x6 D. ^                                else
! d. T. r& H0 U% [* D& I  {" i) B                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: M- s5 J) b# `1 v' d* h6 [                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 {+ b8 s( j& l' e2 p2 V1 j                                end;
+ _* H5 l! S- B% N% k" s0 }0 k                        else
6 P1 v8 m+ r3 l1 s4 F$ ]' X/ ?3 o                                @.Destination := assignLObj[1,row];! K2 j2 `& h7 s+ E1 x2 Q4 F  q
                        end;                        5 D; [8 L3 o* i
                        newDirection(@);1 Q, R. M6 n$ Q# Y" A* M
                        @.HasOrder := true;
3 M( K9 O% K  D! Y4 D- X                end;# F1 Q# f' ^2 e$ g& Z) \- b8 i
        end;: `, \6 C; I( e$ S5 u! K; Z
end;        -- of the method$ B) w" D2 c) @* Q4 q- Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 \; ~4 o% w& D8 l! A) P
5 B- m! F: h, z这是AGV_putin中arrive的method。, }; O7 \9 p' f
" Z% E* H! f0 e, u
当到达物料速度越高时,这个报警更多,! q8 d2 g& i5 N  P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; X2 D1 t3 a" o( b
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  Q) ]5 ?" a6 e9 {) r

5 d% L& {/ H9 e" x. E* [. y2 M. I1 v另外一个小建议,就是move,所有的move都可以这样0 U+ O1 Z5 K' @9 S) [0 G
if not move() then debug end( W* v: A9 X9 |5 j2 N9 V! O* X9 e
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 x, c2 d/ B- {! g$ u  ]. N- Splant simulation中的free libraries有AGV模板,
5 S2 S* w  @) a, K里面也有案例。
. _; A) ?& s3 @$ x% r我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ D0 a+ T7 b  {+ S6 F' ~

8 d" k+ Q8 Z5 W1 Z2 c. b5 V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. X# f+ T' Y, z' T2 i
4 c' a5 E& ^" A那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- j5 r" W5 X) h* X( _- P+ v这是AGV_putin中arrive的method。( i+ w2 a7 F. c7 r9 B& m' B
; k2 s9 y: I/ z  x1 Z
当到达物料速度越高时,这个报警更多,

1 W% j8 ^0 N( Z6 \3 S( `另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-10 00:26 , Processed in 0.024188 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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