设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10106|回复: 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'
) Z) c% B: i. }$ `* O  E' X% z3 d. P*/4 c; d* ^' |. t8 \! f4 r6 X/ Q
is
0 k1 O/ \7 Z. G) [7 x1 P3 U        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 D% d$ Z% Q: _, n2 Q$ edo. y4 j8 I% a% y& o) P( A
        Lan := rootfolder.Internal.Tools.AOLlanguage;9 i% l! y) B' G- E' J3 D6 V
        if current = @.Destination -- else return
4 `4 _( _! X/ R0 Y; }        then
- o4 b$ P& S9 A# R3 b                @.Destination := void;
  e4 Q1 a# d4 [& Q1 X0 u+ T                if @.occupied then
) ]6 b: ?! ^. G, M* \6 h2 p& `                        part := @.cont;% D) n5 v- p4 K0 @. n: n
                        @.transpOrder := void;  u) u+ R0 Y2 |7 b0 Y7 w6 S5 f
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 c6 I5 x/ u0 h( W                                @,root.eventcontroller.simTime);$ c" Z: K* }, @7 ~' L+ ?
                        @.HasOrder := false;
/ i* S$ |# `' u, T                        @.DrivingHome := true;
  X) W3 P0 m4 E% o8 N                        rgManager.tryToStartTransOrder;" G0 A1 |& h0 g$ H! y/ [# A
                        if @.Destination = void
/ |4 ?) H9 C3 Y( `# ]4 Q/ G                        then -- no transport order for vehicle @
; n, [+ j* r# q5 F) {                                @.Destination :=" S, W+ ~% h. y9 H
                                rgManager.nearestFreeStation(@,track.~);0 }- {% t' \0 b
                                newDirection(@);   3 T+ G' r* }) m/ c' v- @2 Z( u
                                if @.Destination /= void then
5 |- g* v1 Q0 W9 b                                        @.Destination.NumReservation :=
; Z  l; O' o- }; a1 t, {# C                                        @.Destination.NumReservation + 1;
5 u' A& l' D* G, e0 u                                end;' z1 [0 W# `+ l( z# q( H" J
                                @.CurrIcon := "drivingHome";
* x/ j5 b) f. ^2 d                                @.DrivingHome := true;' w* L1 |* B& p; N
                        end;
( ~; ?9 \! n6 S4 I6 O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& U  `9 K! v. \1 a                        part := @.transpOrder;
% b  P( v- y0 m. h; K' B                        part.move(@);-- load part
3 L- a9 n; f! I- O! k2 h, ~                        @.CurrIcon := "load";
! H' _; D/ ]! _; R4 u/ p+ h7 F) ~  m                        GlobalDistObj := part.globDestination;
  ^8 N' J; Y* i4 _6 m                        assignLObj := rgmanager.rgAssignL;
1 a9 L, u9 {, I. o! W+ ]                        row := assignLObj.getRowNo(GlobalDistObj);" E3 B: B3 z# C3 J$ M
                        if Row = -1 then -- since 701 h, O4 k3 M+ }# o1 B/ O( ?9 n
                                if lan=1 then
6 a, ^" c3 ]5 Z; o  q" Q3 C1 c) v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  s- K" H+ p6 ?
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' ^! P6 ^% c9 H, v; r                                else7 {& ?2 o9 u2 K. U7 _
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; A$ v! I  ?/ g2 S" e  ]% Y/ R0 a                                                to_str("in docking station: \"",?.~.name,"\""));                               
! E8 E* Y* g6 z  r, Z                                end;
! n, X3 \) H# A4 B. d. Y                        else$ H- t& R- k2 x3 n) p* N
                                @.Destination := assignLObj[1,row];
( {- @' |5 T' M1 u                        end;                       
7 ]6 X7 w: P- ^                        newDirection(@);, S; [7 `9 s" O7 s) l2 d3 x  i
                        @.HasOrder := true;* `* h0 a) L3 d& b2 z4 m' {- U3 `8 F
                end;
+ `- f  }4 p, o        end;
  G' E$ c  ?6 qend;        -- of the method" ?! I" O9 L7 g" K. E, x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . ]+ ?$ V& z* b1 G. O: @

# q( s) }8 K3 ]& Z* L' t* B1 }! C这是AGV_putin中arrive的method。, U/ ~- H3 }3 a$ {+ b+ `8 p

- x' J8 A" e7 e. ]" v9 K$ F9 t当到达物料速度越高时,这个报警更多,
$ f  A( k; \7 c6 L! r& D1 P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" N, z/ q5 K9 |, r) d8 w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 A5 ?& c- l7 t& Z0 E8 f1 A% O/ ~) h' g
) j5 ?7 z& `" Z2 N
另外一个小建议,就是move,所有的move都可以这样; f' K3 D$ Q; p4 L% U
if not move() then debug end' n% f7 z; m7 o' ?, Q% o
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* i; K7 m/ M& q3 k+ d; Q
plant simulation中的free libraries有AGV模板,
( N, t, b: A. e1 L) X9 f里面也有案例。- h' u9 K# @0 {- p9 Y' P% [
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) K8 @4 S9 n& x

) u- a3 \0 {& [$ [# ~7 ?我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 ~" ^( ^2 n: _( k  `8 ~1 Y( C5 R
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 x" T7 A# T' q9 M! v6 w9 p这是AGV_putin中arrive的method。
% g3 x. R% r% W* S+ A) c+ s* e/ ^& s' Q5 p
当到达物料速度越高时,这个报警更多,
8 x$ F9 V9 n. r/ G7 Z, D* p0 n
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-13 19:14 , Processed in 0.017716 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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