设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8856|回复: 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'
  F8 W9 {4 D9 P, M. a3 [*/
% |, @" j; f8 v3 ^" s7 cis' J) w5 h- y: f. v; v
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, s% m. s& X6 }& a- X1 ~4 `
do& i2 I6 k5 T& ]
        Lan := rootfolder.Internal.Tools.AOLlanguage;- X3 s6 d9 v( P  S" r* M! c
        if current = @.Destination -- else return
7 M- @2 B5 Q+ U3 V4 ^4 L        then
; L8 V4 Q* r3 N7 y; w4 o( \                @.Destination := void;4 ?9 c! F4 c- |+ ~6 t" g- y- A0 U% u
                if @.occupied then
1 D1 b* @9 l  ~. s1 f$ i- H                        part := @.cont;: n' f4 R2 B, l( B8 U
                        @.transpOrder := void;7 z# B  ]1 L0 o8 V7 R
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( J2 s1 I0 w- Q' \; F" j                                @,root.eventcontroller.simTime);( W: p- u6 L( V# j, n) R/ {
                        @.HasOrder := false;
1 d3 m* A: L* d6 ^/ E                        @.DrivingHome := true;% z' J* g" q; z/ u9 p0 J
                        rgManager.tryToStartTransOrder;
( H9 h. F% Z4 U# e                        if @.Destination = void
9 F# G+ {& u+ O7 T, O, U                        then -- no transport order for vehicle @
$ B9 t! [6 r7 J0 f. @  L; m                                @.Destination :=* X) y0 Q5 D2 a7 g3 v
                                rgManager.nearestFreeStation(@,track.~);- m, F/ i4 m/ @% e4 @
                                newDirection(@);   
2 f# R3 a9 i; C$ |" G                                if @.Destination /= void then2 ]/ H2 y; M1 D; O3 B4 E" y
                                        @.Destination.NumReservation :=9 d$ n' w1 T$ [8 F
                                        @.Destination.NumReservation + 1;
) ]3 a% L6 i  j) e' _: g7 Z                                end;
& N( A- p6 a' U* x- }                                @.CurrIcon := "drivingHome";
  m% ?2 C, J- O' s  ~                                @.DrivingHome := true;
3 P/ o/ F/ x/ t, C: W5 P                        end;3 U5 b9 Y& j7 a* ^8 o& o
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 }% k4 F& t; T5 e/ ]                        part := @.transpOrder;; \# Z+ q. N9 k2 U$ B
                        part.move(@);-- load part, R3 W; X1 T( n0 M1 d
                        @.CurrIcon := "load";
3 a/ Q% T" ^- L                        GlobalDistObj := part.globDestination;
+ r2 s) s& C4 \0 P1 j, g                        assignLObj := rgmanager.rgAssignL;7 i. ^2 \! ]* \. V& }* Y
                        row := assignLObj.getRowNo(GlobalDistObj);
+ `9 R" ?2 f5 @# H' g) |, }( _                        if Row = -1 then -- since 70
/ E  a3 j; B  C3 W0 E- |                                if lan=1 then( @, \4 L' z9 q8 g" @& s( M
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 S( Z$ I! K2 w" z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! k6 L: X2 y' l                                else
1 ^2 l) [/ f, I; ~+ U, s0 w. R! t                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# |+ Y  z, p4 Q( \3 r                                                to_str("in docking station: \"",?.~.name,"\""));                               
, f: ?$ r  l" f) F                                end;4 w4 y3 o: X) a6 \% z, j
                        else  C5 [1 Y$ R0 c2 d+ w
                                @.Destination := assignLObj[1,row];" _6 b5 L; Y# X0 A
                        end;                       
* y' [  o. ~3 d3 m" b/ N* j                        newDirection(@);
; J4 p  a; Q0 b. |7 A8 e                        @.HasOrder := true;, ]* K! M# C; U0 f: `, q0 ~
                end;$ o3 W6 }0 |4 z% X1 s4 G
        end;
: z* S4 e! h$ S  V& M4 e; ^end;        -- of the method
3 u7 y7 Q5 U! X  I; m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% Z% W8 v1 |" `9 _: @  v8 _% l4 J1 i) \8 R# p! d% H& \9 B& I9 e* k1 u
这是AGV_putin中arrive的method。
/ s" M$ L; \, s/ j  ^) f0 d. R
8 ]' y) O. ?4 ]: s' A当到达物料速度越高时,这个报警更多,- {: u% g. ~" Y5 O- \& w
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" f$ R/ N# T- r0 l* H
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ j7 b* _& E$ P/ A2 q; f) m- }/ C* g. @
另外一个小建议,就是move,所有的move都可以这样- d, P- }6 r5 n  y- v) v
if not move() then debug end3 _+ a: \& k' S/ i$ @6 s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 g0 N# F; `; H- `
plant simulation中的free libraries有AGV模板,
1 c) k  Z5 Q& z2 w9 `  d- K9 U* Y# T里面也有案例。
1 R3 w: S( L# u: X% S' r( t4 Y" t6 K5 Y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" D6 O* J; U2 V+ k2 x) V

) O7 e. z# x" C& ?, X+ U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + [2 e" r+ P4 a
! b' r; u3 `$ D2 G" g# g; p+ t: V
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 W4 w8 q4 O( u1 p# s
这是AGV_putin中arrive的method。
+ q3 x) K! D7 g. H! T  N, x, ]9 Z4 e# U9 R" d& T8 ^
当到达物料速度越高时,这个报警更多,

1 p1 `8 w* U+ Q3 o" o! i另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-30 14:23 , Processed in 0.016559 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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