设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8420|回复: 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'( C4 M  c: O0 I' H
*/" K& K  L) Y1 w, m0 Q+ I$ @, e
is. ?% b& b7 z5 K. Y& o4 K
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* K# m" F( G8 }# ?3 H3 o
do$ L+ K4 z5 u$ Q  t1 j9 e( f
        Lan := rootfolder.Internal.Tools.AOLlanguage;7 k9 L" s) e8 D2 b
        if current = @.Destination -- else return$ W( R/ }- e! u2 t
        then
' {2 O, Y8 A0 ?& G: p# R                @.Destination := void;6 _2 Z" W( y4 j1 H+ L5 ~
                if @.occupied then) w( W& q" Y: E+ l4 p% o
                        part := @.cont;4 D9 R" M; L! L0 D, n
                        @.transpOrder := void;
7 g2 k# q* `3 R/ t3 E! T- y% t                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 t' u5 \9 g+ D' V% y" t4 \                                @,root.eventcontroller.simTime);8 g( Y6 K4 P5 G8 m) L
                        @.HasOrder := false;3 I. b" t  \4 P% }3 S& z
                        @.DrivingHome := true;
! M8 ]! U+ p) }" R% A. j                        rgManager.tryToStartTransOrder;! S3 a% G' N8 t) n3 }$ U$ _
                        if @.Destination = void
# b3 F6 N/ y$ f( h2 X8 L* G1 }' e                        then -- no transport order for vehicle @
8 e' Y4 l" ^9 ?6 Q# w6 y                                @.Destination :=
& e  X5 `$ ?  D. B                                rgManager.nearestFreeStation(@,track.~);
1 f( k: t' [; E/ U                                newDirection(@);   
1 e' m* k2 ~/ |8 k9 R, l                                if @.Destination /= void then
5 e3 s/ X' V2 F3 a                                        @.Destination.NumReservation :=3 L" t0 ?$ F8 B' |
                                        @.Destination.NumReservation + 1;* a; u% Q8 s- y; d3 `9 |! e
                                end;
" v( g# W+ k' B+ e% o                                @.CurrIcon := "drivingHome";1 {$ K3 q2 v" P+ q4 u9 R; e% ^/ ]
                                @.DrivingHome := true;, B* \! D/ ^9 a- X2 q- A% S6 y
                        end;* y; G5 g! ^* {# J" d( C" y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" k( _8 c$ g. ]( j; Z, z
                        part := @.transpOrder;
  j: b+ [* ^9 J" L# G                        part.move(@);-- load part" p  J7 [# Z+ l& `) c2 w5 x# t1 E
                        @.CurrIcon := "load";7 e: ?+ B- R8 a
                        GlobalDistObj := part.globDestination;
$ b. \4 A' A9 k                        assignLObj := rgmanager.rgAssignL;' D& B, G5 O  T$ ]
                        row := assignLObj.getRowNo(GlobalDistObj);
+ M# z( S1 B. j( \3 o" {0 _& `! A$ C                        if Row = -1 then -- since 70# o5 o/ k  {8 e, o
                                if lan=1 then
3 [, ]9 t! Z) A2 z2 f4 K  N                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( \# r& O8 A  @4 V/ j- b
                                                to_str("in der Andockstation: \"",?.~.name,"\""));. x8 T9 ?, B8 e( ?1 G
                                else
4 c4 K- ~+ X& Z8 C" k; T3 Y                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; f: p' {- q- b
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& j: u  L- |  P                                end;% C7 _9 N) ]2 e  j
                        else5 S- @+ X- X$ q1 w. q
                                @.Destination := assignLObj[1,row];
6 |4 T4 f. b' i6 p/ d                        end;                       
9 {+ L5 G3 O0 I+ u+ _$ N# x7 a. g0 u                        newDirection(@);7 g& j/ H% _7 ]0 Q. B
                        @.HasOrder := true;
$ a2 g3 F* }# k) k6 g" b+ I9 @                end;
" ~4 u0 i  M+ s! A2 p% g' ?        end;
1 X  e& C, t! oend;        -- of the method
# W2 E5 \2 j5 c8 d, ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( N! h) L. _" N/ b/ j/ U6 t1 |! ?0 c4 Z9 }1 i/ H- {% L
这是AGV_putin中arrive的method。# i6 U- F* K4 K8 A
( v$ B( y% a6 a: a
当到达物料速度越高时,这个报警更多,1 _  L# B/ i" N8 `4 l& P5 _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: R1 S0 f8 q1 W8 B8 Z3 _' X& t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% r! k$ t0 N, J9 i) M, g
: c. I6 q& M6 o/ U另外一个小建议,就是move,所有的move都可以这样
  d) }" f( v/ ]/ {: j3 Tif not move() then debug end' r! Z$ P  A/ S2 ^. A" s3 Q0 o0 S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% a0 S. i, h2 u  H4 n; Z
plant simulation中的free libraries有AGV模板,
. V$ j/ l1 {/ {( }. T& d里面也有案例。, X. k* }' Z1 v1 W+ y
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& [# G& Z4 g5 P! ^: A6 i( Y- I6 d; I, ~3 R4 h% ~
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & A" I# e* l6 `
; F/ _# S, T6 D+ s1 E
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! z9 B9 f0 R3 z! P0 e
这是AGV_putin中arrive的method。
& B# k$ a7 }' g6 d' e5 N/ @  w! ]1 g. e5 x! A# Z( P9 o
当到达物料速度越高时,这个报警更多,

, n& Y* P' i; R# S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-2 18:21 , Processed in 0.017060 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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