设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9151|回复: 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'' ?1 y$ N" k" r$ ^1 U+ k8 Q
*/
; ]! w' @6 W0 \. Z4 B# b, v3 Yis6 ^4 Y+ K3 a0 T9 A' e' }6 u5 K( S
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* |8 X2 o# k: o8 a+ a, K( Ldo* b4 E+ G( @0 w
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 r$ r, I1 Y% S
        if current = @.Destination -- else return2 Y: A$ r7 p9 y2 y8 A
        then
! [# ~% G$ S* u4 Z                @.Destination := void;
6 g$ ~$ f& E8 H, w% h                if @.occupied then4 H" r& ?/ Y+ \7 y/ q
                        part := @.cont;# D5 o* _* f) J1 c9 f! k$ w
                        @.transpOrder := void;
% i, N) s& r. D  v+ @. {9 o                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* j# a# |9 w# L+ t4 j+ q                                @,root.eventcontroller.simTime);
) f+ N" ^( c0 C6 k6 `, G                        @.HasOrder := false;
& t# P4 E, F5 L/ a6 ~                        @.DrivingHome := true;' r, y' k. p/ E3 w
                        rgManager.tryToStartTransOrder;
3 Y% }0 S9 M, W# Z) {: y8 Z                        if @.Destination = void1 ?, r. s: @; X6 |2 U6 v
                        then -- no transport order for vehicle @
2 Q7 c0 v; `' u; ~6 H                                @.Destination :=
7 t; ~" o, _) N9 z6 S                                rgManager.nearestFreeStation(@,track.~);( ?& G+ _8 L. p2 m
                                newDirection(@);   
$ |8 [5 |  }1 F" u5 _/ d  Q9 ?                                if @.Destination /= void then2 B# Q# {2 ]( b: l9 q
                                        @.Destination.NumReservation :=
! _0 I7 q- Y# [& w2 Z$ S3 A7 B                                        @.Destination.NumReservation + 1;, C6 b( U+ |* b% y1 Z( N
                                end;. U: `* D! h" m4 @$ E! J
                                @.CurrIcon := "drivingHome";; ~/ p6 X+ x$ f+ h
                                @.DrivingHome := true;; j# O6 O! b3 ?! P
                        end;
5 a, t2 T- e* D) f; N1 \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  m0 f, ~$ q# `3 o  x                        part := @.transpOrder;
! f1 K) }9 N0 {* ?( [: x                        part.move(@);-- load part  M0 f' i. X3 H; d; |) y
                        @.CurrIcon := "load";
! G. k/ m! [# ?2 [                        GlobalDistObj := part.globDestination;+ `2 N) Y3 ]5 q
                        assignLObj := rgmanager.rgAssignL;
3 ]# l  p/ x( I/ H                        row := assignLObj.getRowNo(GlobalDistObj);
9 ~6 v# \/ P9 L! C                        if Row = -1 then -- since 70
* g0 M% p1 H& {1 i4 a# |                                if lan=1 then
9 I8 s" D. r' n% M                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" q& k9 r) ^7 D; b1 |, ~: \                                                to_str("in der Andockstation: \"",?.~.name,"\""));& v* \  [# v: x* ]4 |
                                else
, C2 ^2 P# L* n. M6 Q' s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" B- O3 q0 y" h8 n# X0 V5 a/ l+ n                                                to_str("in docking station: \"",?.~.name,"\""));                                + z5 C2 [6 K2 \" r$ \: a2 u# ?/ @
                                end;6 a6 L5 ?2 c2 O9 D* z
                        else
/ n5 ^. p4 g# j+ r3 x                                @.Destination := assignLObj[1,row];; G- V2 t) {+ o
                        end;                       
" {5 Z  v- ^4 T6 c                        newDirection(@);
+ x, p, M& B  I* F                        @.HasOrder := true;( r2 t+ A, x+ f' g
                end;
, E7 K* A4 \. R: Y% I        end;9 A/ R% X$ p9 E5 g; Y
end;        -- of the method( a& ^! ~- \4 h/ i+ ?; d. \. k1 ?. z7 e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 k: G% g3 H/ Q0 \! d- f; Q( J% O, x
这是AGV_putin中arrive的method。
7 z; t1 c; F/ c7 W7 @# c( o( ~) e" Q) {$ L9 t
当到达物料速度越高时,这个报警更多,6 p1 ~5 a" q: Z8 ^+ S+ Z) z: [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! I6 f: L# s3 i9 x; c4 f
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ Z, R: x8 `' E6 b' H, j8 r) g: `2 I
4 R3 M! y: C' P' Y: A, W
另外一个小建议,就是move,所有的move都可以这样; t# c8 i" V' K( [5 D1 H
if not move() then debug end  o7 m& o: K8 T- s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 u" n! i$ M' b
plant simulation中的free libraries有AGV模板,0 {1 J, B  B1 p( y8 n- R* L0 v" g
里面也有案例。
. k7 e5 g" x' ^' U, V: t我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 M) u( y! ]* b- |. s2 V  t* p

: \# l0 N- e- v( m+ I; t5 `我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & J( V+ ]; n' J; B6 S
- i( K1 ]" K: g0 u" U: n
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) ]' K& Z4 M( s5 Q1 M这是AGV_putin中arrive的method。
4 y! P# M' |. _) A) x6 T+ Q$ S
- s) p$ x5 V1 z9 f/ D& q当到达物料速度越高时,这个报警更多,
- x' T0 D2 P. {
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-16 18:41 , Processed in 0.014944 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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