设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6359|回复: 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'
8 g7 H' R/ D5 I# o3 v, }*/6 }# ~: q9 y5 }& E; o( d! E
is
4 U" Y" E/ r6 Q1 M# [/ Y: P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 F5 V) m7 N/ t+ G1 n% ?# A/ Ado
) b/ i1 `* g1 I        Lan := rootfolder.Internal.Tools.AOLlanguage;- ~- _& }9 \, B) b& {+ z
        if current = @.Destination -- else return
* d3 D1 m' |. k: A; Q) A/ h9 a/ z        then
8 u+ C; B$ c7 n9 O' O" u/ r! M                @.Destination := void;
# `6 x9 W. K  C+ R* g$ d                if @.occupied then% c( t( N" v, B, }+ b
                        part := @.cont;
9 c# v) x: @) W0 f- [; S1 _                        @.transpOrder := void;
( |6 N% c' w- N( Z4 s. p. _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 w4 P: g% s0 i' m
                                @,root.eventcontroller.simTime);
; k6 k! s. C) ~) d                        @.HasOrder := false;
' r; j$ w9 [" N. q1 L9 P                        @.DrivingHome := true;
  t# H, i* ~1 @, l                        rgManager.tryToStartTransOrder;
' W( v8 B2 L% Q) @                        if @.Destination = void
/ T. {4 h0 i7 e% d8 P                        then -- no transport order for vehicle @
% G) _! t( S2 T/ ^& X/ @                                @.Destination :=
: @3 U+ L/ [1 M& N* [  j- Y: m                                rgManager.nearestFreeStation(@,track.~);
* j1 j" j5 R0 R1 w7 f" b+ Z                                newDirection(@);   
$ M# _' I! x. U+ h( `1 A- L                                if @.Destination /= void then6 W8 P8 w2 m/ [2 d
                                        @.Destination.NumReservation :=
" C! W7 l" q# P- i: V  Z                                        @.Destination.NumReservation + 1;7 y5 m3 K' v. ]' _- K1 T5 A( I
                                end;6 p3 y1 H" O2 W5 s6 [  i
                                @.CurrIcon := "drivingHome";
2 O2 ?, u9 q) \# A- ~# x                                @.DrivingHome := true;
3 B+ `9 E+ S( t, m                        end;% r+ E. L# m+ j, l* V; U9 j$ T8 O4 Q/ N
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 g1 E6 y2 V! D. O  Y
                        part := @.transpOrder;1 S5 k0 f; |' j3 e; W
                        part.move(@);-- load part" n1 B( V3 X' u9 A
                        @.CurrIcon := "load";
4 A. a* v& k9 [. I& l% u                        GlobalDistObj := part.globDestination;
6 u# m. O) U- I  }& D                        assignLObj := rgmanager.rgAssignL;: d; C+ o- Y3 G* V2 u6 ^
                        row := assignLObj.getRowNo(GlobalDistObj);. J* z" S" U& d4 h  S/ c: H1 ]
                        if Row = -1 then -- since 70
! F: V# L# p& Q/ T9 X                                if lan=1 then3 {) S: ~- r9 |
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( d6 x5 [# ~3 f& P9 G  x  B, V                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 o8 G7 N: Q- Z9 H+ B1 Q                                else
* [; |5 L. w6 R. i  ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ i3 S4 {1 r* V: ^8 R, u6 r                                                to_str("in docking station: \"",?.~.name,"\""));                               
  `6 t1 r. K* J' L9 H7 X                                end;
* m7 R( U3 Y9 w" P" l                        else
1 f: u) T, ?  d) _8 u- g                                @.Destination := assignLObj[1,row];
5 v8 U- s) \# f& L- n6 b4 r                        end;                       
- B" s- P/ |9 }' a; x1 y5 M                        newDirection(@);9 b3 s8 Q( i; B  n) h
                        @.HasOrder := true;
( I/ {) B1 S& T( H9 d% u+ W3 K/ @! [                end;$ D7 r' a( H) ~& {! F1 G
        end;, s6 z% s2 c8 f9 F( y
end;        -- of the method
0 G) }* A) ?8 E- S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 f! C' d9 W# {3 n9 k
; p0 X# v- s. o6 b; R; O
这是AGV_putin中arrive的method。, t4 n, r8 ]6 {) t

. @7 ?  a" L  Y( J# j2 d当到达物料速度越高时,这个报警更多,( p! c/ I! n$ r4 K; Z5 B0 W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  V: S. |1 j3 ~- D& c  b* ^程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% g+ U  a. [) ~. p$ F1 N
9 F/ z+ K. L* H+ l  x另外一个小建议,就是move,所有的move都可以这样
8 @' Z: [2 r9 a6 S" a; ]/ Eif not move() then debug end, t7 m& R1 ], d. z) a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* q8 z) |5 P) C$ R7 z0 y  y$ o
plant simulation中的free libraries有AGV模板,
4 V. M9 t' x' l: B5 B里面也有案例。" T! v2 Y+ L$ m. t. ?, U' w7 k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. K1 N1 T& d& e: p" ]8 P* u! S, l
8 Y2 W' P+ F5 r& B- `我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. f7 {/ t( S) m4 H# E% F% V) H: b3 z$ c8 _
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 r% l+ s$ g& b# y, r
这是AGV_putin中arrive的method。' F4 |0 Y2 S4 H' n. W/ y- w$ W
; m0 g' H- A' n2 ?# [/ e! C  m- I. I
当到达物料速度越高时,这个报警更多,
* r- H# p' X$ I# P8 o5 I
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-1 17:16 , Processed in 0.020896 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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