设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9716|回复: 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'" G; F# \4 n) d8 G4 [5 O% ~8 F
*/0 h2 L8 w" ]& F- d) L" |9 A1 V6 I  f
is  y7 R2 B6 o! F* |! J: B6 c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: T5 h# K8 k- Y
do( P) `- ~, a* h7 M* I$ y
        Lan := rootfolder.Internal.Tools.AOLlanguage;
* x& [- f8 |1 e# N/ E0 V0 _        if current = @.Destination -- else return1 G" r- g8 N4 }* l4 Y4 e! f1 K
        then
$ h, s4 _8 ?, f- p, l                @.Destination := void;
* O7 M+ c: A3 G+ M                if @.occupied then/ M/ c! R# q! X6 _7 u( A
                        part := @.cont;' O9 ], }4 F4 F! X/ o$ ~% w, ^
                        @.transpOrder := void;6 L  `8 i: n: a, t, C
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 {8 I& H5 i1 n5 D$ R                                @,root.eventcontroller.simTime);. [) {* L7 j' o- m& k
                        @.HasOrder := false;/ V5 n7 q7 {$ U: \, p' t
                        @.DrivingHome := true;" p' p6 P" B& R$ x" W7 W0 Y1 s; C
                        rgManager.tryToStartTransOrder;, k+ f4 |6 p0 _2 y  n& m: Y
                        if @.Destination = void# `& G1 S6 [) z6 A
                        then -- no transport order for vehicle @" h: ?( B; i+ P4 r; O
                                @.Destination :=
5 K6 N% z2 H5 }7 c- {                                rgManager.nearestFreeStation(@,track.~);; r. H, ?. u$ r+ u
                                newDirection(@);   
7 m& E. O3 S( x5 a6 |& w$ a- p                                if @.Destination /= void then7 z. Y6 a; }5 f
                                        @.Destination.NumReservation :=
, p# w" w- e) O; U- q. Z0 ~                                        @.Destination.NumReservation + 1;/ i8 q9 j+ ^! N' b: b; {& V
                                end;6 a: b. ^$ i# g- s% T; o! J
                                @.CurrIcon := "drivingHome";. t! m8 P: Q7 A8 P# }7 I& Z
                                @.DrivingHome := true;' [. ?! z! {* n8 n  R: r2 ~7 d3 a8 w) L
                        end;
9 O* z9 p, j2 E( Z5 w                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# ]8 \- v% J* Q4 [! Q, k
                        part := @.transpOrder;% H' p, ?# o3 {* D0 F0 Z1 q
                        part.move(@);-- load part
, O/ I/ y* m7 b+ d+ f8 c                        @.CurrIcon := "load";( G& U  O6 ?: I# |7 i9 g/ {
                        GlobalDistObj := part.globDestination;
* _$ ?9 K. r  J, Q* ^+ }: A                        assignLObj := rgmanager.rgAssignL;5 C% Y- @/ s1 U* _
                        row := assignLObj.getRowNo(GlobalDistObj);
9 O$ [( K' \' ^$ U2 p                        if Row = -1 then -- since 703 [6 u& l( |0 k
                                if lan=1 then+ w1 e# Z  p7 \- t
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 X9 {2 G% F8 ?8 G+ l& E8 D7 a1 Q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( e. \6 Q2 D0 e- N) v, T                                else
  l+ U" Q" K* t9 O4 o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 I0 T0 Z) ^) ?4 q9 M7 f
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( M" @2 t2 |2 |4 j9 r                                end;- V& Q. N, }5 t
                        else
# ^# f+ M$ N& h! Q                                @.Destination := assignLObj[1,row];4 h  q- s; T. r, N4 p; v
                        end;                        0 Q' z5 A" L" u3 r% ~1 R
                        newDirection(@);
& o" ^4 E1 I1 ?7 d, C8 k: M4 \5 ~                        @.HasOrder := true;0 }. o# q2 s: h# y. F% |
                end;" `- p) p; W3 Q: F9 m
        end;
& i0 v) i4 F+ f. Z3 I% ~end;        -- of the method1 g8 `8 a& ]9 e8 x6 }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 J- B! p5 R3 A! Z# ?' |! C
% v' Y3 k7 N; ]" O$ }5 i& k. G这是AGV_putin中arrive的method。; a5 ]+ X& S" Y7 m

7 |$ V6 C7 P, s8 H. z当到达物料速度越高时,这个报警更多,
6 Y- L3 T& W9 r# q6 s6 Y2 ]3 x/ u可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 l2 @$ ~8 C9 B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( _; F8 X, E3 m& a0 `, p/ V, N1 ?* Y: y2 s
另外一个小建议,就是move,所有的move都可以这样
: d/ R9 _9 q% s% w5 d+ @4 X* ]! Cif not move() then debug end
7 G6 W4 k" @& r4 a% M. z* O" L这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; j: K7 v1 w2 e
plant simulation中的free libraries有AGV模板,
- ^7 U# n, p" v/ [* `( s里面也有案例。, ^0 s1 g7 M% j; `( W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! m' J, D$ @% k; r1 w% Y
: B, b* M9 u9 ~; t0 W6 g2 o我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 g: o. w/ ^  ~2 N

% V$ z8 D& {9 L4 S8 h: w/ @; s, w那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " r  ~' L2 G. ?& g( K
这是AGV_putin中arrive的method。
7 A, f- L) F( w5 Z5 _8 h+ q
/ Y- r4 z9 f& \6 ]9 E' O! O1 l) w当到达物料速度越高时,这个报警更多,

* u' [$ j5 l7 C2 p# ~$ s另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-20 01:01 , Processed in 0.024596 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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