设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9124|回复: 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', P7 r6 Y  ?( Y( T3 @& _* D$ y
*/
! q9 o% D! N& ]$ ?4 L+ \6 |) [7 ~) jis
  f; q7 I2 p! g: @        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# k# R9 Y& b4 T9 a; K- Ldo* Q! j6 C# q2 B5 a% W; u' N
        Lan := rootfolder.Internal.Tools.AOLlanguage;0 A& v" b, D& r" t
        if current = @.Destination -- else return$ W8 [# T8 H; P' m3 k/ y- d1 u0 g9 X
        then
# M8 e/ w3 h" Q9 p; @                @.Destination := void;
* \( M* n( y; Q8 L3 y5 f' ?  v' I                if @.occupied then
# L+ ^$ i& p# [1 x6 G- g                        part := @.cont;- N5 U" h0 @" m5 P5 T7 h
                        @.transpOrder := void;
+ {6 n9 t" z$ b                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 B4 j. M) T$ K& c+ X; j' `                                @,root.eventcontroller.simTime);2 S% e$ B+ [8 p
                        @.HasOrder := false;
9 P. I! ^$ N+ P+ H                        @.DrivingHome := true;
3 P" C! k  ]* W, q! i. q                        rgManager.tryToStartTransOrder;2 l1 h! ?( j" L5 \9 l! o1 w
                        if @.Destination = void4 U' E( \3 {& \; H
                        then -- no transport order for vehicle @( O5 F) r. [9 e* b
                                @.Destination :=" x; ?$ o/ q, v" l
                                rgManager.nearestFreeStation(@,track.~);
( ?, Y  _; j6 \! z: C                                newDirection(@);   " n$ `* B4 Q: C6 S8 B0 h3 L/ T. X, k
                                if @.Destination /= void then
- v+ M7 w& `* B/ F3 T2 r) r                                        @.Destination.NumReservation :=
! W4 K" d! T& \/ T. p# a& Z                                        @.Destination.NumReservation + 1;$ L7 G! H) j$ D2 I
                                end;
. l& q5 J1 N4 L                                @.CurrIcon := "drivingHome";& e5 {. R6 Q' k2 H" Q0 p* u
                                @.DrivingHome := true;" a; R$ F% h: {' T- W
                        end;
" j7 n+ J" |$ ?) L4 C3 a1 G2 ?2 a                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 r5 a: ^" v. }0 P7 N; N                        part := @.transpOrder;
  x# D0 F6 q# }: _) N# u                        part.move(@);-- load part
& o' m( H5 K6 L! y2 `; Y* k1 z                        @.CurrIcon := "load";- Q# P* j( x; [" [
                        GlobalDistObj := part.globDestination;
$ N) C: w1 Q6 w! Z                        assignLObj := rgmanager.rgAssignL;
# z9 K1 S% ?4 [- k: B4 O                        row := assignLObj.getRowNo(GlobalDistObj);  ?; p$ V4 k, _; K' _' ?
                        if Row = -1 then -- since 70/ s5 r6 H) Z7 O, L5 p
                                if lan=1 then
+ q2 h' v! I6 u& V/ s7 @2 h: [                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; v7 l) r- c* ~7 {% J5 P& B+ ]% M# R# s
                                                to_str("in der Andockstation: \"",?.~.name,"\""));( E5 u! @. [0 I7 q& S. @! i* K  M1 d
                                else7 K: L+ @2 i. Y( ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. T9 D# [) e1 X6 B9 T3 b  s
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 k( ]4 b: i# ~2 m' g! M
                                end;$ m. x$ `* @; I/ _
                        else# r4 j7 d0 B9 K! H
                                @.Destination := assignLObj[1,row];
# i0 j. ]4 \8 _                        end;                        $ ~1 e- G$ S# H" }1 ?4 H
                        newDirection(@);; a' ^; B" B4 J$ w5 Q  K
                        @.HasOrder := true;% A8 r) G, i% L0 E
                end;
( I: Q  |6 Q! n8 f7 F        end;
1 M  g( p( ~9 ~" C$ l6 R; s) I. Jend;        -- of the method
* J1 U5 W) h4 C: C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 ~, K, n4 {; f+ E, O
4 ?& z& J2 a) k' G! {这是AGV_putin中arrive的method。# d! j& W; ^, D! _, W0 H% Z* k" W
$ |& x4 v8 Z0 D" }
当到达物料速度越高时,这个报警更多,
4 f3 Y4 t+ L! a- W& V可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" j  L/ x% s0 |6 m, y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. M. z1 D. {; h

9 H  V5 U/ c2 f( P+ |3 e另外一个小建议,就是move,所有的move都可以这样
  w/ {1 s% S& x1 bif not move() then debug end
4 R9 x6 ]7 d( h) o/ w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! ~, c8 P- W' Y8 w
plant simulation中的free libraries有AGV模板,
2 Z  W  ?2 F# v里面也有案例。' T1 _, j! m7 v: o! E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ U" v8 c6 V$ {/ Z9 Y. c  ?' j

0 p4 e# D( i, I3 N* _7 \8 G我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 a  _. `! f  z4 i  ~5 J
. t& ~" Y) p  S" d; ~0 v9 C5 i
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 V" r1 _# }  X1 Y* ]
这是AGV_putin中arrive的method。
" b& B3 i0 f4 x7 G6 ?9 U! K9 L8 r- y% Z* n
当到达物料速度越高时,这个报警更多,
% h6 D3 E5 \/ n, A9 }
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-15 01:03 , Processed in 0.017379 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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