设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6820|回复: 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'$ V% Q6 \- q, r! S) F0 `4 B
*/
5 @6 I/ p( p6 _5 z4 n7 Yis
1 L( I# V( i+ N2 X% t7 a/ C! q% j        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- z( x: h  B% }1 {& Wdo( O  Z* N7 S: z4 C% c$ z# h- n
        Lan := rootfolder.Internal.Tools.AOLlanguage;& J9 k/ A! U0 ~
        if current = @.Destination -- else return
. v. r- Q! R0 J( |' n6 E% [        then% \: {- w6 H1 j$ u2 Z
                @.Destination := void;: o8 P4 H! s4 \1 k" ~
                if @.occupied then% h7 R6 y2 b2 j
                        part := @.cont;
3 q( b0 x0 C7 Y9 [4 E                        @.transpOrder := void;
1 t/ b- r7 }2 m( a. C) p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 m) G. T0 }5 j! X( m8 P1 U0 J
                                @,root.eventcontroller.simTime);
' g* M8 G- r$ E2 a* x7 H                        @.HasOrder := false;: [' x1 N0 v# O$ E5 v
                        @.DrivingHome := true;( ~. u& ~% F8 q% L# {3 A
                        rgManager.tryToStartTransOrder;
. I& q% h  p# ?( l; W7 a" {1 N# e) G                        if @.Destination = void
% h2 |+ K- N3 [5 f, f% h                        then -- no transport order for vehicle @, @) o/ s& d* P( R9 E1 f3 j' |
                                @.Destination :=& t+ X6 i" }9 q6 A( C+ |- Y) g( l
                                rgManager.nearestFreeStation(@,track.~);
. n; h% t% Y* f* H1 H! h                                newDirection(@);   
& F8 |7 F7 O1 V                                if @.Destination /= void then
$ Q& E: I. N% J6 n3 e9 `8 H                                        @.Destination.NumReservation :=1 y% ~" _7 z9 P0 B
                                        @.Destination.NumReservation + 1;
9 L# ^# ?% X/ R! L5 Y                                end;7 p. [- S9 p: K$ ~; o1 p
                                @.CurrIcon := "drivingHome";0 r0 o3 X% @' o6 s* K- `% F- a# k
                                @.DrivingHome := true;" _5 ?/ ^. ?  a2 H! q3 m
                        end;
2 w6 l5 U" d. K& s                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* A8 H. W$ H+ j+ {  q
                        part := @.transpOrder;5 x; j# W' }: A" i+ D7 T: R+ d0 o
                        part.move(@);-- load part- ^" l" @- t5 w3 a4 Q
                        @.CurrIcon := "load";
$ Z5 o# ~( J3 H/ M1 `" L                        GlobalDistObj := part.globDestination;
6 j$ j" }& H9 m" z; q3 j6 L                        assignLObj := rgmanager.rgAssignL;' b0 R3 @" a) v7 i
                        row := assignLObj.getRowNo(GlobalDistObj);$ D$ P+ Z5 U* q( c7 n/ k# P
                        if Row = -1 then -- since 705 _$ h/ c7 |/ c/ H! s% ~
                                if lan=1 then' w5 g" C$ Z$ T% v) B  j& i' O
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% s& K! a0 T+ O. l0 ^0 G
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 w! R; L5 I- e! x: y! ]                                else
: o- U) y7 y, X; E, e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 T. p4 t1 A; F3 R
                                                to_str("in docking station: \"",?.~.name,"\""));                                ! m7 z- p9 R3 Z) h: b
                                end;( K+ `1 i+ a6 c0 |6 R  b& {' @7 S& R
                        else* u& q# i& j0 n& e
                                @.Destination := assignLObj[1,row];( Z8 a: J7 o6 _7 b5 c* b3 g
                        end;                        0 X1 o! ^1 G) L# X0 I/ K" b
                        newDirection(@);
0 P1 N5 v- ^( ?/ v                        @.HasOrder := true;/ e# q) d4 ?' g+ A
                end;
, @/ k, t! K+ x0 e" q        end;/ `9 L8 R3 x) D2 z
end;        -- of the method  X- x5 E3 `& Q. l  U+ ?) G- K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" a, |4 [& j2 o2 V: N9 {8 u3 T4 Y8 s) D2 z9 o& W8 U) p; l1 t
这是AGV_putin中arrive的method。4 O' A* _+ s5 b5 R5 l% D( P; c& u

! E# j/ Q& c: U& T当到达物料速度越高时,这个报警更多," g& D5 ~5 K- h/ K2 Y% s8 r. y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 N/ E4 L( L1 K6 k程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" i' v0 X! e3 z& Q# N9 f$ |6 a9 h* c0 ]1 e; R8 T6 u0 ^
另外一个小建议,就是move,所有的move都可以这样9 P3 a% `( O7 `( b' }
if not move() then debug end5 R1 E' A' v5 o- W% ?
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' ~+ \; @$ ?8 A" z( ~
plant simulation中的free libraries有AGV模板,# Q7 t2 r8 f" V2 I# ~, U
里面也有案例。/ |+ d2 B" }) ]2 q, x6 v" ]+ n' a+ I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  j7 s' z6 H! A! j, o& M( r

% F: b+ ~. K& W* d' E2 b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' P- }5 J( Z; \/ {$ @+ ^
3 a/ W: }' t9 o0 i# Q3 W那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! L+ i* K6 k" m& B这是AGV_putin中arrive的method。
5 z: b+ z6 |/ ^' D, Z- [6 V
2 |5 x( b8 s3 [当到达物料速度越高时,这个报警更多,
2 _: o4 b4 a; {9 t& U
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-28 13:36 , Processed in 0.023770 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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