设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9894|回复: 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'
5 n7 G% s9 |# S, X. Z8 ?*/; u# C; J. `& E6 x$ @7 H* V4 h
is
; h: k% _1 C+ h* ^- p) B; N        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 b$ _( Z8 e1 @& Z+ v7 gdo' j7 m! V$ t( H( P  W1 _* D$ Z! k# h/ I
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 r9 Q/ g( H( H1 M. |$ A- |        if current = @.Destination -- else return
+ W$ I7 Q2 N$ W3 ?4 S  ]9 y        then
; r& u1 J$ D: I, X; R                @.Destination := void;
& P4 K4 h" |8 Z7 u( \                if @.occupied then
# J& y# ?$ h# f; \                        part := @.cont;
# Z+ D8 d% y  P' d2 X) M                        @.transpOrder := void;; B8 M+ P+ q' J% u. i$ Q7 T3 U
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& _2 u% I  a/ N2 M3 q2 {
                                @,root.eventcontroller.simTime);
3 `8 J4 Z7 n0 s7 Q# Q; ~                        @.HasOrder := false;
' q- @9 v6 h- j$ m3 W/ }& f! V7 m- d                        @.DrivingHome := true;
" W; W1 C. _5 j! G7 w                        rgManager.tryToStartTransOrder;
. V5 T$ h- [& u5 o6 j+ E) d# K7 x                        if @.Destination = void" }2 ]. k7 U% Q$ G
                        then -- no transport order for vehicle @
5 L- F6 W& B* _0 p7 P5 O( b( W                                @.Destination :=( ]+ Z8 _5 o; P( V- C# d
                                rgManager.nearestFreeStation(@,track.~);$ f& }8 I# _; {2 X. b) F1 [
                                newDirection(@);   7 U2 u! N3 Y# ^4 ~- W" X
                                if @.Destination /= void then5 N& o5 g/ e/ `0 W
                                        @.Destination.NumReservation :=- s$ Y& q3 a2 j6 B( I4 q' J% e
                                        @.Destination.NumReservation + 1;8 ^  W. l; Y. S8 h5 S7 H
                                end;" H. Z: q) G/ w/ ~! P9 B& P
                                @.CurrIcon := "drivingHome";
& T! f( }* c. T                                @.DrivingHome := true;
! w1 @( U  s7 u! u                        end;8 }" S7 H2 T/ s2 v- p9 O
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" X& F; c7 K9 ?8 Z8 A, T
                        part := @.transpOrder;# w8 x- \: j# [4 B: r0 Y
                        part.move(@);-- load part
2 w# z5 ?1 S$ d4 p* ?                        @.CurrIcon := "load";
( |4 i! `' |# H; ~# o) d                        GlobalDistObj := part.globDestination;0 a  P2 K7 m# E' b4 v0 h
                        assignLObj := rgmanager.rgAssignL;
  U! k# r6 [( s( K- u0 Z5 |9 W                        row := assignLObj.getRowNo(GlobalDistObj);7 Q2 u+ ]6 @5 c5 N
                        if Row = -1 then -- since 70
( S+ _# s& c  u  t4 o2 Q! \. ^( g                                if lan=1 then5 p) p) F: o0 e1 x/ B5 K. B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 \+ o+ h" T6 B. Z0 ?+ J3 {. u                                                to_str("in der Andockstation: \"",?.~.name,"\""));' @/ c! J2 h# Z) d3 P
                                else
8 V6 m# F3 E) k& U: S+ F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," y9 O# h$ P! I9 Z( y& `$ V
                                                to_str("in docking station: \"",?.~.name,"\""));                               
: Q/ u$ z6 V- k% q- ?7 E9 a- g" [                                end;3 y' v# S* y8 Z. m/ k& D
                        else
2 ~+ s9 {  L, R" `4 L                                @.Destination := assignLObj[1,row];
2 ^$ _( O: j5 w- g1 }7 K                        end;                        ( H" k8 W% j2 C. z
                        newDirection(@);
8 V# f' S8 G4 z2 }3 h3 r6 Z1 E, r                        @.HasOrder := true;! v" ]+ j( ~. d
                end;) Q. f9 y) E% n2 q& |" s1 L
        end;
; D( ]# z2 Y9 r% u0 r' P& Y' |end;        -- of the method
. X# ~! _' T9 C, P% s6 b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( [. x0 e' c: k6 R" J# l- m$ N$ C4 S) S7 c
这是AGV_putin中arrive的method。: e( {' I, F7 u! U7 |

! m  O7 y; w% R) X4 n0 w1 N当到达物料速度越高时,这个报警更多,6 z+ p; [9 [, h1 R/ U( @+ H; \+ A
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 @. r4 u1 c5 }4 ^6 ?" c, \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 ~9 Z0 P* c( y1 ]4 \* M% u. G; L6 ]
  }; g, X8 F4 z5 s2 S7 t另外一个小建议,就是move,所有的move都可以这样% N4 n$ f- G$ R, T, Q/ L
if not move() then debug end: i% w. l1 k; |3 d7 m% b
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 }* Q& s7 o. i0 _. l, I3 W; Oplant simulation中的free libraries有AGV模板,
! Y" i  V4 I/ P1 v( ]9 D里面也有案例。& E% S4 f* e$ p' f7 I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* _- O8 O8 m* A, C  O. q: z& I4 @

6 L) |% ?- v5 s# X) u9 j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 U: ?% c7 q, J4 O
* H7 W. U' A+ f& u9 M
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) ]+ E7 r: Q) f- B! |; ~4 a( D
这是AGV_putin中arrive的method。
0 O9 P" n+ V  R! ^# d: ]. V6 K6 i. A* ?! U. z$ @: W1 |- V
当到达物料速度越高时,这个报警更多,

# _* c8 m2 y+ O7 i! G另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-1 04:26 , Processed in 0.022763 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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