设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7567|回复: 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': r% m& ^1 |1 s6 [
*/
5 c) \! z7 y- |is
9 [7 |6 q' ]. w$ u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! Z1 \% ~/ A( Udo& n8 C) M2 k: v! g* y, a4 M4 G
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! L: C9 F) j3 R3 }0 H( g# |        if current = @.Destination -- else return1 k6 m% @8 W0 J% Q1 o: d
        then# C8 G3 u; \* h/ x+ U
                @.Destination := void;( d. C' G" D7 B4 Z. |" R
                if @.occupied then
- V3 V( M" D4 K$ `. D/ i* \) @" l( Z  J                        part := @.cont;
+ R' T* A7 m7 j9 ~+ O/ F                        @.transpOrder := void;
/ E; N. r( l6 H3 a) @8 i; {                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 j% a' \( L/ p2 W% H3 k& _# ^
                                @,root.eventcontroller.simTime);
# y( C- Q" o0 `& C+ S                        @.HasOrder := false;6 `- B7 H  U8 M- V' o& y) U1 g, o
                        @.DrivingHome := true;; L/ J  m2 K/ O' o; Z2 o* ]: Q
                        rgManager.tryToStartTransOrder;; e! u; U! s. i) @
                        if @.Destination = void! ^& J( t' }, j4 }( e" F
                        then -- no transport order for vehicle @: C! [3 X- G/ P3 W$ S
                                @.Destination :=, M3 C  S7 U. Q* _8 P! y
                                rgManager.nearestFreeStation(@,track.~);% h3 h- v+ j1 l$ H1 D; c, I3 I1 P; Y
                                newDirection(@);   
" d7 r- i2 `+ T, t! Q- i3 P9 E# T( S                                if @.Destination /= void then
  A: }- k& s- K* O                                        @.Destination.NumReservation :=
4 P9 {  F  c5 O% W+ i" D( S5 S                                        @.Destination.NumReservation + 1;1 S& N1 h0 b6 Q5 i5 J/ y
                                end;
  J$ O: e& p1 e% n                                @.CurrIcon := "drivingHome";
" v/ M3 |7 B! X7 G9 k8 F2 M7 o                                @.DrivingHome := true;
2 a  ^$ Y+ \+ E9 A" Q. |& `5 H                        end;
1 A; t4 T9 E9 a                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& P' L0 U# j7 [0 K" s* k
                        part := @.transpOrder;7 X. l# g6 i( b5 Q2 U' ]! J; T. Y
                        part.move(@);-- load part
0 V. O' V0 \5 D1 W7 |  ^                        @.CurrIcon := "load";! s; _  r: |; @% w* ]4 G2 B
                        GlobalDistObj := part.globDestination;
! n) Z0 {  Z" S6 h, l8 q" ]5 i                        assignLObj := rgmanager.rgAssignL;# a% ?. x2 o2 u* S! b7 l+ B3 ^
                        row := assignLObj.getRowNo(GlobalDistObj);7 g' _1 Y7 E+ k5 |
                        if Row = -1 then -- since 70- R9 ^1 O" h3 q) f6 S5 w
                                if lan=1 then
' h1 [4 y/ t+ m4 Q( c                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ M( J# M; N4 \/ S5 \# B" W                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! c2 T+ N! J- p& W2 T, L                                else
. \3 F  \+ \( E8 d                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( q$ w' u' l4 x2 X
                                                to_str("in docking station: \"",?.~.name,"\""));                                % f: n& w2 S1 U7 [7 }9 g
                                end;
% f' j0 Q+ T9 m; t                        else
) u/ l2 i, [6 R, z. N: p* z                                @.Destination := assignLObj[1,row];& m5 c6 J/ ]" c- m
                        end;                       
; V" K9 i& Z. `7 J! L                        newDirection(@);+ u: S8 K$ |- p7 {+ c
                        @.HasOrder := true;8 c& {+ x# o% v$ ?' z: D
                end;
7 g% u# O: W# E        end;, `0 w( m% _$ K
end;        -- of the method! W- [+ Y  x: F6 F  b" L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 [2 g0 I; C* H
! B( a7 ^& }4 e. r" d; |. N- E* y这是AGV_putin中arrive的method。
6 t+ g2 o3 x* k0 d- B: B+ ]; ?
2 V2 }% n$ }$ K1 X, `& n& V当到达物料速度越高时,这个报警更多,' {% w/ {2 |: j4 \
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' j$ I" a+ U" a3 K; u' p# e% V8 c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' O- C) }2 m7 k0 O4 I
% C3 i# a% w+ ?2 X' U另外一个小建议,就是move,所有的move都可以这样  H& z9 j& P6 U. V- y2 A4 ~
if not move() then debug end
; ~9 c2 V. n) y7 u2 G5 I2 O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, P* n6 I! [* H3 J. mplant simulation中的free libraries有AGV模板,
% w& z8 ?* p4 k  {3 n% S4 F% L/ Q* x里面也有案例。, A* `; O+ T, D0 y  T  p
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; T5 e8 C  l& Y& i1 X# K
. ?1 A4 S9 Y$ ~& H我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . v5 e3 W" z, B1 t/ z& Z% G

8 O# `  i. B7 r7 k. B那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " y  R, ^, j- N6 V
这是AGV_putin中arrive的method。8 k2 x9 m& f; ~2 z- I  x5 f6 J" M
& _" [9 M, R1 J, b: a
当到达物料速度越高时,这个报警更多,
; M& d) ^+ }6 d- \. U
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-17 23:28 , Processed in 0.014866 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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