设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5357|回复: 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'
- L+ e7 ?; s) S" I% `*/$ c4 k1 M# P3 z6 U" G
is0 u) O  n  W% D
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 s! k. Y/ S# N4 Ado- j; R+ [2 |* _% f- i. @4 X
        Lan := rootfolder.Internal.Tools.AOLlanguage;
% t, L  p& W9 L        if current = @.Destination -- else return- l% ]* g, Y6 s0 v- o
        then9 Q9 V2 `9 `& e* D* F
                @.Destination := void;
$ [$ a4 B7 U+ ~( |- G8 E/ p2 P                if @.occupied then
# {! \4 ~  J$ q" l" z) u                        part := @.cont;
/ K/ T6 E  L* A5 [9 C: l                        @.transpOrder := void;3 i8 ~* f7 v( ~- |
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! C* X$ F0 q. [9 I" B
                                @,root.eventcontroller.simTime);- h! K  C$ m+ J& t
                        @.HasOrder := false;* P( m  K3 w9 Q! W
                        @.DrivingHome := true;: g9 h, F! f. e0 @1 c
                        rgManager.tryToStartTransOrder;
1 O! z# n3 G5 @. K9 }/ I                        if @.Destination = void: i+ R% S4 i# h! A3 K" {4 l/ v: m
                        then -- no transport order for vehicle @* _* @+ y5 t. X, w# t* |
                                @.Destination :=% A7 ]1 J  ~, I. C
                                rgManager.nearestFreeStation(@,track.~);
4 l. O7 U$ m7 N# H( Y4 ?6 Q% q( m" {                                newDirection(@);   
) ^9 ]9 E: @+ S5 K                                if @.Destination /= void then
1 C5 z( q# p+ |8 @                                        @.Destination.NumReservation :=0 h$ d# e* a- i' }7 `% v
                                        @.Destination.NumReservation + 1;" p% Y' o+ O1 L( f
                                end;
4 T' I+ M% y- x, b                                @.CurrIcon := "drivingHome";8 A( H7 N; m, a' o* ~( X- v& F
                                @.DrivingHome := true;3 M, _4 z! e7 J1 ^( y& E3 {* q3 h
                        end;9 Y1 Z5 [( [1 L& Z& I+ Y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ K  \5 H$ E* H! S; Z  l4 S                        part := @.transpOrder;! L, {" b' c" O) e# U1 q/ {- Y( C
                        part.move(@);-- load part% |& Y' C: P6 J: x1 a8 Z; G
                        @.CurrIcon := "load";# @+ X6 O' s. t# n
                        GlobalDistObj := part.globDestination;. S# e7 t, B" B3 }1 M- \
                        assignLObj := rgmanager.rgAssignL;$ H% _; Z' S% E1 J- N" z
                        row := assignLObj.getRowNo(GlobalDistObj);% X& D. t5 W4 T4 M$ W! x
                        if Row = -1 then -- since 70% `) j' \+ h+ T. ~
                                if lan=1 then
* I- h: D- c& r. \* |/ v5 m                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* p, ^3 ~9 F; t, n+ |9 F3 v/ a
                                                to_str("in der Andockstation: \"",?.~.name,"\""));, E% e* L9 v9 F7 V: |$ h9 C  \+ q
                                else
8 h3 a* n4 s- s* |8 Z: ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. r* v5 f2 q* \8 |" Z/ T                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 I0 {6 |- L' ]  b; w  w                                end;
8 ^1 ?/ m1 E( T! d6 [& r! L                        else( g2 i( r  z, p0 H9 }, U( Y4 T3 q1 e
                                @.Destination := assignLObj[1,row];2 x- I: J6 [. i$ b" h7 e
                        end;                       
! e' f& M5 x8 y, B) x$ r- E                        newDirection(@);
' ^9 t6 r: f/ ]                        @.HasOrder := true;+ U' Z3 Q9 l5 N
                end;
$ o- i) n6 j3 ^$ Y. q! h        end;
3 S+ V0 q1 y. o/ N" b2 P3 n/ Bend;        -- of the method5 }7 s! w8 F8 v4 K8 \+ H$ s! `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 `7 F" t* G4 \+ K

4 H! H5 L. y2 K/ y这是AGV_putin中arrive的method。
( U/ X* d* G, m) b0 E1 ~8 `+ ^& M1 A
当到达物料速度越高时,这个报警更多,
" H, x* I# V% R" v4 l7 j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 V% {5 x, p  }程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* P) W2 t8 j, u- d
3 k; [1 \( ^$ \6 s: C/ r+ `. z1 S
另外一个小建议,就是move,所有的move都可以这样
" v; d1 V5 D% O+ x4 [if not move() then debug end3 A* b; c8 ~) t2 q' h" n
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( z; M- |! [" |4 m3 R3 Z
plant simulation中的free libraries有AGV模板,+ U2 g" n# t! g1 V1 U5 M+ p
里面也有案例。% D0 y3 G9 x9 x1 X+ A( n$ e) a1 l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 R' |$ c8 I- \. ^+ d1 l" c; U7 x2 v6 ?; G6 m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: W& M& h1 `1 D# P6 Q6 G0 }5 \, G; s, ?, C6 D( @# Z. x: i. ?
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # ~. q9 t' [7 z' G% P6 u0 J
这是AGV_putin中arrive的method。$ ?+ x: u0 L. C. E4 t$ \. u0 D

% Q' W* f1 F1 t% ~4 {/ e' X当到达物料速度越高时,这个报警更多,

' I5 t5 h: w( A6 f% x. @% C' P6 d另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-15 08:31 , Processed in 0.017039 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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