设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7336|回复: 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'
- K1 y! J5 C9 v7 e% v' C*/
: s% `& u2 v* y0 w# qis4 `0 b- m5 T% e9 Y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
$ x; i* N- S. f% I8 X& x  G8 |do. f' N; d# Y2 {/ a# H- q) C$ F
        Lan := rootfolder.Internal.Tools.AOLlanguage;) d! X0 i- p6 R4 j# v" N' v
        if current = @.Destination -- else return4 U( i9 D8 K( q& v1 m
        then& B: A3 S3 q* @
                @.Destination := void;
! v. d5 v+ p, L! p" _                if @.occupied then1 W5 L! w9 ~& u& w& V) v8 `/ Q9 }
                        part := @.cont;; Z- X& q: s, X8 a& \, h3 e
                        @.transpOrder := void;
% S! E$ \$ D; ~9 m2 g- P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' }" ?& i  `: ~& |5 j1 x                                @,root.eventcontroller.simTime);! K8 T  Y( @, p3 g9 k7 e$ f/ C
                        @.HasOrder := false;
: S4 E% S' R1 S, @% I) V4 V                        @.DrivingHome := true;
4 k( h: \/ n4 X5 }7 {$ q$ B2 A                        rgManager.tryToStartTransOrder;! P& D6 Q3 d% ?7 }4 A1 C/ \- y! Z
                        if @.Destination = void5 r1 ?$ s: [& a5 D
                        then -- no transport order for vehicle @. Y9 }  {8 v$ _' f
                                @.Destination :=( W6 Y  q) N( |4 X( F: t1 V
                                rgManager.nearestFreeStation(@,track.~);$ y% H( t1 ]8 E1 a$ W7 Y- I
                                newDirection(@);   
, K" W6 f- G: \& S                                if @.Destination /= void then
* B2 E* J; }8 r0 a                                        @.Destination.NumReservation :=
: b" q0 K- b- m7 V5 l+ b" L! a                                        @.Destination.NumReservation + 1;! h9 X3 G5 P0 b% R
                                end;
) R: X* J" a+ \; N                                @.CurrIcon := "drivingHome";. u0 Y5 ]5 ^/ Q8 M0 @$ a
                                @.DrivingHome := true;
$ [- D4 h3 d/ g8 `                        end;' h9 c* w! b2 p3 u5 D
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* j9 I# @1 B3 H1 N                        part := @.transpOrder;
5 H$ q! ~  A/ U- X3 }( Q+ y                        part.move(@);-- load part  M( W- u$ W" g+ m' s& S4 Q
                        @.CurrIcon := "load";9 V$ ]* {, T' i' h/ p
                        GlobalDistObj := part.globDestination;- b' U% }9 x6 K) j4 F( C0 g
                        assignLObj := rgmanager.rgAssignL;
6 {5 A7 T7 A2 B% u6 `8 B                        row := assignLObj.getRowNo(GlobalDistObj);7 `) S+ ^* `8 ~
                        if Row = -1 then -- since 70
( K# s2 d. k+ |( t4 ^8 N                                if lan=1 then
! N3 U5 o# ~( W                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 K; \2 z$ a# r  @: Y& q                                                to_str("in der Andockstation: \"",?.~.name,"\""));; R7 q. g2 i1 _4 p- R8 N3 j: X
                                else  L! L+ b8 X3 T( p
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* w7 M4 I! }+ n8 V4 t
                                                to_str("in docking station: \"",?.~.name,"\""));                                4 ]: K& @4 i! j' l2 _% z
                                end;  z  f  k  J9 G$ b1 f2 K
                        else, E. ^+ H, P0 @& l  v! ^% h
                                @.Destination := assignLObj[1,row];
7 f4 @8 Z6 W3 ?* d3 t# \                        end;                        4 D; S$ s6 U5 U1 D6 z' \
                        newDirection(@);
6 C1 [/ Q! g0 \                        @.HasOrder := true;0 B$ d9 t0 k9 M+ F- l0 ]5 Q
                end;
, U- \$ O, A( F+ z/ l# G        end;$ t8 ^1 p& ^0 D( Z+ V* O) s
end;        -- of the method5 E$ A5 H4 W, ]3 f8 Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 K7 p1 I  y, c' }2 C" @3 X  a
' Q3 F/ B# f$ _/ F" N这是AGV_putin中arrive的method。
/ y) ~% `1 |* h" @/ X/ P& Z- d+ e5 b( S1 u! s' ]
当到达物料速度越高时,这个报警更多,
- E" A& p( {# Z6 X9 t: _3 N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: X6 K0 g# @! Y; Q: ?; h8 R  f/ {
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 Y4 s4 J' m1 R  c0 k. Q8 t

( |0 K# P$ V/ B! B另外一个小建议,就是move,所有的move都可以这样
! m" j1 q8 M/ o% w0 ?" _7 n- Oif not move() then debug end
+ Y; c  i4 x  V+ S0 x0 l# G) q& ?这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) @4 W" F7 S3 M4 A7 B
plant simulation中的free libraries有AGV模板,
: _+ L# E6 h$ J里面也有案例。9 L$ |6 }1 j& a( b$ B* `' W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  l& F0 _% l' ^5 N! h$ [

* ?% x. G/ b( V: G( J8 F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 s/ Y7 y- J+ U/ W3 m* j/ |/ o  n3 |

$ R0 V, u* M" `6 k2 F/ r  c- Z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / q$ p" v3 c* J6 X
这是AGV_putin中arrive的method。+ k# W! z+ @6 K& z" e

) v. n, }3 Q  o6 i3 W" F当到达物料速度越高时,这个报警更多,

8 \* K4 R0 u" l6 H& j' N% v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-4 20:26 , Processed in 0.018605 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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