设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8162|回复: 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'
. [+ w# ^4 R- S! r% y*/
8 W8 L2 p) U; q% cis) N+ S1 P8 [; s+ G5 n, e& H/ P1 m
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: ^/ t$ ~6 Y7 ^2 d1 l( A3 i+ i) N& ado  A1 q# F8 i6 L3 o( {- _- f
        Lan := rootfolder.Internal.Tools.AOLlanguage;
# y/ l9 E' E- c. ^        if current = @.Destination -- else return* S0 p6 i- Y7 \2 E  O2 I
        then
5 V, v+ L' t% D: Y                @.Destination := void;( d5 }1 F5 h$ e
                if @.occupied then
% _  E- }' J# |  A! s- x4 N                        part := @.cont;0 B$ N4 j1 f9 f1 A! k  E" \9 x
                        @.transpOrder := void;1 r+ J6 c% f* r& @8 q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 `# g2 E# `' w) K+ u' b
                                @,root.eventcontroller.simTime);2 Y& K6 z$ R4 Q1 G
                        @.HasOrder := false;
3 r; {7 `& k4 l' O+ W  ~8 ^, s                        @.DrivingHome := true;
3 a" p9 ]( j% [# V                        rgManager.tryToStartTransOrder;5 c8 M. d5 U  g9 p4 O
                        if @.Destination = void$ Q' w! y- i: O' s. c8 E3 _
                        then -- no transport order for vehicle @
  m3 }( g; ?/ X8 f4 v  l5 [* L* f                                @.Destination :=% z& K$ G+ C6 ]3 ]9 }
                                rgManager.nearestFreeStation(@,track.~);1 d- _' M: d* F; n# ^8 Q
                                newDirection(@);   & M2 }& ~# p  z: c$ I) ?  Z
                                if @.Destination /= void then5 }+ n8 Z  E( B( m% ^% ~2 a5 F. _' o- V) V
                                        @.Destination.NumReservation :=
! k7 `/ r8 r2 e# C                                        @.Destination.NumReservation + 1;
. y  d& C# E$ T/ G) i  m2 K                                end;
4 k8 ]+ a! {8 L+ u" Q                                @.CurrIcon := "drivingHome";/ E, ?' P6 I: k  P, {1 s
                                @.DrivingHome := true;
  B. g7 H6 p7 M  ]$ M                        end;- ]( V+ v) `8 Y7 r4 j8 K
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- d, ]: ]3 w$ j
                        part := @.transpOrder;
4 d  e4 v$ S: m                        part.move(@);-- load part
% b1 |8 [$ [" J1 T( v                        @.CurrIcon := "load";
: M! ]7 a2 F; m( `. H: |                        GlobalDistObj := part.globDestination;4 [$ W1 h1 W/ N: e2 m7 \% T
                        assignLObj := rgmanager.rgAssignL;
8 m+ t8 I) X6 A7 r                        row := assignLObj.getRowNo(GlobalDistObj);. r* ^* L3 y: t  d# O: r
                        if Row = -1 then -- since 70
1 N. C0 Q5 q6 W% |  z" Q& E) u) {                                if lan=1 then$ _# p+ j8 g: W
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 m# v8 n1 y& {5 {8 s, S
                                                to_str("in der Andockstation: \"",?.~.name,"\""));! l2 d( R1 {- z' B! f2 [8 H
                                else
+ C( e* t; @" D2 m2 Q2 W                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ A2 Z/ ~3 H0 g# ]- r# f  O                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 ~+ J$ ~. H& c% N6 U- R6 }- n                                end;5 j: H9 s# d% R; l6 [5 j$ w6 M
                        else
; H3 Q3 N& K4 M+ v1 J                                @.Destination := assignLObj[1,row];
* i+ F+ J; W, P/ T1 i! k9 N                        end;                        % g# H* k& r/ I7 F: B# o
                        newDirection(@);3 F+ B7 ~; ?' U
                        @.HasOrder := true;* g* }, B# q: N+ C% t( H4 a
                end;
! D  V9 H3 W( D        end;
7 i: C& o2 I1 `+ ?+ N/ Pend;        -- of the method
2 K- o, C' Y; @1 ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 ^0 c8 H6 t% l7 Q8 H& g7 s

0 T. [0 f$ f% E, {* `% \这是AGV_putin中arrive的method。
! C4 L& ?$ m  W+ B4 R
/ J) s' l. Q: E: c2 I当到达物料速度越高时,这个报警更多,
3 h" G) `0 M6 }+ n) s! r- D可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- r7 @9 U9 v; Q8 V0 p7 m程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 P5 u0 _0 X! `/ ?8 a9 |" @

4 U. f$ r+ B2 g) L另外一个小建议,就是move,所有的move都可以这样
' G+ p$ k7 n8 V4 tif not move() then debug end! H" k/ Y/ n3 [! l/ a: r  G- B) V
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 K. J6 \$ Q& u
plant simulation中的free libraries有AGV模板,
/ b* l, I" l- y( m- A. T里面也有案例。
: |: J1 @4 c; w7 h( e( M5 [我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* Q) ?3 s' I5 }

0 G4 d* P2 u. c& r$ b  W' D$ n8 M; c我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 t4 O! {* W2 P3 f5 F( C7 ^; C/ u% x) i! b6 v) V5 G& K2 T
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 Z% u) |& F' R* v6 y. `8 m5 e- q
这是AGV_putin中arrive的method。7 x% d; h% i  X' M/ W4 D! U# H
: d+ p# T% ]8 l; _8 r( m
当到达物料速度越高时,这个报警更多,
! L' D7 a5 v# A, Z; d# \) o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-18 05:51 , Processed in 0.021031 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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