设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6449|回复: 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'
; J9 p/ p% S& U7 r& ]! |& l*/" w+ ^& E& M% W) w/ C( k9 l! ^2 S
is
! i4 d& a  a% h        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, N  |- j7 Y2 |/ \, {9 t
do  O" i1 M. G0 A; Q- z' u
        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 {+ L% T1 R9 k! [4 n5 G: Z        if current = @.Destination -- else return2 Y9 ]: z! k' [! s3 u/ j
        then
$ j& s9 X$ }, O9 u/ x4 D                @.Destination := void;
1 `4 q0 E+ a, a( M  Z, x                if @.occupied then
# f1 U. q' x4 {: P. L: w                        part := @.cont;+ {: O- l1 A- n" Z  D# L0 O
                        @.transpOrder := void;' g5 ?5 `5 l: `* l8 w8 z9 q/ K5 S
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! G1 `! `% T) O2 a                                @,root.eventcontroller.simTime);# O- M; M4 x, E: j0 ~* i) c
                        @.HasOrder := false;/ Z& r; E; C4 }* B7 [" Q2 l
                        @.DrivingHome := true;! Y3 k9 l) n: ~, ]& Q: r7 ~
                        rgManager.tryToStartTransOrder;6 i0 E* |1 _1 u: Z; q; @" a" W' i
                        if @.Destination = void
5 d6 I& \. K+ G* T                        then -- no transport order for vehicle @$ E( @3 x# k' H( |
                                @.Destination :=# R) \( _' N& V; G& P3 ^3 C
                                rgManager.nearestFreeStation(@,track.~);$ [. S$ j; p" E! N) [& V8 A9 A' |4 t
                                newDirection(@);   % y: X. L' D1 {6 k" Z
                                if @.Destination /= void then
1 ~4 W4 q( `  W- v! e8 x0 {                                        @.Destination.NumReservation :=
& E! H0 S8 k& O: x! f                                        @.Destination.NumReservation + 1;/ N6 V# m7 V# h) ^4 v! A# O
                                end;; }, K) x& }: j# w
                                @.CurrIcon := "drivingHome";# h8 V& B  I( i5 `- \! w2 w  I
                                @.DrivingHome := true;9 J- e# |) |6 {4 k8 I+ E
                        end;% t* M9 {# Q5 {1 A# U- w
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 c$ h# p+ K: X                        part := @.transpOrder;
7 m% q) G9 ^3 ?: N' n) O                        part.move(@);-- load part
/ {1 R2 F, ^! `                        @.CurrIcon := "load";' U  O0 C5 c, _$ R& Y" N+ b
                        GlobalDistObj := part.globDestination;
6 V& B% E. R0 t2 N! T1 Q# g                        assignLObj := rgmanager.rgAssignL;
1 N1 T/ U9 Y; z& H+ Z- d                        row := assignLObj.getRowNo(GlobalDistObj);
" H" }4 K+ b# r. L1 i                        if Row = -1 then -- since 70) Q' e% Z* T. e9 d
                                if lan=1 then6 O5 ]2 `0 K) ^, v, v3 [0 K; Z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ T9 C% Y8 ^7 k( ^3 Q/ _# p7 e                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, Q1 T. b* k% Z. {. X, r8 M                                else
! F9 t9 l/ J( }8 K+ p/ O) q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& l/ B9 n+ N7 H. ^; J6 m; L2 H5 `
                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 z9 I' N: z6 B, u                                end;# r" Q( L2 m  c( W' @, y
                        else/ B, C( V5 r5 ^9 j- q9 D
                                @.Destination := assignLObj[1,row];
8 r6 C0 F* B$ S1 |                        end;                       
& Y* W1 F+ Y0 |, E' E; T0 h                        newDirection(@);
! R% d6 [& Z. C2 B, c                        @.HasOrder := true;/ p6 b: D( j$ Z. u
                end;. s: R% c' ~- p# q
        end;3 Y9 t) z" Y2 V
end;        -- of the method
+ Y8 M9 D6 I- L3 {- b3 [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- i9 ]* @& W, h% K5 S: r: s
* {( H; z/ N6 W. P2 g这是AGV_putin中arrive的method。3 p  S0 ^6 g# g: D

; M% ^# |) d" l# k1 n& I! G1 {当到达物料速度越高时,这个报警更多,
5 N* t+ |2 ~) G2 Z/ _2 O9 J1 J可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( W" v9 Q6 E5 n: K2 h1 D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 L9 Y5 F. J$ \5 P. D4 d$ D
/ j5 y2 ?+ x& J% q
另外一个小建议,就是move,所有的move都可以这样
# n" m$ o& A( P& h' A( Uif not move() then debug end7 S4 g' _- ]& [! k8 y; Y1 i5 Q' Z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 k% C5 N# f& U1 P* j
plant simulation中的free libraries有AGV模板,1 a$ L0 \& w  R  u) T9 M) A- F4 P% i# H9 y
里面也有案例。
# ^' n) ]9 j5 ?1 q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ M2 S# y: T6 }( m8 A" ~

1 _( C8 ^; ?5 j) m. l, d, y: j3 t我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ F9 q3 _8 |2 G3 x1 r: f0 J5 Z" R
6 u6 s# e, b) w那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   d* M7 m% ?5 W9 @9 p0 t2 w
这是AGV_putin中arrive的method。
& V4 O+ q  L! C% u3 T2 G6 d, u- a* |5 W6 ?
当到达物料速度越高时,这个报警更多,

6 T# ~/ d1 A* l! p/ n/ f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-7 09:01 , Processed in 0.018137 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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