设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6006|回复: 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'0 f7 K7 X: \: a8 `
*// p& u, U9 O+ j. l3 [/ p1 g) ]
is. M$ S  \# `' S2 L# A
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 |; N' e6 U3 r5 R
do
7 M3 G! o, n' v$ j/ h7 i        Lan := rootfolder.Internal.Tools.AOLlanguage;: U, _# F; _2 P7 @4 ]7 \" v3 O' d$ v
        if current = @.Destination -- else return7 C) g7 {2 v. ]" f# h3 f6 l4 o
        then
' M: f, h6 W5 X                @.Destination := void;
3 _' s8 [$ Y% f6 d                if @.occupied then
! i  C4 Y3 N3 E6 h- E  d                        part := @.cont;9 u" T: Y5 s; i5 Y
                        @.transpOrder := void;$ H; |! S" E+ V3 j
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" I1 P( ?: a. i3 E2 u# c                                @,root.eventcontroller.simTime);
* _. `( {1 r& b% Z; l8 m; l                        @.HasOrder := false;* a6 q5 m  t, o
                        @.DrivingHome := true;
' R* O5 h: I- W( Z- f" O' E  s                        rgManager.tryToStartTransOrder;
1 z, b+ X) ?" n8 O                        if @.Destination = void
% S% e: r1 O9 `+ G5 W                        then -- no transport order for vehicle @. q5 l; X0 ^! J" b
                                @.Destination :=
8 B6 p0 w5 |7 Q+ M* i                                rgManager.nearestFreeStation(@,track.~);
6 X! @* P: r7 P8 W+ S' O) v1 Q* C) D                                newDirection(@);   0 |: v" D( i# @4 x& j
                                if @.Destination /= void then# t* F% f" F2 e, D4 z1 z3 N
                                        @.Destination.NumReservation :=
' L; A" I- |$ v+ d                                        @.Destination.NumReservation + 1;/ T0 O- S1 j, u
                                end;% s/ Y! @3 w# G* d2 i
                                @.CurrIcon := "drivingHome";
1 M0 M( X0 x" Y1 T                                @.DrivingHome := true;. y7 }: L, a6 q( x/ J
                        end;# |% B* q1 ]# k: F# y  b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; G! F+ `5 x. L; ^' d# U7 L5 z2 O                        part := @.transpOrder;$ S0 r8 z3 n6 K) E; D
                        part.move(@);-- load part2 d" A4 V/ n# F3 M! Z
                        @.CurrIcon := "load";
5 \3 R) u4 C. P: h% `, ~! ~  |+ Z                        GlobalDistObj := part.globDestination;/ y$ T( ?1 z9 m3 [
                        assignLObj := rgmanager.rgAssignL;
3 E* D  \8 Z: r, }3 L( i; V                        row := assignLObj.getRowNo(GlobalDistObj);( r, @' O8 K9 _4 i/ _: e' d7 m8 Y
                        if Row = -1 then -- since 70
. Q! n% U7 W- p% f! k* J                                if lan=1 then% {# N# o0 D# \3 I6 U& H
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 p# ?; ]( P# V2 Y: C/ }4 T
                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 `3 y4 l% V8 M( k
                                else- Z: I# G; }" m0 a9 O  S2 d& @
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ H3 t* r/ R0 F4 @
                                                to_str("in docking station: \"",?.~.name,"\""));                               
: Q# y# s' M* ?0 L                                end;
+ b" T& C* Y2 Q                        else
7 I. p+ w5 s! M& _0 P6 [                                @.Destination := assignLObj[1,row];: y2 h, U/ ?0 M4 \
                        end;                       
  }  q9 k5 ]3 v2 b& ~$ @                        newDirection(@);, k* N. G# V: m" T
                        @.HasOrder := true;
: M( p3 D( X& o  ]1 J                end;
4 N* S: `/ M2 G9 D. \        end;
+ v/ t4 S; v) I% f/ Send;        -- of the method
4 f, w( R4 ~& n  S& a5 u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # \2 G2 l# Z: C1 |5 }  V& h4 p) a

2 U: B6 r4 W4 y8 m6 m9 A这是AGV_putin中arrive的method。
- t& n7 ?- Y* l2 F2 ]& C& W9 y# {% i4 d0 D. ]
当到达物料速度越高时,这个报警更多,
* C; d, }- F" D7 G可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# {9 B2 j4 C1 w7 n1 ?6 ^: V! U: \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( V% k& R$ }0 L1 v" e$ q/ F
$ M& b; K* a9 }  ]3 ]& ?
另外一个小建议,就是move,所有的move都可以这样
1 x+ a3 X6 r9 w$ _4 L' f* Zif not move() then debug end
8 t6 Y+ d9 i" p! a( R5 F' X这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。- n9 u( p3 j9 t7 L; ?, o& H$ o
plant simulation中的free libraries有AGV模板,
8 S$ o/ W# x0 v& q2 T0 R# p里面也有案例。, e% w: m& ?" _3 _6 w5 S- z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( P) r* Y2 U6 S' R! h5 ~  X4 S! ^, \

& t+ f- g6 r, I% @3 K我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 t4 h6 E# B) y3 |! N  u" Q8 W+ n. q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 m$ t" E2 a% b  ?. M
这是AGV_putin中arrive的method。+ v$ ?; U7 H" ~/ P% z
+ a. ^# Y7 O7 T. y& e2 j3 o
当到达物料速度越高时,这个报警更多,

7 ?2 o, J9 V8 R- |# e; R另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-12 15:08 , Processed in 0.022592 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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