设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6038|回复: 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'& Q9 S" n) h5 G, a& x3 W! _2 m
*/
9 h3 V. I2 X8 _6 uis1 O7 ]! Q6 b  z, F1 M9 Q9 `. |1 n/ f
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; H- Y9 W+ ?; T; D8 Odo
( [% y3 ~1 @. F: F% R; E: }        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 Q# z0 W: X+ Z4 z4 [: ~  \        if current = @.Destination -- else return- M8 r2 ]: z$ v8 [; N
        then
9 y' v& K; C+ d! v' v7 m. k                @.Destination := void;0 V  B; e" [; l" e
                if @.occupied then5 k6 X5 `8 r( q5 G$ f  _- q
                        part := @.cont;! D0 |" L; _  a" o2 m, I
                        @.transpOrder := void;
/ l3 h3 O! P( k9 \& K* C9 ^                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' `! r. A3 N$ N
                                @,root.eventcontroller.simTime);
, z8 H' I, y7 ], g                        @.HasOrder := false;
! v" G6 j1 J. E( s% I                        @.DrivingHome := true;+ Z2 w0 s- G, h9 G; a& _9 m# }/ j
                        rgManager.tryToStartTransOrder;8 M, y/ r) c0 m* \" B% c* h
                        if @.Destination = void
) I3 P+ A- y' Y                        then -- no transport order for vehicle @
) S- c. ?" v8 ?8 V                                @.Destination :=
0 P: f8 J; a8 @; o! o                                rgManager.nearestFreeStation(@,track.~);3 b( @  J7 C! q. P& G$ N
                                newDirection(@);   5 N" u$ R# g  m5 d9 b" J
                                if @.Destination /= void then- @: g6 v" ]# }9 C! D
                                        @.Destination.NumReservation :=
' w0 |0 X' p( ?& c( E- h  J                                        @.Destination.NumReservation + 1;! r& H& u1 \* I8 x$ M6 Q! ^2 z
                                end;; J' y# P5 w  t' G# T
                                @.CurrIcon := "drivingHome";  B+ \+ w3 X' q! C8 P. v9 ~! a
                                @.DrivingHome := true;
7 A- V, D3 q; L2 J. A  q/ }                        end;
1 V1 h  M) C+ H  m6 A. o4 O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) v* o; r  j8 n
                        part := @.transpOrder;! Z. Z- k: D* P1 I9 g4 l
                        part.move(@);-- load part
! n5 x" D* u# [- R/ p2 O1 @                        @.CurrIcon := "load";
+ u" M+ Y; k( S* O6 C7 N; \( K2 L                        GlobalDistObj := part.globDestination;
  v; b. [% z* i                        assignLObj := rgmanager.rgAssignL;
5 t8 d$ X# s& N* M                        row := assignLObj.getRowNo(GlobalDistObj);
' |9 m) q, u2 H                        if Row = -1 then -- since 705 B  L, N; N; g4 O
                                if lan=1 then: A" `( E4 k. K) m) D) g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& L8 F: l6 c  o! w/ h& @                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. c' v( _7 U4 r8 n! }6 C                                else
1 ?, ]$ G- ]" g2 h5 m) y5 m4 H                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," T( k/ O. Q: ^. p
                                                to_str("in docking station: \"",?.~.name,"\""));                                2 D: o: ^8 v6 Y$ a& z" F
                                end;+ `" p; `0 ]$ e7 u9 x! t
                        else
+ D, L$ ?1 i7 J2 H: e5 v3 u                                @.Destination := assignLObj[1,row];
9 a. ?  _: ^# T- v5 X                        end;                        + d8 }0 `  D! g4 ]/ B: \
                        newDirection(@);
0 z5 y6 H6 W. z                        @.HasOrder := true;
4 H2 f3 Q* H( U- @6 ?/ ~$ l. m                end;
! E/ z0 E! K8 W* x7 x6 v+ S6 o, p        end;
& J; s) O' W9 f3 R. Q# Aend;        -- of the method
7 H9 E! ]' B# s: C* ?  ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; `# `) z- |% W- s( F% j5 {1 k! N" H6 T5 U
这是AGV_putin中arrive的method。5 y) f* A# E+ ~! y  \# z# G6 J+ {
$ k5 n9 v7 ~4 C$ ^& P
当到达物料速度越高时,这个报警更多,
; d" E, L9 r* x" l) g$ i+ N8 v可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 Y* c) ^0 z4 ]7 q+ S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 X& F4 y) R* X+ n$ c
9 Y6 t) G& @7 y/ s7 z另外一个小建议,就是move,所有的move都可以这样
7 Z4 F  ?: \! t" ?% Uif not move() then debug end
# Y% y' v: X' A" ~4 U这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 s2 r, R; n+ z2 X" P% Q, i
plant simulation中的free libraries有AGV模板,
: J1 w. m) m9 s0 c: g- M里面也有案例。3 |0 E2 B! ^" [# B& T, Q6 e8 P8 _
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! s5 D" r. X! `: p) a3 ]$ g
1 e" U8 m+ _  i& K我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; U: e1 A5 K& n' ], c  F
7 u; E% G# E$ Q/ c) V$ q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& ~4 ?/ a  w6 s" |这是AGV_putin中arrive的method。
% ?* g3 B& Z1 [8 O+ k1 I
" W  k5 c5 [" x当到达物料速度越高时,这个报警更多,

' s5 ]: o+ D1 O- S6 m8 e" J( e另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-14 00:17 , Processed in 0.020274 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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