设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6717|回复: 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'/ w$ W8 g9 T6 i
*/( n3 |8 u: F- @# r
is9 Q- g# O/ g5 H  c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! Q2 R/ F2 @$ U9 D; q( x
do8 B; f* \3 n* G2 |2 h# E5 r
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 {- k; c1 F! {( V) z6 n        if current = @.Destination -- else return
, J+ I) |0 D  n        then- L) C5 c0 V* q
                @.Destination := void;
# m5 a- u% X& X6 Q                if @.occupied then# c* }" U! t- m  V3 X4 z& Z
                        part := @.cont;
0 e' U5 @2 o3 `% N% u                        @.transpOrder := void;( V9 U0 m" q; ^: z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, y% D( L1 e5 Y: i% H6 `) T                                @,root.eventcontroller.simTime);- \) g1 {$ M& X" K4 G+ i5 O
                        @.HasOrder := false;' k+ c& }! P5 R# X9 R! t
                        @.DrivingHome := true;& c, k8 y0 N9 d7 d+ v
                        rgManager.tryToStartTransOrder;+ H  \0 ?/ v3 ~8 u& k* a
                        if @.Destination = void
- Q' |% {  D# b6 f+ A                        then -- no transport order for vehicle @
! e6 x7 a* c7 w; R5 [                                @.Destination :=
+ [: q, u. I% _! ^9 Q, i( s2 Z- G                                rgManager.nearestFreeStation(@,track.~);$ a; `8 q- ^+ x" U6 g# F* r) w
                                newDirection(@);   
, ]$ _  g  X- N1 C0 X, o  @: S- |                                if @.Destination /= void then" B+ v6 e5 O# a9 M, B
                                        @.Destination.NumReservation :=
9 m) a  C, h5 k                                        @.Destination.NumReservation + 1;2 n7 i6 k, T! o9 F+ {  L
                                end;& F: }0 J/ I5 N' t+ ^
                                @.CurrIcon := "drivingHome";
8 g9 i' w, w9 g  h                                @.DrivingHome := true;4 X. V- h1 I) y/ X
                        end;7 U. }1 M( D+ R0 ?+ R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" x: M/ R: t1 l                        part := @.transpOrder;
0 [& f5 [7 p: {: z, k                        part.move(@);-- load part% c- p' B. x, U& Y4 n! Q3 e* ?5 h$ k
                        @.CurrIcon := "load";
' c9 _0 s- M4 Q7 l# @. U' F  X                        GlobalDistObj := part.globDestination;
& G7 `. s5 g1 T9 K8 f, V4 g                        assignLObj := rgmanager.rgAssignL;4 E9 l7 l) N$ Q. n: o- H
                        row := assignLObj.getRowNo(GlobalDistObj);4 b  V3 L! `! o0 s4 W, F0 L% w/ I5 L
                        if Row = -1 then -- since 70
7 I3 q5 F6 H3 I8 W                                if lan=1 then8 n0 n* F# j. J( B& v  C4 l
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' @; k: B) e6 C. S% ?
                                                to_str("in der Andockstation: \"",?.~.name,"\""));# P& P8 \7 U: H( s0 k7 `
                                else% f" \7 F) l: o
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ p. y% h! N5 ?+ o0 {+ }4 p
                                                to_str("in docking station: \"",?.~.name,"\""));                                3 u: B1 b* l9 o( w+ z
                                end;
) j' P  i! j5 \& e/ T                        else+ @* S2 C! G9 a" t+ _2 H' z* N# A, P& d
                                @.Destination := assignLObj[1,row];5 T2 T  {  i+ T0 s# Q
                        end;                       
, o( v: a1 f6 v- e                        newDirection(@);
5 i) M% v( `4 `3 w$ B- a* w                        @.HasOrder := true;0 {- g0 e6 ^7 G+ p
                end;3 K  h# Q  J! o3 k1 [4 v
        end;
( k. u0 F. G  `( o. ]end;        -- of the method: I! |4 s' k& L8 J( c( j' j% B5 R. o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; O, F3 u# K+ b3 _5 D: ?, f8 a' d

1 e: N8 d5 g" E. s3 N这是AGV_putin中arrive的method。3 O0 e8 x/ m' I
. ]: ?$ N3 l& c# Y
当到达物料速度越高时,这个报警更多,# u7 ]3 l% e2 A  h% Y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ G% y6 {, c8 G. z4 H* d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) j3 B4 R. q0 V
% L% W" Q$ X( ~' a9 P另外一个小建议,就是move,所有的move都可以这样( ~; Y& _+ T- w6 ]6 l
if not move() then debug end
& l' a) @8 h- h1 p, ]这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% u0 H$ u  ^; W/ Eplant simulation中的free libraries有AGV模板,  g+ v9 \0 H& ?% \4 D# T
里面也有案例。
* q6 ?, M- X( t6 c我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 Z* N3 v1 J6 A/ U  h/ q0 V
& Z8 x6 k3 v4 s  I: _8 Q1 T我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. x- p; z% d+ v. j5 I) o  h  m5 [4 u$ d, W6 d  b' t
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * o6 l0 ^* K; J' }. }
这是AGV_putin中arrive的method。* w) ~/ Q' q7 a) X
7 Y3 I# |- V3 {" t6 l
当到达物料速度越高时,这个报警更多,
- p5 S, o: a; m: `$ S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-22 11:27 , Processed in 0.016831 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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