设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8314|回复: 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'+ t0 z( |- E. t) q( C/ I
*/: M9 z6 f- I1 X. q
is: \3 E# P% I  ]- c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ W% J+ \+ L9 N
do
6 O5 V- G, H0 Q# @% U5 @. J        Lan := rootfolder.Internal.Tools.AOLlanguage;/ @5 B$ n' |' W
        if current = @.Destination -- else return& m: x: ^+ f: \. }7 D) A
        then% f, c; b+ B$ }: X9 M
                @.Destination := void;% J, `+ y" I. B  e/ o/ l% E
                if @.occupied then
# ~$ a0 s8 v5 ]6 p4 t* I3 [' x! z                        part := @.cont;2 K7 B# x8 H& l' d
                        @.transpOrder := void;$ s9 j$ x. l; P# j9 R2 E& a$ @
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& e" v1 ^5 u/ \% o* o" o                                @,root.eventcontroller.simTime);
0 k! k. `; b" a) @  p                        @.HasOrder := false;$ L! L) E" @: [
                        @.DrivingHome := true;* i+ Z) o) n) L7 \: f' [
                        rgManager.tryToStartTransOrder;4 ?' J( |) ^8 ?8 R* p( \  {
                        if @.Destination = void
/ H# u! r5 B! B                        then -- no transport order for vehicle @$ R0 l8 `  N# @/ w, W/ m
                                @.Destination :=
: V  y4 V3 E# \6 R                                rgManager.nearestFreeStation(@,track.~);
2 |- |% V) B7 B4 F" y                                newDirection(@);   0 A& j" w6 ?- l
                                if @.Destination /= void then
& o4 o  C' e4 O2 M2 S                                        @.Destination.NumReservation :=
+ o) k( c+ h1 E) {) V. m* h                                        @.Destination.NumReservation + 1;
: m( G  H9 r0 X# M1 f6 ^/ q2 \                                end;
' b& A: Q/ }8 r+ N. o  e2 t: W                                @.CurrIcon := "drivingHome";& S  D) ^# f$ M& L# N8 T8 z2 S
                                @.DrivingHome := true;& A5 U  Z! \) X: y
                        end;
/ r; e( \; P( Z; P  F9 p- ]                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 ?( Y' {, l5 e* n* ], j" t                        part := @.transpOrder;  u3 T' A  ]8 g! G- G4 S
                        part.move(@);-- load part
# h2 J# I9 l( x: e. j, Z                        @.CurrIcon := "load";: N# Q) S9 y$ N& R- l) f' R* e8 P
                        GlobalDistObj := part.globDestination;: t5 L" D% `2 p
                        assignLObj := rgmanager.rgAssignL;
( n, s1 F" O( z* _! p. ^                        row := assignLObj.getRowNo(GlobalDistObj);7 g3 C" C% t+ H" A; M3 e
                        if Row = -1 then -- since 703 ]1 U2 u; p% G3 T( g# q
                                if lan=1 then
4 p+ q% O1 N7 ~7 o1 x+ x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* N$ v: I4 j  t+ I8 D+ t3 ]                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 I$ \* ^( I$ A5 ~% T9 I
                                else- s0 i. I2 e# B% ]3 |
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. B8 T1 X6 ]& I: L" p7 e                                                to_str("in docking station: \"",?.~.name,"\""));                                ) _' `: [& @' m9 U3 H6 e1 _6 o( g
                                end;" P& G9 V% R5 e6 _8 M' E
                        else( h& k8 C/ f" N: Q7 s( l
                                @.Destination := assignLObj[1,row];6 T) Z$ e0 L9 ~( ~4 n
                        end;                        9 B: d1 R' m# W3 N. B$ Y7 l
                        newDirection(@);- m' A8 C( U! l" q0 O
                        @.HasOrder := true;& S/ o7 Z! A- K8 ~# w$ |
                end;
$ U( w5 l8 Z* @8 c        end;9 K( _, n' O+ E8 p6 c8 J" P
end;        -- of the method: ]2 U, u2 @0 g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# D6 t3 w6 h+ \
: S4 W# v' R- r, L, A这是AGV_putin中arrive的method。6 X# E& h% I' I
" U$ D7 ~4 Q- g$ X
当到达物料速度越高时,这个报警更多,2 h5 ^/ Q% q: ^+ J+ D  e) @2 R( W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 n! H/ O6 ]% O0 v( ^! k9 w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& Y" c, w! V& Z$ T  H' _+ |) C- J' C- Z& a( [: ~, x
另外一个小建议,就是move,所有的move都可以这样  K  j$ f& p% `0 W$ Q' v% q) |
if not move() then debug end: `" U3 K4 D) L( m2 X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 x: p, G6 I: o' E9 e- tplant simulation中的free libraries有AGV模板,
3 D3 e" {( \% W4 D& S1 y里面也有案例。
' T' N2 i: `% m- |1 _1 B1 |; S我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
- O# N4 o0 D0 f0 n! L
* j* A8 C* O6 ^+ x2 m0 j7 j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 w5 c) L7 c5 w8 f4 }: W# w1 i/ E
$ V  u7 ?7 W+ @: H  \. E5 d- H$ m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 j7 r& M0 a9 y% Q' m5 |0 l; Z
这是AGV_putin中arrive的method。& W, V* [) a5 W6 w9 Z
7 u! }9 P% k. T9 v- N+ d) u
当到达物料速度越高时,这个报警更多,
2 u- f0 p, Z- ~8 ], Q. P
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-27 08:04 , Processed in 0.017508 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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