设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6320|回复: 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'
- Q6 ]; N& n2 }# V. G/ n*/3 ~+ c! z7 n& o$ J% W
is( N: c7 `: u" `9 {5 _8 z) W2 L
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 T$ ]+ W6 ?  f* w; Q4 z7 s* {1 G! Odo! Z- v/ R4 R. B# S7 L$ o
        Lan := rootfolder.Internal.Tools.AOLlanguage;
, x5 _: o+ F' N7 |6 m9 y' ~        if current = @.Destination -- else return
6 n) F' Y5 {  N# d" P+ U0 I        then5 t" y4 q) z( ?( H( J3 P# |/ G
                @.Destination := void;
) r% D; b2 j  t$ t8 ~# y8 _# Q) j) m4 a                if @.occupied then
. ?4 e* v0 ~- x                        part := @.cont;
+ B4 W+ `" T# {: z4 q                        @.transpOrder := void;' A$ f3 @9 L/ G" N5 D" i) n7 G& ?
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" {* X7 Y9 W6 _, d4 W6 w: m- l                                @,root.eventcontroller.simTime);
* w8 t8 P- j, T                        @.HasOrder := false;/ C$ C- V4 U& ~& E5 f+ ]: U  U
                        @.DrivingHome := true;$ {' h$ Z6 C$ Y2 H
                        rgManager.tryToStartTransOrder;
2 d  c) j% V1 d5 ^                        if @.Destination = void
7 F" {6 M0 k" }0 t6 z% [                        then -- no transport order for vehicle @
! m2 F$ P/ M* @$ f* V) K                                @.Destination :=/ t1 `& V3 G7 p& u
                                rgManager.nearestFreeStation(@,track.~);+ {& n  I8 A) |# U
                                newDirection(@);   
3 C- w9 [8 f, x. ~' _: M0 }' v                                if @.Destination /= void then
) T5 W* Z! Z% V2 o                                        @.Destination.NumReservation :=
- Z" G4 K# R) D                                        @.Destination.NumReservation + 1;
. S' g+ V% \4 ^1 I                                end;
, L# D' r- @: {8 Q; j2 ?                                @.CurrIcon := "drivingHome";/ D% z; H! m; B3 K
                                @.DrivingHome := true;
3 B: f( P' P: Q+ n# V; ?6 b. L                        end;: E. s$ C: ?" p) q1 j: L) l8 e
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% m& Q# m2 Z7 w0 T                        part := @.transpOrder;# T0 F+ q# o; S# k! |+ B
                        part.move(@);-- load part
8 _: h  d8 `; A5 O  Q9 k/ n                        @.CurrIcon := "load";
  ^) W. X- ]  r9 l0 p. }                        GlobalDistObj := part.globDestination;0 S) \. {* x2 m; |) {
                        assignLObj := rgmanager.rgAssignL;; o3 e1 S! l) U3 S
                        row := assignLObj.getRowNo(GlobalDistObj);9 h( ^2 @: C$ j" v! Z& p/ n2 t' V* x
                        if Row = -1 then -- since 70. h# j, R. N! O; i# q
                                if lan=1 then6 Z3 d) t. G/ h9 e  p; ?
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 j" m6 D" _9 Z4 z, i+ y8 D6 L
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# c+ u- b7 \- j& M/ Q                                else
" B* h1 x- w# C( O2 ]$ r! ^* m                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! y& b7 K) X1 H0 R) y( f                                                to_str("in docking station: \"",?.~.name,"\""));                               
; _) a! L3 z2 d6 j9 }                                end;: D; o6 f) y9 n; I  Q6 A, }2 Y) T
                        else4 H. c9 j; i8 x) H6 q
                                @.Destination := assignLObj[1,row];$ F; d4 `9 [' B0 b0 B
                        end;                       
/ o. f8 t3 y; |                        newDirection(@);! e$ H: U, h1 f5 n
                        @.HasOrder := true;
8 p- D* a- _, V' z- J                end;
/ e+ m% D# G& |        end;
5 j" r/ @2 Y- }/ ^* f, Zend;        -- of the method  J1 L2 @$ K; F7 |# n& U1 |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 Y( d4 n  r; m2 ]% i0 D+ Y  d: g% e6 A: L7 Q3 C
这是AGV_putin中arrive的method。- q( c2 ~& t3 s: U4 F' V

6 k  G+ O* D5 U3 {. _  C0 c$ f% D当到达物料速度越高时,这个报警更多,* e$ M# J( u$ C5 A4 U  u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ y! p4 ~1 J3 c
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# ~6 [4 {: c7 U% [0 c9 b4 ]2 A4 b! ?5 w9 y
另外一个小建议,就是move,所有的move都可以这样
; J4 D- b' O" A( u& X4 h2 i: ?' nif not move() then debug end
# o# U6 ^: s. h* j这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 T8 |. A! f' X( s0 W
plant simulation中的free libraries有AGV模板,
/ V6 J6 x1 |0 Z+ g' @8 ?里面也有案例。. d. ^% ^* J" e. R& @! D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ ?; h5 c2 v, |! c6 C0 `9 o$ q4 i* V- t: J5 S, j: @  q9 p
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 S! y& w, |' Z8 R. A2 w3 ?0 s
2 e+ m! _1 P; b4 U4 y8 }+ g7 F那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% g, M) A& y. ^8 a  M( k& s4 ?2 \这是AGV_putin中arrive的method。
3 ~& Y  X2 z; y7 Q% _+ C0 f  c3 ~+ o2 @+ h1 c# m( c
当到达物料速度越高时,这个报警更多,

" \" t9 ]7 ^! p另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-30 20:03 , Processed in 0.019810 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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