设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8461|回复: 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'
3 H" r" o7 k4 q( J0 l3 \*/
; r5 x5 z; u5 b6 r' jis
4 S- ?# v1 C) k5 L5 `; k        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( t+ n' G3 w. U- l8 v. P
do
2 q/ j, S/ B; D* ~        Lan := rootfolder.Internal.Tools.AOLlanguage;
; p6 f' n- a: Z: R8 b        if current = @.Destination -- else return
4 R8 U( v* g- ]5 f2 U        then: O6 Z% ]$ u: u4 v# f( M' O
                @.Destination := void;+ F+ _; @( M/ c
                if @.occupied then. w8 o! r% t$ I  m6 r1 r
                        part := @.cont;9 F: A+ L! y" F, i/ \  K
                        @.transpOrder := void;
- G) d5 t% j; T9 ]  O5 z* e/ @* e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 R* o$ k7 t( w' q3 T                                @,root.eventcontroller.simTime);
: h9 p( r/ H6 C3 Y                        @.HasOrder := false;( A; I# d& @1 _# D" b, p0 J/ ~8 @
                        @.DrivingHome := true;2 [/ r4 Q% u# o8 ~
                        rgManager.tryToStartTransOrder;7 z: T. W: F& ?% b9 u1 d
                        if @.Destination = void' E' h6 p/ n( [) g$ R4 u
                        then -- no transport order for vehicle @6 Z) I' r( S+ s, k" F( B- X
                                @.Destination :=
- [- \% a! z" j6 Z3 L' ]                                rgManager.nearestFreeStation(@,track.~);1 y$ W8 X5 {5 ]- |, v
                                newDirection(@);   # d* I/ E( v5 L. u2 R
                                if @.Destination /= void then
# p( U; R; f3 q6 z/ u. ]                                        @.Destination.NumReservation :=
+ n9 L. K+ U+ i/ F                                        @.Destination.NumReservation + 1;+ u8 P! a9 a% g+ G2 W" ?5 _
                                end;
2 R$ ?) S" s  C; Q1 t* F. n% k3 Z                                @.CurrIcon := "drivingHome";$ G9 ?: f. |" Y2 g  i  T
                                @.DrivingHome := true;
( R7 h. I4 M' D! D& p                        end;. e8 N: k' s* y' {- s
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; V0 F/ n" o) y1 o0 \7 W3 G7 j& }
                        part := @.transpOrder;
" P5 l" i( H  t                        part.move(@);-- load part
& r# Q- t5 w' @  P/ S2 w' o( E                        @.CurrIcon := "load";& {+ l+ x: a4 f3 _1 _7 O; S  ?" x4 t
                        GlobalDistObj := part.globDestination;8 M% H% {7 Q7 T7 N2 |8 ^: Q* }2 v3 Z
                        assignLObj := rgmanager.rgAssignL;6 ^" A* V" J% e6 F; G4 L& R$ X
                        row := assignLObj.getRowNo(GlobalDistObj);0 a) L1 S* b" ?
                        if Row = -1 then -- since 70
. f( C3 [. n* Y0 G. K1 n                                if lan=1 then
' F! [& C/ o9 ?# t; t6 j5 ?2 f2 Z" I                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# v3 \% D! u, o) o                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- ?) E1 e3 |* i" v3 c; _( v                                else: K$ r6 F, R. W9 u
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 o6 C% ^: [( B1 l' ?# n                                                to_str("in docking station: \"",?.~.name,"\""));                               
. H# t; V/ G0 h. W. @                                end;- j, b( k/ C+ S, |
                        else
1 b5 l1 K( J4 t* @* @! e2 e6 q! H: r                                @.Destination := assignLObj[1,row];2 ?. u$ F2 }+ g! R4 [& M- l# j
                        end;                       
" b- W% H( Y' a5 k; a( ?                        newDirection(@);' i* \: s! r9 {
                        @.HasOrder := true;6 i, x6 T8 U" X6 H
                end;
4 c% k, \" F( f! y" _        end;
! {& O  G$ o$ y3 ~" V  o/ s) u9 aend;        -- of the method
: M: ^& ?" g+ l+ m1 G1 |9 C" Q) \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & k! \. B0 h) b- ?

& T7 l' r* |+ t2 W5 L这是AGV_putin中arrive的method。" s5 |: o+ W" o0 l5 R% ^

9 X$ z0 d' W; Z1 k# b当到达物料速度越高时,这个报警更多,
2 T/ U" R0 D0 I; u  S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 j  X( L" P3 X
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& R, n9 u5 b5 o  Q/ E1 Q8 ]1 m1 \; l0 M- j" @. T$ K
另外一个小建议,就是move,所有的move都可以这样
/ U- ^6 r4 q, g' X. f  `; g% Mif not move() then debug end
6 W: }  T0 A" g/ g1 @0 z! v这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 }1 l$ \% a, @( q1 N3 Cplant simulation中的free libraries有AGV模板,
+ U' h  H+ n) H% u# U里面也有案例。% R5 t5 w2 Z6 A3 B2 K
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ E2 W  K) n/ [; C
% a; x. ~4 |- L" ?' O' C2 q我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' a. [8 l/ }3 n

" o7 o+ n% v  t# ?+ \' L3 T' ?! d那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . s7 _- K, p5 y* q9 x! f( o2 A- ?
这是AGV_putin中arrive的method。
6 r5 E4 ~6 ~: i# [: T' B: _$ h/ V1 d8 l  _6 ?5 l- [
当到达物料速度越高时,这个报警更多,
* I6 l2 L4 Q+ w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-5 11:39 , Processed in 0.021686 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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