设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5599|回复: 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'
  T) y$ C# m$ R- h*/1 T+ F5 D4 f+ O+ V6 f
is3 y) K" F, Q/ n6 q' ~9 J9 O2 t1 b; c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 t2 p) {% {9 e* i0 Y4 O
do; I% H7 x# E2 H# c9 N/ \- ~# v
        Lan := rootfolder.Internal.Tools.AOLlanguage;: s7 S  I% \6 L3 S- _7 }% P
        if current = @.Destination -- else return
1 T; r7 W; ?' n$ b9 _: L! c        then2 z# g2 B" M7 v0 G/ t
                @.Destination := void;
0 \" C- `" z' a; }                if @.occupied then
0 g- s% b* G0 _  N1 ^& D                        part := @.cont;, L) @/ ?6 p5 q3 t
                        @.transpOrder := void;" ?+ K9 G' Y" [/ r& S, I3 n4 u
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 y' g; X! p. H( u5 U
                                @,root.eventcontroller.simTime);
9 q, p8 N" c& R1 |+ w5 L$ _% p5 q3 P                        @.HasOrder := false;; y' A# g  y. a8 }3 ^6 a6 c& a& g
                        @.DrivingHome := true;
8 A; Z$ i+ M( V0 ~                        rgManager.tryToStartTransOrder;4 D7 O% {8 L: ~# D+ l+ {
                        if @.Destination = void' n% v. [9 M& g9 ]* e$ t
                        then -- no transport order for vehicle @' \. U; x6 `0 U5 O3 L' e
                                @.Destination :=& T3 ~' O5 J6 w- \8 g* ~& u: L
                                rgManager.nearestFreeStation(@,track.~);! v8 B7 N! p6 d
                                newDirection(@);   ' V* w. P* @& b7 u! c4 ?
                                if @.Destination /= void then
! ?6 t" I- {% X                                        @.Destination.NumReservation :=4 j6 r) h8 U9 ^. w3 J
                                        @.Destination.NumReservation + 1;
' @  t4 a4 c) i; y: v9 U& _                                end;
8 [, ]: B) X& P                                @.CurrIcon := "drivingHome";
9 @. _; |* |- I7 f. Q                                @.DrivingHome := true;9 x) \" g2 k4 F, M9 g3 `8 R
                        end;( o. H1 @) }! A1 o  v
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 S8 ^. J$ w  L; K! b+ m( b" f
                        part := @.transpOrder;4 R- f, z) b" z$ \0 c
                        part.move(@);-- load part9 A4 D- S) v. U8 \+ Y; z1 [
                        @.CurrIcon := "load";
( i9 Y( G  T* ?- _                        GlobalDistObj := part.globDestination;# x& o* S! O7 V8 `
                        assignLObj := rgmanager.rgAssignL;! Y* g/ V. P: b4 O( ^
                        row := assignLObj.getRowNo(GlobalDistObj);& t! a8 X9 \& K( c
                        if Row = -1 then -- since 70
0 u5 ]- Y+ Y/ W- Z; U3 E& D                                if lan=1 then  R7 R: K. r6 j3 o/ N$ l2 W
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. z8 c0 j$ U( ]                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  D: p/ _8 |5 ]9 I9 P0 q                                else2 \) L6 X- H1 d1 k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ Y% S! B0 E  ]                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 E5 O% ]2 D# V/ Q8 P- P                                end;
, h7 {6 k) m. d8 \                        else7 F& l* ]7 j8 E& u7 V
                                @.Destination := assignLObj[1,row];5 d$ K# \) X+ `: p, ^1 S
                        end;                       
9 M9 D/ _) n; `; {9 h$ r# ?4 Z8 B                        newDirection(@);; u( Q0 I4 m  F0 A) q( ]
                        @.HasOrder := true;
' w3 r1 ]5 e; y/ F; C                end;
# b4 C* b* T6 R        end;+ s) w" J7 j2 v
end;        -- of the method
% m( ]- }- @/ q& [! c8 [8 x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! M# w7 a/ ?5 ]* w& j

2 W" y7 H  d4 Z4 f这是AGV_putin中arrive的method。" x( N7 B; o. T# i. ^
. l  n6 c( ?# `! B& c+ A2 k$ j8 \! p
当到达物料速度越高时,这个报警更多,
: F1 }7 q$ v8 A; r3 g0 O& ]4 V. z可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& {5 `3 M# p8 L' K( h程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 F5 `- n: E- u  ]% p* B% E2 F: g2 E* \. @- E: x2 h7 D# [3 g
另外一个小建议,就是move,所有的move都可以这样0 i6 R; D9 _' \$ n& {
if not move() then debug end" u/ ?1 |2 Q7 H9 I7 i5 n$ ?
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 l! }( U4 j- G$ b3 _0 B: j# ^% |
plant simulation中的free libraries有AGV模板,& w" X( R' H7 E1 B5 ~6 [
里面也有案例。
/ l- _5 B5 O1 u/ r7 H& I我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* h7 x5 M1 z) J0 S3 r7 T
# d% X! r$ ^' M( t6 k我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! b8 \, J. p' m
/ k8 j& q8 f$ V# B& }那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! x. g  T2 i0 B! {
这是AGV_putin中arrive的method。3 R% [+ @  S# I0 W( P5 y9 M

. z. q9 A, V6 d/ U+ a6 F当到达物料速度越高时,这个报警更多,
. w1 `( J& Y1 m% B0 a
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-8 03:24 , Processed in 0.018543 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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