设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8981|回复: 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'
8 `+ f+ `& Q. i4 H# @7 `/ Z*/& K  w4 L1 G: z' ?6 Z# l& \
is3 ~6 {5 {* K6 h5 g
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; E9 l) o% `7 \# d1 `& a
do7 a  ^7 A% {$ L$ i9 i/ x: L% _
        Lan := rootfolder.Internal.Tools.AOLlanguage;7 i; U* S! p' B( U
        if current = @.Destination -- else return# x" c% ]6 X3 X( j) V' e
        then
% `& U1 g  n' E  k& e1 k                @.Destination := void;
) v! P2 e. S; B) e% d1 q' R4 l2 e                if @.occupied then
1 Z5 D( u# |2 E6 P) J# R; i9 L                        part := @.cont;
9 T1 N0 l0 K& h* ^9 X( H                        @.transpOrder := void;
, ]$ p- q6 S; V3 H1 _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; Y6 z7 Q* I2 g8 {' t
                                @,root.eventcontroller.simTime);* n" G9 _2 _  F; ~5 u, s
                        @.HasOrder := false;+ M1 H  m% b6 ^6 Z, p/ U
                        @.DrivingHome := true;2 u; R, ]; ~, G8 ~' P2 n
                        rgManager.tryToStartTransOrder;
5 F6 T( R: k3 n4 f                        if @.Destination = void1 Q. f% l; ~# H: m
                        then -- no transport order for vehicle @- U) s* b6 V4 W6 p+ }. d
                                @.Destination :=
6 g, w1 H" C& c' L2 }                                rgManager.nearestFreeStation(@,track.~);
5 ?3 N. g3 m* t* K* P8 J" R                                newDirection(@);   2 [* G1 T  U( L
                                if @.Destination /= void then! V" _5 J: P+ W8 w% _% S& s
                                        @.Destination.NumReservation :=0 |0 Y' c9 J8 G8 Z
                                        @.Destination.NumReservation + 1;
0 k1 C& n& @" `' y) u2 _                                end;/ E4 o; Z9 f" q% K2 C% C
                                @.CurrIcon := "drivingHome";& R: c& _4 J% T5 T, _- k$ W4 ~$ i
                                @.DrivingHome := true;
0 d3 a( K' S, a; Z. N                        end;7 [% W* i4 W$ a7 @* Z+ n6 b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 y+ p! R& O' E/ a2 q: B/ b                        part := @.transpOrder;
" a% i  }+ ^, J, \" K1 j" o                        part.move(@);-- load part; r2 Q7 I5 P/ F  ], ~
                        @.CurrIcon := "load";; n* E+ p- O6 B9 U0 ?8 Y# v" f; h+ E
                        GlobalDistObj := part.globDestination;
+ Y& l7 l6 u9 W7 c/ P3 x) B8 f" d                        assignLObj := rgmanager.rgAssignL;9 P1 @" O, w% ~0 \  M* K* p
                        row := assignLObj.getRowNo(GlobalDistObj);
% w$ i  S% m, {                        if Row = -1 then -- since 703 x9 ^+ D, Q; U- p) z! q
                                if lan=1 then
& j5 t4 |9 q+ \, s                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( \% T& N) K! A6 w) v, ~) ]
                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ {  ~1 d" Q/ |$ z% _7 w
                                else: I5 @0 i; h' A& |; X9 l. m# ^/ ]
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' E9 N! p' t* C& [3 [3 I                                                to_str("in docking station: \"",?.~.name,"\""));                                3 H7 t$ W5 L+ n9 X5 E" G; j
                                end;2 E$ w& F5 G" v! g# d+ [5 c
                        else
; b: B1 ^+ q, v. Y% a- R2 g                                @.Destination := assignLObj[1,row];
- p: o9 K) ]: q7 G% I. k4 @                        end;                        0 V- @5 C: E. V8 M! I. p
                        newDirection(@);' Y- o% P% I" y8 E" ?/ l
                        @.HasOrder := true;
, S$ S  O0 A$ N( B0 f                end;
5 S1 e+ D% k  q  t5 \0 v0 I        end;4 z& }! \# l1 N! ~
end;        -- of the method- g8 `% r4 W9 N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( e7 I) O( \8 \+ k) i' O
% r: n* R& `0 _9 q, M1 L- w$ ^1 r这是AGV_putin中arrive的method。1 s9 Y8 u! p% [+ s' x8 g: y, ]
; F4 l& t! q' `
当到达物料速度越高时,这个报警更多,
+ ~8 l; r( ~9 e! g; m# x; I4 O  C6 N) q6 B可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) E! X, v- T' f
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  ?. M# G; n, J5 Q

, y/ n  C  v$ Q另外一个小建议,就是move,所有的move都可以这样
: H. y  N% m. @5 gif not move() then debug end
2 A2 u1 \- w2 |& W0 X# Q" ?这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; Y0 V- o0 E. x4 u) k) S* M3 }: d5 fplant simulation中的free libraries有AGV模板,' m2 e$ v$ M: |
里面也有案例。$ Y; x9 V  l9 c3 N7 B
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; A. ^1 U6 u* r/ [4 ~! n
9 b& X: k9 j7 K' S) s* z
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ q- G  U% N1 F/ Y: K0 t

* g* T7 R. w2 N) C1 e" T那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 z( N$ f4 t  }4 L: J0 R. V这是AGV_putin中arrive的method。
6 z9 \9 Y, M2 W# K. o; ^0 e( B
/ R% c# z) z& O, |) o) q8 n, Y9 b$ S3 K当到达物料速度越高时,这个报警更多,
2 r# Y! Z5 D4 G6 |
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-7 09:38 , Processed in 5.162255 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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