设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7652|回复: 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'
: s/ c) G( k6 _. Z/ t1 @*/
6 Z# @$ K7 T' Z  u/ J# n' Cis. g) N: X: h4 P! o7 P
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' D- f3 j) j! N+ I4 R4 R
do" a& I' s' [1 `8 Z2 G
        Lan := rootfolder.Internal.Tools.AOLlanguage;
  L3 S, x; {( D* k2 }8 O6 f- _7 l        if current = @.Destination -- else return
# V' ^9 V- u8 Y& u$ K# _4 z        then6 W7 K; ]; o+ p5 I. k$ |$ u9 x
                @.Destination := void;+ x* I2 \  u4 O# @6 d! {
                if @.occupied then. r" e" ^; b2 h! V; x; I) _: t( Z3 V
                        part := @.cont;' K' Q" v3 N* r4 \; P$ k
                        @.transpOrder := void;
9 F7 @  H* h, Y3 Y. M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 F0 O+ W# r0 l1 a. a- b. `                                @,root.eventcontroller.simTime);
6 e& H  Y! \) M5 R9 \4 V0 U' `# C                        @.HasOrder := false;1 a% i' ~4 a8 l, w7 e
                        @.DrivingHome := true;8 Y- G$ n1 J: ]
                        rgManager.tryToStartTransOrder;
6 J4 o6 d4 p$ Q9 Z$ Q0 g$ n0 }5 g                        if @.Destination = void
/ N" w% o8 e- {  `/ |% y( P                        then -- no transport order for vehicle @
2 ~0 K. E8 ?% F$ H$ e* E! y. R                                @.Destination :=
) P7 P5 ~6 G: b! O                                rgManager.nearestFreeStation(@,track.~);, J; [6 e; e9 D+ i7 {! M) a
                                newDirection(@);   
- C# j) |: c, w5 Q% y                                if @.Destination /= void then
% ^: o" r. N: |% g5 W                                        @.Destination.NumReservation :=
7 L, ~4 I) t  n% G, P                                        @.Destination.NumReservation + 1;" V- q) i5 W5 M5 v' R- u
                                end;
  M+ ^4 |% y% M9 w. K                                @.CurrIcon := "drivingHome";
# T5 G2 G: U" B& y, A4 M; p                                @.DrivingHome := true;  C$ H+ H& U; g1 x$ a" H
                        end;2 T% z7 A8 i0 C4 U
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 x+ `$ U. D' j7 a6 n; C. c) z; n                        part := @.transpOrder;+ ^6 ]4 {4 R+ V+ X6 l. H/ Q
                        part.move(@);-- load part
8 _5 E* y  ?: M                        @.CurrIcon := "load";5 H$ c  M, ~0 J/ s
                        GlobalDistObj := part.globDestination;
: i1 i! w. I# j                        assignLObj := rgmanager.rgAssignL;
9 {% V6 {3 |0 w& S! F                        row := assignLObj.getRowNo(GlobalDistObj);
* m: ^2 v1 {9 O) Y3 H! j5 z0 u: l! {                        if Row = -1 then -- since 707 v5 `/ M+ H  F8 _: [3 `
                                if lan=1 then
$ [; F# I( a5 E. a2 p# L5 ~                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 V9 J$ `9 v) d! |                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ M3 R+ L2 |4 Y# y+ b# E2 X4 @/ Q) I: u
                                else
+ Z2 g5 X& x! y0 i* b1 Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 _- w, {2 t' P$ a0 {5 ]" t  k                                                to_str("in docking station: \"",?.~.name,"\""));                               
  E3 R4 O% v* ~! t0 D% ^                                end;/ ^. a' Y- }1 h9 C9 q. ^3 n
                        else& E, n$ W8 t6 s6 `- D- u
                                @.Destination := assignLObj[1,row];
3 }  v/ |) `4 ?% |' R; k$ `                        end;                        1 a& ]+ T. A) u2 B+ G
                        newDirection(@);$ T- n1 w% F& n
                        @.HasOrder := true;) A1 J0 |( ~$ e0 c
                end;: z6 z3 Q6 Y. F5 @
        end;
4 q, S" u9 ?  `% @end;        -- of the method
# e* H7 B) h. c0 T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) O* }) f! \3 t4 k! X( D) R6 _

0 \! s# u9 [7 Z/ F( J5 i9 N; Z这是AGV_putin中arrive的method。
( F6 h. V9 P. l4 V" H5 C0 ~7 D+ B8 N7 ~; w  A6 d
当到达物料速度越高时,这个报警更多,* l) h' i2 a9 k) a
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' c2 y1 ]5 V8 U0 M* l1 Y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 ]+ z! C, Q. A; F+ c2 S# d5 _! a" \$ _0 l  k7 Q5 ^) w7 |
另外一个小建议,就是move,所有的move都可以这样( H- D$ j( {6 U) [. J3 w0 s4 y7 R4 B5 ~
if not move() then debug end. `2 h8 J. b4 F
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" t% E8 N# d' V( o8 p/ Y
plant simulation中的free libraries有AGV模板,7 ]. ~5 ~  U8 E$ o  B0 H6 ]
里面也有案例。
0 |6 A6 X6 w! x1 w# D- M我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* g& E2 @4 s' K- _- ~. ~' t
. L/ F; c- {8 R$ p! x, z/ H! ?我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 @. }' s9 {6 ~3 R: u
" `3 i6 t/ e3 e% Y/ B2 ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * @$ o; U! c( z: P
这是AGV_putin中arrive的method。
9 u  \2 D- l& ]. E7 H& g! i
8 n: r) R6 p: X1 A- z当到达物料速度越高时,这个报警更多,
% y. _) T$ R! c- t" C
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-22 14:36 , Processed in 0.022831 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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