设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7907|回复: 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'* a' v+ ?' d! v% Z: ]3 }4 q2 m
*/+ H0 W; _4 V- R1 Q
is
' F* u6 M0 Z, B* M. v* \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' R: Z% ]7 h  M& S9 sdo
5 a8 R4 C% D( {( z0 X        Lan := rootfolder.Internal.Tools.AOLlanguage;
, B' G1 ?5 n% w% I        if current = @.Destination -- else return
  ]& T1 ^/ K7 n2 \( M        then
+ _. f& o& |% u% W                @.Destination := void;
& t. Z# A6 \& J* R# ]1 U! W                if @.occupied then7 {) a% y) M1 |6 I( q$ P/ q, H
                        part := @.cont;0 }" O% u. Q$ I1 ?9 _' {9 N7 e5 t, g
                        @.transpOrder := void;  L4 h/ n+ ^2 ?/ \$ w# q0 V
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' L- `- ^* x# a, I  Q0 F; j3 b( P
                                @,root.eventcontroller.simTime);( o6 l. h5 ~4 @7 C+ a, c
                        @.HasOrder := false;9 Q9 K% |+ O/ l
                        @.DrivingHome := true;
2 H9 x5 @2 t# y5 a+ |& V                        rgManager.tryToStartTransOrder;* R: k3 u  y0 ?2 c& m% C
                        if @.Destination = void2 [. H9 U* p) V; K+ ]* i
                        then -- no transport order for vehicle @
5 g2 L- o) O  ~9 u+ e% u. m                                @.Destination :=" N" w" G/ e( @& Z, {0 g) d0 X
                                rgManager.nearestFreeStation(@,track.~);/ [' D  ?2 u# H. q' v
                                newDirection(@);   
+ r, q, f- p9 B6 D" E                                if @.Destination /= void then
5 Z) m. {. k( p& i) ~8 T) P                                        @.Destination.NumReservation :=
7 X! d, _8 k% R$ P; U! _                                        @.Destination.NumReservation + 1;2 _7 ?$ j4 Q$ K5 s) U! ^0 f
                                end;0 c! Q$ F" V8 P" b' l4 `: X4 b7 l
                                @.CurrIcon := "drivingHome";/ @4 n9 v& Z6 T+ m: D' A$ j
                                @.DrivingHome := true;0 h0 L% n: L# i, j
                        end;- x8 x2 K  v# E2 U/ O3 @
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. j: G9 S6 ~6 H' Z+ A9 h
                        part := @.transpOrder;
5 M/ Q0 S2 v+ x- k( [                        part.move(@);-- load part5 T' ]" l$ T/ G( n$ n* u& ~8 F0 R1 R
                        @.CurrIcon := "load";' t) n: P9 G, U- X: t+ W: x! E2 v
                        GlobalDistObj := part.globDestination;1 ~, Q$ l7 V2 m* d+ }
                        assignLObj := rgmanager.rgAssignL;
9 g( m4 S5 d1 C6 {# q% b                        row := assignLObj.getRowNo(GlobalDistObj);- f; b, |+ k3 ?  `) f% B4 I2 B
                        if Row = -1 then -- since 706 D4 j  b2 D. c$ C# d/ \" y
                                if lan=1 then/ M, ]7 Y! ], j% N3 z' I( M0 _) U. V
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! w: |+ j( Y: M7 @3 e9 h! `/ n  Q  c
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* |* n$ [. `" X$ m* b                                else
+ u9 @# B/ J" A3 T                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 d$ j1 `' L' A+ `" L                                                to_str("in docking station: \"",?.~.name,"\""));                                * @# A9 {& \# U7 l! @! I6 l
                                end;1 Y! E: W$ R5 u5 ?. D0 N
                        else
: ?4 j) |; g/ d% x                                @.Destination := assignLObj[1,row];, @6 i  p% x2 _! W* Q$ g
                        end;                       
8 Q$ e6 z  V1 `+ u                        newDirection(@);/ k& D- `. Z" C$ W1 n6 F! O  o: a
                        @.HasOrder := true;8 `8 i* Y, S, q7 Q* l% _
                end;4 E( r: n1 X. @0 A0 d, h
        end;
) U9 U+ c3 m% D9 }- [2 H  aend;        -- of the method
+ P, a6 {, ^$ f: a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % `* J& e6 l7 [, A& ~1 X! J
' K% ]8 u& e' \& q3 B
这是AGV_putin中arrive的method。
- p, S# r  }* f. k: |0 W. _
0 [! n8 ^- _, c& w* \) t当到达物料速度越高时,这个报警更多,. u" R% d3 Y* E" [, h2 c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: Y! z* y% j* V  A
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( V9 M. k/ U6 h9 t
# n5 G; m- A4 B) }3 O
另外一个小建议,就是move,所有的move都可以这样5 ~0 E+ p; ?$ N' F4 N  d
if not move() then debug end
, g7 n/ ]: R" r; Q; T' b" A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. n) Z* u" C$ V7 |* C
plant simulation中的free libraries有AGV模板,
# K8 V+ x8 c, R* h6 Y& j里面也有案例。
3 [+ f& t" P  l# g+ u我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! d  l# ~% l5 }+ ^& r( {
' H, w) V0 s" \1 E6 W9 K& P我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 ?: Q! Q* u1 J: r; P7 s7 B! Y' ~. N2 Y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   S! r- B  _/ e6 R* f* v- m
这是AGV_putin中arrive的method。: |0 M: F2 g- ^5 j1 {# ^% A
+ n! v6 F, B8 X1 G& T5 \
当到达物料速度越高时,这个报警更多,

; A+ v! S7 ?4 k8 P) {6 X5 I' Y) f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-4 13:49 , Processed in 0.024532 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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