设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9765|回复: 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'4 d7 A2 u4 h0 V' R
*/
' p8 `  J1 T6 i+ iis
. I- m. o0 f& ?& y& m) b        part, GlobalDistObj, assignLObj:object;row,Lan:integer;1 `4 W# E- z: ]1 O7 E: ]
do
) I. `' k# H/ M$ ^8 H0 ^& y        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 G; K8 m$ A$ F& C2 B! i3 R+ j4 x  h        if current = @.Destination -- else return+ ?: ?7 A* T4 R  a$ j' [, A
        then( D! j- j" p0 f; `
                @.Destination := void;8 B* [- l& _  B" D
                if @.occupied then
, H/ `5 v0 _4 v$ w, s/ G4 Q9 k                        part := @.cont;
; |8 V7 G- W5 D1 X2 c                        @.transpOrder := void;3 f8 }% R3 k! x, s1 |
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ _3 }$ ^) N" N' D$ z: \                                @,root.eventcontroller.simTime);# g9 y8 q& j% m* j
                        @.HasOrder := false;
6 G* E% m+ E9 w+ K                        @.DrivingHome := true;
) T7 P- |1 L$ ^, P8 G+ F0 R                        rgManager.tryToStartTransOrder;* o/ Z, [6 E% |/ C  I
                        if @.Destination = void1 Y8 B% T, ^- y8 \' x) j
                        then -- no transport order for vehicle @+ e9 C! \3 V! k$ t
                                @.Destination :=1 S; m) z0 s. x. h" y" [
                                rgManager.nearestFreeStation(@,track.~);3 R# S* d  o3 p: q# A( ^
                                newDirection(@);   % R" L- X. U. r; f4 f
                                if @.Destination /= void then
, H) A5 @! J9 d                                        @.Destination.NumReservation :=& h0 f) `6 n& @: w* w; ^5 {
                                        @.Destination.NumReservation + 1;- _9 ]6 U% _8 G/ M+ e# l7 J
                                end;
; z. J6 D( Y( k                                @.CurrIcon := "drivingHome";
7 ^1 ?. b# s/ E                                @.DrivingHome := true;* G! f1 }* c& f
                        end;
6 x. k, ~2 L# l" `+ \" N; s                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 o, k+ D* I& l* H9 z8 C* \                        part := @.transpOrder;# ~1 w2 B% J: J, u5 i2 Q& j" ^! X
                        part.move(@);-- load part
  L( s% S! |8 O$ t( j  ~- Z                        @.CurrIcon := "load";1 \4 s% c7 e) E( y6 m- N' k( T
                        GlobalDistObj := part.globDestination;6 a& L5 |" q6 a* W
                        assignLObj := rgmanager.rgAssignL;5 I+ h) x' O  d
                        row := assignLObj.getRowNo(GlobalDistObj);" Z# ]4 g# m; g5 k4 w6 {& C
                        if Row = -1 then -- since 70
2 U& G) _& h" O5 A' _+ Z4 V                                if lan=1 then
  \/ j2 }4 U5 `5 g$ P                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 o; K6 q5 u7 e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 E! U. ?! f$ I8 g  J, l9 o
                                else, [2 y+ C8 d! p' R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 i. ^3 u9 h6 c" W6 Z/ o
                                                to_str("in docking station: \"",?.~.name,"\""));                                * {% C9 }* ]- |7 a! }0 u- R2 }( x
                                end;$ p% A. K0 s# ~  {( u! m
                        else, g7 S) K  ~( T4 k* b
                                @.Destination := assignLObj[1,row];
2 @, y$ D! c1 B# ~                        end;                        ' e& y  z# t( c. D$ |
                        newDirection(@);
  G' G" B  y. E/ v                        @.HasOrder := true;
3 W! u+ n, O( V5 [2 t                end;$ \! l, ~! S( U; x/ h: B
        end;
" ~6 H# q/ ]  v) U. c7 B! M1 K3 Jend;        -- of the method: G( t! Z/ x4 z; p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ P' `; z5 v+ [4 n. x8 ]9 k. i
这是AGV_putin中arrive的method。
3 [  g. e- I- R( A- w
3 q$ E4 l& h* t- ~% f当到达物料速度越高时,这个报警更多,, f% j! x, d6 Q3 I6 ~2 z/ S
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 r6 f( K* M1 ?8 s; S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?% g: ?3 \9 T' e3 p. s) J: r
* v% q! E6 Y: _  X9 W) e
另外一个小建议,就是move,所有的move都可以这样
! H7 a+ D  b; l: gif not move() then debug end# R5 I% C( ]' u
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( H/ {6 P8 i6 t; X7 E6 j) k) y5 T& ?
plant simulation中的free libraries有AGV模板,
4 r. {3 ^; K5 a# |' `9 R9 {: i里面也有案例。# i- i$ n6 h! j1 ]% [
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) N4 d; \$ |/ h3 j. C. {* q9 N$ Q. U
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 g, b& Z$ \, s; X" N6 D) @

# c" ^( T$ {8 X( O3 T0 @1 B那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * r; q8 l" @: f
这是AGV_putin中arrive的method。! e" [, O8 c! o2 Y5 P! l

9 X# m3 s; D4 V. L7 Q8 u* ?当到达物料速度越高时,这个报警更多,

7 t+ b  \2 x0 |  ^; j另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-23 09:40 , Processed in 0.017493 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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