设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9359|回复: 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'! I% a' v& _0 ]" @* w1 Q: Q
*/7 D& l4 j9 x+ z# y& I+ v
is
" ~$ U1 o; W; ^5 a( V7 O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* a% |& b+ Z: w9 O  f- }  L
do
) u" N! q' y) z, O( W        Lan := rootfolder.Internal.Tools.AOLlanguage;
% k1 u! @  n, r, E        if current = @.Destination -- else return
7 c7 r2 {+ _! j; E" ~! L        then
& P& Q& k7 f( W0 |0 O# P5 \: B                @.Destination := void;
9 |0 M; e& B' h1 b8 g7 a                if @.occupied then* ~# P3 ^' s  R
                        part := @.cont;
. `/ R  @$ }/ m0 o                        @.transpOrder := void;
3 x! k9 o+ p& Q3 n) W                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  ^( z; D8 [# T8 S+ G- `' ^2 ]
                                @,root.eventcontroller.simTime);
9 t3 q! C3 ~- u                        @.HasOrder := false;
8 ]: `$ T% o" c# b$ Q                        @.DrivingHome := true;- w, Q8 b& E; o, J
                        rgManager.tryToStartTransOrder;
: v/ S& h: C/ {6 v9 v0 }8 D                        if @.Destination = void
) z9 b' f4 s4 u/ a) b                        then -- no transport order for vehicle @2 N$ h& h$ q6 b9 H+ R/ n& h3 d
                                @.Destination :=8 e/ K+ j/ B8 i; W* z
                                rgManager.nearestFreeStation(@,track.~);( j) d2 I1 U2 r. G" F3 l
                                newDirection(@);   
, h% ]8 Y. J( x! n- w                                if @.Destination /= void then& ~3 X; H0 ~& E" I* R1 a
                                        @.Destination.NumReservation :=
/ _4 D/ `8 \1 }. ^  k2 |5 I                                        @.Destination.NumReservation + 1;4 N2 ]3 J  |( b, W8 {4 T8 b
                                end;
& u2 ]8 d2 e) U7 Z                                @.CurrIcon := "drivingHome";' N* D! d6 g: e% Q
                                @.DrivingHome := true;
, c  Y. f. W+ Q& u" ?* }                        end;
$ w" [; g  \' }/ L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# R8 l  ]. e  h. V& p                        part := @.transpOrder;
5 [8 b% a4 H# F8 l- }                        part.move(@);-- load part
) X1 i0 q4 H4 [& M. C7 ^& q                        @.CurrIcon := "load";
/ f; j2 n) ^5 _/ Q- C                        GlobalDistObj := part.globDestination;
. G1 |" j# g" _% n8 L                        assignLObj := rgmanager.rgAssignL;
! ^3 N& u' K. x2 T4 x+ g$ \                        row := assignLObj.getRowNo(GlobalDistObj);
" ]* X- z. _* c1 ?7 I  y                        if Row = -1 then -- since 70* B) \& s9 u) k  F
                                if lan=1 then
8 J% u2 w0 k) A  C" d* R                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% Z; b; x2 C5 u& S+ m. T- @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 x& B* S, l; F/ D
                                else/ D' n9 m  J; `& C7 q. M; i& Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 \& ]0 ~+ {5 P0 z8 A                                                to_str("in docking station: \"",?.~.name,"\""));                                : O+ p: b! e" @
                                end;
/ P, B! O" ]) o5 j" Q  h                        else
5 J( I  {) O+ y% o3 K, i) j                                @.Destination := assignLObj[1,row];5 b/ L/ ~; _' F+ T- n
                        end;                       
/ R: O6 h, z; L9 b1 S                        newDirection(@);
6 {) a! M- z, ?% j. w: L                        @.HasOrder := true;: F) C4 I; m8 y/ R% Y( [* h: j
                end;4 U7 k* Z% @! E( V9 B( F: \
        end;0 B& e: J& I4 f  A% U; b7 K' I
end;        -- of the method
- T: y$ c) U1 A( J" B8 h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- l2 ~2 h& V0 p1 ^0 ?, f" a; \( G0 [1 @8 N" Q9 Y% V# r
这是AGV_putin中arrive的method。
, V$ F% {: V" m/ [& A* A9 R8 @# r8 p
" ?& }# g5 C/ k5 d4 c当到达物料速度越高时,这个报警更多,
4 a! C6 Q' H, P0 F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 ]6 C1 s) J  g* p" V5 p
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  q) |+ ]  h1 _* u7 ~
2 h: Z! k  c3 r! e' U) Y! t5 k  `0 p% ]
另外一个小建议,就是move,所有的move都可以这样# v; |4 Y( d) t
if not move() then debug end
) d  u# s: f( q这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ S8 j# B3 N) k1 K* P3 ~; Oplant simulation中的free libraries有AGV模板,) a# T9 q, n" E8 }# y9 o; g7 i# x
里面也有案例。
" l5 W5 S  g+ I3 t2 m) X我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! [" p2 N3 p. n/ f/ w: X7 I: t3 L9 x2 L$ @$ H* {, E
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & J, k' K  G, [/ f+ f# E

) {0 K  m: d- C0 W; k那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & Z. d% w: R' I# P1 x- r2 _
这是AGV_putin中arrive的method。
3 J  M+ o- h4 A; k# w( G0 g7 d- ^" ?* o9 n1 U
当到达物料速度越高时,这个报警更多,
0 F; J* a0 w+ N
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-27 17:37 , Processed in 0.016431 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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