设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8266|回复: 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'
, E0 `0 _5 M! J6 B: k*/: M; P. |9 D' j8 m0 o2 B
is: Q/ }8 g7 ?2 h( Y( n: g: R
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 q8 t4 O  T, c, U5 M) ]do) k" R$ q5 F% f  o2 n+ V. ?, ^
        Lan := rootfolder.Internal.Tools.AOLlanguage;5 e  C! R) q  R! s9 S& p
        if current = @.Destination -- else return
6 `' ?1 A% c1 Q& s: G4 V2 R        then2 y9 D  m% b: `; Y
                @.Destination := void;3 S9 d$ U. N9 h+ `6 X
                if @.occupied then
7 F9 R4 f$ G9 |" u* ]                        part := @.cont;+ t, ?- I2 A; ^" R) }3 P6 U. m
                        @.transpOrder := void;
, J) n. q) S* B3 J. T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 c4 C& H* C' ]/ o                                @,root.eventcontroller.simTime);
) @2 c6 y: [* Z                        @.HasOrder := false;
, c9 [5 J* i/ C2 [0 s                        @.DrivingHome := true;
: ]* O( ~. m3 c0 a  S# \2 F/ |  [                        rgManager.tryToStartTransOrder;
6 @+ f' F7 W$ X                        if @.Destination = void
, n4 @- H5 a1 f* @* K                        then -- no transport order for vehicle @
3 t6 D. K) N7 `) ^: h* E+ W                                @.Destination :=
, `* t8 x3 Z( o# i' @" {, }- ~/ K& \                                rgManager.nearestFreeStation(@,track.~);) G7 D& d5 L4 O2 G
                                newDirection(@);   
" O# A  ~' E1 n3 {1 e% F                                if @.Destination /= void then
' Q, Q5 M' P  B                                        @.Destination.NumReservation :=
* o, m9 j8 }4 @7 z4 s: f                                        @.Destination.NumReservation + 1;
- g: a5 [9 x1 u4 p- Y% E$ _0 F                                end;/ Q+ N+ X/ j; u+ w' g. _3 O
                                @.CurrIcon := "drivingHome";
1 E1 Z, E+ I+ z                                @.DrivingHome := true;" i7 E) M( I9 {1 {4 c8 F
                        end;
0 K1 {- C$ l( g                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 |- \, \3 q1 X, L& a  b# g6 u
                        part := @.transpOrder;
6 X0 \6 O# r2 Q" @) t' }. C                        part.move(@);-- load part# g. y, l$ k2 G$ ]+ [
                        @.CurrIcon := "load";# e# F. R0 }/ m' w
                        GlobalDistObj := part.globDestination;
) W5 @8 ?: C, z# ]! y/ b6 M# {                        assignLObj := rgmanager.rgAssignL;. r; Z7 v3 _3 A0 x% \
                        row := assignLObj.getRowNo(GlobalDistObj);
  x0 W, J; M" j8 M* g/ l7 n2 J! y                        if Row = -1 then -- since 70
2 J, f8 u( `- y9 A                                if lan=1 then$ N5 p# ]  G7 @% I3 L$ X4 y: T
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 E5 G; c) R6 e! b$ v1 a+ D, S3 r                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) S9 Z) {- s% \9 w0 o$ ?$ r8 Z                                else, ^! \. x% n; l( f9 Y# S5 [
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 S" |/ k: Y& Z  p4 b# X                                                to_str("in docking station: \"",?.~.name,"\""));                                $ W4 U, L, @  K% {6 P
                                end;
8 V9 _! Y3 C5 B1 ?. T                        else
" U7 N1 e; S9 r/ b0 B4 a4 d& D                                @.Destination := assignLObj[1,row];2 D# v5 A& W  X0 u
                        end;                        5 W, b) I' l" x- L! J, F
                        newDirection(@);
! M5 t+ K% L; p( d# R# W& o                        @.HasOrder := true;' R" [1 g4 Q" P; _  O' T) l
                end;/ ?5 F* X) J) T# S/ M- m, S
        end;
. N, O, V5 `  N! u  O3 [end;        -- of the method' t0 H; e9 h1 `0 H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 t; @' M9 Z# [
1 u7 O7 O2 Y, G$ p/ {这是AGV_putin中arrive的method。
- p6 ?- W! i, f& G+ A$ y; ?2 P% r! e5 i+ N5 W% o
当到达物料速度越高时,这个报警更多,4 p8 t3 w) k. s" ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# j; L( \$ N$ o( u" v程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  K5 ?! X6 J0 Q1 O7 N: P
; U$ E! K/ E* X  O* l
另外一个小建议,就是move,所有的move都可以这样' a( S5 E: f$ k( \6 n% u
if not move() then debug end
( \, B( U1 E' p8 V, q: u6 W这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" h0 r/ C% ~2 f; Zplant simulation中的free libraries有AGV模板,
% R. L8 L* [; Q5 Z/ h4 @里面也有案例。
: m1 K; e0 u$ Q5 d我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 r+ R+ A/ W! C  u. ]! O

$ ?& J7 h1 H! x2 A我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 H: S1 M7 k% H

8 }; u5 _( x9 W% V. ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + O2 m+ v/ _% {8 C$ }
这是AGV_putin中arrive的method。8 n$ v3 A2 n6 U& c
. D( K; d5 J( m" g6 N0 c) E
当到达物料速度越高时,这个报警更多,
6 \0 P, C; h$ O" e/ z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-24 00:31 , Processed in 0.019046 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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