设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6328|回复: 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'  d) W3 O% Z; U5 i$ V; u: |+ I
*/
" R% }! v, |5 V- k' pis
/ F4 v+ N( m" K" ^& A        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 Z1 [' x8 B( J& r4 I& |do
" R* c5 g+ f* L6 \6 J9 W( q2 s        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 p/ L! g9 p+ \8 o9 `( u        if current = @.Destination -- else return
( o8 G: o, P3 E        then
: f+ e$ a* `8 e# O9 r                @.Destination := void;/ r$ y" @6 @4 H0 f5 P/ ^
                if @.occupied then
+ o; E  {" B. O                        part := @.cont;) d& Z, K, ?. @. _4 s3 V6 K
                        @.transpOrder := void;
' ~/ e0 I# m+ `. p: j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 `. x# @4 r  D% S5 q7 H                                @,root.eventcontroller.simTime);
, @5 R+ F; H: |1 N, Z8 ~( R/ o5 ^                        @.HasOrder := false;0 ^+ M8 y2 X* J
                        @.DrivingHome := true;9 M7 z4 N1 u5 X% [
                        rgManager.tryToStartTransOrder;9 S# T$ f- K: V( N. Z
                        if @.Destination = void# F7 u$ [7 v& r+ J) S
                        then -- no transport order for vehicle @
- _; H/ I: N8 s$ N7 M2 A6 c                                @.Destination :=
  z- b2 K# m& A                                rgManager.nearestFreeStation(@,track.~);0 z: U+ e; d% m' _
                                newDirection(@);   ! d8 [% g: N8 b  C
                                if @.Destination /= void then
7 D4 D$ w' y8 a$ e2 a                                        @.Destination.NumReservation :=1 Z: p+ j. |9 D7 S( \  T/ D' m
                                        @.Destination.NumReservation + 1;8 }+ T. S8 N6 H) l2 Z- n4 k! h
                                end;) D; H9 a* d" M9 L9 B
                                @.CurrIcon := "drivingHome";% Y! E4 {% g) q1 F% s7 r
                                @.DrivingHome := true;
4 i5 K9 o. D3 e                        end;
6 k8 k1 i: {6 @( C7 n+ ?5 V  M- C- }                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" x# |5 B; _' f
                        part := @.transpOrder;
4 g3 z4 `/ o- X' z  h" I                        part.move(@);-- load part
# s# Y: {) ~$ G                        @.CurrIcon := "load";
- j  S  J; n3 D9 {$ x                        GlobalDistObj := part.globDestination;
8 C$ |" y/ V) Y+ a$ h  ~; r                        assignLObj := rgmanager.rgAssignL;
/ j# x) O7 T: M2 o# G                        row := assignLObj.getRowNo(GlobalDistObj);
+ O/ z1 H9 w" A1 Y3 A                        if Row = -1 then -- since 70
" |3 O- ~8 J" a6 v                                if lan=1 then& D3 O: L0 f4 W& H! I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" |/ c1 c  ^  C* h                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 |0 b& x% r/ J
                                else* a! o' ?2 K- r2 c9 F6 U  ]! K
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% U. c9 a% \1 ]0 l( v+ s+ X
                                                to_str("in docking station: \"",?.~.name,"\""));                               
, j$ Y. e: T2 G) e1 @. y5 j4 J                                end;/ [9 k# M( s+ N& |
                        else- P' Z4 g! `4 f  y/ h
                                @.Destination := assignLObj[1,row];, y) k2 R7 m) B* H! C  ]6 Y' M- v! Y
                        end;                        * {; d+ B0 P* V0 s6 K4 Y
                        newDirection(@);
$ W) P- [# W, ]. |7 z6 S3 D$ X                        @.HasOrder := true;
* r6 a7 X$ m5 V1 w                end;
" b8 a) u5 H5 j& `        end;
4 Z! A  }& A! eend;        -- of the method
, N, `0 t; Y) F' h! y8 K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! k5 d- z9 C2 [+ q/ N, y# @: E& j% o  p& o- [, Q
这是AGV_putin中arrive的method。
& e4 C" G3 V. e. _" ]% P
- T. `9 I% Q6 U3 o* u当到达物料速度越高时,这个报警更多,/ m1 G. R% \5 z& u; B
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 Z6 T/ d6 @, C# i程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 Y- N; ]( n+ \4 d1 h
% B; i) t) u- M, p- H3 m) U- D' _
另外一个小建议,就是move,所有的move都可以这样
% i% T5 O3 I5 }3 f, C: {1 tif not move() then debug end
+ Z+ W+ b3 |9 q/ d. j) V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ w! p( r! D+ w5 k( t1 Y' wplant simulation中的free libraries有AGV模板," g( B% [( v/ l8 s
里面也有案例。$ G/ b" z+ M8 S1 a- B/ D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ J8 C  R. Z4 H% W
/ N( m5 I3 l. F0 _# Y( e, B$ S: [我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # \' v' R9 Z6 a) Z: a
, G' b+ |3 |6 g. G9 d  K, \4 }
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 t2 @! j. g7 P) |  p" N这是AGV_putin中arrive的method。
$ h4 I) r. k: j. {9 P, V9 Y2 d) G3 S: ^5 a" U4 O6 [
当到达物料速度越高时,这个报警更多,

, ~2 w( h! l* z7 `: D/ ?7 l) H6 M1 P另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-31 07:37 , Processed in 0.026547 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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