设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6140|回复: 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'
7 i( C" c* p( l+ G' K*/
8 Y% g) H+ V5 s% o& tis  }; j% B: s0 t- D6 J( F
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 T0 _$ e+ M, \* d
do
0 n) ~) y) ~: X, w" ]7 _        Lan := rootfolder.Internal.Tools.AOLlanguage;
# c* }& f: {2 @        if current = @.Destination -- else return3 h4 J5 K9 |; l- l3 V
        then* H4 d# w" ~: K5 B. b/ A: d
                @.Destination := void;' z* u! j5 ?; K5 @
                if @.occupied then6 u( u- `/ x/ ~0 A- h# p( F
                        part := @.cont;' y8 X8 N2 p8 _3 K" B4 o  b
                        @.transpOrder := void;* e; J" e+ n- T4 J. L; h# h
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' }% F, M! h$ E                                @,root.eventcontroller.simTime);' E2 p, y% I  H$ T: {/ V% P( L% q
                        @.HasOrder := false;, O: }0 S- k# v, c6 D& L6 c- J9 _
                        @.DrivingHome := true;
+ h; L5 [1 Q2 w2 n                        rgManager.tryToStartTransOrder;
" u8 i0 s4 X0 T' O% \1 l                        if @.Destination = void8 @# W  H  Y0 U4 X( Y+ `# d
                        then -- no transport order for vehicle @. Y% q7 n3 E/ I4 ?8 `7 Z( a& u
                                @.Destination :=
  |$ V* X7 @& n! {) W                                rgManager.nearestFreeStation(@,track.~);3 v! g/ t* Z; q, n% T8 Z- G8 s
                                newDirection(@);   
: i- x( X' n/ B& A9 j! ?2 b& P; ~                                if @.Destination /= void then  ?/ y0 n$ k% J- o( v( d7 `8 u
                                        @.Destination.NumReservation :=
0 A2 C* F4 I4 T8 f; [# y5 W                                        @.Destination.NumReservation + 1;4 v: I$ G4 w5 F" s7 e( F
                                end;1 D0 ?- ?3 J# B
                                @.CurrIcon := "drivingHome";% r  t! V1 t! ?7 T$ |% U4 [- K1 M
                                @.DrivingHome := true;
4 T' V$ G3 n5 ?                        end;0 L, B5 `, X" c# T
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
( ~, K! a  [' L7 H5 d9 e                        part := @.transpOrder;
+ a3 s8 U2 A9 s8 y# |* }: V# b5 Z                        part.move(@);-- load part* W3 T' s0 F4 x' t6 i% ?* ?8 A
                        @.CurrIcon := "load";5 Y$ Y8 K7 K/ I
                        GlobalDistObj := part.globDestination;
9 m$ @+ z9 S* z                        assignLObj := rgmanager.rgAssignL;
2 }, v* L; `3 y2 A" x! k                        row := assignLObj.getRowNo(GlobalDistObj);
, ]0 i; M9 @' R; ~! z                        if Row = -1 then -- since 700 R9 R) o& X! P) R' v
                                if lan=1 then
2 v- W4 l$ R4 V: T3 R. q: {                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  [* M& g1 A0 o: Q$ H2 D                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ i5 e& {/ c4 s: K6 B; |                                else/ W- o; q) D9 _# j. L" ?
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 D* u, _! c3 `8 m- s% u1 Y+ U
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 F* O0 X+ v$ P' T7 w                                end;
- G, z  z+ {! J) z                        else3 V6 h; g8 T( k3 M# Y' n. i
                                @.Destination := assignLObj[1,row];
# R, R& a) v& k, g/ Z                        end;                        % C, H$ `0 [& t# E. ?6 r
                        newDirection(@);- O" _, T5 a  @! S0 [
                        @.HasOrder := true;
2 T) \" q5 j( ?) \; C" K7 I                end;* ^) E9 v( `7 }9 v5 r8 E
        end;
& \9 B4 @' D7 v" i7 y1 _9 _" vend;        -- of the method4 L6 a7 ?0 p0 ~, Q8 I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) U8 n% v0 E1 P% \! b' D' M6 B# ?" `, ^4 U7 v
这是AGV_putin中arrive的method。, z7 D" K0 i8 T  ^* O
/ M6 M9 @: c2 H, t
当到达物料速度越高时,这个报警更多,
) E+ V, d) a: V6 q4 x3 ^可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* i( P! ^4 \9 Q: B; i* e! x程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 r$ a/ v& r. g' z7 m+ |3 j6 y7 B: ^2 t, f( {! l
另外一个小建议,就是move,所有的move都可以这样
3 ?9 H$ a4 o9 z+ J. r2 J" w) `if not move() then debug end
  B+ {9 ?7 o" z( Z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* g1 B" B$ {; a3 @) J( j
plant simulation中的free libraries有AGV模板,
. _" s0 V: r4 \3 [( M2 f$ W里面也有案例。
, N' c6 [* Y/ f% o7 H我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
2 K, w8 g  V$ E. w6 g0 R1 S- Y3 k# Z& y8 J( [1 O/ [
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- J- u% q% J! t
* z, O( e: X1 v& W( x- g/ K% [+ r1 W/ [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 N3 A) V  }' D+ A* Y这是AGV_putin中arrive的method。
. y  Q# n) O  D- |5 F+ c; h% M6 K, @- S4 T
当到达物料速度越高时,这个报警更多,

8 ]2 G3 ], ~& R" @2 A; _另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-21 00:06 , Processed in 0.018790 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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