设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7589|回复: 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'
/ z* ]+ D1 _' B. o* s' ^, W) a# e*/
& j( V! u" `8 Q$ L3 Cis: E1 H7 z/ E0 A# a  E, F, H! b. T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 I+ {$ H$ Y: [3 W$ bdo
  ?( l+ p3 w8 M" {- P2 ^6 B. `        Lan := rootfolder.Internal.Tools.AOLlanguage;) v) k4 ?+ r' w, V" V
        if current = @.Destination -- else return
: B0 g! Y- G( Z        then
' [: l, S( f6 ?7 z  R- f* ~                @.Destination := void;' \# X- J1 D1 D* Q9 k( d0 |/ b
                if @.occupied then5 }- T  o( S; o( z- q, {
                        part := @.cont;+ l$ e1 c: I) T9 m$ o1 Z
                        @.transpOrder := void;
4 k" s/ s, d  y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; ^  ~# O6 W; z8 T% X& w- R4 g
                                @,root.eventcontroller.simTime);# n4 B) R% o, T$ j$ c
                        @.HasOrder := false;
% I6 ]9 d* D( A$ Y4 M% K$ ?- M                        @.DrivingHome := true;
3 m5 W) p, }+ r4 t" M- L                        rgManager.tryToStartTransOrder;0 V/ E+ U/ w, F* `# s7 O" c: i
                        if @.Destination = void) u  _, N0 ?0 b! g
                        then -- no transport order for vehicle @
5 x6 v& b3 d1 l$ ^( y                                @.Destination :=
0 Q1 E* R3 M# h" `1 d( N# E1 I, b' w) d                                rgManager.nearestFreeStation(@,track.~);
+ c9 Y1 Q8 \: H5 S" `                                newDirection(@);   : ?( \$ m4 j' ~# S4 a0 x
                                if @.Destination /= void then: d7 x, y; j  N; }
                                        @.Destination.NumReservation :=
1 W+ v2 ^& L" l& Y: L7 p                                        @.Destination.NumReservation + 1;
2 v# \$ M- s% _8 V* M' i                                end;
, `; F9 S! x& O: R                                @.CurrIcon := "drivingHome";# _2 o4 I/ M  z) B
                                @.DrivingHome := true;0 j0 U( O5 `$ F6 p. I( A) Y2 n! [
                        end;
5 @! m% r$ N1 ?: X' I                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: y, a/ f) c! |& B
                        part := @.transpOrder;/ R$ a4 S8 t) M, G- H6 K0 x- {
                        part.move(@);-- load part4 b$ c4 p; F: E" L4 t# N; ]: m
                        @.CurrIcon := "load";- b9 w' O; }) S- f4 M' w; b
                        GlobalDistObj := part.globDestination;
; M  @/ w! o% j3 T" O                        assignLObj := rgmanager.rgAssignL;% F  L1 l" V* P* u
                        row := assignLObj.getRowNo(GlobalDistObj);
% i# Q/ J$ J' w: {* c8 U  ~# r8 c                        if Row = -1 then -- since 70
7 T+ Y: a5 Z# }6 a7 m$ U* L                                if lan=1 then- c# B, H! `, X) {( {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  w. ?6 J) V% ]9 `3 ^) g8 g' N                                                to_str("in der Andockstation: \"",?.~.name,"\""));( [/ j: t' Y; d" Q
                                else7 e* K( U6 g& T) y2 X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# u7 q5 A2 @* U0 Q8 j1 I                                                to_str("in docking station: \"",?.~.name,"\""));                                3 K2 Q3 B( f5 a' O5 X5 R! N
                                end;/ V' x/ G, J& z+ S  O9 ?0 y3 x, L
                        else' \3 e0 `- i  }0 |. k) h3 ]
                                @.Destination := assignLObj[1,row];1 |, v0 g8 ]) i+ W5 ]- E
                        end;                       
8 H- L$ j0 E1 Y" U6 c3 v                        newDirection(@);
6 s, ^8 C6 y( Z* h0 q) a                        @.HasOrder := true;
5 ~& _/ c4 i4 |0 @                end;/ L- q5 C( P* F
        end;, g* \0 [& o( [7 Z0 ~8 Q
end;        -- of the method
) [" i$ R1 s3 o4 B1 \, \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* F" m' L0 l4 R  ], N! ~
6 a, y5 S7 g! H; {这是AGV_putin中arrive的method。
( B$ e3 @: J! p7 b% l5 b- W6 C
8 S# P( _7 C, L( F1 L; p0 T3 o当到达物料速度越高时,这个报警更多,
  k1 [8 W, }1 g. n/ N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 q; x. t9 k$ D/ Y5 r5 S& F程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 D& j2 s  v6 h8 |
" X' ]7 q1 o# V* p( O  s另外一个小建议,就是move,所有的move都可以这样0 G$ w5 e' T: ^* l
if not move() then debug end
7 p1 ]* Z1 [+ N$ Y% [这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* E4 s9 T+ o) A- {9 \" J# U0 splant simulation中的free libraries有AGV模板,
2 C2 U/ `- j* C( `; m& I里面也有案例。
% m3 W: [" R) Z) q" D. e/ H  `我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 @- n. |" `% e

6 R% G! T) y! o, A% Z- O我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( J. G- a" y6 g/ e5 |, O; L4 `' j# q, x0 d8 s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 [* h1 H! u) G" {6 ]这是AGV_putin中arrive的method。0 A5 l$ y" B5 `( l" p: m% P
# n( r- K. Y. l0 p8 C( ]3 F! @5 E
当到达物料速度越高时,这个报警更多,
2 `, {/ v" {; _  V
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-19 03:07 , Processed in 0.022443 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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