设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7055|回复: 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'; B) k  Z; j8 k0 t! F+ J1 |
*/
6 B$ E: c- d; c! T1 ~' y2 {is
! C; F  X0 y/ L! Q. s  e* E% r4 Q1 N        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 l7 \, B! u* j& \& ^/ Y) }do5 g2 u$ I9 ]% \+ b4 P
        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ e# g) C6 A( N5 l        if current = @.Destination -- else return" D. N0 y$ t4 F  f5 H1 b$ X
        then0 S- p0 v1 T2 f6 p" N
                @.Destination := void;
2 t. O3 P# ^0 g$ l& m5 U                if @.occupied then) {: f5 ]6 X# K* C
                        part := @.cont;
' L' b! _% m1 G) [. s' n                        @.transpOrder := void;9 S2 N5 i; y# ?0 h, m! j. k% P
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  m5 d/ |3 f% Z, P0 Y# X2 `" N                                @,root.eventcontroller.simTime);* V: {$ s: f+ g
                        @.HasOrder := false;
4 ]* T* z- W; Z8 P4 j$ w                        @.DrivingHome := true;: H6 ?5 |, T" t5 y
                        rgManager.tryToStartTransOrder;
; F% e" J3 f* i: A$ X8 a9 P' Y                        if @.Destination = void
* P' {0 @1 H1 _& v                        then -- no transport order for vehicle @
) S: w% P# x% }/ w3 P                                @.Destination :=+ X" e. L1 e8 b" v
                                rgManager.nearestFreeStation(@,track.~);
: Q( y& L0 T# g0 j' K                                newDirection(@);   
( v4 T8 {* ^, J                                if @.Destination /= void then; \, s2 g0 X9 P$ z6 Z
                                        @.Destination.NumReservation :=
3 v4 _) H9 A; ]4 ^4 V. H( P. ~) o7 w                                        @.Destination.NumReservation + 1;+ V8 Y2 x! v- O2 p* B
                                end;
- Q# |- I9 }$ J3 H) _+ Z# A                                @.CurrIcon := "drivingHome";. X, L9 y6 B1 |! ?' H. c
                                @.DrivingHome := true;7 Q  R8 w& Q5 z
                        end;
& x( q# b; g5 J  a, B                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 I. ~  F: u, M1 w& }7 v# ~( u* T
                        part := @.transpOrder;
& Y. }: [4 O' f: H" y% I                        part.move(@);-- load part$ C  C& z' Y  {$ _
                        @.CurrIcon := "load";
* L+ `. ]3 {. I                        GlobalDistObj := part.globDestination;; `% A( o! K- z0 t
                        assignLObj := rgmanager.rgAssignL;
8 K- [9 B) p  c/ {7 H                        row := assignLObj.getRowNo(GlobalDistObj);- @0 V0 D- y5 @
                        if Row = -1 then -- since 70/ c! y7 l+ c/ n+ K% M# u4 I
                                if lan=1 then; \# y' f  @$ T& o
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% r9 K0 D: r. C/ Y  P9 T                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 X. h3 f6 O5 B
                                else
) }1 d+ m9 b  o/ ^" U                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 B# |& V8 ]! ^
                                                to_str("in docking station: \"",?.~.name,"\""));                                % C: o7 D+ M, C- e! z
                                end;) ]8 Q$ B5 q+ U, W# g
                        else
* q  P; S( m; t& D9 p) D, E: E                                @.Destination := assignLObj[1,row];9 {# g" f% C0 t& n& j
                        end;                       
; \: B1 W: l( P$ Y5 e* z                        newDirection(@);
% u) ^, S) v+ Y" f; }                        @.HasOrder := true;/ H" l, f3 g1 C) D
                end;7 v) W; K8 _+ O6 S
        end;' ?1 l% S: [, y" \% _
end;        -- of the method0 z- c3 }3 `+ A& @  M) J# r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " ~- c5 S4 Q. a4 h: H
6 U& O9 @/ \6 m/ p+ u% i; u# `( B  p
这是AGV_putin中arrive的method。# l+ N0 a3 B. a

! a: e& T# Z; p2 I+ L' I当到达物料速度越高时,这个报警更多,
/ [2 c3 D4 X" G5 x可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 P+ P: p3 Z2 d1 C- S2 t. Z5 U# b1 \' N
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" C* i  a( ^' I% ]7 c1 s. m
& C8 `* K' a+ @' {另外一个小建议,就是move,所有的move都可以这样
2 ]6 h5 |2 F& z1 o% ]3 y- \( D; tif not move() then debug end
5 ^. r9 {& \$ n4 V% R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ H  `: i* t- \& V8 W6 |% V
plant simulation中的free libraries有AGV模板,
1 b( V4 ]# C" _+ S5 s2 h% l" [2 T里面也有案例。- k3 Q% m* _. T% u. @: v/ Y
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) q$ e8 b* N( T0 B. o) \4 {( w; U
& @" @* a" e- z- m8 p8 M
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( {: W  y; q, W5 K
5 _* z; N9 ^5 l' m4 v( p那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 y* f3 U, b9 s- f6 V( M  ?这是AGV_putin中arrive的method。
) N) R/ S% v. \/ T
( T0 Q1 N! U  t* s2 E当到达物料速度越高时,这个报警更多,
* ^7 A* ^& v! _! z6 C0 `
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-13 22:16 , Processed in 0.020288 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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