设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8187|回复: 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'" j' ^$ A' ^" n* X; H7 v4 I& r
*/
$ n8 A8 I. m+ K. q' \$ Q# sis
) Z/ T$ q+ r* X5 S/ v7 }        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: s1 N( U6 C7 h- F! gdo
; F$ v+ W' u# a: p0 {0 f% N% F+ C4 Q        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ d8 d# Y/ F3 i* R2 p( h        if current = @.Destination -- else return. [" Q8 U  f/ ^
        then
, @% O/ t; T9 r$ D4 {4 d/ D                @.Destination := void;
2 N- A( y8 }' Y                if @.occupied then
- F( I0 k2 A5 E' M1 \                        part := @.cont;
2 B; d: d- y) i* q3 L5 J2 ~                        @.transpOrder := void;
! T$ {1 Z7 D7 j# `. Z2 f" W                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 s5 f+ e6 p. d2 C
                                @,root.eventcontroller.simTime);5 z5 D1 f+ M5 `- Z
                        @.HasOrder := false;. Z1 z  Z1 p, D5 U- K; X
                        @.DrivingHome := true;
+ S# i" B8 s4 y, i8 s# `                        rgManager.tryToStartTransOrder;2 |8 b8 g% p) L7 `
                        if @.Destination = void! d  _( X* z2 U+ C7 k% {& p. X# z
                        then -- no transport order for vehicle @7 ]0 K, t, E( T6 ~, A! l# {1 R" |
                                @.Destination :=
2 v% x9 {' T+ ]% n) p0 n* Q                                rgManager.nearestFreeStation(@,track.~);
" i) a' l2 e$ C                                newDirection(@);   
# a4 F# s2 w  m3 E8 j( c$ u$ _                                if @.Destination /= void then+ ~: y0 l. |, p# ^# V" @
                                        @.Destination.NumReservation :=
; {  l; D$ v. x7 e5 }2 ?1 W0 X                                        @.Destination.NumReservation + 1;
% l# I' a2 F1 j& T' F. {4 U                                end;
' I* {2 y0 ?. z6 N& S& o0 Z: m- y, \                                @.CurrIcon := "drivingHome";; ~; s" [% J" L2 W
                                @.DrivingHome := true;
1 s/ a6 {; z- K2 i1 X  W                        end;8 ?( i% ~% @  t- t( w  _/ Z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 J! g4 j  M. a" M) Y                        part := @.transpOrder;. _1 s: h) o9 V+ [  [/ T
                        part.move(@);-- load part! ?0 d; J; U- x
                        @.CurrIcon := "load";% q% ^! b7 O: o2 @% t
                        GlobalDistObj := part.globDestination;
, E# ^, s" o) g, _' m                        assignLObj := rgmanager.rgAssignL;7 f" E5 u5 y) x" n7 I/ u! D3 H
                        row := assignLObj.getRowNo(GlobalDistObj);
- i* C6 E+ `7 U% E( y                        if Row = -1 then -- since 70
0 ^5 [5 U9 _. L5 B, {' P                                if lan=1 then
# u" J7 N+ h) D; \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ S% W& J+ T, r                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# S3 S9 F5 D7 U8 u                                else
) W, q5 e; p% Z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" X& z* z, @) n1 W& y                                                to_str("in docking station: \"",?.~.name,"\""));                               
! ?* T, l, t- m. l5 e; p( D                                end;
; |) Q9 n3 O/ ]9 _                        else
, T5 F& k( f( S7 @$ X4 e0 F                                @.Destination := assignLObj[1,row];
) S  R$ H: s0 M# z7 R) v                        end;                       
! u- S1 C  {8 t1 b. N0 l  I' S6 D                        newDirection(@);& R, A7 U* q2 O' x5 F
                        @.HasOrder := true;9 F6 C2 \* U$ ?2 u  f+ a# [
                end;
* G- U$ B2 t0 b( y7 a5 ~5 F        end;
. |1 i  U, P# z; u6 E' Hend;        -- of the method9 k# ^# C- q" N' X( @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 \$ c' x, y# A, ]

$ F7 X; \+ Z) R& j这是AGV_putin中arrive的method。
# F- N( l9 [1 q9 z+ P& }% y& |8 ^7 z- P0 @' T/ l7 P# K
当到达物料速度越高时,这个报警更多,& C6 ^+ b( a6 Z; O* i( E4 c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* N4 @& w# z1 Y3 G  n0 n9 |程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 t7 J" ?/ a5 P& M, Y0 E
1 d. {" `" E) @8 \  h8 s
另外一个小建议,就是move,所有的move都可以这样
5 E' {) I* w4 ]5 {5 R9 oif not move() then debug end
* d; e# G- a: e这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% j: V6 j3 z' G1 r$ G8 U) j- ]plant simulation中的free libraries有AGV模板,3 v; t8 _- }( K, g& `
里面也有案例。
* C% ?# |# P% q/ s+ z0 l我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, s. g0 w' e1 ^0 N
9 A  s* e7 f8 t" B) ]
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 B! ~, m8 t! D/ ~& Z3 m$ w0 e( U; B# R( y# a" j" X) L6 Z5 @
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - b1 v' @# r( P
这是AGV_putin中arrive的method。
( c6 W, F0 H7 M1 e' N% Z+ Z
' q* t5 H; H* A; v, X& F8 ~当到达物料速度越高时,这个报警更多,
& E7 l0 Y7 w5 R1 _$ E# y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-19 19:34 , Processed in 0.018035 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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