设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7171|回复: 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'
* J) ^( E/ u; \*/
  Y7 Z, r5 V& `+ _  ?$ m4 F" q! b; iis
$ p7 f( x1 u+ U' |) n" G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 B) G  f1 w, ~do, c4 ]3 P2 Q, j- V9 _/ X9 x
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 {4 [- s2 _; j0 e1 y
        if current = @.Destination -- else return
& |* N7 h, |3 E1 h4 f( E9 k        then
1 \1 X) L2 v6 `$ p- O, I7 y                @.Destination := void;' M, t; L- {. p( M3 W, w9 D8 R4 I
                if @.occupied then+ n* R! g: |8 W' Z9 x1 l% M; ?
                        part := @.cont;
* p' ?+ [8 {" p5 w. Z4 X                        @.transpOrder := void;3 k8 ]. N( R% u& z. c/ T) W
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* F; g* `3 F; z6 o                                @,root.eventcontroller.simTime);( `/ m8 i. A. p' |4 O# P
                        @.HasOrder := false;
9 x- O$ S1 _+ ~5 X: m8 T5 k8 h( \                        @.DrivingHome := true;
/ m" p$ K6 [( ]                        rgManager.tryToStartTransOrder;
4 g$ K3 |  S! F. x- O& u6 g                        if @.Destination = void
) T& R- D! A" ~7 c( L                        then -- no transport order for vehicle @* ^* q& \: l' I: p  K  `
                                @.Destination :=+ T$ U% p* C: _# j/ j
                                rgManager.nearestFreeStation(@,track.~);$ [* k1 j6 E5 t7 k9 K7 w: L
                                newDirection(@);   
/ f( o& c; t) u3 j% y/ z/ i                                if @.Destination /= void then4 y" p  N' k5 G& x
                                        @.Destination.NumReservation :=
, A5 N$ _7 P) @. }                                        @.Destination.NumReservation + 1;
. ~8 T- q& M/ @! n                                end;
+ I) k8 `7 E  |/ I. B; ]- R                                @.CurrIcon := "drivingHome";5 J- U, t6 L0 [* I2 z
                                @.DrivingHome := true;
6 C1 Q& T5 d, D) A                        end;
, }% ], |, V9 ]3 C/ Q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% _6 H9 n+ R* f" ~- a+ o1 G                        part := @.transpOrder;- z1 v2 u9 B7 D1 {
                        part.move(@);-- load part2 W' Q( o0 a; n9 W( Z5 t
                        @.CurrIcon := "load";
, E8 r  J1 h$ c8 P" m+ R                        GlobalDistObj := part.globDestination;
5 p1 L3 r+ q4 b                        assignLObj := rgmanager.rgAssignL;
  g$ t; Z- H% s  {4 h& r' H* D                        row := assignLObj.getRowNo(GlobalDistObj);, W* n% D& ^  A* ~3 \% g) F
                        if Row = -1 then -- since 70
  J- P& \, T9 G+ x* B                                if lan=1 then, ?  T; I0 Z& T5 P7 G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," G" \' p6 D' P5 _5 n& i  X  o& m: m
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% b/ D* ?: Q# I' }% k" A, U2 g                                else
4 Q7 k3 q. ~3 T% R                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 P" R. ?( [( ?' n: T9 S
                                                to_str("in docking station: \"",?.~.name,"\""));                                / ]$ T: |$ X3 b% L" F0 v
                                end;6 _5 h, z9 K3 t/ z. o
                        else
  a6 M/ k! ~  \& R0 ?2 X                                @.Destination := assignLObj[1,row];
. |/ N' k% k/ L" X# k1 I                        end;                        " y, A  R! ?( E# v! k% |/ t$ s
                        newDirection(@);
6 ^* E1 e' k2 X- U: H                        @.HasOrder := true;
2 m+ G) c0 Z3 F9 p, Y                end;  S: {4 n  O$ O( }! Y0 d
        end;0 @0 B% ~5 C9 t" D
end;        -- of the method! V! a- d3 E9 I" ?& _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 k/ N2 K0 H- E
+ w) H' |: u/ M3 {
这是AGV_putin中arrive的method。- e* x8 t- K* ^6 J) K) i2 m* E

) A' T2 \2 Z# U( a8 `4 T0 f0 |, `当到达物料速度越高时,这个报警更多,5 ?; |" w' f) s  ?3 ]3 F4 w# f
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ P' R  C+ C$ y) j# |: i1 y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 Y1 X0 a% Q6 E8 I/ W9 D

* V% |; h/ Y4 T: q- ], Y# B6 W! c另外一个小建议,就是move,所有的move都可以这样
) `9 U% y" \6 {! P  D; ]8 K8 Sif not move() then debug end
( n* P' A) z4 J. {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& K+ W1 c$ b, `* Y4 Cplant simulation中的free libraries有AGV模板,
: y! g" ^: {) v" x里面也有案例。( a( `: O+ N0 Z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 a/ F# G6 ], O+ n6 h/ D

5 w4 D  M( v: H/ }) q. [我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 x/ ?: |- A4 Z) Z

: Q9 p0 c' w- d, a. e* H5 q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . u& L, v8 S7 ?4 T9 j4 c3 M
这是AGV_putin中arrive的method。5 E- J; z7 r4 F1 A

) T: |1 G7 Z( D; N7 M/ D当到达物料速度越高时,这个报警更多,
2 t8 q$ F8 G7 z- v
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-24 05:54 , Processed in 0.018987 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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