设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9521|回复: 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'8 W. o8 v1 O+ d( b9 |
*/4 P7 M# i! B  n
is
2 i- _, E9 t5 L6 e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;1 E- i6 v! H: c& W) Y# q
do$ ?6 L# T, j) Z$ a3 f& W
        Lan := rootfolder.Internal.Tools.AOLlanguage;
" v2 i- _- k1 _        if current = @.Destination -- else return
, ^' c) F4 R8 B  l6 O        then$ P& H# M0 Q1 w. B' R+ Z, n7 G, i
                @.Destination := void;# s/ |  P& Y6 m  M
                if @.occupied then
9 }3 m( S" ~  j+ `9 p) z2 [5 g                        part := @.cont;
" ?2 n0 K" F1 e  K" N1 P. @5 {                        @.transpOrder := void;& g% H& T1 R5 e/ f
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 P. W& T# z+ l. Y% P$ z  f                                @,root.eventcontroller.simTime);
: ^+ o7 e: ]& ]0 s5 R# |                        @.HasOrder := false;( G8 v: s$ V# L( I
                        @.DrivingHome := true;0 l; o8 P7 N4 u9 Y+ t' J
                        rgManager.tryToStartTransOrder;
/ i; V, v8 r7 z/ E                        if @.Destination = void' a+ G' u" E0 t8 v3 Z: [0 u
                        then -- no transport order for vehicle @
# Z. J& j4 @) j/ ^                                @.Destination :=
! m8 |. K, y5 m) B9 R& `0 S                                rgManager.nearestFreeStation(@,track.~);
* C" Z% H. d# L. ]- ?                                newDirection(@);   2 x0 K" R) @3 E7 R' U: x
                                if @.Destination /= void then) T/ k' G: _- e9 E  g
                                        @.Destination.NumReservation :=
* w  M# @- q. o: Q                                        @.Destination.NumReservation + 1;+ Z7 Q$ j7 }0 `, ^1 Z) w; C4 U
                                end;& @* K' O/ `% n
                                @.CurrIcon := "drivingHome";
- ^' C6 o  P: f6 b3 G                                @.DrivingHome := true;
6 N+ o2 S. [9 Y! d$ E" d* G& h                        end;! @: e% R& B( D
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 j( D; H# M3 a: }                        part := @.transpOrder;
9 S4 K: g1 a7 E) @                        part.move(@);-- load part9 P8 K1 J9 b: }9 A3 a1 A9 ~
                        @.CurrIcon := "load";
" ~+ Y. O" `; d4 L( E( J                        GlobalDistObj := part.globDestination;# J+ `# k8 C" g  E/ o7 \% k
                        assignLObj := rgmanager.rgAssignL;
2 a7 c: [  V, V! z: d, W' h5 T+ w                        row := assignLObj.getRowNo(GlobalDistObj);
! V( E* t: m' H! P7 t                        if Row = -1 then -- since 70  H/ ^0 p5 N6 s  }( M' P& p5 P
                                if lan=1 then  l0 d$ B/ ]5 e) ]
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! E$ e7 r6 R. @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# _1 H+ G% D  E' z: v                                else
! o, X. g5 ~) H4 l; j                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! c1 S2 W& L, D4 j  h0 i9 l                                                to_str("in docking station: \"",?.~.name,"\""));                               
! Y* D( k& U8 F" R: ]                                end;
( Z3 n8 j, K5 A, W+ i# T' y4 A                        else, B8 M# @  w- l  C2 b! N
                                @.Destination := assignLObj[1,row];: M& x* b8 Z- D" J
                        end;                        9 ^4 I6 p0 c# v2 D! l  `
                        newDirection(@);
4 h8 O  V; {7 I0 a6 C+ r; d                        @.HasOrder := true;. n& N" J) U, w
                end;6 u( J! L% M' ~
        end;; a2 I! |9 i8 q5 U
end;        -- of the method
1 `) x. y8 w- S7 H" _/ V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) n5 u; o6 |/ c' S) Q

# A) A' H5 E# \这是AGV_putin中arrive的method。2 @% @/ `# m3 K' u7 P. Y0 n
+ y" N- |3 S+ Y5 V7 v' v" P
当到达物料速度越高时,这个报警更多,% r" u% n9 V6 ]9 _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ a$ A( v3 H2 ?( S7 F
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ I( i2 n3 X, [' v4 p) q1 k5 P0 V/ h3 ]
另外一个小建议,就是move,所有的move都可以这样  F) J1 d5 v; X2 d5 s3 v4 w% @9 L7 i: L" n
if not move() then debug end
/ c* H. p* E: B! F! L( s$ Q/ H2 f这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 j1 Y  y, F+ L8 K3 F  r) c$ \plant simulation中的free libraries有AGV模板,
, m( n7 [# P" Y+ b/ B里面也有案例。
8 S. k2 P0 F, [, v3 j4 G6 Y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 M! }" V  |3 ^/ {) v8 M2 P3 V8 p" V- n# I% K# P( S
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' ]; m& G5 l! \; s* e1 m/ A0 ?
' h# _$ l4 p. j' @: N% g. ^
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, ?. v# w8 ^8 ^" C1 |3 }7 l& _这是AGV_putin中arrive的method。; }" U2 w9 ?( ~) k6 R: l

5 u4 ^- m0 X' J' T当到达物料速度越高时,这个报警更多,

6 T# b$ Z) }: Y' Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-5 22:01 , Processed in 0.018522 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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