设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6880|回复: 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'# N! ?  L  `( Q7 H7 c& e% W& n6 s
*/2 z" p0 {# v5 u
is4 }( c: A! R1 e) R8 u1 E( Z- [
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. h4 `/ I4 W. @+ `$ ^
do( v) D+ e% E' \7 Q
        Lan := rootfolder.Internal.Tools.AOLlanguage;) J# ]6 n& R# A' K* ?3 Q+ G' ~0 I
        if current = @.Destination -- else return, b2 B! p% f( N3 D  e  Y- v( h
        then
3 B7 I8 Z5 j$ r2 V4 T, S                @.Destination := void;
: U& Q" M" G2 {* d4 v9 t                if @.occupied then
6 y& o6 V. m; z# F* D) N6 s                        part := @.cont;
& m$ f7 B! q: z/ u/ H# @. A5 r                        @.transpOrder := void;
' `. \) Q$ z  Z( H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  p/ A* P) ]3 Y( n; `( Q                                @,root.eventcontroller.simTime);+ p' V1 f% G8 M4 J9 H
                        @.HasOrder := false;3 X. H! V5 X/ |% W4 O' |" W
                        @.DrivingHome := true;
  u9 P( |( A5 d: Q                        rgManager.tryToStartTransOrder;- L! w# X, M2 V) t! u% a5 w5 f
                        if @.Destination = void
5 L& X: [# s: S: l5 L. G                        then -- no transport order for vehicle @
& k$ \  d! K0 Z3 L! n) \1 C                                @.Destination :=
( g5 @* d" y( w& v. P                                rgManager.nearestFreeStation(@,track.~);6 J" x- S5 s# L3 o: Y
                                newDirection(@);   
4 c' f  U0 o; `: j2 a* @7 m                                if @.Destination /= void then
$ Z: O! T  ]- h                                        @.Destination.NumReservation :=
( M- E8 k8 D) x" @+ B                                        @.Destination.NumReservation + 1;
: m) h8 E' W9 J0 u  J7 a; |                                end;
" J. r6 m. J% M! Y2 B3 i  D* D                                @.CurrIcon := "drivingHome";
/ {) |2 U) |3 a( p. H' Y. w                                @.DrivingHome := true;$ B  J8 g1 }8 @" j  i
                        end;
% A6 o: f/ n; K                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: N# R( ~1 n( {. y! n                        part := @.transpOrder;
0 F1 |5 E. U$ l$ r- ?                        part.move(@);-- load part
$ V6 p5 v! E. y. b                        @.CurrIcon := "load";
/ R* P% t( r* N                        GlobalDistObj := part.globDestination;
' K! q' }: _" [                        assignLObj := rgmanager.rgAssignL;* W7 {% A7 k' Q9 K% v/ d/ y# @
                        row := assignLObj.getRowNo(GlobalDistObj);
% p  `$ w# G8 x& D                        if Row = -1 then -- since 70& q( O* C; q3 t, z0 [1 N' k
                                if lan=1 then
, z5 F5 @9 ~2 S; E% y- d. ~6 l+ j                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ J  ]- A& P3 P. B
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  w. _, u- F1 H) r7 R" A& p                                else
5 Y  w9 `/ M3 C                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. x. v2 v5 Q3 O& H
                                                to_str("in docking station: \"",?.~.name,"\""));                                / o: @5 n" `) E. b& g; H. }
                                end;
2 C4 W2 g: ~6 O0 |' N                        else7 M1 i: C$ z- C$ [* I
                                @.Destination := assignLObj[1,row];
$ j' R# u; M, `5 Q3 A                        end;                       
0 b) g, G! k1 W  F) L; y! U3 {                        newDirection(@);
8 [8 I. f1 C5 V                        @.HasOrder := true;
5 @! O3 M; r( V- E- \  ]& h                end;, S8 ~8 e1 g# |. ~! m  |+ v
        end;& \. I8 ^  A8 U( w+ d+ O3 v3 P- h
end;        -- of the method8 Y5 a5 D$ n$ L  i) g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . \: a& D, J2 V. P6 O9 C( `4 U- b
* L2 H, V# f- a( ]# a2 l
这是AGV_putin中arrive的method。5 K5 z) f5 X! N% T/ q

) h3 o+ }% {& Y* t+ q) t当到达物料速度越高时,这个报警更多,
8 X7 y* O, m- o可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 h! E) C' p& Y+ _. G* \1 |
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 P0 p& j* l1 O* }+ _  \9 @/ |' y
& z. k+ n: v  f% ^* ^8 [- c4 _
另外一个小建议,就是move,所有的move都可以这样
4 l/ x5 g0 q  r6 ]if not move() then debug end
' C& A" {* r  ^7 _- @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ K7 d4 s6 V! ?+ F& t6 _* X
plant simulation中的free libraries有AGV模板,' u3 N1 e* L3 }" o: a( q* C. a
里面也有案例。
) o! c+ ]! }3 n2 N% a( |我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ }( Q, @- C, w9 |$ S
1 L9 z3 N6 R; U/ A+ W1 {' p$ a
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ N9 C: r0 e: O* M% s' E- u( d: H9 X9 i
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 E* }1 b. s9 {# [* m( k, N; A
这是AGV_putin中arrive的method。
% Z$ W4 N2 b. M3 t
, B& B5 a/ v7 ]6 A当到达物料速度越高时,这个报警更多,
  Q+ J3 j0 w; d5 ]3 n  ~5 y7 k6 c, ]
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-4 10:19 , Processed in 0.027034 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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