设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8611|回复: 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'
$ s4 u% Y, ?3 S" M5 {0 \*/4 f) \  j( `: b9 I. ]+ R
is
- s1 B. N% K2 K: U        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 b. \8 v$ t/ h& K; J9 L3 J  W
do
) r; s4 _+ ~4 H* ^5 H, l" P        Lan := rootfolder.Internal.Tools.AOLlanguage;  }- O7 ?$ M8 [3 J) W% y) H
        if current = @.Destination -- else return/ E2 s6 P/ S% O8 d+ i6 S: e
        then
( i+ y$ Q: o7 f1 e2 P8 M                @.Destination := void;
6 k4 w4 n4 x7 U4 G( s$ V: k+ @                if @.occupied then& y4 w; u% b2 q- F4 o& C
                        part := @.cont;* K  X4 f& G7 B& K7 J
                        @.transpOrder := void;
8 V( l. y! o; a* C8 L, ]                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  I! m# {* H" P4 G+ v                                @,root.eventcontroller.simTime);9 \& S/ u: }4 T5 X
                        @.HasOrder := false;
* A, T: i' {* |                        @.DrivingHome := true;5 f! ^) `1 L, z  p
                        rgManager.tryToStartTransOrder;
2 P* F* u0 l! B% z3 R                        if @.Destination = void* q9 O# b. x/ ?# z$ G) N
                        then -- no transport order for vehicle @6 i. P0 T; F+ }0 Z
                                @.Destination :=: h" Z- E% q. q8 E. e
                                rgManager.nearestFreeStation(@,track.~);
4 |" {) ^, o7 X/ @4 F                                newDirection(@);   3 M; l& V! S0 y& k! }
                                if @.Destination /= void then3 P' h2 z1 b& U! B
                                        @.Destination.NumReservation :=% |$ [0 C* Y: o
                                        @.Destination.NumReservation + 1;  D" y: k# k) f6 Y+ T
                                end;' ?6 v. r$ v" ^) n$ E* s' D
                                @.CurrIcon := "drivingHome";
: P: j! A9 f0 F' m                                @.DrivingHome := true;
  M, }$ i( b( K8 b$ S3 ?& a) S/ N4 h                        end;+ }- H2 D' u, [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 X# a3 s' _% W4 m  u, S                        part := @.transpOrder;
. ^: z* y9 c) W- T: I                        part.move(@);-- load part! n  F7 [: \( r' m8 d
                        @.CurrIcon := "load";8 t% ?# Z5 R; W8 h# M
                        GlobalDistObj := part.globDestination;
% G9 d* S0 F2 V; M  t5 @                        assignLObj := rgmanager.rgAssignL;
: B, y" b: x2 i$ v' v( u8 v. K                        row := assignLObj.getRowNo(GlobalDistObj);" `9 _; ]! j; L! V
                        if Row = -1 then -- since 702 ~; t# }. b7 D. s6 p3 ]% E
                                if lan=1 then
% V/ A+ Q/ E# M2 }1 s) O                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, H( T. q/ j" w: q. E0 ?1 C                                                to_str("in der Andockstation: \"",?.~.name,"\""));* }- l. |2 Q8 t* I) v  x* o
                                else
2 s2 p0 j3 x) M/ [                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 G9 s2 O% R) j. S3 G
                                                to_str("in docking station: \"",?.~.name,"\""));                               
- @) L0 i5 `# ^6 E  a' _                                end;; D$ ^, O+ G. ?0 U1 ?1 P
                        else
' a* C5 e* m9 H. M2 \' Y                                @.Destination := assignLObj[1,row];9 J+ A! Z- D& ^3 s5 q" @5 [- d5 `
                        end;                        ; W! Z/ s) O1 v8 \' ~
                        newDirection(@);; @9 R4 K/ [0 L7 v5 d
                        @.HasOrder := true;- I: J3 X8 ?. m6 i
                end;
2 M  H" w" l+ g5 d: C/ q/ o% y        end;" @: t4 f; S* N
end;        -- of the method) e  [& k( q3 z# m& K* i- R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 [: l9 V. B, c' a% E1 I' V# G6 L* Y  T0 v
这是AGV_putin中arrive的method。
, I7 s0 ?8 B. e$ w; k2 R5 D! S$ w# n" q4 n) Y; g
当到达物料速度越高时,这个报警更多,+ ^4 W4 k" [' ]  t& A9 D6 c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。* w3 x/ C: Q) a  B
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# u# W: v1 u5 A+ d- U6 T8 u& W
; Q$ O: ^# V2 M; F/ U& K- c另外一个小建议,就是move,所有的move都可以这样
* x( W. a5 B5 q5 }+ sif not move() then debug end  j9 i% ^. h/ g" c* B, ?$ q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 F4 X8 a! U+ T
plant simulation中的free libraries有AGV模板,. x2 g. Z1 }3 p: [: X
里面也有案例。& i$ ^8 T1 x1 y
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 x/ i  o" q% D7 X7 ~" l5 c, A5 ~- @/ y! n; E; V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : [8 q5 f6 [( v8 x  F% h
# ?4 J: {/ w+ Q9 W1 n
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# t6 a  |3 S. D: e5 |" O这是AGV_putin中arrive的method。! U. x& i# `1 l/ @& q

. }/ [) `7 p, n- a当到达物料速度越高时,这个报警更多,

% R) [$ Y8 Q5 |4 `2 o另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-15 17:38 , Processed in 0.018199 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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