设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7557|回复: 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'
% ]' g/ y( x; @$ z+ \5 Z; S  B8 m*/- y( N7 k! @0 z: O3 @- X+ I1 v* P
is" O; c5 j2 t! v1 Y: a; @
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 d3 U7 D$ e7 L2 r( Vdo
+ M0 O* Y, v; ^        Lan := rootfolder.Internal.Tools.AOLlanguage;
# ~4 D1 o3 Z8 k; v        if current = @.Destination -- else return- {5 m  ]1 T8 ?3 U3 w# |
        then
) r* [; y& R- O6 }: X$ G" y0 u                @.Destination := void;7 \# M) w4 ?) e- |: L, u( }
                if @.occupied then
) b/ X: E8 U$ {7 H                        part := @.cont;6 d1 s5 |$ j% Y% c5 D
                        @.transpOrder := void;5 S3 _* H7 G  q# q7 V
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: C, `# n  S' _. G. o! Z                                @,root.eventcontroller.simTime);
: X3 f! E) J' ^4 ]' ]                        @.HasOrder := false;) l  g2 ^3 p; u( E
                        @.DrivingHome := true;
% b+ b# S& s/ B# ]1 ?  r                        rgManager.tryToStartTransOrder;
# t: D$ W) O( `& ~                        if @.Destination = void
7 n- {5 t0 G- g! E                        then -- no transport order for vehicle @3 x" Y% I, ~# A
                                @.Destination :=! a4 s4 i% A; [, {( g$ u
                                rgManager.nearestFreeStation(@,track.~);
& E5 `2 U! X$ v/ M- m; E6 g( `                                newDirection(@);   
6 M" {" N' G* [0 D) j                                if @.Destination /= void then
* ~( |) s) n* y- I& g                                        @.Destination.NumReservation :=! n) g* U) a" D7 q4 ~
                                        @.Destination.NumReservation + 1;# e" j5 `& b0 f" G
                                end;
' H& v) i; v$ t+ n+ Z                                @.CurrIcon := "drivingHome";6 \! ]) ]# Y* Z$ U
                                @.DrivingHome := true;
& h' t3 p- d  l3 O, e- v                        end;+ ?8 O/ l  G6 A. H8 t8 a' ~
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. R5 Y2 U! Q! N: R4 `  t
                        part := @.transpOrder;
: k' P! ]8 L2 i                        part.move(@);-- load part- d% `% w3 ?0 h( Z! n
                        @.CurrIcon := "load";
. O* v9 `! R5 p2 |* g6 w3 h$ C% l) `. S                        GlobalDistObj := part.globDestination;: R! ~( U# k: y  Q. C
                        assignLObj := rgmanager.rgAssignL;$ z# w& r% C& Q1 K/ O* j
                        row := assignLObj.getRowNo(GlobalDistObj);! ~* d: g; _# |( ?" f, m+ l# G
                        if Row = -1 then -- since 70
/ V' e: y* e# z( F8 t                                if lan=1 then
  N) ]( Z3 L0 ^7 m                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 r! k1 [# H5 {2 B" M2 g1 ]' f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 ]5 i& x  B5 G' s4 t5 [3 Z  m
                                else- S* C- H- q+ l" I3 N$ F, v
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- M0 Z% B) ]( m- y                                                to_str("in docking station: \"",?.~.name,"\""));                                3 W- s3 H7 C+ f, F6 F
                                end;' D& K, {  B9 p- m7 M# u
                        else' A( B' U& O. a; r) }
                                @.Destination := assignLObj[1,row];
2 o. L; m5 ^' v: e: W                        end;                       
$ ]$ G3 I' X8 t- u) E5 e                        newDirection(@);; \. I6 B2 q% v# P/ ~
                        @.HasOrder := true;
0 S& R* m( l( @4 y. ?                end;
2 E6 p. w) [* T& q( {: x        end;
0 x! i& r0 p8 K# K- Pend;        -- of the method. W1 K( G" A- V! ?& N+ E! w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( i  d. ?6 V& m6 V) G5 c
3 E% j' l! ~3 u7 t  N- R
这是AGV_putin中arrive的method。" D8 u5 Q5 r( d! P* w6 I' y
3 m# d4 F7 @2 e- a9 V
当到达物料速度越高时,这个报警更多,' x$ k' J( u1 n. `( p4 R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' Z/ F' R* Z( v0 w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. x" Y" [4 z; a( a5 N- g- ]: Z
: K0 D  r5 m2 e" N8 T
另外一个小建议,就是move,所有的move都可以这样& E; `, q, ~+ l
if not move() then debug end7 y* c& g/ _' y: ]
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  P0 a6 \+ ^# b4 g1 l6 yplant simulation中的free libraries有AGV模板,9 R0 V: e- f: l) }- W+ x0 x3 |0 {. _
里面也有案例。
7 A' F# @- c. B; x% h/ j$ L我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 n% e6 ~3 \- D( @& I4 [8 t/ j  ?0 J9 N' ^$ @
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ y% _* W! `" c  D. D
6 [$ g) b+ R6 _那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ D/ T1 H3 z' q  j2 o/ J这是AGV_putin中arrive的method。2 I$ R* q$ O) a( x3 T; J

3 M+ ~' k% ?  [7 n3 Z当到达物料速度越高时,这个报警更多,

0 R* W5 A6 \1 n4 p9 p另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-17 18:08 , Processed in 0.023484 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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