设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8472|回复: 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 U7 U! N! g' j6 M  J
*/
$ @1 @, Y6 x5 ?is
5 S% w4 a4 }( n! R0 c# I        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ }. z% M. K, S1 I' G' i
do% e+ |: u4 W% o4 J
        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 H0 b6 q1 A- I, ]        if current = @.Destination -- else return
4 I1 ^6 y1 F$ K        then9 _" r+ {7 H6 ?* M1 I, _
                @.Destination := void;
# V1 {$ V- A. j, Q, [                if @.occupied then
2 a% e- H+ w. A; w+ _                        part := @.cont;  q; j* t8 _, s) c( W( j. |
                        @.transpOrder := void;, ~; {) ^4 f$ z6 ~
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
; d/ T" p' F9 }  M9 n2 ^# E                                @,root.eventcontroller.simTime);
& A- B' n$ F9 g" n+ l9 r                        @.HasOrder := false;6 m# O0 y# f* ]9 ^) i$ [
                        @.DrivingHome := true;
& q. Z8 ?0 k- @# o! V% ?                        rgManager.tryToStartTransOrder;* |0 `+ X  G7 O' X0 u$ }% M0 Y* S
                        if @.Destination = void
* W' n$ N: f4 z+ C$ G$ L                        then -- no transport order for vehicle @
7 p4 y$ G3 R4 o0 E                                @.Destination :=3 L  H4 }/ i1 k9 z% d
                                rgManager.nearestFreeStation(@,track.~);  Q! p: B0 Q4 q
                                newDirection(@);   ; ]/ _# h; ^' v1 \6 i
                                if @.Destination /= void then
/ _' C; _- _$ C( d                                        @.Destination.NumReservation :=
/ X" ^9 w; ~0 [* `2 W4 Y& i                                        @.Destination.NumReservation + 1;, c8 Q* h. E3 r* g
                                end;
: W! n( v# D& l2 ^/ |                                @.CurrIcon := "drivingHome";
( e! O1 t/ ~4 {  M% `% N6 ~3 i                                @.DrivingHome := true;
% a& h8 l  {9 A4 w                        end;
, x# B" R7 s4 p+ R; a                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 U2 s- c; X/ Y% V% T" M
                        part := @.transpOrder;
/ z, ^( N5 ~$ l! h4 @                        part.move(@);-- load part
) Y  I, J0 l/ r" P4 o5 w& T# p                        @.CurrIcon := "load";
' `  Q3 e9 g% s. W                        GlobalDistObj := part.globDestination;
, m& _1 A- {! c2 s# c- x5 q, N1 q                        assignLObj := rgmanager.rgAssignL;
3 S2 X; k# ~! e0 w' Z4 C                        row := assignLObj.getRowNo(GlobalDistObj);
( \7 I' g- H8 U2 l$ [                        if Row = -1 then -- since 70! z% K: i& c7 r9 u
                                if lan=1 then( c2 K7 L% |; B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% i2 {$ H* f- a
                                                to_str("in der Andockstation: \"",?.~.name,"\""));! d6 S/ _7 Y, X! ]$ y
                                else
. J  u" L4 n( J                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- ^' C) G: [0 N7 L* i6 I) W- ^
                                                to_str("in docking station: \"",?.~.name,"\""));                                2 `% J$ ?4 Z' z; H, Z# n
                                end;
5 N, Z  S+ d" l0 b" X# m0 o# l                        else* d" B5 A6 a: j0 i- a
                                @.Destination := assignLObj[1,row];
8 A! @# T3 ]9 o) Q4 H3 b; {                        end;                       
1 |( t$ \' A/ g& ~6 y3 m9 A  P                        newDirection(@);
4 ]3 j+ H' p$ ]/ }" V1 `- n                        @.HasOrder := true;  Y/ b7 C& H' w9 Z+ c5 r
                end;
- M3 t% i# X7 F6 ~4 [        end;" W6 _9 y/ [) c4 m' e# n: x
end;        -- of the method
7 r& c. W. |" B- c; B) T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) h1 y) c+ p. x5 }" E: J+ Y$ `  C" ^4 L
1 I; X8 L# V* g  h7 H5 _/ W1 E! o' O4 o
这是AGV_putin中arrive的method。
& ~7 H" z9 z! y% T3 x
9 W; K5 E9 @! y( Y当到达物料速度越高时,这个报警更多,
2 M, Y: C' o- X( b- `1 x可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 B6 q+ X8 F) K9 i& a% _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 C# ^+ x7 L6 i- t0 {9 q1 L7 I
6 j, `  k* h4 i* N3 y另外一个小建议,就是move,所有的move都可以这样
/ ]2 O- r( w' S6 [# l5 Bif not move() then debug end
$ i- Q1 @9 ?" V' L& p( h: U这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 G" U9 K0 R. J
plant simulation中的free libraries有AGV模板,
/ Q. ~- K' R$ C/ U% w& _5 P里面也有案例。2 j4 S. f/ g" Z$ d. l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 u. ]- D6 k- Q) p1 c, _  j* a+ ^2 D9 o9 L3 u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - L5 A: c" E, A* |! |$ t

- c9 E1 P- D3 m. |* ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * `* c5 v# V; x& {7 }) S0 C0 L
这是AGV_putin中arrive的method。- q, u' T7 m  \( L" Y3 x0 j

* |9 Y. n' e4 V+ q, C当到达物料速度越高时,这个报警更多,
4 S: K* a  P% a: J
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-6 02:27 , Processed in 0.020428 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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