设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5771|回复: 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'
# ~8 i. o" z9 \& e; W1 y4 l*/
; K4 @/ |: q8 b6 M( K( d$ p) B# `is8 O. y+ M8 V8 U* f( }: z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 U" \- Q% _$ ^( M7 J  x4 g) s
do0 f8 C5 ]+ z6 \" O- e! k9 _' }
        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ a) F- T; C5 f& k5 t+ R        if current = @.Destination -- else return$ ~+ E" q% l# ^2 _, |
        then
' ?' P* w- u/ X3 W6 }# Q# ^                @.Destination := void;+ ?/ l* w: `/ F+ Q7 L
                if @.occupied then
2 V1 R) A" G, f) p- w                        part := @.cont;( D. v5 N- ]. {4 k  K
                        @.transpOrder := void;
. i# S6 r& |, u5 l0 k) T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 W- S- I+ J- [" o& F, E$ k& z
                                @,root.eventcontroller.simTime);) N- O% t+ F! {! i
                        @.HasOrder := false;
5 V( ~' x3 Y" u) e! a# z                        @.DrivingHome := true;
" ?' Y, `) o3 T- \  q7 c$ {0 [& u                        rgManager.tryToStartTransOrder;
, o$ Q8 O0 t! u1 F* p                        if @.Destination = void
4 _7 [6 J$ P" F" `                        then -- no transport order for vehicle @
; L8 E, b" D+ O8 t; I7 r; o                                @.Destination :=$ Z$ V  J3 Z: J: l+ U/ p3 E, D: w) k
                                rgManager.nearestFreeStation(@,track.~);' e; V6 d& O9 V( r+ ?4 C* c% r
                                newDirection(@);   9 x8 u7 Z# }+ p7 s9 O. w
                                if @.Destination /= void then
" [9 m& H2 V8 }# }3 `1 J. F0 e                                        @.Destination.NumReservation :=) p! A& O- g9 t( T
                                        @.Destination.NumReservation + 1;
0 m5 {1 D7 u: ~                                end;; ]! u- d( K% h0 H1 O) g0 g
                                @.CurrIcon := "drivingHome";, Y+ @% Z# ^( O3 h3 x
                                @.DrivingHome := true;
, ~' L2 r( r6 g                        end;- M" T7 |) u, c# f: Q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ Z2 V) D/ }$ e* Z+ ]                        part := @.transpOrder;
! ?. \0 N5 O* s( X% W$ M                        part.move(@);-- load part
" @; A% y: {$ K2 Q$ j. h& m                        @.CurrIcon := "load";. B/ d# S: N" Y1 u& }* N( d
                        GlobalDistObj := part.globDestination;
- }+ T7 v% V, ^1 Z& z. T4 L                        assignLObj := rgmanager.rgAssignL;2 C  h- n9 q2 q% c" c! n, l2 e
                        row := assignLObj.getRowNo(GlobalDistObj);# C1 R7 V1 j9 r  o( d
                        if Row = -1 then -- since 705 d- f  R* p( B4 c, n' _1 J
                                if lan=1 then7 j! z! g. [/ H6 H
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 D) @! b) V" O                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! _& d% N4 [. o( K  i                                else
4 q: ^, K# A3 m/ m# B3 A                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 @# J; \; ~# C8 c/ r  h                                                to_str("in docking station: \"",?.~.name,"\""));                                ; g# T, Q& l; R1 g$ s/ n% y, G0 @  [& u
                                end;
- v6 d! s" G! b' M3 y1 v, y" Z$ f                        else6 a$ c6 p. T) N$ }* l$ I
                                @.Destination := assignLObj[1,row];) F8 \# x3 T2 ^3 y6 L, N
                        end;                       
: R' z% X. o; l8 U# K% D; y                        newDirection(@);
6 Z, i* l: t4 s/ }                        @.HasOrder := true;
2 T/ a9 a" w1 g, \, D. |                end;
% \! S- g, K4 j9 k& }/ C! o* K        end;2 ^) i0 ]+ G  t$ S; H* Y
end;        -- of the method
# P5 F0 c+ ]) v/ o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- b: r" G+ g6 P: `! x" ?
1 e# S3 b  e8 G- f8 u. l这是AGV_putin中arrive的method。
4 C, u3 g, m& h$ h* L$ e% x- H
: T6 G$ ~) q4 Z当到达物料速度越高时,这个报警更多,
% l) @; H8 g2 z可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 \: m* W; x1 H程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" u+ L  l  }6 {( e- [
7 q. q  C6 e3 G% t另外一个小建议,就是move,所有的move都可以这样
' W9 b( C9 C4 C0 lif not move() then debug end
: e, _. y* O) w  R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, k6 K9 Z6 k3 U/ mplant simulation中的free libraries有AGV模板,
4 W1 a1 T9 Z& P$ X. |5 e里面也有案例。& @, _6 \: E' e9 f5 c
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ N" f8 t3 Z* \
6 R$ B! Q2 f9 _0 }( f7 G7 Y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 w" G3 E! d2 f3 D
5 r. ?' _2 O0 n7 x$ Y6 ?9 ]9 D
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; k' t+ X# v! i
这是AGV_putin中arrive的method。/ X/ ?3 v5 Q* s# i* N6 Z

: J& ?" ^( \9 O0 B; l% L当到达物料速度越高时,这个报警更多,
+ z; ?2 a1 Z4 ~, [3 H8 i* @1 n1 h
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-18 22:20 , Processed in 0.019879 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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