设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7674|回复: 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 Y$ D6 Z; }' j5 I  t' f*/: |' x, I2 B/ v5 X, g9 x8 G
is
) G$ F3 }; L3 ^) W5 Q: T# U        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. C" w; z  A7 h1 V- Y  {do
6 {! V, B! t4 E! y8 L        Lan := rootfolder.Internal.Tools.AOLlanguage;
) W" K7 D) W' {6 N1 a. Y        if current = @.Destination -- else return
2 Z1 O( [+ C  {) |. W6 R$ `0 m        then# C' c& A& O+ I  a
                @.Destination := void;
/ V' `0 L5 q7 ~7 {$ |                if @.occupied then* R* Q+ c6 y+ |7 i& Z( q5 R
                        part := @.cont;
$ d% O" L( {, |' `/ V                        @.transpOrder := void;
4 N5 T" F& l2 U; E$ H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
- K$ G6 Z1 n5 ?& x                                @,root.eventcontroller.simTime);
- g, a2 Q% R: T: N# d/ Y: J                        @.HasOrder := false;
% K9 m2 S4 d& P. X0 C: g                        @.DrivingHome := true;
% ~1 W( ~4 K5 Y) f$ E                        rgManager.tryToStartTransOrder;
& ]$ C, A" V' S                        if @.Destination = void, N  r1 B2 _0 z, `( Z# s/ S
                        then -- no transport order for vehicle @
2 [+ t9 ~- r7 i% Q$ |                                @.Destination :=' c4 e' g) X4 W- h3 S
                                rgManager.nearestFreeStation(@,track.~);/ [5 |  `& `. [( U9 r
                                newDirection(@);   
- m2 b# @4 s# D( n- A                                if @.Destination /= void then
4 V# T; ?0 O4 n. h: y; u5 }$ i                                        @.Destination.NumReservation :=9 q- t% |* h' n
                                        @.Destination.NumReservation + 1;; ]: V+ }' N, Z/ m% v2 L7 R$ D
                                end;$ f2 f' @. ^; U" b* ?
                                @.CurrIcon := "drivingHome";
( m1 z0 j: C* R                                @.DrivingHome := true;
7 Z3 {! o9 z( D" W; w6 O0 l8 Y                        end;
  l  t- S2 g/ G: K, I1 T                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 |9 C7 [9 X+ e! v  Z& T# a$ w
                        part := @.transpOrder;! q% Q  y" `( N6 g& `& k( b  {
                        part.move(@);-- load part: F/ b2 m& C( J3 x
                        @.CurrIcon := "load";1 i' ~, I! [! g* q7 w7 w" R
                        GlobalDistObj := part.globDestination;/ G! s* S: T1 B
                        assignLObj := rgmanager.rgAssignL;
+ c( G* P$ r* ~& [# Z5 Y                        row := assignLObj.getRowNo(GlobalDistObj);
; b0 S" s$ z; E* ^                        if Row = -1 then -- since 70) t: i" ^4 N" ?# V7 d
                                if lan=1 then
  a7 N/ x  u# m& p                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) n/ K8 l4 G3 s+ K                                                to_str("in der Andockstation: \"",?.~.name,"\""));( L, m3 E, z; o: {5 }
                                else! Y9 g3 ~2 L' ^* B# X+ m- Q4 g/ j# K
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" B$ t$ `# U+ x2 X                                                to_str("in docking station: \"",?.~.name,"\""));                               
% G7 j- m5 N( u                                end;- i: [- u2 W* h% o$ w* Z
                        else$ i6 c; @6 ?3 M" o; g6 i
                                @.Destination := assignLObj[1,row];( `9 ?+ _% T7 d1 J4 o2 }) S, X- r' ~
                        end;                        $ Q3 z( F/ b! ]4 L- ?5 s% t
                        newDirection(@);
' j5 A" v/ l5 Y! I! q3 X                        @.HasOrder := true;! i& }& P8 }# ~; u
                end;
: Z: R: \" ]8 s" k% z8 J$ ?        end;
5 O; Q& ~) }& K; n1 zend;        -- of the method
: Y# q' T- g1 z% v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! A8 |; p- ~0 f
% ?, p2 W, q' z- V' G$ U
这是AGV_putin中arrive的method。
. K+ N7 E% k0 M: ?
- U) ]" y. [# z5 J当到达物料速度越高时,这个报警更多,, U5 U' F/ {4 J0 O! w; r3 W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. E5 ?5 C4 b! e8 T% m: e8 ]4 `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 h1 Y3 K4 i" c4 V( }! u) s2 ?' T- f  A

- u' @& R! f$ Y另外一个小建议,就是move,所有的move都可以这样' l+ A( C9 G5 l" p& g
if not move() then debug end
' `, B8 A! t, L, k6 W4 @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 b" z% @. i0 e" s8 k9 Zplant simulation中的free libraries有AGV模板,3 g* R$ Y5 v8 }9 U' S. U
里面也有案例。4 R7 z( |6 P  j& f, H0 Z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 a" X1 |/ _1 A; L* X* r7 y0 T
# @& g* I- v5 V" y& _- ?9 d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. S# R0 Q& e! j. L1 r. j& E' U0 G: ]7 D" C+ q9 H/ J& @; x
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* }, L  m! q7 Q# H! I9 Y  t: e这是AGV_putin中arrive的method。9 S1 W1 P1 y  ?$ g; ^

2 T* k% s' x" `当到达物料速度越高时,这个报警更多,

( g, P# _2 A. @另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-23 16:54 , Processed in 0.018793 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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