设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6613|回复: 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'! N3 Z: b, n& V% @' ~( K) s! Z2 U
*/5 Q$ J7 m- ^3 e( y
is
5 c1 @7 [5 i( a% g- @7 W$ P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" y& `; z1 D2 \6 n! v8 Wdo
% g  q( N1 b" M& F) y  N        Lan := rootfolder.Internal.Tools.AOLlanguage;1 X( p1 y1 V  B: t/ P
        if current = @.Destination -- else return
7 J) v! V4 @+ p9 {+ N        then4 p* U- v6 k: C8 z; D7 I
                @.Destination := void;, w* B. \- |) C: R9 R7 a0 T
                if @.occupied then! P' `5 h% `, g/ a  t3 ^; y
                        part := @.cont;) [  p* C" \" o. s' h  v
                        @.transpOrder := void;5 z+ q* q+ q2 K3 h6 i( o
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: @8 u& G9 _3 K# _; B) [/ j
                                @,root.eventcontroller.simTime);% D0 v$ m. y# L4 {$ {
                        @.HasOrder := false;
' _5 V( U: V. M% w                        @.DrivingHome := true;
& b# u4 e# k8 U2 U7 B                        rgManager.tryToStartTransOrder;4 E8 R, w7 P" `- p
                        if @.Destination = void
: c+ l& ^% m; q9 `" ]; `                        then -- no transport order for vehicle @* W% Q: S5 ?. X$ d# O
                                @.Destination :=2 D7 N  W9 J+ }7 @
                                rgManager.nearestFreeStation(@,track.~);
/ v5 S( S* d9 y3 T8 q0 I9 s                                newDirection(@);   ' `: E+ J% f; k3 E9 @% H3 N
                                if @.Destination /= void then
1 M' N) o" D# Z: F3 H                                        @.Destination.NumReservation :=/ l! f" R( ]( D# Y, D4 a. z
                                        @.Destination.NumReservation + 1;
8 l# }1 }4 @- g                                end;
, C# `/ [5 I# I' b! i, h% w) e! g% r                                @.CurrIcon := "drivingHome";5 B6 R, b: c% F
                                @.DrivingHome := true;+ y3 P; p) t1 a+ ~' E2 q
                        end;
7 p$ e- H" B; N/ y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  C4 ]  o6 \" z% p7 e: Z; Y                        part := @.transpOrder;
: g& ~+ h6 L  R6 r                        part.move(@);-- load part
8 U- S4 v; j' |+ Z# d* h                        @.CurrIcon := "load";5 F# N# l1 E, h5 c, Y- R
                        GlobalDistObj := part.globDestination;. G  W1 H0 s) \) J0 j+ l
                        assignLObj := rgmanager.rgAssignL;
# X' e: {1 ?8 ~9 p. I! f                        row := assignLObj.getRowNo(GlobalDistObj);
, C1 i8 o0 a9 J8 g' ]- i                        if Row = -1 then -- since 700 I' \- z7 h1 N: s5 r! B
                                if lan=1 then* Y8 y* R% m7 ]" A8 U
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ I5 I, ^" ?: Z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ Q2 _; n6 |3 ^$ }# q* \
                                else/ P) X3 C  ~6 e
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," S% |. J( w3 j* @* r$ ~
                                                to_str("in docking station: \"",?.~.name,"\""));                               
* W4 q7 T: ]" s3 W" P                                end;( g& r6 V, s1 h
                        else
8 S2 o) L7 o8 x2 Q2 ]                                @.Destination := assignLObj[1,row];( S3 @0 z# m) H& C/ s% E& A, g
                        end;                        : I$ X3 F& R/ X5 I* \, e* u/ `" E
                        newDirection(@);* U1 E1 v0 u- z" c
                        @.HasOrder := true;
7 ]7 @2 W+ ^+ s                end;
) r, \1 u, r7 y+ U6 t- @& A        end;
$ R: h4 a- d+ Q4 f" [% I" f. ~$ W% `end;        -- of the method, r  v' d: ?% V0 @! J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
0 L- F' r; Q# Y- Y- C$ u" _9 R
这是AGV_putin中arrive的method。; T$ g4 M: T4 M4 q
) b( ]& x8 _. i4 N) {9 Z
当到达物料速度越高时,这个报警更多,3 j0 x+ n! h9 Y0 g! H
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: A: C9 v. M0 W* [程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 J# ]  }, S0 b4 O/ {: X6 ^

, h% O( L" ]0 z8 ]2 W+ _4 X8 k另外一个小建议,就是move,所有的move都可以这样: {9 }0 v, N- f# M: Y- Z
if not move() then debug end  a5 k, l4 z0 @9 h1 n5 b! o
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ \. D5 i! \. K0 L
plant simulation中的free libraries有AGV模板,& |5 [9 m4 s8 M& \9 w6 @& f
里面也有案例。8 P- @/ {4 O; D" T, p5 M# b) D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ X4 m% z$ ^: ?$ b& E2 ]
! T& r9 ]- @1 G6 o% n
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& ^5 A8 g& N# P3 B( k! w; r% M: \2 S
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! C2 }( K# Y$ m' Q: u这是AGV_putin中arrive的method。
% w* }* O: U) o5 K: T# @9 {+ i7 d& g% h, F  R- m6 `& h7 Z
当到达物料速度越高时,这个报警更多,
+ ~5 ?7 v! z% \7 Y& E/ o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-16 07:14 , Processed in 0.020230 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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