设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5972|回复: 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'
1 U/ C# ~0 D  F5 T$ ?! x*/+ }8 B$ U5 a* p$ I
is
( R# x+ s  d8 K3 o& K6 ?5 |        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 |3 D4 \; s: M3 f0 p
do% f) ^  `: F+ @& j, M
        Lan := rootfolder.Internal.Tools.AOLlanguage;
% l. j4 g) A9 H0 ~  L  s4 F5 n        if current = @.Destination -- else return" _4 h4 s. E0 Y4 f8 g/ a. m
        then
1 G. H% }) v. C% J                @.Destination := void;
1 x* S4 E+ s- ]                if @.occupied then: ?& X3 y9 ?3 H' d2 B" q0 C
                        part := @.cont;
: J5 }8 |- t. X6 T+ }  M                        @.transpOrder := void;$ r4 X* Z5 C' e# ~6 w7 l3 r9 s& E
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 A- n% Y9 Q9 n# _# ^& q
                                @,root.eventcontroller.simTime);" u$ ~: w6 I  h9 f, l. Z+ U
                        @.HasOrder := false;
* r2 D) V# L; \( {" w2 |$ C# M                        @.DrivingHome := true;
$ T& l$ L' `/ D) t                        rgManager.tryToStartTransOrder;
1 @! F2 C/ D+ ~$ k! L                        if @.Destination = void, G$ \! |  V6 V: {
                        then -- no transport order for vehicle @
$ T/ O3 @" T& G5 O2 {6 b: N                                @.Destination :=8 `* o8 j! j0 E- P: t
                                rgManager.nearestFreeStation(@,track.~);3 S( u( G% [/ N& S, P
                                newDirection(@);   
& }' c' Q. i' R+ y3 M" A2 j% B                                if @.Destination /= void then
. i) S/ v5 r& o2 l                                        @.Destination.NumReservation :=
( P0 O/ d0 k( M' E- f' s( K                                        @.Destination.NumReservation + 1;$ E  g% p; k7 y
                                end;- X/ `# K: `8 y$ G$ q8 H, V6 y
                                @.CurrIcon := "drivingHome";, \2 W" p, e  K) e1 T# M  H( a6 b
                                @.DrivingHome := true;
4 U( s& Y! [  j- q. W. S                        end;
5 B8 h6 `8 {- X8 F+ S& L/ s6 v                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ i  S  P5 Q3 C8 }) v5 U' s
                        part := @.transpOrder;
+ {* b( b0 R/ e/ L3 t; u                        part.move(@);-- load part; `) p8 l/ r% K; r4 }( T
                        @.CurrIcon := "load";1 h0 H* V$ e" z6 H( s. F
                        GlobalDistObj := part.globDestination;
, N: v1 t8 `4 Q9 |                        assignLObj := rgmanager.rgAssignL;
, [, s5 g  B7 r! B                        row := assignLObj.getRowNo(GlobalDistObj);
& m/ N# S6 q. X7 V! v                        if Row = -1 then -- since 70
/ D; `; {5 K8 x+ |" S- E                                if lan=1 then8 ~4 C) I5 n* C$ m, j
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 l$ M+ N( A7 q6 `. r                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 [) s6 ^# P3 P9 {: g7 q) S+ E! q
                                else
' |  {1 }0 g$ o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% y0 \; I0 Q: t- T2 f: X                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ f* j/ ~7 ?4 H+ H( T) t                                end;
, b8 [) u$ G& s$ M% z, y                        else
/ K! a- g& I( j4 R                                @.Destination := assignLObj[1,row];; C# a, O& q" M4 L4 }
                        end;                        6 V7 n( K/ n1 X2 t$ }* N& U5 a
                        newDirection(@);
& x$ A. n" i9 G+ d                        @.HasOrder := true;
' A9 Z8 R3 F' f( e                end;7 x: N: P# y8 L% a
        end;1 O( o. i9 ?* q; m& w3 ?  C
end;        -- of the method% G) [  H. o' i2 u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 4 X* ]# b* R  n9 U' I' \7 p

& w! y/ R2 E$ u& d3 |这是AGV_putin中arrive的method。3 d" A# z% A: w) a: r# ]# T, H6 t
7 R6 Q) |. Z) a" Y+ f* F* w8 j
当到达物料速度越高时,这个报警更多,5 J1 I+ F0 Y, r. k& J4 C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。* D  M' w* r' w: n
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: J/ t% P6 \% ]6 }$ y1 I& {. X% ]

2 p3 w1 Y, L3 c1 f/ B: @另外一个小建议,就是move,所有的move都可以这样; O* T2 v6 w, q* j" \
if not move() then debug end# a" @, T8 Q; A
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: ]' R8 z8 g/ T6 h+ t
plant simulation中的free libraries有AGV模板,8 S7 A. o. b8 ]; S! b: K
里面也有案例。( w$ j3 v8 P. F0 p6 `8 f+ ^/ ]
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ c: x3 b* F$ k' J0 U. u$ D1 y2 B) \7 u# w( k
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 h* c, _. x9 l* \' m9 v

& K8 Q* V$ G" d那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) E7 D7 ?9 ?: A$ k0 u% n# N这是AGV_putin中arrive的method。7 S  D' [# V. \* d' y: I

# s/ l: P( C, A当到达物料速度越高时,这个报警更多,
, b+ [3 o, N  a/ r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-9 13:20 , Processed in 0.022455 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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