设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8582|回复: 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'
1 c' i9 ^0 |( i; u+ k- W*/9 d  T3 }% W: h0 d( D3 ~" X
is6 }' h" {3 e% b0 a$ K5 e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) {+ Q9 }0 W+ x% u0 {do" f, @) u/ r! {: ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 ~/ ~3 C/ P% `: _( h        if current = @.Destination -- else return
# r1 ?8 A" v9 D/ }        then/ i" `0 F3 p7 v# }, g. W& [8 x
                @.Destination := void;
6 l) i8 j; Y* V* N                if @.occupied then
7 c# M" R6 _/ Q& O                        part := @.cont;
; S9 V" Q* g4 o8 A1 b+ b                        @.transpOrder := void;7 @4 ?/ j/ W* I
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 W8 q5 |; w; R4 {9 |% C                                @,root.eventcontroller.simTime);
7 _. ?$ Y+ W& M# I' o                        @.HasOrder := false;
& D; L6 p# W) {                        @.DrivingHome := true;$ h8 a0 _3 Y1 h5 s
                        rgManager.tryToStartTransOrder;- \  S7 ~; L9 O7 S7 R2 x
                        if @.Destination = void( E) V8 y$ M7 q  y) K3 }$ R
                        then -- no transport order for vehicle @
4 l$ x9 r5 p/ s+ a5 f+ e                                @.Destination :=
  @3 @+ |: p9 D6 }7 F                                rgManager.nearestFreeStation(@,track.~);  |7 h9 C) R) ^
                                newDirection(@);   
4 e  E' |5 p$ \                                if @.Destination /= void then; x3 w9 i- Z) H* J3 A+ f, M+ a
                                        @.Destination.NumReservation :=
* C8 [/ U0 k( p. u  z                                        @.Destination.NumReservation + 1;  A7 Q) ^" ~+ Y3 q
                                end;1 H/ n6 w" v$ {0 V  g0 J
                                @.CurrIcon := "drivingHome";- C: \/ c& O3 {, U2 t- O
                                @.DrivingHome := true;
+ {1 V7 q% H& k7 y( S0 y                        end;3 p; A1 {' q. d: L# Q3 q8 R9 m5 N
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ R# z& b& C4 _5 [
                        part := @.transpOrder;
& {  G4 G0 ?2 a  v5 k                        part.move(@);-- load part
. \" Q0 c% v( }# @+ `                        @.CurrIcon := "load";
$ x1 i4 Y3 Z9 u! _& D8 @' g1 L                        GlobalDistObj := part.globDestination;  C6 c5 x# N1 R% Y0 `) S
                        assignLObj := rgmanager.rgAssignL;$ L) ]$ Q/ K8 I. u1 i3 ~
                        row := assignLObj.getRowNo(GlobalDistObj);9 J' A8 \5 W; U  P  p4 z9 r6 F6 S
                        if Row = -1 then -- since 709 ]! C+ ]( W1 I" M1 f$ V  Z& Y  D7 A
                                if lan=1 then$ m+ L) g6 }7 ~: {! ~0 ?
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& t/ Q* v% r5 R1 k/ w                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 K' @! S& b, Y  X                                else  J% q- A+ y) X( l+ u- P0 b6 j
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& V) f/ D- o% A, I# _+ B                                                to_str("in docking station: \"",?.~.name,"\""));                                # d# v2 l$ Y. G% `
                                end;
/ U3 ~" v+ k4 {" `" y5 H0 U                        else" P' e3 B& C' g0 A3 E& R5 Y
                                @.Destination := assignLObj[1,row];8 M+ v' D5 b6 z% Z7 `0 o
                        end;                        5 _: F: m& ]! w% @5 \( H; Z$ u) [5 S
                        newDirection(@);
( p3 H: m- ]% S4 T                        @.HasOrder := true;
* p6 t# ^8 i/ a- q6 \$ E" G. u5 z3 z" n                end;; G, \. o( [( k
        end;8 q8 ~8 Q) ~1 t" v8 T% H  t
end;        -- of the method& l: r) Z" [9 Y( ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . v, s3 Q( D: t

+ W9 o* X; ^, u' Y2 A: f. ^+ r* r这是AGV_putin中arrive的method。5 W4 p+ R9 h: t" F
' K9 @+ Y; ?! b" G! T6 u
当到达物料速度越高时,这个报警更多,0 B4 @0 Z% Z' T* F6 k" c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* u9 m' \( R" [* n程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 ]$ R9 \7 e/ ?& a3 X$ L* J8 p
& a6 C, g$ _; B- ~# z; Q" u4 d( E- y另外一个小建议,就是move,所有的move都可以这样
' Z" v/ W! l% e7 uif not move() then debug end
! c9 j1 J2 W7 _5 n  l  d9 E8 B这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( k6 x: i+ ]/ P2 y! ?) i( @
plant simulation中的free libraries有AGV模板,
5 B+ a3 w' C# x9 O7 C0 G里面也有案例。
% _  f, G6 J) C) X我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ ?) M: ~' `3 u) H. t0 J+ r: T+ h+ \, U$ K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 |% @6 n; Z# p  m+ e. p
9 f4 s5 W8 a7 T# _5 }& u, n
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - ^) [3 L) v1 N& I
这是AGV_putin中arrive的method。
8 |# f- L0 [( e
, Z) e7 z% _+ a7 W7 C3 l7 M8 F% M当到达物料速度越高时,这个报警更多,

  k/ J* c. l) U' E3 b另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-13 11:13 , Processed in 0.015942 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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