设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8728|回复: 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', @8 W9 @3 L6 s( h) n- [6 Y+ v
*/3 ^6 `) |) E/ a1 t* A* S, ^
is: B3 |/ m3 k5 A- y& i* [( {$ e9 P5 H
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 Q8 x$ O& D! O/ A' G
do* @( _& E$ q1 V; e' x. S
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 A% T; m+ h& n5 ]2 T" S        if current = @.Destination -- else return: e, M5 v. p8 G6 B
        then
) ]" V: J/ n# P- o# i; `                @.Destination := void;
9 X$ K" ]" ^% q; g1 h  ?                if @.occupied then
: l8 x4 P' }# _; l                        part := @.cont;3 u2 P7 H  R0 ?7 N- x% O
                        @.transpOrder := void;
; S. S! N( I; j3 ?                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' ~" b) \( z* W3 Y" o0 \- o
                                @,root.eventcontroller.simTime);; r; R& g& M- J. {, @
                        @.HasOrder := false;
& ?* R% |) a  W0 l                        @.DrivingHome := true;
' Y) K8 J# f9 w" Z2 H) s/ w/ {                        rgManager.tryToStartTransOrder;" R4 K. m7 i9 m0 l1 R/ D3 |) o
                        if @.Destination = void5 X; `) K' ?# R1 z8 {
                        then -- no transport order for vehicle @6 B! Q0 v8 `2 l' B, b. ?
                                @.Destination :=0 b& M* v2 v9 y3 [
                                rgManager.nearestFreeStation(@,track.~);
7 K; N5 a/ |& @" \" ]# \                                newDirection(@);   * V# I+ W; f% ~1 i7 O1 I
                                if @.Destination /= void then
. M; y7 B/ E$ V2 Q' v                                        @.Destination.NumReservation :=8 H( Z& D) _/ ~2 [7 `3 J: c4 r# \
                                        @.Destination.NumReservation + 1;
- |8 a" i0 ]1 ?5 a. \' C% U                                end;6 ?, o# B7 u- m: V
                                @.CurrIcon := "drivingHome";2 d6 h- L( k* I+ k6 k. q4 H3 e
                                @.DrivingHome := true;6 U3 M2 t, \! u' A0 [- c
                        end;
. A. D+ @. [# Q! y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  G  Q, R& @' F0 U8 J                        part := @.transpOrder;4 g7 B$ l$ d* ~  D) v9 }3 m4 J
                        part.move(@);-- load part
% G7 i( G6 W+ |+ ]                        @.CurrIcon := "load";
+ Z" ?5 x* I/ T) ~# A0 \                        GlobalDistObj := part.globDestination;
  D* U, ?4 H' F) |* L                        assignLObj := rgmanager.rgAssignL;
; y1 v5 e: b. B9 e0 p! R! ]                        row := assignLObj.getRowNo(GlobalDistObj);
5 @: a2 z* t: ]: E6 u! {7 U7 R! x                        if Row = -1 then -- since 70
$ c7 y0 @8 e/ W3 v) l                                if lan=1 then
1 v2 Z" t, b8 g4 E                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( K) f2 d# U5 r) V. v, \  v
                                                to_str("in der Andockstation: \"",?.~.name,"\""));( K, P( |, b( M$ D  O# O1 ]3 {
                                else" b5 K) V# z' A" M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ X6 T6 s6 F" _+ k; B4 \+ @
                                                to_str("in docking station: \"",?.~.name,"\""));                                6 i+ E* H, e) `7 N) D
                                end;# ^+ r6 |- l9 t) u
                        else
7 N5 t) q! f; `: K; m  s! s9 V                                @.Destination := assignLObj[1,row];+ x2 F1 o4 U6 t! H
                        end;                       
+ t% M; g7 d5 [% ^! G, t7 w. G5 H                        newDirection(@);+ l# t2 B1 l* t
                        @.HasOrder := true;9 U4 _0 q' H! M8 b; b, a1 V
                end;  f1 {- y7 S% t& [2 F' l" N9 E( o
        end;4 O* S7 s8 C4 d( p9 t; M+ K7 Y8 R
end;        -- of the method) O& b$ f) u4 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# D! @, d$ h4 S8 B" n7 r0 R
2 E+ d) K: K! h4 n这是AGV_putin中arrive的method。
% H0 O4 L0 a# Y* C' X: M) {& ~; Y% `& @6 ~- P% {4 B9 `
当到达物料速度越高时,这个报警更多,
, j$ c( ?& }& i7 Y可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ ^6 F, f+ v/ j% K+ k程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" f2 k6 i) R' |) u/ N/ C
1 u8 f* n6 D0 i8 P4 n0 f: {
另外一个小建议,就是move,所有的move都可以这样
' o. K6 `8 @' s9 C( vif not move() then debug end8 P2 J) d  K: Z! k
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( b5 ?, n9 E% N) f) hplant simulation中的free libraries有AGV模板,8 [0 _5 p6 Q: \
里面也有案例。1 C% U5 U, |. a& k. k+ A2 Y4 c. b
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  k3 ^+ V/ r; I; H: O8 Q! f8 L7 j# x  u, U, }& {1 l
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - u/ S2 o* F& M1 v* a; F. F
  z+ I( w; l% c- B. H6 q2 H" h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, T" C1 l. d. p8 C1 n; m6 d这是AGV_putin中arrive的method。) x0 `& `* B1 Z) O1 _
8 l: l3 j8 ^7 j& c5 c2 j
当到达物料速度越高时,这个报警更多,

1 i& M# X- }3 w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-22 20:43 , Processed in 0.020579 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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