设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7445|回复: 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'! l4 H1 @+ U$ f) z
*/
: {- P  Z7 f& b$ x( A+ ris
6 e; J/ ]2 ]1 V7 [( \+ R9 n. L        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 t1 j2 ]; ~. K1 G4 l7 d
do
) i  y0 k. z7 Z0 C9 Y        Lan := rootfolder.Internal.Tools.AOLlanguage;  X% _2 Q8 w+ ?' E8 D9 k
        if current = @.Destination -- else return0 x5 ]7 o9 F7 @- X
        then" O. I; l+ C( X* ^
                @.Destination := void;
7 R7 X+ _0 k, v/ q                if @.occupied then
* D' T+ D+ Y  k# j0 H6 e+ a3 D                        part := @.cont;
0 G6 ~5 B8 H+ X- g4 M2 P+ `                        @.transpOrder := void;( ]" n, U) J  ?- U
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 e& z8 u. A/ t, M+ n' g( R- O0 v2 |  S
                                @,root.eventcontroller.simTime);% ]9 {3 X% Z( N! o" O
                        @.HasOrder := false;/ e( Z. F# K: z! Z7 ]
                        @.DrivingHome := true;9 P! ~( e1 B6 V0 }) g9 N9 a
                        rgManager.tryToStartTransOrder;
0 R: f+ k! u- m0 N0 E                        if @.Destination = void
: S0 P1 h" Z" k$ H6 T                        then -- no transport order for vehicle @6 F- G2 y$ v  N
                                @.Destination :=
4 K7 H9 [7 y1 F                                rgManager.nearestFreeStation(@,track.~);$ |6 E$ m' X# x2 k
                                newDirection(@);   
8 i' p, b. D- H! O                                if @.Destination /= void then
% R! `1 W/ p( D9 m# \3 w$ b6 S) V: v" J                                        @.Destination.NumReservation :=
1 p5 ~7 L( p$ h1 I                                        @.Destination.NumReservation + 1;
' }7 b7 M4 {! z! z                                end;
, _  R1 W( \2 M* C                                @.CurrIcon := "drivingHome";. Q* x8 ~6 m5 Y1 H/ F: A3 i
                                @.DrivingHome := true;' }0 e( k. K$ G
                        end;4 Q! w* V* S2 y0 Q. b4 J
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" ^4 j' F  m* m+ A
                        part := @.transpOrder;% l4 P; f5 {9 E9 g
                        part.move(@);-- load part
8 b/ \" n* U% }" o4 x% S1 ]                        @.CurrIcon := "load";
0 s/ h; b  ?" m5 F, R/ H! `                        GlobalDistObj := part.globDestination;
- ]8 O- f) H* }% \7 Y                        assignLObj := rgmanager.rgAssignL;+ X! C! o- k- F' z
                        row := assignLObj.getRowNo(GlobalDistObj);
. ]7 W- ]* |0 Y6 ~                        if Row = -1 then -- since 70
$ f' v  y: O1 C. |* G7 D! I                                if lan=1 then: T. _7 i4 D6 y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 m( q* F9 t3 I4 G4 ?: n                                                to_str("in der Andockstation: \"",?.~.name,"\""));, D7 i" ?5 y0 d/ r
                                else
( [0 G$ I2 X3 S$ U. r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- Z! Y: A" t+ o$ w
                                                to_str("in docking station: \"",?.~.name,"\""));                                & s+ t7 M" D! ^/ W& n7 P
                                end;
8 ]. ?# g  X. J, s4 l" U$ N( n; c                        else
6 H+ m, @4 L7 o& f% S                                @.Destination := assignLObj[1,row];
" D/ a2 _6 f& Y$ e9 ?                        end;                       
& [; m2 `& f- H3 y) E                        newDirection(@);
6 @% t1 ]7 w$ a5 _                        @.HasOrder := true;" l, _9 R; {$ f4 B! F' k7 b) \
                end;
% \8 t& V- N+ g6 R        end;1 d+ Y% C7 w5 P' O
end;        -- of the method9 |; q( v+ k! @( R4 c: \1 q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 N' \1 x8 n  t, B/ r/ F# q2 P. d$ r/ v9 z1 |3 i! B  w4 {5 Z2 Y
这是AGV_putin中arrive的method。9 a, I. C; x; v- D, F

- `' a/ U% _0 m' f- _9 G# h5 K当到达物料速度越高时,这个报警更多,2 \4 {* }* l3 ]0 O
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! H% k' @( V7 c7 u: w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: P; `8 g; ^' ?6 H+ @7 A' _4 u

+ i, u% O7 i8 u4 J# |另外一个小建议,就是move,所有的move都可以这样
0 _. H6 F4 {9 x0 p9 j1 d- H1 Tif not move() then debug end- b2 X8 y: v% k. @+ y7 t
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. A  a5 _" v* r4 P  S2 A- J
plant simulation中的free libraries有AGV模板,2 o5 \# ~, y& b& R
里面也有案例。) m% j& q& I" g" K+ ~4 r, s
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! g( c6 m- G2 r; B7 H# T1 W4 v: b1 r' P
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 d* f3 `; O/ {, k

  T2 J9 y6 n9 M( X9 T5 b: k2 I; @那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( n/ t8 o% R% U6 S7 A这是AGV_putin中arrive的method。
' D2 J& z) P' o1 @' z
  l7 m5 H$ S: b* D- ^当到达物料速度越高时,这个报警更多,

$ |. j; Y9 ?- u6 k另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-11 21:00 , Processed in 0.024350 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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