设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5615|回复: 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'
% H) Z# Y) F& c+ w- s) s*/
: L% L! R7 l$ G1 Wis) ~9 ~/ p& m2 i+ n; V& z& Z/ d+ `
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 Q# X2 j0 `; K2 }7 k& p7 T
do- d$ x5 l5 e8 f- R9 [( L- P
        Lan := rootfolder.Internal.Tools.AOLlanguage;# D5 u* C1 f0 e, Q9 P$ H- S
        if current = @.Destination -- else return7 L6 @% s! s) p  I
        then
. G9 \" f! l* q+ R+ p0 b                @.Destination := void;8 U+ B) a0 ?2 v7 U3 U
                if @.occupied then0 [! y/ Z) D7 Y
                        part := @.cont;
2 q; {) Q+ U- j/ j                        @.transpOrder := void;
/ s! i% i' V7 X7 m; |- R                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ ?& F; `, w" t! ^' p                                @,root.eventcontroller.simTime);
1 t( O9 _9 n' ]0 r% ?, C/ ^                        @.HasOrder := false;" j8 o3 ^! Z# x5 ~. ~( B! I
                        @.DrivingHome := true;
( W8 m7 i7 m5 |6 p. c. w% Z2 }) |                        rgManager.tryToStartTransOrder;2 {/ F* i% ^! n$ o# B8 x
                        if @.Destination = void- K7 N# o  m& M% S
                        then -- no transport order for vehicle @, @2 N3 Y9 A5 u
                                @.Destination :=
( h1 b  F6 i; \) t                                rgManager.nearestFreeStation(@,track.~);% n1 c* v  `4 U
                                newDirection(@);   
; r0 F% Q4 D3 G. @, L0 c3 U                                if @.Destination /= void then/ B2 a$ O; {4 q& S# K
                                        @.Destination.NumReservation :=
2 B' i0 m# W5 m1 P5 z) G& E( H                                        @.Destination.NumReservation + 1;7 X: c- d/ W( J
                                end;% `2 j( X( V( x3 H, N$ g
                                @.CurrIcon := "drivingHome";
$ T4 h, w. g0 S* R                                @.DrivingHome := true;
% @' d% o8 N2 Z                        end;
+ ]! C" v$ b1 X" b4 f# ~, \; E                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ L9 |% Y1 T: F  O& T" v                        part := @.transpOrder;
# _: T3 Q: Z1 Q8 V! N' m# J9 ~  T: Z                        part.move(@);-- load part5 O2 r  J2 d) `2 M5 X+ m4 E4 O+ k
                        @.CurrIcon := "load";! v1 {* @# C7 c1 o: [
                        GlobalDistObj := part.globDestination;7 ~5 w" {' F# w; q# e
                        assignLObj := rgmanager.rgAssignL;6 B8 e, `  u+ P9 d8 J/ B
                        row := assignLObj.getRowNo(GlobalDistObj);# M1 q. x0 |2 z
                        if Row = -1 then -- since 70
3 i: b' X7 L% g9 H2 L                                if lan=1 then
) D0 ?$ W# r5 y3 s0 q$ Z7 N                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 B+ _' `2 |/ _; v: V' Q. i8 U4 X                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ ]* g: P& T0 R$ G( s" n+ \' C: Z5 `                                else
3 W7 j5 e: P4 g: H( o2 p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* C5 }1 K, K! O2 B5 e* d6 \8 I                                                to_str("in docking station: \"",?.~.name,"\""));                                - S* |: j1 z* T; ]  B$ a& I, a
                                end;! H8 {0 z$ D' \9 c& s
                        else! F7 y9 U( f4 S
                                @.Destination := assignLObj[1,row];8 Y) a+ \$ {/ x6 I4 b! i' ?6 V
                        end;                       
/ I; `# P7 t5 z8 F3 M) z0 s                        newDirection(@);
6 Y' _6 W" |  `& T8 T( l& l. c                        @.HasOrder := true;; K8 k" `, A/ |' ]% n. x
                end;
+ D; v7 [0 a  m0 n8 U' Z        end;
) m* H& v2 S9 P" d; Kend;        -- of the method
+ c$ x, B3 }) p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & W; |% C$ k, ?6 ^( c" M
5 E, I7 L8 O1 P/ k, g
这是AGV_putin中arrive的method。( e  |+ \, m7 \  [: l

) O. H$ O8 Q. h# }当到达物料速度越高时,这个报警更多," q8 T) D6 n& M! Z9 t, U8 K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; T, I- L* T0 V) j8 [+ W! g, U
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' {2 k  J9 {/ V* n2 q- e7 R" o+ Y* Q) a0 }6 U" L. _
另外一个小建议,就是move,所有的move都可以这样) L) ]# v1 \9 u/ f; u: |
if not move() then debug end
  u- L' R$ |1 m$ @5 g这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 J) A! S" l9 a5 r- P! e
plant simulation中的free libraries有AGV模板,
: u4 p/ e: [. M. I: m里面也有案例。/ X8 y2 c1 n$ R0 K$ G
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ \; j8 Q1 w( J" r% n' w8 Q" y5 ^  [: Q5 h) s3 |: }# I
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 P. [7 R% N; V" l  B6 A
* F) W8 p  c, F6 X
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ a+ x; F" g6 A0 j# A; V5 u% J; P这是AGV_putin中arrive的method。
7 ~) C- A) Y' |4 [! g; t+ a% g0 H% c4 _4 F! _
当到达物料速度越高时,这个报警更多,

6 E# s- t4 e; h  D  P另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-9 07:39 , Processed in 0.032459 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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