设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7948|回复: 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'
/ b, e9 n8 a8 d9 T; U5 l*/$ y4 e9 i9 Z) p5 d& B
is
- L2 _! c" Y# @: k1 |; e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ q: l1 `! h6 `, D9 M
do
3 T9 ^+ T$ H4 Q        Lan := rootfolder.Internal.Tools.AOLlanguage;8 a* a1 z5 T  N3 m( v8 e0 `  _' @
        if current = @.Destination -- else return
2 o/ o' t, ]. @6 s0 j6 Z' U2 Q        then9 c8 e7 `: F* g7 V8 [" E+ `: k  F- H7 ]
                @.Destination := void;
- k) b" U, F$ i* ^# v                if @.occupied then
' i% ^4 V- w! `* C7 Z% x: N) E- s                        part := @.cont;; a7 q1 R1 ?+ {* c& Y4 Z
                        @.transpOrder := void;
) _  S9 Z" |* Z  D0 V8 L                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- v6 L+ M' a, Q% l2 S: s1 e! a
                                @,root.eventcontroller.simTime);; q$ u, ?3 S: V6 g
                        @.HasOrder := false;+ I* t2 w8 h9 L( I* ]) T1 ~: }7 c1 L
                        @.DrivingHome := true;7 j: K/ I9 J% Q" a9 W# J* O$ o
                        rgManager.tryToStartTransOrder;$ i* {8 `+ j8 |- i
                        if @.Destination = void1 K4 B' K. v' H2 l: V+ o' T: t+ M
                        then -- no transport order for vehicle @3 X( K  m- _6 }
                                @.Destination :=
, X; a' u; t" B                                rgManager.nearestFreeStation(@,track.~);
* e1 d6 n3 A  ]' ?8 F                                newDirection(@);   
9 |2 s, q- E; [* c                                if @.Destination /= void then6 \) }/ n: B& v, P. ]
                                        @.Destination.NumReservation :=
! c8 G: F7 k! n5 X  `0 C+ Q3 P                                        @.Destination.NumReservation + 1;
3 t* P  }% F6 ?- T- d0 m                                end;, w! Q9 E, Z  z9 [$ M+ r
                                @.CurrIcon := "drivingHome";5 s1 F! K2 M0 |5 U1 S9 P
                                @.DrivingHome := true;8 b  m! C* n; Z8 Z6 ?: y
                        end;
1 r0 |6 ~7 F6 z2 D. N4 @2 l                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 A" c& j9 q$ Q1 w# R
                        part := @.transpOrder;, u- n+ k2 W% P' t# F' V
                        part.move(@);-- load part
# F4 _+ m9 ]. t                        @.CurrIcon := "load";& G1 u6 u* u7 n3 }
                        GlobalDistObj := part.globDestination;
; F8 N* ]5 B, t! Z' ]                        assignLObj := rgmanager.rgAssignL;: v) z7 o# T! c. \0 {6 v& B
                        row := assignLObj.getRowNo(GlobalDistObj);
2 w9 Q7 `% m8 M0 m                        if Row = -1 then -- since 70
5 R# j* P3 U' E$ _. g, @                                if lan=1 then! x4 w0 G# b# J/ }6 K7 e' C, Y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; ?; i( M* ^3 N1 ]' E. h                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 L# Z* _& z1 b0 ^) k# B3 K) p5 s+ g
                                else
5 q7 N. d0 o4 ]2 o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 N9 _' q2 O- x! `                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 M8 j6 C9 O: i7 @                                end;! i4 a" K# z" _: i
                        else
$ b+ X$ ]& b  C$ u5 q4 R8 g5 |. b                                @.Destination := assignLObj[1,row];
/ u/ l: T  v# Z" Z3 `                        end;                       
/ D4 \) I0 _! k% |6 X                        newDirection(@);/ d6 }. W' G& l0 Y  n8 e
                        @.HasOrder := true;3 M, i- ^, d2 s* l( _/ e& Y; u
                end;
% H  g! R1 I1 L4 m( v4 x: q. c2 F        end;/ c) G( I. x7 m
end;        -- of the method- x' F2 @8 p: V& S) Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! y- W0 O( E" i* E5 V/ R

7 b$ P! u8 w$ V) j3 X! B这是AGV_putin中arrive的method。2 \' \3 x- Y2 t$ F* T

8 a; S6 @: B7 d( x' G" h( h* _1 l当到达物料速度越高时,这个报警更多,0 F! t: [" h6 U) ~
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, q1 [! P4 ]& w9 C4 a8 {* K( C
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 |3 b4 N8 [6 u  F- r5 W- }0 n
2 l. @2 @$ F  }2 v另外一个小建议,就是move,所有的move都可以这样
! \/ G2 q3 a: C) W/ w0 Xif not move() then debug end
. ^) x5 u9 T5 V  S% b7 D这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ l8 f: g7 }6 B9 I- hplant simulation中的free libraries有AGV模板,
: m/ J3 \8 [0 k3 z, i里面也有案例。" q: E9 A, U# @5 `4 u6 p/ G
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& z: H9 ~% O7 r) m0 D5 Z3 N' [; }  @
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! Y- G8 b- P$ k; f) f9 c/ s
5 \6 l0 O" a9 d4 F8 [) n# t
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. z. Y& {& y; \+ [$ L& ?& _这是AGV_putin中arrive的method。
* r& w. l) {9 X; }7 p0 k# D: P6 j8 h/ a. S
当到达物料速度越高时,这个报警更多,

9 c8 ]' C. |' a另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-7 03:23 , Processed in 0.019440 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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