设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8638|回复: 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'
8 i; j. S$ K4 V6 {0 _# u+ w*/
/ M! j2 z$ n0 p) sis
3 P: H- S; P: w8 ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- Z8 H7 ?- j/ d: z& `! S
do8 V6 w. s' {$ \# D0 o
        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 I% f4 g/ c. k; a$ E* B        if current = @.Destination -- else return
2 z/ a9 N1 z0 S5 K        then0 A/ }* P3 K' _
                @.Destination := void;
$ Q& k1 _5 F3 ~- h  Z& B                if @.occupied then
, H: I- c! e! M/ v! W) O9 T                        part := @.cont;
. j. l9 K  A! N! V                        @.transpOrder := void;3 y! \; }! E& y% [
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
- b: I% M+ Y9 ?7 N. _+ ~) R                                @,root.eventcontroller.simTime);
9 u; @( U* J, q* M5 }: K, _- |; N                        @.HasOrder := false;0 `& L3 H( s$ n' t
                        @.DrivingHome := true;$ ]" q2 M5 u! E  R% Z/ V; F
                        rgManager.tryToStartTransOrder;( E- r# k2 T, q4 m6 w" ^* j
                        if @.Destination = void0 z& V4 o6 x5 L  W
                        then -- no transport order for vehicle @
+ M# H, w3 f( s/ R' U0 [' U6 j& U" q                                @.Destination :=' B4 b$ b! k1 T  |6 V- M
                                rgManager.nearestFreeStation(@,track.~);; A# Z0 l8 I/ _. G# u+ O) ~! L
                                newDirection(@);   
6 n5 _$ B" d, f' \! p+ X/ A                                if @.Destination /= void then
( K2 t; q& a. F, C                                        @.Destination.NumReservation :=
- H9 {6 ~- c. |8 Z. b! l, a0 ]                                        @.Destination.NumReservation + 1;# E  s) ^. ]% ?% x5 @+ p% |8 S- @
                                end;# r6 @& V) g/ t
                                @.CurrIcon := "drivingHome";
! J; [/ W4 U- ^! g                                @.DrivingHome := true;
7 I" f7 [: }* `2 m1 w- ^                        end;
, a$ s+ G9 Y0 g( _5 R) R  a4 }4 [                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- w, P: C1 {) v, W% ~* z                        part := @.transpOrder;6 m5 b  w0 n8 l3 v) f% V$ j! s
                        part.move(@);-- load part4 X' g% ?+ J( n+ K8 u
                        @.CurrIcon := "load";
1 Y7 ]% c  K9 j% x' P6 Z* Q4 R                        GlobalDistObj := part.globDestination;% C1 a+ w; m0 |
                        assignLObj := rgmanager.rgAssignL;
# c3 Y$ S6 b1 M' k                        row := assignLObj.getRowNo(GlobalDistObj);: h( q* @' ~2 `6 F% l! y3 i. I
                        if Row = -1 then -- since 70% z* Y3 x4 n' a; J" E4 k) Y
                                if lan=1 then
/ B* A' r* p7 X8 A; c- f                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" _% D/ q* R6 `& m; J% q                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 [1 @2 N0 b) U- Q1 u& `/ r8 u6 s                                else9 j2 B2 u: B: ~5 S# h% R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  L  i" c6 @* B4 O0 y- ?5 J' H; ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                % k4 c( h, h8 c
                                end;
) i0 v; M+ R  W2 A2 r                        else
6 Z4 R4 W; @1 e$ {' {                                @.Destination := assignLObj[1,row];( Q9 H" A4 ?0 j2 O
                        end;                       
; H9 e* |7 t9 N                        newDirection(@);$ U6 |! g! E) [4 U. `9 H; T. I
                        @.HasOrder := true;7 B# D/ h6 _0 _) N3 J. o
                end;
0 J  a+ o' V% A3 Z# E        end;# }, K: V7 o3 d* s# C
end;        -- of the method1 U1 j- b/ u9 l% y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ t' y( I! ^  O: C$ M+ O5 J& l- p/ {$ [) ~7 J: k
这是AGV_putin中arrive的method。7 l$ q2 G) I( h
8 D) ^% j: |, f+ J
当到达物料速度越高时,这个报警更多,
9 R; G! k" U0 l- l% P8 U/ b) o# B可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 P4 o4 [: I6 E8 Y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% F% p! K3 j; K; O' R
0 I: E; U  q: }  t另外一个小建议,就是move,所有的move都可以这样
; X9 W2 N2 H# o  p# Zif not move() then debug end
  m2 @. \( u: e5 g8 B6 ~这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" X" p* Z: d) {/ {; zplant simulation中的free libraries有AGV模板,
. c; a/ Q( F- u) V0 h% R$ X里面也有案例。
6 n) }% z5 y6 {( V我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 m) w: H" u8 m" Q
" E6 Z; A, K! l2 f
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 G( L% u( ?$ o- i5 ~& w
, Q9 i5 v  V8 e9 E( J7 \4 U
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - ~( O* C- h4 Z
这是AGV_putin中arrive的method。
& m, \. G& u& C- ^- C" m1 E% Q3 ?! C- s' K3 r3 u
当到达物料速度越高时,这个报警更多,

$ M  I/ _) ?; q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-17 14:42 , Processed in 0.015578 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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