设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8362|回复: 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'
0 B6 a% f7 A4 D" O*/3 J% p' z! M! ]2 A
is9 v9 }+ ~) U5 {4 e- k3 |
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. A6 H0 a: C% q  c
do2 s- m% a+ m* E* |/ W" H7 `1 t
        Lan := rootfolder.Internal.Tools.AOLlanguage;
( ^- }9 c) _+ @        if current = @.Destination -- else return4 Z) D- l/ b4 G
        then) j6 `. V. R# p: N
                @.Destination := void;* \8 S% q2 |4 w) Y* i/ Q8 Q
                if @.occupied then
' B+ j0 K/ l0 T9 b# h                        part := @.cont;
8 C5 V/ P3 i# \1 n                        @.transpOrder := void;
3 Q1 B( _3 h6 \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ C2 k. C( W9 C+ \4 C1 H: \
                                @,root.eventcontroller.simTime);
# `+ S& W8 k/ E' n9 H" [                        @.HasOrder := false;
. W; F: N" D! ]& [5 r" ]7 z                        @.DrivingHome := true;7 n1 G& R3 q$ R& P. e" F
                        rgManager.tryToStartTransOrder;6 n6 R1 O5 r' ?/ e
                        if @.Destination = void  u8 Y; i0 M% `# c
                        then -- no transport order for vehicle @) u+ h6 d5 _6 G: y
                                @.Destination :=
3 C3 g" [& Q8 W* j                                rgManager.nearestFreeStation(@,track.~);
6 p) j$ u0 _+ }* K  V; g                                newDirection(@);   , {; O7 P3 V9 b4 G3 V+ a. y- }
                                if @.Destination /= void then
, c) x/ I9 S) A3 J' m                                        @.Destination.NumReservation :=
. Q5 m6 |1 E; U                                        @.Destination.NumReservation + 1;
0 F; \2 Q4 y" ]2 \/ ^0 x# L# L, k                                end;3 r" e* q- f3 @/ q
                                @.CurrIcon := "drivingHome";
! r* \6 s( C  [& i7 E                                @.DrivingHome := true;+ H; K, S5 K6 O! m
                        end;
6 k: C( w! S0 H' Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- T* Z; I5 c: H- i/ T) }                        part := @.transpOrder;: i6 @! R0 @5 L6 P: o, T* o. ?
                        part.move(@);-- load part* P+ w- ?. p& M( F9 `, S
                        @.CurrIcon := "load";
5 S7 }# t" E* {. L& l, ^) o+ v                        GlobalDistObj := part.globDestination;
2 M7 m1 ^# j: ?                        assignLObj := rgmanager.rgAssignL;
" I; @4 _6 v  G                        row := assignLObj.getRowNo(GlobalDistObj);
9 E$ k4 E! L! L& @2 u4 B                        if Row = -1 then -- since 70
1 j/ _* c/ j3 h* V                                if lan=1 then) Y! ~6 P6 w2 `9 P0 k4 A* H4 J
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 ^+ f* Z$ W% r7 k
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" a7 t( ?3 E1 a! m" W) h
                                else7 b2 |3 w0 ]  t! @7 `7 U
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 t0 n2 C3 T5 ~                                                to_str("in docking station: \"",?.~.name,"\""));                                ! ]# ^+ `6 `2 ?( u8 {; z, b8 t0 M
                                end;
" Z( i: {8 \6 S                        else
" I( ]9 s% D6 O4 ~' I& h" \                                @.Destination := assignLObj[1,row];
$ m, k  H; |) w9 V                        end;                       
/ @3 y2 b" h- i+ _9 ?: {. X                        newDirection(@);
( `) _) r; m8 M                        @.HasOrder := true;
# O, G9 Z* c+ b" l0 p2 _                end;" }* S) F* z2 o/ K0 ^8 B
        end;7 @6 j5 ^4 c# E: v1 t
end;        -- of the method
! l% D! }3 Y- N% L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , @- _) {8 Z( Q5 _' f7 X

: h  g& g' U6 l. \- ]这是AGV_putin中arrive的method。
4 L2 Z4 e$ X" ]: A. Q
" o, l4 P" g4 \. A当到达物料速度越高时,这个报警更多,
* }) M! N* D% _/ ^可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- ~! O4 m: X; B1 q7 s, ~: H: D) z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 d* w. Q1 A( s& M
) h% B+ F) D5 S# Z( _% c7 O另外一个小建议,就是move,所有的move都可以这样8 Q3 M% c+ B8 t$ j0 s, ]
if not move() then debug end
% R! O! t: u& F6 L  s这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 Y. r. l; H, o" _- hplant simulation中的free libraries有AGV模板,( \* Q9 x( `2 x* `7 G' [% G
里面也有案例。1 _' y3 q' u( T: M" H# k$ |  G$ O
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- P! M7 b) S; l; ^

2 V9 v$ p0 d5 E+ [% V; U5 E9 D我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + [$ O# k! [2 O- A0 P$ j
. |9 }- {# K7 U" h  T2 F
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* A* b, p8 c4 J, w( z& u; e" f这是AGV_putin中arrive的method。
: I4 u6 i7 N* c( G" J2 }3 i# h2 a6 Z0 f  A9 l! A
当到达物料速度越高时,这个报警更多,

$ O& b! t- }( a9 j+ b# O另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-30 13:59 , Processed in 0.014972 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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