设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7694|回复: 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'3 ?# N/ Q  O+ @
*/0 {4 Y1 q" ]" }2 }
is# ~# ]3 l% T0 G, A! ~8 [4 S0 D
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" }9 y/ N# k  X3 t5 R3 s* r6 ?: E
do3 g1 l  H9 D0 V5 W. Q
        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 d$ i0 w" m1 v, P        if current = @.Destination -- else return
1 z7 _7 R4 W# {/ O        then
) {. }5 N# d! k0 x4 [/ x  d& F; O                @.Destination := void;
( F' a5 i/ Z' l/ ^                if @.occupied then/ O/ @3 Q- e% |' e2 [% ?
                        part := @.cont;% F# @. T; X2 p( y( @
                        @.transpOrder := void;/ u- T$ \% y- A+ @% o, n5 T
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) |4 L3 x: |  ~! v4 p: }' a                                @,root.eventcontroller.simTime);
& t/ t2 v* H( o8 x! z3 Q  L                        @.HasOrder := false;
0 b* S4 y7 w( V+ e5 w- [$ n0 v                        @.DrivingHome := true;' [. u. T5 m$ s' ~
                        rgManager.tryToStartTransOrder;
! V, B8 \/ M( \: k* J* C                        if @.Destination = void
' ?, V2 l5 U* x) z$ I1 n                        then -- no transport order for vehicle @% s+ n* u6 S  ^+ X8 z% w7 `
                                @.Destination :=3 u( ?- `4 @. M" T6 U/ ?  f* U4 @
                                rgManager.nearestFreeStation(@,track.~);
- O5 V7 H, v$ t/ q) x4 Q                                newDirection(@);   
- T8 Q4 N& ~: q# A2 ]8 i9 l                                if @.Destination /= void then
! z8 r$ T# I- c# ]7 y1 _7 P3 h6 L                                        @.Destination.NumReservation :=
+ {0 M* Z* R- J( i3 P- ~1 j$ N+ ~1 s# K) y                                        @.Destination.NumReservation + 1;
/ X( R9 E" B# b& f9 p9 @                                end;
& w/ b2 l; O( _. \' L+ @                                @.CurrIcon := "drivingHome";
8 J: E& e: b: b) |4 g, Y" A4 \5 _* @                                @.DrivingHome := true;9 u; c3 T5 k6 @
                        end;
7 @' a4 X' A# u4 b; x6 W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) ?3 {" A! C: H% W7 A9 {                        part := @.transpOrder;8 b5 f- y, R, b9 O. ~
                        part.move(@);-- load part
& m  b5 g  l1 e7 E2 M4 y8 Z$ `3 p0 z8 g, _                        @.CurrIcon := "load";2 _8 p2 k3 u$ p) n( n0 X. X
                        GlobalDistObj := part.globDestination;
1 B2 D8 p/ _$ a" @4 R                        assignLObj := rgmanager.rgAssignL;
& Q6 {3 Y) `) G, S" F* M                        row := assignLObj.getRowNo(GlobalDistObj);8 G/ r% c, S% t  n7 I) c
                        if Row = -1 then -- since 70/ U) E2 x& n& F+ Y8 B0 X
                                if lan=1 then# f1 J2 X7 u2 O' U( K. H- u! }0 a
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* H9 a  t! @, n+ [$ Z: U- V: \
                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 G0 O, ^8 q" ~" l0 E
                                else
; W+ b1 g4 f5 f                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  E# k. r, Z3 e7 k                                                to_str("in docking station: \"",?.~.name,"\""));                                8 W3 w) n. h7 X! x, l5 u9 j4 W
                                end;
; d' f7 W/ z) C- r  h9 g6 v6 }+ A                        else
, {* C, c3 a0 [3 d9 E% O" o1 I                                @.Destination := assignLObj[1,row];( d) h, R- H& q4 `/ b6 Q
                        end;                       
8 w. Z$ G; Y% t) Y; H                        newDirection(@);
+ h( B9 Z$ o* L' N) u' i                        @.HasOrder := true;
2 _2 |: V" I  B. X: m7 w/ ~( X% x                end;1 G, j( k- T8 O/ f
        end;
2 t+ G/ M$ S) W8 {* G, ?) Wend;        -- of the method( ~! B6 ~4 c  R4 T% i% Y6 c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " D3 J% g0 |- b" X3 y' X
) a, k4 S1 t& ]9 v3 c
这是AGV_putin中arrive的method。6 Z/ s9 d9 o8 `, C# c8 R

8 m6 ^2 w# o1 S当到达物料速度越高时,这个报警更多,
$ f1 ?. u/ F% I可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" [# u- k" X& ~程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! Z' s! Y) Y/ {+ m7 H' [9 X8 ?) W

& Y3 \' ~$ Q) [0 W/ c另外一个小建议,就是move,所有的move都可以这样( W( o( l1 K% P( S6 J1 ~- l! E7 k( f
if not move() then debug end
/ _8 o- X% J4 k5 Y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& p  K& g! Q( g3 D; Z5 B
plant simulation中的free libraries有AGV模板,
) I. e0 L" Q9 F" `里面也有案例。; I8 ^1 N/ s( ?) K
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% ?# ]4 f  ?9 R+ x% [8 Q8 r( Q1 w6 L; f$ |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 4 y, j' S& Y3 |/ d, f

, g3 P( ?7 J! F  R: H那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% O: g( l$ N7 R; o4 w+ v. X( q! ^这是AGV_putin中arrive的method。
' a, F5 H( z; y% b0 ~% Z
( c( f. l9 l2 p" @% R当到达物料速度越高时,这个报警更多,

+ f) a) L; d. F% L$ s另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-24 16:51 , Processed in 0.023342 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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