设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6042|回复: 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'; i, x: b& N  N3 B4 A  D6 u
*/
5 q/ e* y# q4 u5 `0 Iis
' X# p5 {$ ~/ h6 i/ r8 ^& {7 a+ R6 x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' E2 b. C6 u/ x$ j  H
do2 Z' b) P: [: A; \' a6 o0 x% G
        Lan := rootfolder.Internal.Tools.AOLlanguage;5 X- K8 S' q4 S6 _  D
        if current = @.Destination -- else return
! `& D3 K) ]2 g. @  w. e8 K        then1 ?9 s* e, B" e, B
                @.Destination := void;
; K+ g2 r# B9 v# {7 K                if @.occupied then
/ X& B9 ~  u  ]  P* Q! ^) q                        part := @.cont;( _. ?7 \( r0 ]" M
                        @.transpOrder := void;
+ {- M2 |# z$ j$ p" X5 ~) N                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 j- c$ x1 q/ f) F
                                @,root.eventcontroller.simTime);
! n& n, ~/ y' b& X+ `$ `                        @.HasOrder := false;5 k. y/ l% m4 h( i4 \$ L
                        @.DrivingHome := true;  [* n5 ^  Z! R$ W/ k# i% f
                        rgManager.tryToStartTransOrder;
9 K/ Z  p9 k6 `: @4 B' b' s4 t                        if @.Destination = void& e8 a, E+ y! G! J
                        then -- no transport order for vehicle @6 E( [$ t. q$ J; i4 z) O
                                @.Destination :=
2 W" G  f$ J$ i0 Q+ I' p6 T                                rgManager.nearestFreeStation(@,track.~);+ `& c! ^5 x& W4 [( \% A
                                newDirection(@);   ! c0 v, L2 ~/ j( F6 |
                                if @.Destination /= void then/ z- G8 U4 l7 B6 Y# J
                                        @.Destination.NumReservation :=
3 L& m/ y$ ]% u% w  z                                        @.Destination.NumReservation + 1;
: p( U' ?1 Z; ~& j! l7 X                                end;
7 L* s( @# C5 `8 }8 ?: y0 q4 i                                @.CurrIcon := "drivingHome";' m5 _+ q$ q8 }4 r  u
                                @.DrivingHome := true;! U# l$ W# x( Q7 Y- \: t  R
                        end;
5 @4 c9 T* @, K& _! O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# r: f; K) Q# M+ `' S+ @                        part := @.transpOrder;
) R/ Q* v3 S7 o, S" {5 e, e                        part.move(@);-- load part  G, }& _  t) c
                        @.CurrIcon := "load";2 r( U8 j5 V, |) y% h
                        GlobalDistObj := part.globDestination;; C; R* i, u; m$ u; f
                        assignLObj := rgmanager.rgAssignL;9 T: C$ ]. L6 `
                        row := assignLObj.getRowNo(GlobalDistObj);! @- |! B/ q1 N
                        if Row = -1 then -- since 70
. s3 t! Y, e& |% h                                if lan=1 then0 `6 F, T* W1 Q( q( Z; g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# |& m4 f5 P/ Y0 y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 L6 h$ C9 [$ V$ j& z- r6 X4 A
                                else3 `& {- W: y9 f9 f
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 c4 p- w  @6 i& K) }* _( U
                                                to_str("in docking station: \"",?.~.name,"\""));                                5 ^4 E" }6 v* p4 B
                                end;6 N* W; Y" `9 ~+ j  F
                        else
5 T& M2 r7 s; C: V. x" P1 [9 i                                @.Destination := assignLObj[1,row];
1 C8 B; I; {# O7 V3 i, S/ o+ I9 w5 T                        end;                       
7 p- o* ]  J0 ^, t                        newDirection(@);
5 A& @6 n( _4 {1 l* R# P2 m                        @.HasOrder := true;
0 Y3 C4 ?5 Z% A- z% B                end;/ ^& s) \4 P( V9 a' e
        end;; z. J/ J5 V9 Q% z7 `
end;        -- of the method
; G, L6 e* W0 }( V: }  R; l9 D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* ?) K+ q5 x5 f) ^6 q- y% g
% H! N7 L3 D# ?这是AGV_putin中arrive的method。9 u$ n  n$ p6 e% u

* T1 s  E3 ^; L- z& T9 x9 z! I当到达物料速度越高时,这个报警更多,
$ Q! `( r" S5 I6 l可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# Z: d5 W, a* O9 L6 Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 j4 |# c5 n/ V% k# l

  U- T. |, l3 I, F9 M- [' X另外一个小建议,就是move,所有的move都可以这样+ @: D) o2 R' x5 S4 k  W
if not move() then debug end
' M7 q% @  r! \' t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。- A4 M) B% a2 o$ X8 T$ X
plant simulation中的free libraries有AGV模板,2 ?& R" i- ?; X/ ]! p
里面也有案例。6 j! f: _& ^& i) p* W3 v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ n# d0 ^0 W& a
2 E1 ^# h4 v8 T8 M; o( P& `# H
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' [" U2 F; {( h' k
& E  k. j% f" P# K3 F
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, }' C' x( w8 o2 l/ s% v, Q+ B这是AGV_putin中arrive的method。
+ L4 u9 C3 u* l6 i% @7 y% G# h' }$ S- C
当到达物料速度越高时,这个报警更多,

0 g& ?! r* ^- M4 X" L1 c另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-14 06:20 , Processed in 0.016989 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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