设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8301|回复: 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'
. U6 q+ h" a' \$ Q+ C6 [*/# o+ X" z" |/ k0 a# E" y& F" p9 N% X
is
2 S5 O. q: o% A) i) h. w        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 w# W3 Z# f* M+ z, _7 Bdo* K2 K5 t3 j' E+ U
        Lan := rootfolder.Internal.Tools.AOLlanguage;
- Z$ Y% N& O6 e: |/ {* `. S" j( N        if current = @.Destination -- else return
5 F* _. G* d% H( y        then
3 W; _5 e8 f6 K0 e  _                @.Destination := void;. _! u. `7 W8 ?* E5 E! E6 G6 s
                if @.occupied then
- b$ n7 b. I$ Y                        part := @.cont;, {# p9 [' Z/ |2 y; \
                        @.transpOrder := void;" o) e# T% C1 N0 V7 E  X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ h2 S7 Y* e$ A2 D6 k: Z                                @,root.eventcontroller.simTime);+ H% L9 D$ F+ @
                        @.HasOrder := false;
. J! ]( L( O" g* Z: Z# ?1 p                        @.DrivingHome := true;( d) M. \0 X( J. n' g. @' d3 j
                        rgManager.tryToStartTransOrder;  |6 F$ [" x  T9 \
                        if @.Destination = void
3 l8 c6 ~% K; Q1 C8 e+ c! p3 R                        then -- no transport order for vehicle @
) L: Q  B( Z: q% D: V' j( j                                @.Destination :=' c2 J5 h/ R" y, V
                                rgManager.nearestFreeStation(@,track.~);8 ~) z6 ~. k7 C( c
                                newDirection(@);   
& T. @) b; P$ f! Z2 |                                if @.Destination /= void then; _: O; ^% C3 b9 T* {9 n
                                        @.Destination.NumReservation :=
$ L9 w" B; V  E% @) z- o                                        @.Destination.NumReservation + 1;- \/ o* b! u! R9 ?
                                end;
0 A% d1 g! _$ G4 M. Q& ]% _                                @.CurrIcon := "drivingHome";( l  L, v5 k3 b# b4 |: f
                                @.DrivingHome := true;
$ u* |) `- t4 L2 c& {                        end;& F% w# T6 e/ g! x, {
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* u3 ^! N6 [0 @; z+ A8 N
                        part := @.transpOrder;. \" s6 X9 Z- D8 Z8 t0 v3 u
                        part.move(@);-- load part
  X! p1 f6 d8 I5 b8 L0 P                        @.CurrIcon := "load";
2 P2 R* D4 W7 i. Y, d                        GlobalDistObj := part.globDestination;
  i' C& o3 X8 l, P5 l                        assignLObj := rgmanager.rgAssignL;5 C. \( K. _) o  \. N
                        row := assignLObj.getRowNo(GlobalDistObj);
5 B, D+ z3 `, P1 s                        if Row = -1 then -- since 70
0 ]- }+ q0 ~( |7 d+ V                                if lan=1 then! w( v) n: r! a3 i
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),: V. J2 ^3 z& g
                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ U5 y' p, L* w; W
                                else
9 N9 X# Z" ~  p- O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 ]2 k# c& i, o/ f5 j3 j9 v$ U                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 b* o' c4 _! |: g+ e. L                                end;, Z# g7 P) D" U9 V
                        else4 i: v( L* h6 {4 o5 m- N  y
                                @.Destination := assignLObj[1,row];/ |7 d6 M) ]5 s1 v& p
                        end;                        % I6 Y- @% z% X
                        newDirection(@);) E3 W( Z' s/ X
                        @.HasOrder := true;
- n/ b9 W& R. r2 ]( I2 {                end;7 [0 N' Z# ~' V- c  p+ k5 [
        end;
! {: i. p- @- w5 s" c; gend;        -- of the method
9 A' w0 d8 K1 m" \5 B( `% g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 x) o) I6 `# A& @: a; i; V4 ^
  N9 k# p0 N3 ^  \# F1 o0 O: g这是AGV_putin中arrive的method。6 }- r1 E2 D0 O
! b! G+ [3 H$ Q. {
当到达物料速度越高时,这个报警更多,
+ n" L$ Q6 K0 ]/ {2 e3 W' N1 I可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 J* b+ w$ V7 f0 U程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 u6 a, U' z0 J8 Q- F. z
* m9 C+ K% t6 I. \
另外一个小建议,就是move,所有的move都可以这样* p" I8 s+ K4 V6 F. [/ L
if not move() then debug end0 U! M5 k+ P. u$ \' `+ E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: F0 ?, s  v7 B$ G; c% p- Oplant simulation中的free libraries有AGV模板,  A' r: e* C( g7 @/ Z5 o& L
里面也有案例。
- s! A# g, f9 t' S$ \1 r我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  l( q9 \  k2 {
0 y  q8 s: V2 Q, n& r/ o6 Q6 O
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 r" o/ R# k0 D& v4 ?
! d7 b# j5 p2 }- h5 Y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . o3 x& W% g3 D) v  x( d1 R0 ~1 |
这是AGV_putin中arrive的method。; d- B* L! }/ f0 r+ ]
7 Y4 \5 I: G5 p5 R& O. w! L# ~/ O5 T
当到达物料速度越高时,这个报警更多,
/ C( G) t2 `0 F( Q  ~1 }
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-26 12:40 , Processed in 0.016094 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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