设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10124|回复: 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 i3 h5 u# j2 z* n*/
2 F% [; N8 o: d& v! i& s4 Y! O- gis
" n! I5 V: w0 J6 f& U# y- o- o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 a' p& |# t8 A6 C, g9 m- u6 g+ ]do
7 V! H- i4 i% B  ^- W        Lan := rootfolder.Internal.Tools.AOLlanguage;% d' V1 l1 E$ q4 Z4 U& C
        if current = @.Destination -- else return, V% v- E+ c# a- {, P- o0 C4 `, S) i
        then
3 c3 _* T3 ^3 {3 g7 f% }: Q                @.Destination := void;& H' d( u, h# c$ v- D
                if @.occupied then
3 ^, t& a3 a4 L/ t                        part := @.cont;
: N8 I, s8 U6 M+ G                        @.transpOrder := void;( @" I! M% |& ]7 a+ Q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 N3 R; ?8 b/ ~0 _$ R, _                                @,root.eventcontroller.simTime);' t: b; G' K; D. z
                        @.HasOrder := false;
+ s% [) U8 x6 P, q                        @.DrivingHome := true;
# N7 U7 ?# e" {% @                        rgManager.tryToStartTransOrder;
! J; d3 P: C! i9 W+ h* P                        if @.Destination = void
/ s- E7 F5 ~9 e: s                        then -- no transport order for vehicle @, e9 d( _, {0 w: H- J5 E
                                @.Destination :=
- K, u* s* ^: {$ I$ x* ?                                rgManager.nearestFreeStation(@,track.~);
& D$ V$ n9 E- m/ U  H                                newDirection(@);   
, W( ?$ Z6 O2 n                                if @.Destination /= void then
2 ^3 }( [6 s$ \. k) V                                        @.Destination.NumReservation :=6 y4 X( T- w2 n6 ~' e, E
                                        @.Destination.NumReservation + 1;
& D5 k- I) c/ b1 \                                end;, Z, q" f; j0 C! s; J" j0 M5 r' B
                                @.CurrIcon := "drivingHome";
8 r" C6 }( g+ |2 Q. N9 y. Y                                @.DrivingHome := true;1 [% A& ~/ ~0 @6 h) G/ i
                        end;
0 x, C0 w) S& e" }! Z                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 ^$ X) p( K- E9 F                        part := @.transpOrder;# e  ?$ B* v  ]# S" p) M6 L8 Z, Y+ O. {
                        part.move(@);-- load part1 ~; F3 d& R" e9 U  V0 ?; @
                        @.CurrIcon := "load";1 Q+ E; v: x* K1 `7 A
                        GlobalDistObj := part.globDestination;; L; T/ D3 h0 \" w% ]/ @
                        assignLObj := rgmanager.rgAssignL;
- u% c/ g9 C; _5 j                        row := assignLObj.getRowNo(GlobalDistObj);7 I7 K  b( V' [9 W
                        if Row = -1 then -- since 70
( |6 G# f6 E/ Z( `; u                                if lan=1 then# c0 a# l3 Y7 [4 z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 B: h% f- |8 Y$ M$ P                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ T1 h* V% f2 K+ g9 f- k) \                                else% U2 J0 |0 g# F" a; G4 |3 F
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  e7 ?  X$ _! w% ^! _
                                                to_str("in docking station: \"",?.~.name,"\""));                                - b7 I$ ~# B# W% B
                                end;
: m; g, m, i) l$ V" ?                        else) R* G9 c  Q) ~8 _+ `' S; X
                                @.Destination := assignLObj[1,row];
' z+ [  z) [+ u! M9 B1 x                        end;                        $ x5 A( L. x2 p5 T  N# u
                        newDirection(@);$ }# x) a+ X& }0 E, ?
                        @.HasOrder := true;
' ?( ?# T% @. B2 R( Z5 T4 R                end;
7 F9 O1 m& l7 y! H; @% _        end;
: f  O7 @- X, ^9 Q5 d+ r- H/ fend;        -- of the method
2 O$ V3 X" j. ?- A8 i* Q8 K$ p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( p2 E9 c! V- _; C3 G2 W5 K2 {
0 Y! P# F! g; X* H; ^5 B7 r
这是AGV_putin中arrive的method。; N7 I& J, l) g" _; x1 z

; g( y9 h+ G* C8 h# P9 K; o当到达物料速度越高时,这个报警更多,3 H. `0 w- X1 M& u- L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# ?' S( n0 T2 X3 y% j7 i程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 Q  Z  }: ]6 j) c; Y$ W) }; ~% \

2 V0 n4 ?% h5 o+ U' c. o2 b8 p另外一个小建议,就是move,所有的move都可以这样
9 B" Y7 `" `/ u3 V  eif not move() then debug end
4 v- E8 J* C& ~5 a6 j3 L0 W8 T. M这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, s' Z/ v$ S5 H3 W
plant simulation中的free libraries有AGV模板,
  ^5 `1 S& c3 ?. r- Y! r& M里面也有案例。
0 }. z9 F5 `9 }; g0 n! S我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. D' [$ e$ Y* B) e8 Z
1 h; P3 n% K4 Z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' ^* m  O/ l  v# d! \: W. G' n+ u7 {% h. {9 f, J  }
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 ~( J! D6 w9 x/ J" b2 p% L( N& S2 @
这是AGV_putin中arrive的method。
& N" D5 _3 ?2 I
8 J1 z5 q* k3 d8 Z当到达物料速度越高时,这个报警更多,
" ~2 z/ n4 c- A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-14 11:08 , Processed in 1.654894 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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