设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8910|回复: 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'
1 A+ z& C/ I6 a" X, I*/
" a/ Z) A& ~; z' }; i. K, His: j4 _- R. j) K) F" y3 G
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ ^, `! @+ L' `7 q/ ~) edo
8 _3 B0 [. ]1 P$ J/ t3 |        Lan := rootfolder.Internal.Tools.AOLlanguage;2 Z; V0 c$ S! g8 Y
        if current = @.Destination -- else return: ^2 a( Z& D* b
        then% S! L7 q% _7 L! f  M- Q
                @.Destination := void;' J. p5 D3 t- `7 ?! [" d& e) J8 o
                if @.occupied then
) J* @0 ^! h' Q5 ]2 P  J7 e" y                        part := @.cont;1 g$ ]% K0 \- I1 B
                        @.transpOrder := void;
, c7 {. e% k" @7 y6 i; R                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  Z8 U3 |6 N7 e( C; _' U
                                @,root.eventcontroller.simTime);
! E" A2 g1 d6 }7 L" f# J                        @.HasOrder := false;# g! v+ L  T/ k) j# p. V
                        @.DrivingHome := true;
7 r0 P+ o  _& ^3 w                        rgManager.tryToStartTransOrder;
. W+ d5 P+ W) L                        if @.Destination = void, X  S& Z# ]  ^
                        then -- no transport order for vehicle @
( s. [( l8 a1 y                                @.Destination :=
5 A) t, ^  V7 j; Y0 r                                rgManager.nearestFreeStation(@,track.~);9 u( ^  }9 p% \( Z8 [* K
                                newDirection(@);   ( I1 P# [, ~% \5 c0 O
                                if @.Destination /= void then+ Z2 t" e+ e- F$ r( |: g
                                        @.Destination.NumReservation :=+ G: O6 U# i3 m; ~- e
                                        @.Destination.NumReservation + 1;6 j1 W4 M0 `# D" T% Z3 r% Z: f8 p
                                end;4 U& h3 N) S6 k3 k1 N" {/ y2 f
                                @.CurrIcon := "drivingHome";
3 Q* l2 w% ~1 y                                @.DrivingHome := true;
/ o7 x: i9 L2 e0 _+ g) w# K                        end;
4 A6 f# k+ u2 F% C* o                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 ?4 J4 M; Z7 Y                        part := @.transpOrder;
: I/ V4 d6 C/ S5 b* O4 O' X' _4 B                        part.move(@);-- load part9 w: u- }+ T8 y7 U! t6 r3 }3 n
                        @.CurrIcon := "load";' K& H3 g! k: R! M! D  [! a
                        GlobalDistObj := part.globDestination;
1 y2 \& S- a' Y& L* w8 y                        assignLObj := rgmanager.rgAssignL;
) u3 u# s3 }, Y; R& s6 t! K  O" B5 Y                        row := assignLObj.getRowNo(GlobalDistObj);
/ [. c$ k: i3 n. y6 S  E/ z                        if Row = -1 then -- since 70& H4 ?/ z/ e+ p
                                if lan=1 then
: u" e) {/ A) C4 C0 M: L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( O  k+ t( V" P                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% F6 w- Q2 H1 W# [/ {                                else
, w' n* t( O9 a2 i                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, J9 F- D* Q5 a+ i- d                                                to_str("in docking station: \"",?.~.name,"\""));                               
' r+ h" B: B+ _2 [; M+ x" M# ^                                end;# D! x  n8 i& Z) K9 t
                        else
3 u- n$ d6 l+ @$ e                                @.Destination := assignLObj[1,row];5 L7 q* Y8 n: Z  W6 N
                        end;                       
! x& A, Y" q1 M- x1 L# s. o' O& @' W: t                        newDirection(@);
- l* J$ R4 t0 T                        @.HasOrder := true;. w4 }5 s' q- L
                end;
7 l- l" E, g* S6 r3 l- w$ I6 E        end;
6 z& s8 v& |' ~% s3 a) @% iend;        -- of the method8 D- @" V# X" j$ D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. }1 `; b3 m% W1 M9 b; ^
% @- d4 ^* c5 b9 a; e# [) v( O* f这是AGV_putin中arrive的method。" J9 A( r+ n$ F3 V3 k, Y8 Y0 u/ y

: v! h+ a$ z/ C) d, O/ r  N当到达物料速度越高时,这个报警更多,
+ }0 s! V% U& e/ [: S, B, G可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 ~3 s  l! `- G$ h7 ?" F$ I程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" ~: D7 e5 Z2 e
- y8 c3 @0 j. m5 S3 D, a5 v8 u另外一个小建议,就是move,所有的move都可以这样
* a9 g( Y* ^  `9 ~5 F! wif not move() then debug end
/ U# U* G  q  ^/ M这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 y+ ]( f, U9 e# fplant simulation中的free libraries有AGV模板,- u% w) h2 O$ c  L
里面也有案例。  K5 E5 ?/ h" i, u3 k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ f  k" w2 ^2 }8 _% j/ ?0 f. t' b" U9 t. ^) `: Y! _
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 K' x; x" t  g% K& Q# [! ^
! h; x9 C: J! J7 G9 J9 l2 P3 l
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   R5 a) O$ x* l* e
这是AGV_putin中arrive的method。* J6 v' k" M( o1 U# P7 h9 R1 Z

' g/ Y0 T# N0 ~6 \! T7 F当到达物料速度越高时,这个报警更多,
, K* P( l$ m0 K! T
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-3 22:16 , Processed in 0.016831 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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