设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6294|回复: 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'
. K; e* m2 ~. Q9 |8 n* h' \8 {*/2 l: b1 |% s9 {/ a
is' o; _/ y: c0 v4 k+ V' ~
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! o, s( E2 z: T( y
do7 N7 [8 A. m9 g, U/ `: Y7 ^, q
        Lan := rootfolder.Internal.Tools.AOLlanguage;% r. d4 |" L# u3 p7 R5 v) e& t3 E% A
        if current = @.Destination -- else return9 l5 `5 H/ S3 u# Z; ~
        then% G3 Z) J( Z( L2 A$ b
                @.Destination := void;
7 p3 u# m0 H$ l                if @.occupied then
* Q* \$ {6 Q# t9 Y3 N, H2 Y                        part := @.cont;
- Z! q6 B' m/ u                        @.transpOrder := void;2 F+ P' a' H/ o6 Y2 `" q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 _8 `, |$ p0 p
                                @,root.eventcontroller.simTime);3 C! q6 C2 |  W! `) s- }
                        @.HasOrder := false;# q1 `1 z- `: p! g" J% f! K
                        @.DrivingHome := true;2 f  `/ b/ q# H, d
                        rgManager.tryToStartTransOrder;
' K/ g8 T& j" e$ f9 l                        if @.Destination = void' N/ }# X& b7 v7 c# p
                        then -- no transport order for vehicle @
4 I( U8 S# ~3 C                                @.Destination :=
; f3 ]6 H: b/ z: {                                rgManager.nearestFreeStation(@,track.~);
4 ]( ~$ M' O9 W) h' A8 z& X                                newDirection(@);   ! E  l9 t. k/ f7 g* W* x  B
                                if @.Destination /= void then
" D/ E  I; R, F                                        @.Destination.NumReservation :=' B3 ~4 E% ~% Z
                                        @.Destination.NumReservation + 1;7 S. X1 @0 u8 i; s/ K3 z" M
                                end;
& S, ?( U: r, M8 }* `: F1 ?& a                                @.CurrIcon := "drivingHome";8 G& P! {& Q6 }- C
                                @.DrivingHome := true;
7 B9 w6 C0 c3 a' K4 z3 Q% o) K                        end;4 }$ ^4 N+ ]9 `+ T; h6 m* R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 _* O- u6 S7 V/ w, _  A2 Y                        part := @.transpOrder;  ]4 P# F! V3 {% q
                        part.move(@);-- load part
! L& @; F$ Z  e, r                        @.CurrIcon := "load";, K5 r- V3 d& {/ z9 `
                        GlobalDistObj := part.globDestination;
% J9 y. s& k( N                        assignLObj := rgmanager.rgAssignL;
' L3 n! a  ]& `1 ]9 E* C                        row := assignLObj.getRowNo(GlobalDistObj);" y: w0 m4 |/ o% h7 L; U: c
                        if Row = -1 then -- since 70
* K5 Z) c- N4 B4 l# Q4 V* m                                if lan=1 then
6 G6 w  ^2 D/ e& F: L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 M1 X  n4 o5 d% ?" n  K! P. f                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 p4 w' t) f. s5 v                                else
5 `5 T; x6 ]/ m  _$ V* I) n                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: O$ y+ S0 l6 z1 T
                                                to_str("in docking station: \"",?.~.name,"\""));                               
- q/ O( M+ ~& n+ j0 _* P6 Y                                end;: z# o' |$ M! Q+ P
                        else: O5 b  W+ m  S% o
                                @.Destination := assignLObj[1,row];5 A5 R" a' C1 Y0 n# J! K
                        end;                       
$ F# H$ |" g' O3 C4 j                        newDirection(@);; k% i# w" h' Y+ S4 l8 s" b
                        @.HasOrder := true;" a- z0 H2 P8 b+ D9 ^( H+ L# h& J4 d
                end;5 ?; B1 B! o+ `  n. e3 }( N+ P
        end;: J* B0 ?6 }/ ]! j
end;        -- of the method
7 _( `4 V! `: G9 G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! a6 _( O; _# }$ v

9 G) U2 _6 E& M5 k这是AGV_putin中arrive的method。6 Y: L8 u2 o5 T
( S- {# ?3 b0 o
当到达物料速度越高时,这个报警更多,
+ n9 h4 }8 c! K8 y  N3 Y6 [可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) q, z4 Y1 }3 i. J6 H. K程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 m5 s4 M, ~6 Z" y

: D; \( j& K( O8 a另外一个小建议,就是move,所有的move都可以这样
& j; G/ s( K# A  @4 E" w  v3 M* Gif not move() then debug end, O% Q5 Y1 @8 ^9 X4 u, E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  b' T- P5 V1 D+ B' S) ]: t' F
plant simulation中的free libraries有AGV模板,% s$ q' M: k  F
里面也有案例。+ L/ E) }; j5 E) `) J6 T; T3 _
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  X) C( ~# I; z4 [7 \
1 i1 N+ \1 j& V+ p1 v3 F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " m- |1 G* A* A

$ [" D) G, |) F, |那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ ^+ O. F) A$ e. K4 x; ]这是AGV_putin中arrive的method。
. N  d! m) ?0 a1 v9 G: _  ?2 R4 ?2 b7 y- ~1 n: |; [  K
当到达物料速度越高时,这个报警更多,
8 e; O6 o+ p/ k- k% s
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-29 10:06 , Processed in 0.016432 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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