设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7277|回复: 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'" Y6 C5 C5 P# q
*/6 Y/ o3 h/ b+ a
is
9 ?8 r9 ]( H, g4 s( f' b( x& r        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 h; j! M- A* |/ s
do
: `9 |- |; K) Q3 ^! g        Lan := rootfolder.Internal.Tools.AOLlanguage;# J- E, w/ d4 {. Q# f7 K
        if current = @.Destination -- else return
1 j! c* e( |6 k' |7 U* b1 B7 }        then
1 d9 Q1 e0 P1 b! S1 {. O                @.Destination := void;5 y* F$ _4 Y- Z( r
                if @.occupied then' y5 T/ {- b# X5 {% I
                        part := @.cont;( p- R$ B6 @% A- P: }, h8 B
                        @.transpOrder := void;6 `( s  J; F2 W5 {1 e# U  G
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, T1 K6 H+ R' f. q. w                                @,root.eventcontroller.simTime);
* |2 s2 h' r  a5 F9 l! ^# f2 D. a                        @.HasOrder := false;
5 m5 U; U  i( S                        @.DrivingHome := true;
: i1 V5 P- ^! U8 z- I                        rgManager.tryToStartTransOrder;- F. \' d" H3 L; |& t% U
                        if @.Destination = void
9 N% T( g# _. S                        then -- no transport order for vehicle @
: `* N( ~/ P$ [: ^+ s                                @.Destination :=6 [1 s7 X5 d: h1 u$ V
                                rgManager.nearestFreeStation(@,track.~);
5 ?$ w" G: t/ y9 W                                newDirection(@);   
; Y5 O0 s1 J' ?5 i  j                                if @.Destination /= void then
5 M' W: `, ]. l7 h1 m# B/ b                                        @.Destination.NumReservation :=8 W( i3 G5 [5 ?
                                        @.Destination.NumReservation + 1;  m/ _& V2 W' J: [) t
                                end;1 K6 @, W# x; e( T4 `1 p" I
                                @.CurrIcon := "drivingHome";
2 K# p) o3 N1 m6 A' \- k( U& ~                                @.DrivingHome := true;
! M: E5 U5 I  l0 s3 j. Y                        end;" f5 y/ p8 z. d# n
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 ?& z8 ^; k1 v- V( K  Q0 i1 ^/ R
                        part := @.transpOrder;
# y6 Y# G2 g1 p4 a. [% H                        part.move(@);-- load part
4 O1 V, u# d& v! ^! t" M( k                        @.CurrIcon := "load";4 J3 }6 x; g3 T8 x: {: o: Y/ e
                        GlobalDistObj := part.globDestination;$ N1 t7 q2 _  A0 c+ ^0 r. L
                        assignLObj := rgmanager.rgAssignL;
; X6 t$ [! ?  u3 D* u                        row := assignLObj.getRowNo(GlobalDistObj);2 t  k9 T* ?( u3 l( G
                        if Row = -1 then -- since 70
; e: U' [1 u4 S- K  {                                if lan=1 then8 {# J& q4 I4 t; {$ Q" T
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- O, z* O1 H: i5 k$ [: G$ p
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 c2 P' i2 P1 M+ V. L
                                else
6 d7 ^) Z$ [* C3 Y) }4 }                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ d6 Z5 R! L; w8 K3 x
                                                to_str("in docking station: \"",?.~.name,"\""));                                5 d3 B! G( ?! D8 ?# n
                                end;$ b4 v  ^; C, y$ m
                        else2 \6 `3 {9 G8 Y4 x( Z9 m* |! V) ]6 G
                                @.Destination := assignLObj[1,row];7 I6 T+ h% a$ l$ W8 [7 n
                        end;                          r: {; f$ ^4 q! S1 H, M: @
                        newDirection(@);
  i. |/ z, U7 h6 \: M: f                        @.HasOrder := true;
( K  X4 O" T5 K4 d                end;. V3 ~% ~; w! Q9 M, d, f
        end;
/ o5 `+ G( v+ u& t/ ~% Aend;        -- of the method
( }* T3 O4 J' A: i$ v6 N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( |( D  r+ R9 ^- S

; o5 ]0 |& W* R2 h9 D. o! O+ i! J这是AGV_putin中arrive的method。
2 A& k3 p) o7 H5 J8 o7 r
% F5 k' l: v6 }% [当到达物料速度越高时,这个报警更多,/ U3 u7 j9 P  [+ R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ t/ h# }# D9 i% v  F# S
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 N' y& r# X/ [8 w0 \5 F& Y0 j
8 e" f3 A$ @: M* ^另外一个小建议,就是move,所有的move都可以这样4 E$ s& l! X# o  |2 J) q! y5 K
if not move() then debug end; `7 r  V- ~6 Y0 |3 Z2 X2 E: |+ ]
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 U4 K. ?5 v, _3 O5 Z9 y- U# ^
plant simulation中的free libraries有AGV模板,- Y) t3 T4 F: Q& f
里面也有案例。
( ^0 O" g. i. v$ ?  C& d我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 d+ ]' r+ G0 P* t8 a5 m: n2 F% l' o2 N' x: U6 i
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & X0 h- e# y8 H" Z# k  [; D, E

* f( I6 k% Z$ T+ ]4 a8 `5 H! c' r那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " r$ c' {0 p  O6 X5 ?. C
这是AGV_putin中arrive的method。
6 _4 B) u/ _* r5 ?3 ]4 x; U4 C8 n$ t
当到达物料速度越高时,这个报警更多,

8 _6 O+ L( O: L) \% i& S* T另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-1 11:34 , Processed in 0.021609 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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