设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6995|回复: 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'' L: |1 d2 |7 q
*/
  \  t  D5 x' Vis
( u6 C' I% e/ u5 Q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ ]9 O4 o# |4 f
do
2 X, V* J! A9 z0 X% s6 F        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ q' Z' i( N: T( W- r& W+ g5 }, M& q        if current = @.Destination -- else return
2 t+ X% Y" P0 }) @; H4 F        then( \% q$ s. D; ~) U' k7 \" N* w& f; R
                @.Destination := void;/ ^  U4 I" A/ G/ U
                if @.occupied then% V6 t/ E" b/ S" ^6 c
                        part := @.cont;  B- b/ ~6 [4 }6 |! K" Q: r9 V2 [
                        @.transpOrder := void;( [) z4 q5 O& C0 ^, X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* w; a3 `; x' z8 ^' H% b5 C                                @,root.eventcontroller.simTime);$ E  J- F3 j( H" d0 q% ]
                        @.HasOrder := false;9 ]+ D6 M% s: b- v
                        @.DrivingHome := true;
# O7 c9 r" H4 K" E& F$ Y                        rgManager.tryToStartTransOrder;
: f3 r% c/ T; p; t                        if @.Destination = void
- B* ~- V# a+ Y* B                        then -- no transport order for vehicle @
- N4 {" C  Z0 s7 s' J# [4 q( R                                @.Destination :=  T3 v: ~* ~9 M
                                rgManager.nearestFreeStation(@,track.~);
* }0 ?' i* W1 {' C, G% S" h                                newDirection(@);   3 P4 a0 j- H6 t& G
                                if @.Destination /= void then7 b  c$ `0 K/ A
                                        @.Destination.NumReservation :=
- t4 ^5 _+ b9 |* U0 c2 ?                                        @.Destination.NumReservation + 1;1 t: O: B( s2 a
                                end;/ Q% C! J7 ?2 C3 ~) M
                                @.CurrIcon := "drivingHome";/ _2 ]+ H" b; [  B# C, p4 |
                                @.DrivingHome := true;' Z% [( @7 a7 X4 @. S$ r; @/ }
                        end;2 h, i6 W4 h) Z0 W& N8 b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- c( p8 D4 ^2 V3 O0 h- T+ A                        part := @.transpOrder;
6 Q& }9 r+ I$ Z, K) ?0 k" V5 ^2 b" g                        part.move(@);-- load part
/ `4 J# S* W+ q% B; i) r                        @.CurrIcon := "load";4 L3 u1 S. b4 b
                        GlobalDistObj := part.globDestination;& |! ?* e: T* J
                        assignLObj := rgmanager.rgAssignL;
, J' w# h: i3 a                        row := assignLObj.getRowNo(GlobalDistObj);
( o/ L+ {8 T! w7 b7 P8 Y; {                        if Row = -1 then -- since 70
0 k' {! L& H* y0 c$ Z, l                                if lan=1 then
0 |" g3 u9 B. r) N( |1 }& ~9 H                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! T! m% W, [( O+ I! [9 ~" H                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; K% s% V4 S) O' J" R. Q4 y$ D                                else+ N3 [! H* d9 I2 j4 n
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," b+ H9 A7 a% j1 o2 R4 \
                                                to_str("in docking station: \"",?.~.name,"\""));                                , j( S* Y& t' G) [
                                end;
9 d* w7 i" N) [3 f( f                        else
; V3 Q, b3 o1 @( n, h                                @.Destination := assignLObj[1,row];
' \, o2 i' L( z; \: u                        end;                        9 [3 w( u0 c$ @; c4 a9 J: j& i" r8 X
                        newDirection(@);) D/ t$ R: U7 b- ~7 ]
                        @.HasOrder := true;2 |' b: u" j! L
                end;( ^+ l8 l0 I. l* @  M' N
        end;
- ~! s+ B* ~+ Xend;        -- of the method7 v* b, L# H+ R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ C7 T% W$ j% f- v: E0 Y; L- N% y) |( G$ k  E9 n$ H/ B9 F
这是AGV_putin中arrive的method。" a: q+ u% i5 A
) k4 a* k0 Y' e3 k, s
当到达物料速度越高时,这个报警更多,
- h. j0 a3 j  Z# ?% U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 r: t) [$ [/ C0 V+ U$ C/ M
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  k5 |4 E0 e  T
( z* _' M: g, d另外一个小建议,就是move,所有的move都可以这样
& }& \. \+ f* Y/ y: L6 fif not move() then debug end
( Y  ?9 E1 e5 j: L" a4 ]这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" x4 F7 H- p3 i
plant simulation中的free libraries有AGV模板,7 b$ K* \, J8 [8 s
里面也有案例。% j9 v1 v7 N8 l+ j; _0 O
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. v* M8 }# H+ U: X% o  p
* b  ]! ^3 l; K1 y  e6 L8 D8 w6 N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 A1 b+ l! N$ ^9 p# P3 ?4 w- Y
2 c/ N: K4 x3 |/ T+ Z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ J' g( @2 M3 S+ `. X这是AGV_putin中arrive的method。
4 E" p2 N6 ~7 q; O
8 q( S3 Y& }) a( R2 F. b9 B& I; ]当到达物料速度越高时,这个报警更多,
" u& j) _; f2 f
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-10 05:03 , Processed in 0.019476 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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