设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8043|回复: 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'
, F" l* W. I9 q*/" G& P$ d/ f! ?( P/ `
is* B1 }) S$ o4 Q8 o
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 i8 {( y, t% B
do
& P  H( h5 c4 G% x        Lan := rootfolder.Internal.Tools.AOLlanguage;9 f  e3 ~  }/ F* Z/ Z
        if current = @.Destination -- else return1 @2 g0 c: [2 j4 K# v3 \$ ~( w
        then
$ k! _& p4 D7 m+ `$ i                @.Destination := void;
' }9 w/ X5 M; z                if @.occupied then: I7 K$ h) Y. d+ c7 X- \- C. }
                        part := @.cont;7 r3 |( A. ^6 }
                        @.transpOrder := void;
; n5 [7 C5 G9 e; w  ]                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 u3 n  @6 B7 b7 J7 Q' v( ~& \: [9 S9 t7 r                                @,root.eventcontroller.simTime);, U* g! r) J+ m6 K0 a+ J' l; X/ m
                        @.HasOrder := false;
7 E+ ^: l( A3 {! h' C/ V                        @.DrivingHome := true;+ h. [/ W5 [$ i  k3 u8 G
                        rgManager.tryToStartTransOrder;: i/ W8 A( h/ s: l
                        if @.Destination = void
  l2 s  b% }& T) k% X  l& o                        then -- no transport order for vehicle @
2 U+ _. G# l, b1 v                                @.Destination :=2 P1 w* Q2 f4 h
                                rgManager.nearestFreeStation(@,track.~);
% o2 s' ~6 D4 Y& A8 ]2 J                                newDirection(@);   * L+ ^' G) u+ ?$ ?9 B  u" Q: i
                                if @.Destination /= void then
, V- \3 V" J9 `2 Q1 J                                        @.Destination.NumReservation :=1 f2 e- }0 v( r# `; X( a, q
                                        @.Destination.NumReservation + 1;
$ b! i# g/ c; i2 r. z                                end;& n. ]8 {1 I5 g8 G: H* [1 D
                                @.CurrIcon := "drivingHome";
# _) w9 }: }9 V                                @.DrivingHome := true;
* B5 t) R! {+ o8 t                        end;8 g/ B9 ?% ?  P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& L5 L0 ?9 U% j+ E
                        part := @.transpOrder;$ W- W5 b( L2 m! J4 C
                        part.move(@);-- load part
9 {* i2 Z; U7 W' o4 h. d                        @.CurrIcon := "load";
- u! I0 g/ O! T                        GlobalDistObj := part.globDestination;& |% a  i% X7 a! X) r2 N5 @
                        assignLObj := rgmanager.rgAssignL;
0 k/ l4 m: q5 h2 S# e- ?                        row := assignLObj.getRowNo(GlobalDistObj);
) Z4 r8 f+ E: D. s& {                        if Row = -1 then -- since 70
) f, d. B& ^; z( w                                if lan=1 then
) ~. s, z. |3 V- A$ G3 C. M1 c6 |, L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 \/ {( X* h% W                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 ~1 {+ d- Q* @! ?* g
                                else
  w( V$ j, ?, P3 U$ K; h( {) P; o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  c- A, f9 J, k3 j2 I% j1 s                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 J, f+ Y4 y7 F, {$ n                                end;
4 e$ r( J" L, s4 k( y' p                        else
5 H' u& G+ T9 }( c                                @.Destination := assignLObj[1,row];& C6 P. V! e6 V% l
                        end;                        8 w9 f$ R5 Q5 f% k
                        newDirection(@);
& ~4 [% O. |$ c( \                        @.HasOrder := true;6 H6 L* h5 {. q. a# E2 @$ B
                end;; N) t, z0 h* {( M: ^
        end;! k! W# A/ {, w. q) Y
end;        -- of the method" i0 y2 Q- d9 }  Y* ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! W" t* u0 {* y. ?; E5 h
+ h+ T. r/ o1 I9 H0 y$ h这是AGV_putin中arrive的method。! U0 c# M) ~) h
' w: u, Q" D- e" @7 L' J9 F
当到达物料速度越高时,这个报警更多,9 I- y( y/ e  @' D: b  \
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 w) W' A) s/ J* }
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( D4 ~# `5 R' n) R& G" v
' o# u, J% l. l$ B3 T另外一个小建议,就是move,所有的move都可以这样
2 n. Z* D+ M- D- F9 dif not move() then debug end
( c. X  t/ `0 I3 _2 M% R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ p# E, ]: Y+ J
plant simulation中的free libraries有AGV模板,
$ ~# u  e( r! |; h6 p  \: l里面也有案例。
0 H' d+ I3 T" M3 n' A6 n: [# Y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- g1 x. X2 {$ D' _  I: o! e" @( M

2 ^& g, ?' y2 T! ]9 Y# z/ ^我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; j7 e" @7 _: l- i! s5 w1 _; G1 a. L. x$ K
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 E( x1 V& Z) U+ |  _: W这是AGV_putin中arrive的method。
8 Y" j5 @5 c( l1 \" p3 F3 ]
0 u5 c- w: L$ j' w7 S" B$ Q当到达物料速度越高时,这个报警更多,
2 C3 {  w! q2 ^* O  k. S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-12 10:56 , Processed in 0.020854 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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