设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7097|回复: 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'
0 k  I% ?& d% {3 Q- H*/
! W6 u  t" w+ E4 J! a: ?is! q9 |8 H- v7 t5 m) r2 i% u
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# d1 ]- f. }  i& y! L
do
5 S8 F' e. ?. ^- Y) [        Lan := rootfolder.Internal.Tools.AOLlanguage;& R) X7 W$ \  Q. j6 x. l
        if current = @.Destination -- else return
; d) E+ D! V0 D& f: }$ I+ E7 U        then
9 w# u7 v3 z4 l9 C! G1 B% y                @.Destination := void;
- N6 Z* G8 _  |& e2 _. i# C; }                if @.occupied then: O6 G8 {9 h" w% W) U# R/ _
                        part := @.cont;
7 H" G. j- a, m( G                        @.transpOrder := void;6 Z6 ]! q: \0 [1 G
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 q: J8 z& r* c3 F/ p                                @,root.eventcontroller.simTime);
1 m' F, o* t$ f0 n* {, n% M' V                        @.HasOrder := false;
/ J/ C3 B7 I5 `* X* p( [# ~) N                        @.DrivingHome := true;6 W- T" K  R# F( a1 `* O' Z
                        rgManager.tryToStartTransOrder;
% x, {% o+ b. J2 K+ d& e                        if @.Destination = void
5 x5 `1 y4 q/ B$ `" l' _' b7 p* n) Q                        then -- no transport order for vehicle @$ D6 E+ I- Z" |
                                @.Destination :=
6 K/ `1 _: f  Z! x" v2 X                                rgManager.nearestFreeStation(@,track.~);+ U3 n" |! N+ L$ k) \; t* i
                                newDirection(@);   
1 Q9 q+ K# D. K% V$ F                                if @.Destination /= void then
7 m/ n; s+ q/ N% \& x' A                                        @.Destination.NumReservation :=
' E+ L, @/ Q/ O$ C$ B                                        @.Destination.NumReservation + 1;
) O0 H4 }7 b0 U- i9 g                                end;
# @+ b5 y& w. B: P# W                                @.CurrIcon := "drivingHome";- d! K7 {" `+ a# M* o* [
                                @.DrivingHome := true;
4 ^4 l# }+ Z& G- Q( ]. G; [/ P                        end;  D6 @6 w6 ?/ a" _9 Z+ O7 `
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" @8 U: ~# N) ~0 b2 _                        part := @.transpOrder;, y( t6 j+ p. Y* U' ~
                        part.move(@);-- load part8 x, |0 E* [2 ?* n4 F$ O
                        @.CurrIcon := "load";
  D& m! t" R, M( v3 U                        GlobalDistObj := part.globDestination;8 P; k  ]; [; r9 S
                        assignLObj := rgmanager.rgAssignL;
, \6 l# y  g! ^2 P                        row := assignLObj.getRowNo(GlobalDistObj);
; g* {3 k- r. q4 a# c, Y                        if Row = -1 then -- since 70
. y6 s) c& u& N' z. z5 G                                if lan=1 then
/ K  p! g% x/ N. M                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, ^) i1 V& ]7 O7 C                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* y* K) k; g3 P) e, {                                else
; A5 {4 N. J8 y; i% m* n                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 ?2 _# ]  G  K" [2 F1 C5 {                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ I/ a5 D% v9 [5 ~                                end;/ h* r* F1 ]2 B4 N0 D7 |
                        else/ q9 I' |8 Y0 m
                                @.Destination := assignLObj[1,row];5 w- h/ K$ h3 e5 `
                        end;                        ) A. P& y& u6 F' |' J/ k: [
                        newDirection(@);
% L5 _& F) Z4 A                        @.HasOrder := true;
6 H/ o3 k7 p- F' `4 W                end;# B$ H! b! T  j3 [7 G# s
        end;
9 F7 _; S& U' `6 Gend;        -- of the method5 G( |; q) Y& \- R! C9 F1 a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ b7 G( n6 W9 L- q; k$ m: i! R: Y) v! m* C) u* ]% s/ ~
这是AGV_putin中arrive的method。
+ l' {) \+ G) s- y6 z7 [# g9 @; S: P/ T5 I) B2 z( I5 G* l
当到达物料速度越高时,这个报警更多,
& v- ~4 u7 d& n3 V: I2 X2 V& w可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# {; f- r$ v2 |* R1 {; V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ R$ l6 \9 f+ A9 p& p( ?0 v) V# W4 D) R- X0 B
另外一个小建议,就是move,所有的move都可以这样( U4 v& n- [4 B* N- K/ u
if not move() then debug end
1 G& I: W' O- ~. x9 x0 {  j- O! _4 x这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% D6 Q9 }" G/ Mplant simulation中的free libraries有AGV模板,
. y7 w1 U6 }; {% W里面也有案例。
8 m. ?- N' D) b1 Q  F. H我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, z  U4 u0 L5 E  M. P
* c8 b7 O1 f% A1 `3 \! x
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % ~, W' s1 e9 S. f8 K. y
1 @+ X: [% C5 X0 X* t
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. q2 X6 n- b# ~' }. L+ G4 u+ j8 A这是AGV_putin中arrive的method。
4 ?1 \, B6 t+ {9 _& A1 V* _1 ^: J6 T1 y$ F' t5 c
当到达物料速度越高时,这个报警更多,

  ?% z* c3 }, W  r( e# v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 13:03 , Processed in 0.015595 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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