设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7569|回复: 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'3 W" C5 ]9 L3 I
*/
$ ^; M+ I* x0 e2 X" c$ |( xis
9 Q7 ]4 q: C* ~' M( z( a0 _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: `0 ]! Q" y8 u# Q8 I
do
+ M: I  |+ h7 e6 n" q$ ^        Lan := rootfolder.Internal.Tools.AOLlanguage;( a7 B! N% x+ Z  B& n5 t
        if current = @.Destination -- else return
$ U; B( y  _' V4 w/ e4 c        then' S9 T5 i# p6 Z; k8 p3 i
                @.Destination := void;8 Z! o; B; F* G" y) b* a( S
                if @.occupied then; ?2 J) A* A' A) t
                        part := @.cont;
- ?$ ?$ A* [& m: U8 Z                        @.transpOrder := void;7 D" @& o& r2 m. M& |, }; Y9 v- _
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ t& n3 @) D: \0 j6 i5 d# G
                                @,root.eventcontroller.simTime);7 u) w$ v& {0 q/ l
                        @.HasOrder := false;
/ k5 y: G, e6 P+ P; v" V                        @.DrivingHome := true;7 L( F5 [$ r; H' S2 |
                        rgManager.tryToStartTransOrder;) y9 \- @# n1 h
                        if @.Destination = void
* v' [' J" N( f! E) e5 i                        then -- no transport order for vehicle @, h4 t0 d3 s8 R2 u
                                @.Destination :=
9 T4 G) s  n" j" }& I$ R, A                                rgManager.nearestFreeStation(@,track.~);
5 H) g" z: s$ I3 ^$ |' U% G                                newDirection(@);   : Z1 H9 x" ]/ t& w
                                if @.Destination /= void then& t; N% _( a* S. B+ B- _6 \
                                        @.Destination.NumReservation :=
! f) L$ i( q3 k8 y$ X( H/ g                                        @.Destination.NumReservation + 1;
. `- E; w) b( Z- T4 b& y                                end;
% k( K( r2 Y4 }4 E6 Q                                @.CurrIcon := "drivingHome";% r  C# X' W  a. U
                                @.DrivingHome := true;
% ?6 D* {0 @+ _, `3 c2 A& s                        end;
8 ]) ^/ p; l8 u  M+ I0 l3 {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ p1 e! j/ ^2 W" k$ a$ e% Z1 r                        part := @.transpOrder;3 w& k7 b' {  w' u. L
                        part.move(@);-- load part" d4 x9 ^4 y+ X8 B4 M- J" [
                        @.CurrIcon := "load";
5 }  I# c, I. c, u4 @3 Y7 I8 [                        GlobalDistObj := part.globDestination;
8 _+ @/ B. s1 M; i, }6 M                        assignLObj := rgmanager.rgAssignL;
. i1 l. y! o: }8 u; |3 |                        row := assignLObj.getRowNo(GlobalDistObj);
! d% E/ _4 T* I/ z                        if Row = -1 then -- since 70
1 i4 P0 e& e9 @! N7 B$ p. D. @; s                                if lan=1 then
) D! f1 d7 s! M' I                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! X" z$ m" w+ d) ^# [; c                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 l- @* @0 B( s; Q# Z5 `; h3 }; R% f
                                else
6 K, j) {& O1 G" f' N                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: n! t2 P- a1 x3 r" w
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ ?% j- h% _! T8 E+ x7 d                                end;8 b3 z; K  o# f& S' J
                        else
8 ~( c, u$ m. h0 H                                @.Destination := assignLObj[1,row];
! a( }! K3 `0 s& B" x1 G1 R- t                        end;                       
: W' K& |. g( c                        newDirection(@);7 T% b2 X/ P+ s' {% l" h) |
                        @.HasOrder := true;
. {+ U5 ]& U: Y8 B                end;5 K; H  l  Z) x$ [1 c
        end;
: p4 I' u% `# A5 R* w- l2 S3 M0 Kend;        -- of the method
1 G4 r5 v4 M4 W# F- F, S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 u. Z) d8 f/ d& s. G0 H: S% w9 p0 r1 R2 L
这是AGV_putin中arrive的method。9 G4 H4 u* s" x! f4 ~" g0 O

+ \& ?+ x3 q* @当到达物料速度越高时,这个报警更多,
6 ^& v( N; M8 w; P; i5 o1 t  D可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, G4 X* [1 C+ C: F
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# H$ P4 p3 M1 `1 c# ]) Y9 i- f" n( O1 }# N; `
另外一个小建议,就是move,所有的move都可以这样) y; k, p( T6 N2 v- _2 D9 A. Y
if not move() then debug end, G0 C' R- i( I% F+ J. @' Y( I; x1 n
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  H! j& ?$ n# f3 S1 q3 `9 L! |plant simulation中的free libraries有AGV模板,# S5 s$ U# t7 z7 M% P
里面也有案例。
& K% e; ]1 W& \- R5 E8 B我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! [$ m1 q% V, O. l; |+ b- ^* A& h( ?7 U* W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * D3 Z+ h! C+ d. G. d; ^3 r
/ ~; g. R2 @; o% ?, u% ?" f
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 l/ U/ x# h7 _2 N! N+ l$ H
这是AGV_putin中arrive的method。3 C, W7 D1 A- i- R* q" L4 e: [' w

; e7 p/ S: V& n2 S9 A: h) K4 I当到达物料速度越高时,这个报警更多,

8 c5 }* ?7 [/ M6 A6 j另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-18 00:33 , Processed in 0.019895 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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