设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8695|回复: 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'
: [, @2 V9 ?1 Y& I! Y$ M' Y*/& M3 ^0 k& Z- b! ^8 \" D- V
is
/ u! Z$ g; I& B6 n" b        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, u1 \6 \( V7 r2 s8 l- qdo
. ]: Y& F& }9 K! B$ J3 i$ u, R0 l: b        Lan := rootfolder.Internal.Tools.AOLlanguage;+ f3 E% N3 Y7 p" i# n
        if current = @.Destination -- else return
! k: \$ B3 ^* h' r7 v8 L- k" V2 {        then
8 q* X8 p5 {0 k) @1 I! L$ R                @.Destination := void;" z4 {5 N+ q- }: V
                if @.occupied then& c& ^3 [4 o9 F7 q2 Y- t/ u
                        part := @.cont;
4 [- n; n$ z* q                        @.transpOrder := void;+ U7 z5 B' K5 \- P( A/ ~2 {( b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% B9 B( V$ |% `
                                @,root.eventcontroller.simTime);* q. g5 j" d$ [
                        @.HasOrder := false;7 T& [; u0 ?( c: g! K
                        @.DrivingHome := true;
3 @- O- G  M1 x6 N0 n( p5 L; a  o8 P                        rgManager.tryToStartTransOrder;
7 @: A5 W6 `/ \8 m) K! C                        if @.Destination = void  A& ?( v. ~+ Y/ m, o; I
                        then -- no transport order for vehicle @: V7 J0 g4 y! ]' K$ ~7 O/ f) c7 H9 K
                                @.Destination :=
& k& c: A) G: @& ^0 P! |                                rgManager.nearestFreeStation(@,track.~);: [+ k- [, y( ]8 u4 Q
                                newDirection(@);   
! |5 }+ p. e: }                                if @.Destination /= void then
* h$ J3 {$ |$ {! }- q                                        @.Destination.NumReservation :=9 G4 ?: D6 A, j* o
                                        @.Destination.NumReservation + 1;
( O! p* P5 {. t! }+ B, Z" H                                end;* d5 ?8 \" }$ ^* `  C' B/ \7 d
                                @.CurrIcon := "drivingHome";7 ?( L' C- k5 K1 T
                                @.DrivingHome := true;7 N7 z3 C! I" ]: w
                        end;7 w) z6 X+ g9 _* X4 `+ y0 h( h  d2 A8 s
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 k8 {4 p/ s  {3 t4 }' Z% b# _, D                        part := @.transpOrder;+ ^5 ?/ r: s0 `+ w$ H; N7 A$ y
                        part.move(@);-- load part1 ?. T# [' b$ }5 R$ Z
                        @.CurrIcon := "load";! l% c- J( `  e& _+ J, ^( l
                        GlobalDistObj := part.globDestination;! R# q9 l$ d' ~9 d. m. w
                        assignLObj := rgmanager.rgAssignL;; {- H# v. r6 t0 K
                        row := assignLObj.getRowNo(GlobalDistObj);
& B, ?! [4 S1 _* d" E& U/ J$ {                        if Row = -1 then -- since 70* C2 A1 W( i+ F2 \1 U' u' @. v# S; i
                                if lan=1 then, n8 L+ Q$ i  S: I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& q3 e/ {/ I+ r! Q, S
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 r+ [/ e5 _8 h                                else2 n" l$ N7 x) n+ n5 j0 E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 j+ `0 y, H8 C& C                                                to_str("in docking station: \"",?.~.name,"\""));                                / ]3 F4 V, z1 \5 e" G" Z
                                end;
1 K) g# r3 Y4 G; C                        else- e; g" [6 x( p8 t
                                @.Destination := assignLObj[1,row];
0 v, P9 M; D" K) d) b! [" L                        end;                        " k' ]+ L* S  y  M
                        newDirection(@);
$ L/ w6 q- j" `4 b2 H                        @.HasOrder := true;
: F! j& M1 S& \; L- o                end;
$ M7 s2 ]9 h. T& M/ z        end;8 r; d7 J& d/ y. _2 e
end;        -- of the method
; ~1 b) \: m3 N5 X: Q7 y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; k& z6 @. R5 C, s, l3 E( L" p, ]6 W  N. L' d$ C3 R
这是AGV_putin中arrive的method。
2 x# g' A, t6 D* x- x, b# f4 D* `+ G5 w! v
当到达物料速度越高时,这个报警更多,
2 F' B5 w4 f) a* [" D. j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# x. U$ G! U' r2 w$ h# ~+ X
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 w& ]5 H( y' Z  ^2 b! `& r2 v& ^: a5 @$ H8 {5 F0 D
另外一个小建议,就是move,所有的move都可以这样) w6 |4 ]; @/ Y6 d$ H+ M
if not move() then debug end' [& ]& U7 u6 i; R0 T" V
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 O4 Y: ?1 S' f- K) f, Kplant simulation中的free libraries有AGV模板,
/ k! ?# @' {; D3 s$ s里面也有案例。$ k# m3 y1 a$ w9 E# d
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
- B8 A+ a& J- u' Y! {1 W4 W: X9 S  {! k: K' L: k4 q: \; D* g" [* J
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / W. d/ T. H' z  F% A, w+ y8 x1 e
8 ?7 _0 A9 Y7 X
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & _9 J) k  `7 C  C. b7 [+ K% H( R
这是AGV_putin中arrive的method。9 T. d; C. E5 z0 Z
, j1 G& n6 F6 R0 N1 m: `8 H" R
当到达物料速度越高时,这个报警更多,

/ S. W1 A8 i" {7 Y( x* d# D. j% C另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-20 20:40 , Processed in 0.017532 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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