设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9540|回复: 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'# b7 D- R+ @* I" k
*/6 p* y/ H& t/ |1 D$ A
is6 b) L- b0 G; }6 {7 M' C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, B$ i: s, W! n$ b, ~* [
do/ l( L7 G! E8 b% |  I
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) ~$ b. U  u# m; U- }; u" q        if current = @.Destination -- else return
0 Y) T8 y- i& d  y) Q/ h1 i        then
. n. s; i  y- H$ u                @.Destination := void;
9 {9 _9 X' |2 L# A                if @.occupied then- u5 u8 F2 H8 d3 {
                        part := @.cont;9 E4 a) m6 k/ R1 S8 ?" h; S  R
                        @.transpOrder := void;' I4 W9 k. U, r* U: g, G" s2 m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* }+ K7 m2 L( Q: t. n1 o% b! k
                                @,root.eventcontroller.simTime);! M) T6 i& Q  S+ l  D, T
                        @.HasOrder := false;
9 |0 u4 P8 z% ^. M9 ^                        @.DrivingHome := true;# v1 N* o( h; M
                        rgManager.tryToStartTransOrder;' I, }; a7 n8 T& T# M' |
                        if @.Destination = void% ?! \- d8 |0 ]5 R. N
                        then -- no transport order for vehicle @6 J8 ]. R6 H1 V
                                @.Destination :=* K0 f& |# l& h
                                rgManager.nearestFreeStation(@,track.~);
1 s* S' N1 f" e$ P% |                                newDirection(@);   * l0 F1 A, O! x& t1 B
                                if @.Destination /= void then
3 M0 u0 j; ]. w7 r2 d, v                                        @.Destination.NumReservation :=( B& Z$ E0 h# l" {
                                        @.Destination.NumReservation + 1;
' m7 e. t3 P2 C' y/ K0 p                                end;% l$ _+ A" c  \$ B! b& c2 Z
                                @.CurrIcon := "drivingHome";% e# k9 ~  _  T
                                @.DrivingHome := true;
4 [5 v9 b& {- D                        end;: I$ _: n& R. l' l; U* }
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 @9 D/ {" _- \; a6 P/ B                        part := @.transpOrder;
) M: s: a& Q- m, d5 m) C; m/ a                        part.move(@);-- load part
* B2 u. e6 j1 P: z- v/ ^% k                        @.CurrIcon := "load";: l+ q0 a/ p8 D! Z" d& l2 g- C
                        GlobalDistObj := part.globDestination;  O( I: D8 i1 \; q# r; w
                        assignLObj := rgmanager.rgAssignL;
9 V1 n* U' M8 |& a/ _# [' a                        row := assignLObj.getRowNo(GlobalDistObj);
. g/ I) {$ P  |) z  O9 T                        if Row = -1 then -- since 70
. y; _7 n5 X9 M1 h- H                                if lan=1 then
6 T2 d  @1 e$ k' L0 u5 q                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 O) @; u1 Q! t. Y/ C' \$ R- @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 ^* U# `8 v5 z4 s- h                                else
. W0 h3 |0 E3 V* N* T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& \2 W" q3 R0 u2 b2 E' z) e
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 Y$ f, V5 y& y+ P
                                end;
( u. Z/ ?" D( X+ h3 i4 n; [                        else3 ~9 a$ W. p9 v- W3 Z* a. ~# u
                                @.Destination := assignLObj[1,row];# `% i) G2 c! e# p
                        end;                       
( e! I2 ~# B9 Z) w. O                        newDirection(@);
  [: }. Y# r, M                        @.HasOrder := true;
, H( O1 z" i- e6 A                end;% t+ L" R3 n% y  B" W
        end;, n2 `! @# p* @. g+ c; S; X- D" ?
end;        -- of the method5 B- D+ x5 @1 M% D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - N8 r% L8 P; V# w' G* p
' Q6 E7 x9 `$ C1 ]2 z% p3 n9 x
这是AGV_putin中arrive的method。9 d* L/ a+ D- A

! F2 g, y5 h4 \% K. r当到达物料速度越高时,这个报警更多," X/ B* R  {0 T1 j" A+ P  C: F
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. o) ~# ~: ?, R* s' ^' n2 ]0 }程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 y6 N2 z* o+ o4 u5 a% X0 L/ I

2 }) H. O" |, E另外一个小建议,就是move,所有的move都可以这样
, `# ~6 d/ \( F' ?8 wif not move() then debug end
. ^  z* I9 k! x这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 [6 C; i! W$ n# R$ `
plant simulation中的free libraries有AGV模板,7 P* {1 c' p* n' u$ ~8 E: V$ A2 g/ S7 _
里面也有案例。
  x: A' Z! u) m) W8 y5 t我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 h2 u1 j+ G, H# V: f
0 W+ A" K% G0 w1 S; ^  k! l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 X" L# o+ P/ R% f6 x) t

% I$ g: Z+ A4 H; [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 c. {# c+ i! `7 p% ]0 n- H
这是AGV_putin中arrive的method。
" d5 q- W) |" b. {
9 }& g* {2 S! C0 I当到达物料速度越高时,这个报警更多,
. c' m' E3 d7 A9 Q# L% c' C: X! H
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-6 22:15 , Processed in 0.023409 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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