设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8129|回复: 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'
) g* |- m6 l6 G/ ]' }; s4 O5 H*/" o9 g  E$ r2 @9 j* v3 e
is
1 Q, A& L- ~( w( U) X+ S3 c5 A3 f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 }( [- B7 N* r; d: D- ]! E
do  F9 Y) e- l5 H  n# v$ H
        Lan := rootfolder.Internal.Tools.AOLlanguage;
' P7 |8 L! B1 a1 a, o1 [        if current = @.Destination -- else return
, ]& G6 i# B( n' x: m4 D7 Z. r        then3 c7 T; d5 C0 f% n
                @.Destination := void;
- G( S$ ]$ a) H( S# ^                if @.occupied then9 y, @; m- {; I
                        part := @.cont;' G7 h5 E: C+ l( s7 Y3 G
                        @.transpOrder := void;
! t' [: f% m0 q* v8 _. u1 y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* g: n; y) c, s4 E- I
                                @,root.eventcontroller.simTime);& L8 [  A  g1 p' [; F
                        @.HasOrder := false;1 F" f5 n7 e+ D6 a. D. k6 B* O
                        @.DrivingHome := true;% }9 `; G0 d$ @2 E! j/ w0 [
                        rgManager.tryToStartTransOrder;# ]1 \- M7 f8 h
                        if @.Destination = void
* o/ `5 |/ v) T. d, [                        then -- no transport order for vehicle @
# n, B, c, C+ E. p+ @9 w' e* e& p/ k                                @.Destination :=% }1 Q- B8 B0 P$ z, }
                                rgManager.nearestFreeStation(@,track.~);
9 {$ U6 @# O/ m  a* g                                newDirection(@);   8 h* A6 C( o* [" S
                                if @.Destination /= void then* p( X# s2 p2 V2 m5 l" g
                                        @.Destination.NumReservation :=
$ W0 W. W& k" |( y                                        @.Destination.NumReservation + 1;
! N+ p) i* b7 u& |                                end;7 r$ \2 a: b4 b7 I
                                @.CurrIcon := "drivingHome";/ R, g7 C, a0 W, y
                                @.DrivingHome := true;; [: R; C) T9 C2 l" l; V8 i/ T) T( d
                        end;
/ D1 d8 [4 _" X9 f  F                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: n& w6 d' @$ \                        part := @.transpOrder;
: W! ?/ B# C& {4 l3 e# `                        part.move(@);-- load part. B8 [+ T4 p6 G- Z4 t& L
                        @.CurrIcon := "load";
3 x- L4 X  k8 K                        GlobalDistObj := part.globDestination;
4 _( A- C! J4 ?# x8 u- [7 c                        assignLObj := rgmanager.rgAssignL;/ Y7 F/ v' b* X+ o) G  s: k
                        row := assignLObj.getRowNo(GlobalDistObj);4 s- E' y  k) {3 N/ o6 j# G% w
                        if Row = -1 then -- since 70
2 V* E9 D/ B) U  L                                if lan=1 then
8 g) p0 A. P1 d0 d$ M5 f                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# [& q8 }, |- \% K$ g: G2 Q9 j8 S
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 @0 e+ ?0 T* ~0 Z/ f7 S                                else
% ~1 T0 _" ]% s% q) b+ s7 q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ {! h% y  b/ _                                                to_str("in docking station: \"",?.~.name,"\""));                                " R. I9 E- |8 E( J) c! Q9 U$ J
                                end;
* z2 q% O8 W% d                        else
1 S* d- y9 |* J! e( X                                @.Destination := assignLObj[1,row];' W! f9 H0 h" B2 ^6 D$ F6 M- Z  o
                        end;                       
: k' z5 m2 }; C8 L5 z                        newDirection(@);
# U2 z+ Y4 [+ Z5 w7 u) a8 Z& V& B, C                        @.HasOrder := true;
' C% P, z$ y5 Z9 E) \% j; c                end;# `" a3 u9 g) n  A5 d2 [; c
        end;
1 Y( [! b- w- e+ Kend;        -- of the method  u% J* V) T+ ]1 u& O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 A) z: F/ O; q. A3 C  L
+ [5 f! \' h; B7 L0 E4 K% o这是AGV_putin中arrive的method。
6 ^* ?* {) \: V! ~* X9 J; N
' b- K% k3 M5 [; J" d. @当到达物料速度越高时,这个报警更多,0 w" H+ i8 v& s3 H7 L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& y% M' R2 V! t! R1 v
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; w2 }" e* K- W$ b

. q- u4 o& R) J6 |# {, ~' @另外一个小建议,就是move,所有的move都可以这样5 }5 Q& h+ S2 f4 ]
if not move() then debug end
) G( o5 g6 f4 l- X7 k( S# e+ q' G这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# Z0 a0 a! O- g3 D# ?' X$ R6 X1 u/ hplant simulation中的free libraries有AGV模板,2 z6 s+ X6 v& {& S% y
里面也有案例。
) n' ~' V8 f- L" S  B4 H6 x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, W  _! I6 v' J2 A+ j2 ]

. |8 d' `: `5 Q* ^; d9 q我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! T+ g' T; }. _5 O3 _: v& q
& \+ r! W& ]/ @  j6 R2 U2 m: b
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 t! {, y" t- `0 r8 R8 p# A5 g
这是AGV_putin中arrive的method。3 Q2 Q% Q$ r, m' d3 C/ v' I. O3 A

/ Z. C7 E; m+ ^" L9 P0 @7 m当到达物料速度越高时,这个报警更多,

7 b7 Q2 M" m* h& s: g7 A& _另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-16 07:38 , Processed in 0.021445 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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