设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8833|回复: 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'
9 {7 N* }) q6 S  i5 F1 B4 O*/
4 q. F" K+ X" z% @is+ I) u/ P# }+ A
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 h% k/ F9 H0 [. d: ^1 _7 c
do3 U7 S/ m& X5 s7 S+ T9 [! r2 J. ~" c# u
        Lan := rootfolder.Internal.Tools.AOLlanguage;
# P) }9 M' R% y7 Y3 p* t, K        if current = @.Destination -- else return7 I! T1 {- P: Q& P/ G/ K; ?
        then) s4 V% n, v+ \7 Q+ g% \
                @.Destination := void;
" ]7 P% A7 I+ i3 m8 _                if @.occupied then
$ f* R) O' f7 M! O; {. D                        part := @.cont;
- t; O- t7 L/ S6 n% a                        @.transpOrder := void;
* K: w2 L. H/ z5 \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
3 [+ h4 r4 }! B                                @,root.eventcontroller.simTime);( `& `% P& U. i; |
                        @.HasOrder := false;
" G( ~0 w3 }2 g4 ?- h0 s4 J( u                        @.DrivingHome := true;
: Z* U/ W. I2 M* z; D3 z9 c# i! f                        rgManager.tryToStartTransOrder;
! n$ U* B. r) m! I: S, G                        if @.Destination = void$ m  A$ J, J' U9 b3 ?0 n  E8 M! j
                        then -- no transport order for vehicle @3 k8 R5 V4 D9 A
                                @.Destination :=5 B) ]- ~1 v! Q0 M' j; u7 n
                                rgManager.nearestFreeStation(@,track.~);" K2 k( r1 I, A# A$ o" l1 e
                                newDirection(@);   
+ g$ x) x5 b; ^% R; H4 R1 G1 C                                if @.Destination /= void then
. X. h/ k0 V& N                                        @.Destination.NumReservation :=
- j# k% D- O- {, G                                        @.Destination.NumReservation + 1;
7 g5 Y5 {* d  R/ J) p$ }% Q                                end;+ m" F: C* z; a% H
                                @.CurrIcon := "drivingHome";2 a5 D1 S! ~5 r% p
                                @.DrivingHome := true;, A6 x3 r: S8 F7 I0 e9 I
                        end;7 C/ s  p' i( F: S
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! G* Z, R, s8 }1 t- V: H/ N" t
                        part := @.transpOrder;, x6 b7 G5 S8 ]3 _- e
                        part.move(@);-- load part
5 Q- n2 _+ B" A5 c" c                        @.CurrIcon := "load";( a) \8 L+ a* S- |' `
                        GlobalDistObj := part.globDestination;# S/ @- f' s" F( D- e% r' G
                        assignLObj := rgmanager.rgAssignL;
* l) j8 K( q7 O. c' |7 m1 M5 l                        row := assignLObj.getRowNo(GlobalDistObj);0 N7 S6 o  w( H- Z& ?
                        if Row = -1 then -- since 70
; ~) z' R  ]. h, k; w+ A                                if lan=1 then
. D- [. b9 u  H/ N* j1 I                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' k* K  s+ T8 Z# J: v+ N; n
                                                to_str("in der Andockstation: \"",?.~.name,"\""));' p0 L/ V; k  ?! m( i) b5 h2 P; t
                                else
; I+ ^' C) E2 m' j  X                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' S4 Y8 [/ h% O& |+ ~
                                                to_str("in docking station: \"",?.~.name,"\""));                                - a5 l+ Q, n3 a
                                end;
, h, E) |  ?$ Z4 c" Z# r                        else
6 _' W* E( }% R% h                                @.Destination := assignLObj[1,row];
  c8 x. x8 q; R                        end;                       
+ |* b4 }3 ~% q8 |* e                        newDirection(@);  ]( w7 ~3 s. w, ~2 L3 I* q
                        @.HasOrder := true;% W% a3 L  S# D2 I
                end;( W6 ^9 a+ `* s. g" x& l9 F  X
        end;% m  P  b8 a1 `6 I5 Q" t
end;        -- of the method
! e5 W1 D+ S8 ]2 c* |0 ]7 }$ i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ e% w5 A& C. j8 |7 Y0 v) ~+ e
" R6 a9 ?& r# n这是AGV_putin中arrive的method。# U' Q4 |* l  Q% _* C9 w2 p% P
6 X' a7 r: H" B, _' S
当到达物料速度越高时,这个报警更多,
: Y) f0 z, D' K/ x1 @可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% [" B3 x( S+ P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 q  I( l* A+ x

% u$ Y, }, ^# N; O另外一个小建议,就是move,所有的move都可以这样- I( ~2 g, Y- L3 Y4 q
if not move() then debug end
. S& K0 x" y, u6 J这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 B1 ?$ m9 Z8 o( Z! Y) n) p
plant simulation中的free libraries有AGV模板,5 A) R' q5 P9 x2 w  Q9 e" \
里面也有案例。
3 ^2 l7 ^$ }2 s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' N9 w+ i1 O: `/ V# d6 M
3 m, U: m9 Y7 X7 e. h7 H' s
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  m  f# G& F2 I! P+ r# @% Z. F0 Q( U- x! c
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 j/ L- k/ \8 j7 h$ v, K7 _
这是AGV_putin中arrive的method。& O. b& g. ~% R

" ~- V# G! S2 R$ I$ n+ r' }$ n当到达物料速度越高时,这个报警更多,

+ H, a. X+ |' m' v8 Q4 a% ]另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-29 01:08 , Processed in 0.017358 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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