设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6703|回复: 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'
0 x0 q5 s% b/ S* w; }*/
3 `5 g7 N/ v" u, T2 _is
& b8 `. L; t0 {" m        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ |4 h9 P- V8 N, N; ]2 e9 m3 Cdo
& L- y$ @+ P! @8 h# ~; Q( w        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ Y" ]- G: w( k0 ?, n: I- i        if current = @.Destination -- else return& i! C# r8 _3 E) q0 x
        then! }% V, B1 t/ ?  A  L; o
                @.Destination := void;  D3 N) f' \6 |: I" \0 t. K
                if @.occupied then, A; c/ E6 H0 O$ e. _
                        part := @.cont;
$ b- {$ w) D& m                        @.transpOrder := void;
# O7 Y6 k6 a' y$ }) p1 _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 g" o5 h. t% a: i
                                @,root.eventcontroller.simTime);! n! h! K' \- t) j+ @2 m6 @' J
                        @.HasOrder := false;8 y+ {7 Q3 A1 C9 f6 J2 x
                        @.DrivingHome := true;" N% l2 J4 ^. f( P# p
                        rgManager.tryToStartTransOrder;
0 j" D' I' u5 F: e' t" B& g' b                        if @.Destination = void: t" ~2 G3 B  m. }- G; \
                        then -- no transport order for vehicle @
9 W& [/ I, H- T                                @.Destination :=1 I! H- ?/ W& y. F' W7 l4 _# e
                                rgManager.nearestFreeStation(@,track.~);" y! N9 |( Y0 l! H9 Z
                                newDirection(@);   
2 ?& i- T$ K$ Z, ~                                if @.Destination /= void then
- c; t; i8 P6 H( w# J3 ~! I4 I( R4 f                                        @.Destination.NumReservation :=
0 v" b0 f  l( l                                        @.Destination.NumReservation + 1;1 l8 y2 `: i( r
                                end;9 E' N' ]* }! A
                                @.CurrIcon := "drivingHome";3 e, u' F. i! s. i* y
                                @.DrivingHome := true;
+ Y! \5 R# ]  @* u/ N; V                        end;
: O% d: r7 Q" x' ]: Q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
3 m& \$ y  |& A% j                        part := @.transpOrder;  k8 h7 T- ^3 ?$ Q
                        part.move(@);-- load part8 W/ P2 R7 K: R
                        @.CurrIcon := "load";
0 h' `. f4 I  t8 M% m                        GlobalDistObj := part.globDestination;$ K. l: V: }5 F( ?" \# }
                        assignLObj := rgmanager.rgAssignL;+ z- U) C& q$ F- U. U3 h
                        row := assignLObj.getRowNo(GlobalDistObj);" V) k3 L/ _3 n! \- t
                        if Row = -1 then -- since 70( Y! F* L" h3 U  ]7 O" }& }
                                if lan=1 then
: m" J% S; j: z' Y$ u                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* }% v% I7 ^  I& g                                                to_str("in der Andockstation: \"",?.~.name,"\""));* z  C$ {# O) l: V* S3 G0 F
                                else3 g+ N3 w: E* N1 @, q& ]; K
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) Q2 |, K: x9 |" w1 h7 d7 b4 S# Y
                                                to_str("in docking station: \"",?.~.name,"\""));                               
. N" a8 p9 ^6 J( q9 D$ X( H                                end;
7 b* w+ G6 n3 ^# }                        else
( \, U* K( g. l* c& s                                @.Destination := assignLObj[1,row];
# O$ X8 @+ S3 x' S                        end;                       
5 |. s- ?* N& ]. E0 x                        newDirection(@);& s/ [6 M1 V9 M& p
                        @.HasOrder := true;
3 u; s1 Z% L+ u7 k3 F* l                end;. B! B6 I" d# I" u1 Z# `0 U5 _
        end;8 M5 q: \8 i+ l$ r% y: H8 m
end;        -- of the method3 P; ?1 t" g6 [* C  ?. F# D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " [: r9 B' G& I" \% |

* G- V! c# b- E+ Z! r) b( n这是AGV_putin中arrive的method。8 J* M2 R: i' B; U8 y% V( s4 ~

9 C  }3 s, l3 y( R+ B3 Q2 Q当到达物料速度越高时,这个报警更多,
. u2 U/ p' ]) z, X" @: D可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 V# W, Z9 a7 I, d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 m9 A) N& H3 v( Z/ X7 P0 B4 x7 R, V1 b/ x( Q& B, o& L
另外一个小建议,就是move,所有的move都可以这样- \2 I4 O  w; {; v% C
if not move() then debug end
+ }: k7 V  k: R9 n这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 s1 u" D0 D3 d6 K# f+ ~
plant simulation中的free libraries有AGV模板,
1 C5 z- u  b, r- D- i里面也有案例。/ W! F" v: u& H9 J1 ]' v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 c, \) R2 H7 |8 O1 f' \3 e4 s7 \7 p' `
, d) h8 F. Y3 `我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- ^9 a6 K" X5 e2 [( c5 F1 ~* C, _% N+ c( L. s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 s. M9 [& R# Y
这是AGV_putin中arrive的method。( p: M* B) b/ w; a  T3 V% I

6 o6 P+ `% q8 r& k当到达物料速度越高时,这个报警更多,

2 A+ C( r1 }& \8 H( ]另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-21 17:55 , Processed in 0.022501 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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