设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9355|回复: 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') g0 n# T2 V! }; y6 J0 I
*/
6 e" t0 |6 g' _7 xis
1 c$ w5 q& f# ]/ F4 t. K  ^        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: `) q2 l7 Y6 O; o) U$ |+ N4 rdo) I" n. L- M, U, z4 S5 z3 y4 O
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 V/ e' O3 C: m, P: C        if current = @.Destination -- else return
; i& h) [$ |8 q( V! q* ?        then3 W0 }2 F) |3 w- g
                @.Destination := void;- a, R" {8 m. m7 u5 M: S
                if @.occupied then
5 I. V( [. A6 f+ W% d+ i                        part := @.cont;
2 W" \# ?9 q$ o  q                        @.transpOrder := void;' x- ~. |; K1 H. }/ ?
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 H" m5 c, I( H7 h3 R                                @,root.eventcontroller.simTime);
3 h9 b3 Q0 t0 B  k0 G( C8 \                        @.HasOrder := false;
% J5 i/ ~: Z( `  z8 l$ k- C                        @.DrivingHome := true;
$ m% H) P# x% P( ~+ S& s# g                        rgManager.tryToStartTransOrder;
9 \# E- N) y) w: _$ S                        if @.Destination = void
; @  l; j7 P$ {, q                        then -- no transport order for vehicle @% M! r( B: E5 i. t# k: @  }
                                @.Destination :=- X$ P! t4 }% c8 I" W1 {* H
                                rgManager.nearestFreeStation(@,track.~);1 a/ K8 v1 X9 [* C; G8 M
                                newDirection(@);   
$ u' @+ p8 p" F7 M                                if @.Destination /= void then
/ x& ?/ b1 ~: ]% [                                        @.Destination.NumReservation :=" F& W. E6 F# a6 N+ ~) w
                                        @.Destination.NumReservation + 1;
9 i/ R% `8 `* d: y% K                                end;
: c" R8 Q# h: R# I  V; K                                @.CurrIcon := "drivingHome";
  h6 S$ P& q( P. u; a' _                                @.DrivingHome := true;  B) r4 r! L* t3 O7 N
                        end;
" R) C$ S' E: s7 S  Z6 C7 u                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. y" a" C% u" j+ z                        part := @.transpOrder;
4 T4 o. x* h5 ~$ _4 F' M                        part.move(@);-- load part% i! C4 p( X# ^5 G2 b  [( V
                        @.CurrIcon := "load";. }5 P! e7 ^' f: ~  I1 e3 Z4 S* p6 Y
                        GlobalDistObj := part.globDestination;
, b/ ^! a, a1 n$ g% T1 e                        assignLObj := rgmanager.rgAssignL;2 L+ h* E6 \$ S2 L2 D( K
                        row := assignLObj.getRowNo(GlobalDistObj);1 Y5 A0 x% N0 k+ o
                        if Row = -1 then -- since 70: z7 e7 Z: d8 q5 W
                                if lan=1 then
0 X. X1 b$ f1 b, A0 F3 q                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* w/ Y2 B4 A( W" ]                                                to_str("in der Andockstation: \"",?.~.name,"\""));  N) \, H6 i& ]: T! ^4 P
                                else
& V& q% O3 r( V# A" X( B# {7 c+ E                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 A( ?3 w9 }/ N( V                                                to_str("in docking station: \"",?.~.name,"\""));                                6 q( p1 X( F$ J* ]
                                end;
5 u$ W( i0 v7 w5 ^; P( Q# E                        else
1 U) R7 t4 Q! B' z2 d. \                                @.Destination := assignLObj[1,row];9 d* y6 U3 g9 ^$ p7 L0 A2 r2 \
                        end;                          a+ b) B1 ]( A! Z2 B8 I& [
                        newDirection(@);' r  v: v& K5 h1 N9 @0 H2 A
                        @.HasOrder := true;
6 K7 P$ T5 V0 K3 c" K' ?                end;5 Y' S" N- _+ ~- T* j4 o
        end;
' }5 P$ E1 o& P% i9 tend;        -- of the method
5 U+ \" Z. e: D1 b$ J3 D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 \4 c/ `6 z; U
6 o3 K3 o3 x/ P/ \" R这是AGV_putin中arrive的method。# Y& {4 Z1 s$ M3 k- [5 Z; ]0 u

+ d7 M' n$ @4 q* e  o. z当到达物料速度越高时,这个报警更多,
2 r: w* q1 M1 e9 F- t( H1 X可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( N: F0 Y7 }, Z  r  f程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 v2 d9 _/ l. z

* f, q( x1 B' E9 i4 c3 N另外一个小建议,就是move,所有的move都可以这样
2 u' M7 l$ n6 y6 a. I' T. R  ^7 i- d8 Lif not move() then debug end
4 m& j( g. d5 _9 F5 N这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 m" J6 k6 @+ u) O- Pplant simulation中的free libraries有AGV模板,
% b; W; m$ f3 y. j) {, }3 }里面也有案例。
; y& p, u. c  L: H- Q2 @, B/ @/ P我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- G3 O6 Z( F% y5 w3 F. e: [) d
" p1 g) @- y& h8 U" J- F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# V8 g! q6 e2 i
- R5 _/ d) u" \6 W! |% l那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & m" n' z7 @6 h5 ]
这是AGV_putin中arrive的method。' b( S, L; G  V! N0 I2 f

% w1 o, E# @: w( a, H当到达物料速度越高时,这个报警更多,

0 r0 j# |0 P/ }- I  J0 C8 a- T另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-27 11:50 , Processed in 0.014799 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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