设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8975|回复: 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'3 z& `' @8 u; A7 j. [
*/- T# f6 ?4 M0 s. A" q+ J
is
6 ~" e3 W2 R5 E        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" \0 d; J: @8 P% s1 H! K& k8 e
do
% G: f* }# U0 P" \4 e        Lan := rootfolder.Internal.Tools.AOLlanguage;! X; S( v6 y7 G; w) m& w  r- \
        if current = @.Destination -- else return7 G" C$ P% d) a+ j1 F- o5 g
        then# y$ I1 C  i$ {: h  V& l
                @.Destination := void;
, W/ ~4 I1 N0 w3 ]7 d. ]) h  d9 r                if @.occupied then2 U: A- `- H4 v1 A0 f$ `
                        part := @.cont;! o8 L( i2 }( O  d+ e
                        @.transpOrder := void;
; }. E( F, F2 o6 H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& t* H7 {! A) S5 g% V                                @,root.eventcontroller.simTime);
4 m- S+ d8 W8 q0 I2 ?                        @.HasOrder := false;
: Q* a" D! y! M; S  ]  V                        @.DrivingHome := true;
5 T  U0 w4 t: x# u9 [1 z/ B                        rgManager.tryToStartTransOrder;7 D% \9 o5 v9 U* g
                        if @.Destination = void
0 l& P6 g( |& r/ x* r5 n                        then -- no transport order for vehicle @( \. q0 n" k0 C* h
                                @.Destination :=
; v  N) _8 X" }# {                                rgManager.nearestFreeStation(@,track.~);0 A3 I8 d( {+ `6 W4 w) P2 y3 a
                                newDirection(@);   + K3 V) B* q* O# \. b6 ~
                                if @.Destination /= void then
! [, `* Q: {0 D, V1 }4 `                                        @.Destination.NumReservation :=1 a3 D3 T3 J0 \  e3 o1 C9 ]: D
                                        @.Destination.NumReservation + 1;( ~; d6 v; b0 W  T4 H
                                end;& z/ e3 @, C  t+ }* }% R- g
                                @.CurrIcon := "drivingHome";! J/ g0 X! |; S; P, A
                                @.DrivingHome := true;3 E9 T8 Q! x! ]% R1 B3 U, G
                        end;: x! ^: d8 Q: _& r# l' M
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 H; j. h; T) S; w% [
                        part := @.transpOrder;
' p3 E, O' O, b  _                        part.move(@);-- load part4 \$ o9 @2 F: ^6 l( P, C* J
                        @.CurrIcon := "load";
6 P# U1 {, u9 Y. b) Y: m                        GlobalDistObj := part.globDestination;
% H# ~1 D  m# M2 c  Z/ v                        assignLObj := rgmanager.rgAssignL;5 _/ u* E- a( C8 s
                        row := assignLObj.getRowNo(GlobalDistObj);# R# c! N6 I' W( |0 |% _' H
                        if Row = -1 then -- since 703 h# A7 q1 H, U; F, K
                                if lan=1 then' w, M% f/ d& |0 S! ?9 J& Q
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 `" I. x5 j3 D
                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ ?7 x) b9 r9 N7 R- z( h! W
                                else
2 n* C/ E/ m: }1 ~                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 X( `4 W8 l/ T' r! o/ O                                                to_str("in docking station: \"",?.~.name,"\""));                                % E" H6 |& V: Z8 E0 {% ~3 Z7 E
                                end;
0 }5 c/ Z" n; c) v% t% r6 [. A, R                        else
1 d9 B% R7 B& r( P                                @.Destination := assignLObj[1,row];
) I3 E* [! l4 S5 V1 j2 ?; A                        end;                        + a4 _; r" [$ ]/ W% M) A" w
                        newDirection(@);
% i! Y% N: }( ]( F  \/ r1 T5 z' R                        @.HasOrder := true;9 r1 ?& Z. Q& {" n' j
                end;1 L+ U! b" _* T6 N: `
        end;4 r4 y; L, c/ u- W6 V4 v* J
end;        -- of the method
, Z+ E+ F1 r$ d$ }% G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & r/ \4 l* q$ i8 O

5 d: y7 F' Z5 C0 B这是AGV_putin中arrive的method。- ?- g% O8 |( h2 K5 ~! Y- u

& _) U( J- z* h& X9 x! m0 |# ~9 B当到达物料速度越高时,这个报警更多,4 ~- m( }+ H2 p$ u: _1 D( ]' s
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& @& `3 M, }6 ]' [+ v8 E
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?% k8 n9 x: v* u0 ~! J9 K( H6 Y- G( E

* L5 ~) r* L2 `. E+ [8 p另外一个小建议,就是move,所有的move都可以这样( Y# D" @; @1 q) ?  a
if not move() then debug end8 i9 B$ W4 \( c0 M+ X. }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; {7 C* f' |) G/ dplant simulation中的free libraries有AGV模板,
2 N% p& ^2 G$ `7 |/ ~里面也有案例。
# V5 P* F* V9 A: S. j! {我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 P! O; s' _: x" w2 |4 c5 Q; z
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 g# n- c4 n* N+ U7 r
* Q& f6 J7 }: _9 f9 L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 H% Q9 ]; D3 _! S2 b这是AGV_putin中arrive的method。
1 w5 F  F. h2 N+ H/ _' f/ {& ~* ]! o  K" n; c4 ~* s' L! E; x, f1 E
当到达物料速度越高时,这个报警更多,
% L( N% n5 Y; t% i  D9 ?6 x# y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-7 00:15 , Processed in 0.015197 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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