设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9776|回复: 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'
0 u% W& ]1 C# @' y1 f5 E  N$ H*/) H- z/ k* P3 H
is+ T: a8 O2 U3 C( t* c( {) y6 d
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: A: R: Z; @. cdo9 e% D* F8 B2 b' \0 o) u2 K! Y& J
        Lan := rootfolder.Internal.Tools.AOLlanguage;  @1 Q# f0 ~0 S2 I2 C+ F! F
        if current = @.Destination -- else return
1 i. \4 ^6 _7 k. i! F* \9 h        then
! o4 N5 r# }+ f  _  V8 [  h, k* W                @.Destination := void;
- g. v) e, j' ^0 j                if @.occupied then
  C5 Y/ v' S  o( V+ ~3 H) w* [" n                        part := @.cont;
# C$ V! y/ k3 R) j1 G; \4 ]8 y2 `( K) Q                        @.transpOrder := void;
6 e: g% b. U# R& Y7 z) Q1 M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 ~+ f8 \; r$ l) I% P
                                @,root.eventcontroller.simTime);
- T! z8 o& n5 [) y- W5 [3 N& `                        @.HasOrder := false;
8 H" Q- [5 j# o+ F- ^                        @.DrivingHome := true;
4 c* [5 N# M+ d6 c4 N# _2 s7 P                        rgManager.tryToStartTransOrder;
$ j; u- M' o- i- G( |                        if @.Destination = void( W% d" V1 H0 D
                        then -- no transport order for vehicle @
! _; ?% N; {; d9 |! W) L                                @.Destination :=
) u- b1 N6 t+ R8 d/ u3 d1 U  ]0 s                                rgManager.nearestFreeStation(@,track.~);/ E* ^( E* c. o" O4 R" W
                                newDirection(@);   
1 Z6 w2 I0 t8 k1 s6 a& A9 @; M                                if @.Destination /= void then
  O' k: n% V" ]: @+ ~% E                                        @.Destination.NumReservation :=
; k8 O  p% p0 f( q4 V* d5 c                                        @.Destination.NumReservation + 1;' K# W/ G) Z  Q+ v
                                end;
; F7 f% J$ o! I* \; r( d                                @.CurrIcon := "drivingHome";
( T# R8 d7 d* W5 O# L' D                                @.DrivingHome := true;
/ _3 S3 v: n; X                        end;
% v+ _" I/ p6 P+ a. j                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ D& o6 ~2 w( i                        part := @.transpOrder;9 g* T# z3 m# C5 k4 L% `
                        part.move(@);-- load part2 i! y- @/ ~$ y7 q, H7 E. J& c
                        @.CurrIcon := "load";
9 H  n0 [/ ~. Q% J; D                        GlobalDistObj := part.globDestination;
7 a1 }1 \. Z: B; }5 T  _/ x                        assignLObj := rgmanager.rgAssignL;
0 I( @  o) G" o6 V' X                        row := assignLObj.getRowNo(GlobalDistObj);
1 S+ R0 b6 n/ y5 i0 d                        if Row = -1 then -- since 70: O$ x. ~/ y/ k8 i& r
                                if lan=1 then+ s* E, {. ]7 o2 b. Z- N; i
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 E* i4 g1 y2 I
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- f9 p5 [. J( y                                else
( a- [8 T! ~9 C. V( j                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 P4 n1 q0 E9 a; L% j& O                                                to_str("in docking station: \"",?.~.name,"\""));                                # ]  W0 E9 f; R6 f  N8 R/ x
                                end;
& P" z* M  X, n8 a                        else
, v; C# @' X5 h& q4 F% z% T                                @.Destination := assignLObj[1,row];5 j. f0 ?* v0 _' R
                        end;                        ' X4 }' C3 }. r0 N. D
                        newDirection(@);5 ?+ |! o7 {+ h: f
                        @.HasOrder := true;1 t, v$ \8 j2 A& @. I+ [" J/ S
                end;
3 Z: b$ B& o' j" n" O3 X" \% t+ B        end;
) X9 M6 D0 r' c, c2 v# m  Jend;        -- of the method
: v2 c4 T0 v9 e0 f! Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 H4 g2 l% Y. k9 E

1 S3 o$ W9 H, D7 @, v这是AGV_putin中arrive的method。( z; e& P5 x) \0 r) v
" G- z, j7 I4 A5 S/ Z( U, A7 h
当到达物料速度越高时,这个报警更多,
) l6 `: @" y& S6 S# l8 B; l  @可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( G0 T9 t$ Z7 {( W* q! k# _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 Z6 n% [# O1 ^- M! L2 i$ J" P

( d+ M8 k5 Q3 R' r1 ]另外一个小建议,就是move,所有的move都可以这样# `% e% ^5 U/ ~7 w* z
if not move() then debug end
* }" s7 ?* H4 D, v) u这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 d7 o9 {( h; ~
plant simulation中的free libraries有AGV模板,2 x# t5 o: Q% J
里面也有案例。* p: \  Q# l6 h2 J9 m
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 V  V0 K' O( {2 O, D# v4 O. g0 X2 h: x$ W- ^& w( ]
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" w$ p6 N* {1 V& r) D/ K  [0 K6 ^* w
& ~/ Q, N; @$ @2 z3 f8 E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) F1 f. [0 _! K# o这是AGV_putin中arrive的method。
8 \4 k4 x; C8 A: e  a$ ^; `. ]# Z; z& x/ f. ?# N
当到达物料速度越高时,这个报警更多,

) r7 [% D4 L/ ^5 o, t另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-24 06:05 , Processed in 0.026061 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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