设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7900|回复: 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'6 p* K8 D1 i! |* K
*/; ~* c1 ~0 a/ {- i  X
is
* A* S# w3 W: i2 K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: w" O: W: r* |2 B. zdo* L( w; ~# m: ]2 U2 k
        Lan := rootfolder.Internal.Tools.AOLlanguage;
% F7 u" u5 O' |4 E% u        if current = @.Destination -- else return
) ^. t- N1 A! C9 o        then' {/ x0 y, b% z; o+ E" |& ^: \8 C
                @.Destination := void;
0 L4 _2 n& [+ Y& m1 u; I! V3 y0 u                if @.occupied then3 `# ^& Q! Y$ u2 u8 j
                        part := @.cont;2 l  j6 `5 ~, w4 A- ^, q: f
                        @.transpOrder := void;2 h% N; S. [6 \! e* Z3 g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 n3 j" m5 K, u& U+ @) o5 n4 H
                                @,root.eventcontroller.simTime);
6 k) [, N' T( I3 ^4 a! y                        @.HasOrder := false;
' b* y6 Y& n/ C" l! f! U                        @.DrivingHome := true;, e+ E8 S, R9 E
                        rgManager.tryToStartTransOrder;
' L$ ]+ p2 s5 p  z. z& p                        if @.Destination = void
7 \/ C- F8 V1 }. n                        then -- no transport order for vehicle @& w( |$ O2 T0 w
                                @.Destination :=
8 i- c3 ^! p/ X5 a6 ~5 R" t. _( r                                rgManager.nearestFreeStation(@,track.~);
6 m+ T. Y& G0 V% `4 K0 t5 N6 o; _                                newDirection(@);   
. A$ o  |3 U6 |& {( i: w% x! M# P                                if @.Destination /= void then
5 a* q& U0 ]5 ?2 j* R% @                                        @.Destination.NumReservation :=* f# g% p! D- l# g9 h9 Q. t; g
                                        @.Destination.NumReservation + 1;5 g9 V. s: d6 h( D0 V8 ]% {: }! ]$ \
                                end;
: E4 \  ?4 P9 Y& f  L  i6 V                                @.CurrIcon := "drivingHome";
& G0 y/ Q# ]6 M* a5 K; e                                @.DrivingHome := true;+ Z/ j, [, ^3 C. Y. U6 X
                        end;9 j' S" l  `( }+ k: [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ ^* K! ~( f6 {4 B
                        part := @.transpOrder;1 @1 C$ l# }2 w8 z6 N4 J8 g; X+ _6 m
                        part.move(@);-- load part$ R  {0 T5 ^6 F& X
                        @.CurrIcon := "load";
% e3 Y3 z. I- `0 J, R3 n0 ^) ^                        GlobalDistObj := part.globDestination;
+ X! V/ u  ^* h2 S. a& U                        assignLObj := rgmanager.rgAssignL;- m; v. _3 o, l8 s2 M' R: u
                        row := assignLObj.getRowNo(GlobalDistObj);5 b& l4 {! n- @9 u# R
                        if Row = -1 then -- since 70; @! p% T0 `7 X9 w: T
                                if lan=1 then
, P: c# B1 M% E9 {/ k                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 v' ]0 F/ \. }1 l5 G6 N, C                                                to_str("in der Andockstation: \"",?.~.name,"\""));" L8 Q6 s% V5 p% ^9 C7 o' ?3 [
                                else2 x; c/ x" ~" [8 i' M$ x
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 H$ X  a4 z5 ~" G9 f/ v
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 D2 i; k# E1 G0 f" @                                end;1 q  U1 k) U" l* Q
                        else
( J, p8 T0 M# v6 f. u- a) x                                @.Destination := assignLObj[1,row];9 s7 }: I1 j2 r; Y) k/ r, ~
                        end;                        9 \6 u/ q, }  l3 Z0 K1 H+ z5 W$ [: V
                        newDirection(@);
6 \4 Z# l$ @' G# g8 K                        @.HasOrder := true;
3 U- N) Z# ?/ X# D. J                end;# }8 o$ V, l* o7 W8 v7 _, |7 S% o
        end;7 n- Q- w# t8 L5 o0 F
end;        -- of the method
+ X8 [/ F" i0 j& A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * ~$ g, H/ K& U% [8 B  @* l6 K

! X8 C. |$ s0 R& b$ B这是AGV_putin中arrive的method。
" G% A( O' l  V, ]' |6 y% Z9 `7 B0 N4 ^! _' g
当到达物料速度越高时,这个报警更多,, J; r; X  C* Z8 p
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' n5 s- m9 f3 x8 H; |4 j
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 Z3 u6 l6 S+ I& X7 `# |0 f
7 T" [, W/ \! d( D
另外一个小建议,就是move,所有的move都可以这样+ M% v8 l( W" c$ f7 T' }
if not move() then debug end
  k3 E; W3 M! ~这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" P0 U1 S0 L- t1 O5 {
plant simulation中的free libraries有AGV模板,
$ N) x& P: R. M! @6 h' T里面也有案例。7 V8 i; M0 T( W5 a% h) g. D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( X. \" v6 X- n% R

$ p% G2 W+ o& J6 z+ f$ Z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, B" _, J" Z1 w5 c6 o! ~
* M) T0 f7 h3 ^, c: A那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * `2 O9 X( H. k8 H' r/ n
这是AGV_putin中arrive的method。$ P+ r0 F( F& }- b1 a

: O% k2 c( u  B0 I2 R0 c当到达物料速度越高时,这个报警更多,

7 G7 U7 Z- x) f# s% r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-4 02:05 , Processed in 0.020045 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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