设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9609|回复: 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'7 V! V- U9 O$ k9 M$ b
*/0 T4 n  c$ x7 P2 |# o4 P' I
is
9 h1 F0 K! V( U. L: o# ]        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% V6 W) v6 a5 }do
) Q! |5 h' u0 Z+ t        Lan := rootfolder.Internal.Tools.AOLlanguage;
# F4 L6 I' a4 u' T        if current = @.Destination -- else return3 j" d; Y4 \0 H% o( i
        then5 O% {% P, y& f& }$ @
                @.Destination := void;
  D6 ]! h" I2 J# Q% t7 _                if @.occupied then, H% S% o) w" ~
                        part := @.cont;; S( N. F' P8 C" f" e9 e4 H# j
                        @.transpOrder := void;
# C8 q) J1 o) J  F+ r+ B" ^1 }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 t; I( _# Q0 ^0 P/ V$ g9 ]6 y                                @,root.eventcontroller.simTime);
" F% m( y, i4 D- e) r- e  C                        @.HasOrder := false;
4 G$ y) ?) b2 e( Z; W                        @.DrivingHome := true;
( B7 {% e1 W7 B5 x( O                        rgManager.tryToStartTransOrder;
. n( L5 I) [' _4 P9 C- l                        if @.Destination = void  ?8 Y3 {! I0 M' S& v. s; H
                        then -- no transport order for vehicle @
( e" ~2 p4 z+ O+ o( e) `( [5 \. |9 z                                @.Destination :=8 C' q* E. J# q: G# k, A1 b+ N
                                rgManager.nearestFreeStation(@,track.~);; v$ p! C# }9 F
                                newDirection(@);   # z3 H: V* C, T% n; \
                                if @.Destination /= void then
4 H! x" i1 g, x8 {% \: D3 Q                                        @.Destination.NumReservation :=9 Y% s* d- O' b* }- N( l
                                        @.Destination.NumReservation + 1;. i. D  Q% X  e( |4 e% \
                                end;
& ?! V6 D( `) e8 F) {+ P- e                                @.CurrIcon := "drivingHome";
3 ~, r& a3 ~0 {! F" ^$ s* O                                @.DrivingHome := true;' y4 @# I3 ^9 W! k$ V5 _
                        end;& E+ w" m$ n) O/ @% \
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% M+ z, }7 I* r( q                        part := @.transpOrder;
; }) C% Q1 Z) `; s+ q                        part.move(@);-- load part
+ C0 w, s$ k1 S4 i                        @.CurrIcon := "load";! R3 i* k: h: M' z2 K
                        GlobalDistObj := part.globDestination;$ s3 a" m0 s8 Z9 O
                        assignLObj := rgmanager.rgAssignL;3 ]2 K0 a" Q; N0 y/ M: t* q+ |* Q
                        row := assignLObj.getRowNo(GlobalDistObj);, q& m% [* s' U7 l6 g3 d
                        if Row = -1 then -- since 70- a# e% Y  q5 O% |- I) f- _3 `- e
                                if lan=1 then+ x! @; N# L% N# }! y' I4 b: v  m2 T  O
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 z. K9 f& a, X$ S6 M5 D* o7 W! L+ j                                                to_str("in der Andockstation: \"",?.~.name,"\""));! v1 P6 B7 k1 \* `* B; H
                                else+ h4 Y; p* ], M% f/ k( B; d* ^3 {0 S
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! i+ l* z& T1 M1 _                                                to_str("in docking station: \"",?.~.name,"\""));                               
* T" E8 p2 P% a, q( _                                end;" k) U3 V5 ]; O) t  F& J
                        else* S: a* u( V& p* U* ~
                                @.Destination := assignLObj[1,row];- u$ n! L6 m- G; b/ a; u! r
                        end;                        9 j; v& ?; y: L6 V
                        newDirection(@);
* x- n" q* }8 x3 Z  L                        @.HasOrder := true;2 O% b- N; Q2 {5 h+ u" V
                end;. ^: D7 ?- C; g2 _6 R+ F6 A
        end;
$ w- }4 |* q- U" F% Wend;        -- of the method* P  |8 z& t9 L2 v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
& a- M) u7 ]7 i- v' R# F
' K8 p' e5 X5 u, @这是AGV_putin中arrive的method。
! H# w: D- n  z, w1 v1 o- h2 D$ y! B0 ^: q( c& M8 N8 v
当到达物料速度越高时,这个报警更多,
3 |% H& y4 h: B7 y7 _可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 z% g. ~4 e( o3 l0 w, ~. G程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, M( D% l0 Z8 x, E; X4 c0 R/ R
4 q! F' t2 U3 D. S4 `另外一个小建议,就是move,所有的move都可以这样
8 O, \# w' v) Zif not move() then debug end
* h, C; Z9 b& z# R8 r7 O: z0 T" X3 s这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 h; u2 b! o1 d, h" N: nplant simulation中的free libraries有AGV模板,5 V7 d( w- k/ s( T0 X. o* D
里面也有案例。9 k# j& h( ]) b* f2 j9 G+ C
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 f$ Z+ R" y% R+ ^  _2 \

* {% @* h/ K; P, P我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # a5 k6 B+ w  B/ ]1 F
) o8 T. l0 R! ~
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 E( l+ T% _6 G0 ^: u
这是AGV_putin中arrive的method。8 @8 h* f8 j9 s1 C; G2 `0 N
7 x+ f& E4 \! R* q' H
当到达物料速度越高时,这个报警更多,
+ ?4 T  E& B5 j& i
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-11 13:06 , Processed in 0.018350 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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