设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5898|回复: 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': e* B! |  e  ]& i
*/
: d6 T1 w9 T4 L8 i& U6 @is6 `. x! u/ T) ^" {: U
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" t! }6 k% }# Udo/ Z9 A4 I8 u8 \9 ^" p. w: d0 `+ I3 }
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 e" V  b1 @3 e7 ~; Q% B
        if current = @.Destination -- else return
( c2 h, ~6 \6 S& H        then% `3 x9 R/ n. x. O
                @.Destination := void;9 T7 R8 g# d$ i$ x
                if @.occupied then
( m+ T: W" O0 S6 K$ y2 m. \8 R. M                        part := @.cont;& r0 v  C; E/ e2 u9 J9 X
                        @.transpOrder := void;0 w& l. _  I, i8 ~# b4 d2 u
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ N) w- S: Q& p6 w: c. f8 P6 q1 M! e2 {                                @,root.eventcontroller.simTime);
3 s- {5 [( a. F0 C& ^' c. x$ S                        @.HasOrder := false;
2 w1 W4 b2 ~% C, x; `8 H                        @.DrivingHome := true;
/ }3 d0 u% _" f% \                        rgManager.tryToStartTransOrder;2 K! i. v9 ?4 m' u& z, t
                        if @.Destination = void3 x# j1 ~& w$ d2 p1 s. {* q
                        then -- no transport order for vehicle @
6 d7 k, J, b% A                                @.Destination :=( N8 r/ K2 Z& V0 Z: _2 v3 E
                                rgManager.nearestFreeStation(@,track.~);( s9 `. X+ I& g" R- H7 Q" j+ O
                                newDirection(@);   
3 Y0 m: c+ I  l/ X% e. ]: a                                if @.Destination /= void then  K3 ^3 K; i! x  i7 H1 X) o6 h
                                        @.Destination.NumReservation :=
8 K, g4 }- `. u/ r; b: b2 p, p                                        @.Destination.NumReservation + 1;
% v; N) o2 i$ h( b4 }9 I                                end;
% r' P) a; j' c4 \7 }8 ^+ x0 j                                @.CurrIcon := "drivingHome";
+ P  y8 W& e# f3 v4 ^                                @.DrivingHome := true;! U' o* R/ X3 b1 P
                        end;
- S6 C+ {& P* Q. T$ ?& i                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 `2 M; z) m. E, j8 g3 c
                        part := @.transpOrder;
' W- w0 [* W; m( S                        part.move(@);-- load part9 f6 K0 P: g% _
                        @.CurrIcon := "load";0 Z/ x! _1 W* b
                        GlobalDistObj := part.globDestination;
  E; g8 D7 X- O                        assignLObj := rgmanager.rgAssignL;) v- c. g$ e' k4 @8 W8 U. N4 ]
                        row := assignLObj.getRowNo(GlobalDistObj);
7 |0 P1 o5 v/ J8 i, ^1 t  ^4 F                        if Row = -1 then -- since 70
; U5 _7 }# B- e& Q; N                                if lan=1 then/ D& t+ R8 r% a% H8 w' [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 \3 O3 j+ B! h: k                                                to_str("in der Andockstation: \"",?.~.name,"\""));- i% K8 D/ b' [) k( v- m
                                else# u) l% C* y5 |
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ S& A- _/ A! H6 G                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 S% b8 m% {8 T9 t& T                                end;
7 W/ }; _% ^% R% j3 @; ^  x                        else, `( `. V$ N: h  K8 [3 ~
                                @.Destination := assignLObj[1,row];
  B$ t  M, Y$ i                        end;                        : @' e( E" g! t0 d" |, X
                        newDirection(@);
% N) P8 e, W: X* x                        @.HasOrder := true;0 m0 j% R3 m0 b
                end;
; M  }+ u8 D4 g3 o        end;& r& n7 S" e: h" l* X) l7 @, T
end;        -- of the method+ @% _7 h0 L& W1 ~: ?* S+ [  ?% h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) c, `- h+ j4 R4 ]3 }3 d
9 z1 T7 N2 s3 T( f! A9 T, _. P
这是AGV_putin中arrive的method。0 @  X1 M3 [$ L4 A8 J( R0 v$ {: R, ]

8 i5 p5 N* K2 i/ s, b当到达物料速度越高时,这个报警更多,
% ?/ a. L5 X5 @可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' E" W2 ^& i9 \1 ?- c- {( m程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 T- P0 C  I2 }7 m

+ F% U5 g" z( ^1 A  O另外一个小建议,就是move,所有的move都可以这样! W; v, X4 E. A, T: \' q
if not move() then debug end! A2 u7 _9 r1 {" k
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' e$ B6 g  W: B
plant simulation中的free libraries有AGV模板,) `6 ^9 ]( c, H- w
里面也有案例。  G. r" f# @# V8 c& l$ T/ {& h
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* V. F, @2 H) O: j
2 W+ C/ S# j: H; Z% R我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) w: f& A, ?4 w9 A& S: j) e" D0 F  H9 g; V
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 5 b5 |  s( q  W5 U
这是AGV_putin中arrive的method。
9 V4 E( t+ j3 O% v
$ i: L6 J. [# s; ^5 z2 X8 ?当到达物料速度越高时,这个报警更多,

( P. \* X: p7 }6 g8 v0 ~1 A另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-31 02:55 , Processed in 0.017431 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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