设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9394|回复: 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 ?- E9 n) M$ m, ]8 I
*/' D! ^, e% c$ j5 Y
is0 a/ S0 g# |% m+ ~- m
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 |4 C1 {6 {' ^) ?7 \' Qdo) f- h7 K! O- M4 E
        Lan := rootfolder.Internal.Tools.AOLlanguage;# b1 ~& J* p: ~& `$ }
        if current = @.Destination -- else return
% O' N  y; e4 o* L" L! _$ V9 m        then
" Z/ n4 L+ q7 e+ w0 z6 l7 n* _                @.Destination := void;; L- J# g. q3 `: r+ I" g
                if @.occupied then! P7 U0 y7 {; w9 \# _: ~
                        part := @.cont;) G) \& x' s5 \( T
                        @.transpOrder := void;1 x7 }6 ?; K2 b& }9 M& F& S8 `6 _
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,( \3 a7 _2 G$ B
                                @,root.eventcontroller.simTime);
8 Y! H1 F  J" m7 R                        @.HasOrder := false;
: h* l# w2 u  p7 V: T9 [- Z                        @.DrivingHome := true;
+ ^9 I) @' }2 ^" h5 @3 E9 |                        rgManager.tryToStartTransOrder;3 [" t7 I2 F# R+ ]2 Y
                        if @.Destination = void! S' @3 V4 M# j* p
                        then -- no transport order for vehicle @
  F) V- Q; x2 g/ V; D7 t( l" w' E; X                                @.Destination :=
* t4 Z" T: ]  ?2 _* Y                                rgManager.nearestFreeStation(@,track.~);+ _- {$ u0 C, c
                                newDirection(@);   ' ]  c( R8 Y9 s* {" H
                                if @.Destination /= void then
/ Q4 e, N; G; z( T4 L& M6 o                                        @.Destination.NumReservation :=0 B* Z5 o; y# `+ L" F
                                        @.Destination.NumReservation + 1;
) z3 p% ~: _2 _                                end;
( X9 E" C$ d8 n- K# l# V  T9 f( V                                @.CurrIcon := "drivingHome";9 A6 X7 k6 ]! ^/ m
                                @.DrivingHome := true;
2 o# }+ m' Q3 L! ?* e7 R- F                        end;
- s: k) I% w7 c- p6 j" C                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: F$ |1 E, f. G* E- h. l
                        part := @.transpOrder;
* `5 t) E5 Z  u/ |- d4 p# v                        part.move(@);-- load part0 r. _( _; ]  l$ C, F" A7 b
                        @.CurrIcon := "load";
9 |" h: ]( e$ H4 k9 [                        GlobalDistObj := part.globDestination;
3 z$ ]& A; E2 O9 ^1 C                        assignLObj := rgmanager.rgAssignL;6 |6 P& X  q$ R2 ?+ u8 }! o, k
                        row := assignLObj.getRowNo(GlobalDistObj);
9 o$ G4 m5 J+ Q3 Q3 x) p% H                        if Row = -1 then -- since 70. ^( L' q' X6 h. K5 f) X
                                if lan=1 then
& [% l) H1 U5 e% V5 Y) r& u                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! c" ~; w/ L" @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));* k0 b' Y) B! i* g$ B5 ?
                                else
, b; N4 v% H! ^. y0 Q* g                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 Q) x' x& p! D8 k( t& O" c% a& V                                                to_str("in docking station: \"",?.~.name,"\""));                                6 j) a+ U  h8 O- d/ k7 h
                                end;
+ H0 x" u0 M0 O) \; j0 r! G$ F                        else4 ^7 v5 Y3 i* x) K5 a4 c' E/ D
                                @.Destination := assignLObj[1,row];
& {( C( F! s0 y# n8 f  ^! N                        end;                       
: F" a$ {# @& W: A: ?2 ?                        newDirection(@);! k1 a2 s1 `4 e7 u  f
                        @.HasOrder := true;1 J$ h" K' Y- O% l8 B: M
                end;
7 A9 u! A) ]2 W1 r9 Q& b/ p        end;
$ @& L& v8 b& x6 Lend;        -- of the method
" V: W  Q# q$ {& t% i* I$ D! Q  g6 W: T5 u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 I, u! o! R8 J$ y( V! }* z- ~! V- Z3 t
这是AGV_putin中arrive的method。1 ~6 N7 g2 U: T2 z) u

- O  c: j: u4 r' U+ b当到达物料速度越高时,这个报警更多,( h, q* c6 ~# S# E" D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 s6 g, @6 M; M# h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ U9 Q9 @# R5 i7 I  t. K  o! K/ D9 @! c8 g. E6 z: |+ [: b1 J
另外一个小建议,就是move,所有的move都可以这样
& @9 ]5 k5 D# i- c* d1 O; Y; Yif not move() then debug end
* K6 j! o2 M& d# m* ^8 B6 f这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- P8 K) s0 H$ T; a& nplant simulation中的free libraries有AGV模板,
5 Y1 V( O6 m9 j- z" s里面也有案例。
4 L# \! @9 a9 F4 ]我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 V! O; \: `( Z# D

- a1 W; g# X$ c我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) y) t* I. k+ ~3 q2 H1 a

+ u# ~, v+ A) r/ l0 m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 1 F# V% L+ t$ j( }, W
这是AGV_putin中arrive的method。
6 U6 i% e2 `) s) _3 t$ _2 V: g" P% j4 f8 U  L) i" T4 ?7 Z$ X6 ^0 x; A
当到达物料速度越高时,这个报警更多,

3 }; \% ]: n8 a3 B4 h另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-30 02:06 , Processed in 0.016308 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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