设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8368|回复: 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 \: Y0 J) ?7 C% Y*/: B8 F& U" }; Y
is
$ R* V1 f. \1 d0 P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- j4 t3 ~3 Y0 p6 d6 k; P) C% Z
do
0 P0 U: k4 D( U, X        Lan := rootfolder.Internal.Tools.AOLlanguage;1 ?$ Q# i' ?/ G& B, f, X2 ?7 S
        if current = @.Destination -- else return  r2 @! w  d3 ]8 ]
        then
0 W2 @* z- y  a/ Y9 R. r- s                @.Destination := void;
* M0 }* f6 C( I) j% ^                if @.occupied then
6 B, p2 y* z" E: n6 c                        part := @.cont;' Y3 |/ U; i* K  M! A' S( W
                        @.transpOrder := void;; H1 b8 `1 D! B0 I9 W$ b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 V& A' d3 e% p4 N/ j3 W( v8 w8 y
                                @,root.eventcontroller.simTime);# K5 i  f' ?2 F
                        @.HasOrder := false;
2 t9 a7 ^- O% H8 |( V                        @.DrivingHome := true;
* M3 u6 H6 x- n" w2 C+ i                        rgManager.tryToStartTransOrder;
" G  _# e) x2 A: K  L; m( j2 t                        if @.Destination = void& u# @' ^6 b! d3 I1 o
                        then -- no transport order for vehicle @
) O1 U" \6 f3 k, N' x                                @.Destination :=
' u7 W* q! p* x: I- H! r9 h6 [% i+ B3 \                                rgManager.nearestFreeStation(@,track.~);" q3 z( z0 J; I/ Q; w: w- u
                                newDirection(@);   
! r& M! Q. @  l# J. Y                                if @.Destination /= void then6 n  Y. u8 N' C
                                        @.Destination.NumReservation :=& B6 i8 I$ W! j- z$ n+ Y* [
                                        @.Destination.NumReservation + 1;
$ f; @3 k- Y) Q0 P# G                                end;2 D1 P9 o& O1 s( s( l" _; X3 Y# ^
                                @.CurrIcon := "drivingHome";" q$ [; D  w6 R' S0 i8 M7 s
                                @.DrivingHome := true;
6 p# Y9 u) o* l5 A; q                        end;
( z' G  R# \8 n8 E6 y* U                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 N, c# t# H! j2 o9 s2 ?
                        part := @.transpOrder;& F6 g- ?' d* ~3 _! ]. N6 g
                        part.move(@);-- load part
( I% A1 y2 k) }4 O6 t# b. X. Q! }                        @.CurrIcon := "load";7 p' X4 P$ W1 X: `
                        GlobalDistObj := part.globDestination;$ ^$ W# d# f1 O; l
                        assignLObj := rgmanager.rgAssignL;$ ~& p  ?. C/ b2 ]. d" o% {+ G
                        row := assignLObj.getRowNo(GlobalDistObj);# s& x1 o+ }0 f+ Y9 r
                        if Row = -1 then -- since 702 o1 B  w2 n0 p6 I9 |1 Z& V( s
                                if lan=1 then
0 M6 w- ~7 ?4 t. O8 B, _( \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 q5 H" m4 t+ o; m2 N                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, q" }& K' w( P* s8 C% f                                else
$ c, f: Y- g% j                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 p6 M% {% r& R7 r! H& \& u
                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 ?) v0 i# w9 }6 K! T2 q8 }                                end;
, H1 D# V/ |" q                        else
6 P% g9 x+ P' Q4 V) U7 ^* L2 d6 }                                @.Destination := assignLObj[1,row];
$ V8 M7 Z" F+ V) C1 ~+ D: w                        end;                        8 E& R! a' ?* ~" r9 q8 t+ C
                        newDirection(@);
. l: L- n  A: B; @                        @.HasOrder := true;
) b5 {; Q1 I, B3 K0 Y" K  Q                end;
$ f# j  s6 @9 }3 K' E& _        end;
) t7 W( S9 c( I. zend;        -- of the method
2 J6 L: S8 W. U' r# M# p) [: c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 s2 g! b$ L( @& ^7 |2 \% H

: s' i( Z5 y& u9 k0 Z" O这是AGV_putin中arrive的method。
% f8 O- @2 `3 m% |; l: X) C) g: F* v5 w7 G% e' F9 M
当到达物料速度越高时,这个报警更多,
$ N' a0 ^( U5 A4 p4 D可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# K5 U) D$ j) B4 \( W" E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& s2 w6 U" ^* `, W4 C
' J" k. l/ _& t! D3 q0 i5 }另外一个小建议,就是move,所有的move都可以这样, e5 z6 A' V# ?
if not move() then debug end: ]3 X1 N. L9 _% y9 Y9 [! `
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 ]3 E7 A( `4 u7 h% c9 O) iplant simulation中的free libraries有AGV模板,
" b9 y9 u, o/ N: V里面也有案例。: y5 w5 o4 Q5 d) ]6 P
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ R1 q- Y5 y- a" W. Z5 _
8 g0 `- [) {4 p0 G* Q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' n: H- H( l! C& }+ W3 w1 L1 t. x$ Z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 `5 L1 P! y! o3 l8 a这是AGV_putin中arrive的method。  P* w  r9 `; y3 H* O7 K% H& f
6 Q/ |8 v9 |; _- W" R
当到达物料速度越高时,这个报警更多,

" Z4 P1 K" I9 Y) x8 E- `' Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-30 23:05 , Processed in 0.015176 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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