设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7029|回复: 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'$ K  H( [6 L* R  u! [* C
*/
% `- Y8 y. h4 \, k# t% {2 dis
2 p$ q, K: \( M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 J7 i. v' S2 s0 i  m
do
) i4 ~+ \5 c) E        Lan := rootfolder.Internal.Tools.AOLlanguage;; |$ ?- n) o1 R8 C: U/ \
        if current = @.Destination -- else return9 o& k+ e% L. r; j( b
        then
+ H9 I1 _( n( N, g                @.Destination := void;0 s4 {1 x# l% R
                if @.occupied then+ ^, O4 J" X9 z# O* F) e
                        part := @.cont;
6 w" p( I2 [( }# s4 `, s  n; c                        @.transpOrder := void;, Q( K! P+ D: c' G3 z2 N
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ i% ^2 Q! d9 c. m                                @,root.eventcontroller.simTime);. t7 Q5 f2 l% [1 d  ]' _
                        @.HasOrder := false;
  x# n- s$ H$ @! i, t                        @.DrivingHome := true;$ @* }2 N' X% g3 S
                        rgManager.tryToStartTransOrder;' s# e) V% @) V* C; b9 Q
                        if @.Destination = void
% B7 e4 u$ }3 T4 ^0 u                        then -- no transport order for vehicle @
2 R0 V, r7 e  Q: m                                @.Destination :=
, N7 X$ O- m" z3 z                                rgManager.nearestFreeStation(@,track.~);7 n- K: B2 A  \1 V! {! B
                                newDirection(@);   # d9 N, E: @9 F
                                if @.Destination /= void then+ k* b; ?  e3 _( S4 C& _% r. t/ M
                                        @.Destination.NumReservation :=
/ s  R+ J& J7 u, r& F& h3 y                                        @.Destination.NumReservation + 1;% e  l/ ~5 z* g9 h+ \
                                end;
% c# _- A8 t+ v6 k                                @.CurrIcon := "drivingHome";* M* `8 T0 f7 ?' K
                                @.DrivingHome := true;) t' T, X1 q+ d
                        end;
2 {2 q6 L  Z. X' L$ w: J0 n% I                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" [8 Q; ^3 N. e* J0 z: m; n                        part := @.transpOrder;
1 \) h( N2 l; S) h8 R# r                        part.move(@);-- load part$ Q& T& q% Q0 w: z$ S4 T2 M
                        @.CurrIcon := "load";; M: T0 b5 o. f9 |
                        GlobalDistObj := part.globDestination;' F! _: J- z  ^  z; \+ r$ e& f
                        assignLObj := rgmanager.rgAssignL;
5 [) J/ O# g' n                        row := assignLObj.getRowNo(GlobalDistObj);
4 j% H% Z1 g$ ?( }3 @" x- T! `/ o                        if Row = -1 then -- since 70( r* U, J% \+ [& k8 _8 Z
                                if lan=1 then
8 u# o/ d0 [, W: L5 q- {                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' y& K/ ?' @5 [( o                                                to_str("in der Andockstation: \"",?.~.name,"\""));- [. D$ s/ I0 s: q
                                else
/ a8 i3 A! K7 n8 C4 S, Y3 H- |                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' d* m+ P4 N# A3 F4 ^+ {
                                                to_str("in docking station: \"",?.~.name,"\""));                                # t4 J# x( Y' o" d
                                end;
; i; m: A, j+ E  h  g1 x                        else
) Q" J, y, L! z" f# T                                @.Destination := assignLObj[1,row];) Q* L) a- }( p
                        end;                       
( L1 K) X$ y5 ]+ N, ^                        newDirection(@);
1 ?/ r, }3 h! p3 U: `                        @.HasOrder := true;' _7 |2 O8 a9 q* P
                end;% U2 @- t2 E" z. j
        end;* [) h! Y2 V; S/ Y  L8 B- m
end;        -- of the method% @; G6 L% i/ O+ K8 g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
0 `" f" h. g! Z7 @9 f' `
; B$ H4 @2 L% e$ p3 `这是AGV_putin中arrive的method。5 A/ N0 `8 E) s$ h) s) l) e
9 d6 M' D7 C5 K0 d: L
当到达物料速度越高时,这个报警更多,
5 ], B, P" M0 _9 J可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& D$ \; O( k; Q0 b4 M' c
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& T: M5 \4 T6 a6 j$ i0 R0 m( [5 Z. \: I5 E6 C8 v
另外一个小建议,就是move,所有的move都可以这样
) o( d- t4 Z7 z- Q3 h+ L% v) [9 e& v" {if not move() then debug end3 J% s$ [" e2 H( _& g
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 V  Z6 J( U# V0 X# qplant simulation中的free libraries有AGV模板,3 C! M# |: Z4 P: {6 m" g3 Z' d1 V
里面也有案例。
3 v& E! l1 a6 h- v我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 @  j) s. U2 \7 V6 J( ^6 C5 w2 v+ P7 J
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  f8 e9 X' J: W) p9 z' s: C! R0 m" u; h5 r, u# M0 f- o
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 s* E' ~: F# X5 ^; `3 t这是AGV_putin中arrive的method。
8 P( r2 Q; R$ X
1 ]: c& s/ S7 ^' e  z( }* Z9 ]当到达物料速度越高时,这个报警更多,

% ^7 B" ^$ m' H, I& Y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-12 03:07 , Processed in 0.023024 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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