设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7766|回复: 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 e: N' e% U: g! R*/
. N# Y7 ]9 e5 U- |is
3 @; P& h6 q! z% b& x% b        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  O; C5 c% _. b: m
do7 g$ @5 H6 z$ `
        Lan := rootfolder.Internal.Tools.AOLlanguage;# |- L5 M' ]7 i# X
        if current = @.Destination -- else return
7 P, H# e" Y, a9 @( }        then+ ?" m; k& [! w5 G! e- p, z
                @.Destination := void;3 I2 T/ B1 {. \# U
                if @.occupied then
/ S$ j9 j+ T) t) Z9 m% g                        part := @.cont;! f1 P: o0 ~  ^7 x, G
                        @.transpOrder := void;! ^& V! U2 W' h; `& w
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' q; m9 `- z: P% v3 m/ a' E                                @,root.eventcontroller.simTime);3 X( ~+ L) n: J* W9 l/ H
                        @.HasOrder := false;  x8 c+ \3 _) n% F
                        @.DrivingHome := true;& {# T) K* R" N7 I0 Y7 F
                        rgManager.tryToStartTransOrder;
+ t2 D3 A$ g8 {- u8 D8 B' p                        if @.Destination = void( K0 Q+ X! |% @, i  X( H  o1 z
                        then -- no transport order for vehicle @
8 \1 L" I. h+ c& s0 K. u  s                                @.Destination :=
3 |! S9 o$ U  M& N9 E# t! o                                rgManager.nearestFreeStation(@,track.~);
  p1 P# C9 O! s% ?5 d                                newDirection(@);   ; v1 u  b& H0 M% Z
                                if @.Destination /= void then6 ?* }) f! ?% Y$ Y+ o, o
                                        @.Destination.NumReservation :=
; Y) `& p2 x% [3 k                                        @.Destination.NumReservation + 1;
6 O( W' W  Z! `8 v  }& }                                end;
6 ?8 x& T. e) W  O1 ]( c( ]: ~                                @.CurrIcon := "drivingHome";. q. w0 {, j- x- I
                                @.DrivingHome := true;
% U& s0 a" J' n) s- \                        end;
# H6 D% h5 D* W5 A* Z                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& Q" U- \0 A( U
                        part := @.transpOrder;) ^4 x& \# l+ k: m
                        part.move(@);-- load part" R- ~2 r2 A$ `( ~1 N
                        @.CurrIcon := "load";
1 b+ o2 N5 j, n0 w9 m; Q                        GlobalDistObj := part.globDestination;% j+ ~2 D  z5 }+ L; y
                        assignLObj := rgmanager.rgAssignL;3 L/ V# l- f5 M* }9 M
                        row := assignLObj.getRowNo(GlobalDistObj);9 L+ H, M0 A) U  U, A2 B7 M1 G- ^
                        if Row = -1 then -- since 70
7 f; u! j2 X. M: I' Q8 V                                if lan=1 then0 K" K' u. F. L4 U- ]2 P1 w9 E
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 |  C2 J. H5 }* J( U                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 i/ _) u0 K; b% [                                else
, B- \8 V, t' m+ V7 o# v) p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 U/ k- z4 M( p, k
                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ C. n$ {2 l' ]9 y% G% z                                end;0 e& I# f! A! b/ T# d1 F
                        else) V: b/ `; j0 M; ]  T; E
                                @.Destination := assignLObj[1,row];$ G1 R) v% M  R+ j* I+ B8 G/ t
                        end;                       
4 Z5 _0 i$ K8 n, K) K8 M                        newDirection(@);
+ M) j# E6 {! ]8 L6 A- _                        @.HasOrder := true;: V* ]: g# i% a
                end;
: M" J2 e! T0 [2 d3 S        end;- H7 h7 G- T1 |* x
end;        -- of the method
9 l" N# E+ l3 n$ l, s! N6 q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" ~9 t# r1 a+ _4 Z" l4 i8 m5 r* m! i0 f( I9 E6 p- G8 n  v
这是AGV_putin中arrive的method。' `" L0 V& H" I1 |& a% q- D, c8 g% a

" A. k# h2 z" s  J+ _当到达物料速度越高时,这个报警更多,
" c" U- B1 j$ |( E6 G可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 D3 K/ k* ]# c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- F9 @5 O6 k) M) O! w1 ^+ S8 {' j+ V; H. m2 G
另外一个小建议,就是move,所有的move都可以这样
8 E: y# e9 W: Wif not move() then debug end' `7 [$ b/ M/ I( |9 G! \+ X+ a* ^5 o
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' F- G1 o$ k% g8 \8 R
plant simulation中的free libraries有AGV模板,
/ ~" X* P: ], q0 I/ |里面也有案例。* Y: S) |7 l! ?. |, T2 V
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 \; U' f. O5 p( i
; a  y. K4 c9 a! k我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 H/ _& [9 l' v0 z
5 m7 e8 f, G( n, r4 H那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( a# f7 k7 K4 a% @& P
这是AGV_putin中arrive的method。
( D+ P  x" \. P* e, ~. X5 b- e) o, Y4 T
当到达物料速度越高时,这个报警更多,
5 d" B# }# R, D' y  c
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-28 15:51 , Processed in 0.020126 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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