设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8863|回复: 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'" I2 T; @. \. d/ ^2 X/ E0 H% g
*// A6 W) B4 h! V' J
is
( Y. r  H# ~$ u0 t  {8 _6 u. x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 o3 H8 m  s  b* M- Hdo( k! E, w% y+ b2 }
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 s8 I" T0 y+ m- E, ^0 c% `        if current = @.Destination -- else return+ f. k/ A! G# K' q
        then
% f% ]  q7 m# I; K                @.Destination := void;7 b( d. q7 f. N! x* T+ V6 ?  _6 U! R
                if @.occupied then
( W$ C. a5 n( U/ T* B) |% }' e                        part := @.cont;8 L9 u( ?. S3 ~4 h
                        @.transpOrder := void;
8 Q0 y- P6 K( |: Y+ Q                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' M$ l  j$ ~$ F5 E
                                @,root.eventcontroller.simTime);
: P4 s" A) o6 _1 x3 ?                        @.HasOrder := false;
5 S6 a+ Y" @9 }6 r, i* m                        @.DrivingHome := true;$ B/ s0 c9 r  A# A6 \# E4 H0 }' d
                        rgManager.tryToStartTransOrder;% A: n5 R" B7 w9 p2 U# ]  C
                        if @.Destination = void8 E* k6 ?! j  |( `- c
                        then -- no transport order for vehicle @7 Q! ~* t, o: l  M
                                @.Destination :=  l) U+ {; y. @0 ]
                                rgManager.nearestFreeStation(@,track.~);% H7 u9 q. l# ^5 k5 A& a2 p4 F
                                newDirection(@);   , e0 V1 M0 T7 K+ ~
                                if @.Destination /= void then6 O& ^# e1 E9 ?: q5 v6 |8 u
                                        @.Destination.NumReservation :=
  l& \8 [4 A" f; G5 _                                        @.Destination.NumReservation + 1;  U; H) J, ^9 {( K3 s( }
                                end;3 u2 s' M, P" |. r  {5 V' H5 V
                                @.CurrIcon := "drivingHome";) b: F# s3 Z4 P9 {$ B  ^9 V/ b! |
                                @.DrivingHome := true;, r0 o$ e; [1 S8 D4 `8 z* x
                        end;
) _, d4 T. X9 o  f4 q5 l' \% m                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 r, a$ b/ V! i; O- ?; m
                        part := @.transpOrder;
7 e& a( @$ ~. s6 i7 b                        part.move(@);-- load part% C9 o- p" @/ @
                        @.CurrIcon := "load";
- A' Y% j) p1 Y6 U                        GlobalDistObj := part.globDestination;3 b! v/ _! B: _' {2 M
                        assignLObj := rgmanager.rgAssignL;
5 @, b* r9 v$ C4 ^0 {3 b! W                        row := assignLObj.getRowNo(GlobalDistObj);
7 [. b% r1 Z# j% v3 U5 q; W                        if Row = -1 then -- since 70, P6 A6 v! ^4 h, {
                                if lan=1 then
! L! B) S  s' x: t9 ~                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 ]4 l5 h% X! }
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 A5 i6 ?0 C9 X: m                                else  b: J( M" a+ a' @+ Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 ^  ~; @( W+ M+ Y) I! j: J                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ u0 q6 ^  Z* ]8 x                                end;" G  G( b/ D1 s) o- z- K, j: _( J
                        else
1 x& W( q4 `* y9 {* @9 `: k' I$ W                                @.Destination := assignLObj[1,row];4 s9 U1 u1 N1 P3 m2 p' m4 m
                        end;                        ! |* _. x1 O! w
                        newDirection(@);; Q0 a2 J+ g" d* _$ G
                        @.HasOrder := true;4 \/ g7 l/ a0 \) U
                end;, W/ K. y9 r1 Q! z! }4 `: s+ k  j
        end;* I. L$ }$ @# z2 `
end;        -- of the method5 v8 g/ K* W: F5 N7 C$ _, k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* |4 z1 @, A& }- I% {
* J1 H  O; D7 ^) I; L这是AGV_putin中arrive的method。
! Y# m8 V' u$ S/ _& c$ j1 b/ w& L% X$ p; z
当到达物料速度越高时,这个报警更多,) ^& q; R8 F  S$ F) R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' C, ^) C& R+ E) a0 v7 ]+ I程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 ?' [: F& i8 Q4 B- e; t( D
& R# S& o) Q: M: u# s- t! y
另外一个小建议,就是move,所有的move都可以这样
8 A* {' k7 w( l% \if not move() then debug end
! C+ h2 ~; A  n# M8 E这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 {. I- h7 R* u! q
plant simulation中的free libraries有AGV模板,* V9 a% q5 {/ q4 m( P4 ]
里面也有案例。% N& `4 g, T1 g1 A$ S/ y7 j
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 G, u3 c! `" ?2 U" L0 U8 f6 [

" M# @; j- O, L3 O9 m* p: A& L我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ U: l/ Q4 X/ G  d5 Q! G+ E3 N8 a9 O8 ~! C0 [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ }  l8 y7 B3 n1 r, H这是AGV_putin中arrive的method。3 f8 f9 Y8 x* J4 `

* f/ J# e3 c! Z8 B! `1 b( p当到达物料速度越高时,这个报警更多,

( T4 R4 A; O- g4 L/ j2 F另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-30 22:55 , Processed in 0.014358 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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