设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10102|回复: 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'
* U. [( ?/ _  q- ]*/" t- Q6 z/ n, t& @2 ^8 _
is
+ o+ [( }  P. R- N1 [: Z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& @% e, d& e  @8 v
do) {* k7 v; o; l
        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ t7 J# Y1 N$ U6 p        if current = @.Destination -- else return; A1 ?2 W) G9 }) k( k
        then, W7 i& j+ o, E! ]* l/ m
                @.Destination := void;& [5 z% ~( s- t3 v; ?
                if @.occupied then' a  u( T* ]! a, ^; x& _
                        part := @.cont;  q# o  t! C" v$ u# m
                        @.transpOrder := void;, \' k2 n2 D+ O5 C  S
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- X1 @. D2 e' _: c
                                @,root.eventcontroller.simTime);! T( a$ ]5 J* P% d; t
                        @.HasOrder := false;
0 Q* }& V3 G! F0 R+ F* U# f2 G                        @.DrivingHome := true;
" ]: n1 n/ h4 p$ w; T' H                        rgManager.tryToStartTransOrder;
/ N& u9 O4 F% _* X3 `! E                        if @.Destination = void; b; e4 ?) x- j
                        then -- no transport order for vehicle @* E" y; p: j! p$ j. t
                                @.Destination :=% I0 @' [9 H+ x
                                rgManager.nearestFreeStation(@,track.~);
1 C1 i- v6 j) N9 s& e% z" a3 L9 s                                newDirection(@);   
% m  c  p- `; U3 d) H. ]                                if @.Destination /= void then
/ e: L" |; H% R) y. A7 Y( a                                        @.Destination.NumReservation :=
2 r* u7 [; O* D$ G8 f4 Z                                        @.Destination.NumReservation + 1;; M( t7 n0 C" u5 \  N: f
                                end;
8 H0 l1 r* f+ G6 x9 w                                @.CurrIcon := "drivingHome";* }4 {# g/ v5 |4 f6 h4 p
                                @.DrivingHome := true;
. R: n# |' ~& Y                        end;
# @" y5 P1 l. ^/ \4 I                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: j& q: V3 N" _9 m/ o
                        part := @.transpOrder;9 E% V5 {8 |% S8 e& L. p" h
                        part.move(@);-- load part
( V' b# O! C* P7 g                        @.CurrIcon := "load";, S3 @6 P, T* H9 o
                        GlobalDistObj := part.globDestination;( ^9 v6 T6 z, q: y
                        assignLObj := rgmanager.rgAssignL;
2 R/ ^4 m: F% p& R$ l                        row := assignLObj.getRowNo(GlobalDistObj);7 }5 w% b- k. F) I! }
                        if Row = -1 then -- since 70
+ T* i7 x( J3 ?6 n- E                                if lan=1 then( {6 b, Z) G) f4 @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 s$ Q1 ?, t9 c5 h                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, A; g$ a: m  O) P8 B                                else9 o8 i5 t- y) F0 [6 V3 ?
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 w! T* b! n3 Q8 A8 f0 z7 v9 ]
                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 p- O' M9 `( e+ k  ]                                end;* d. M* U  _, u/ P. M( P
                        else' E! w- o/ j# Q/ ~
                                @.Destination := assignLObj[1,row];" G- t5 _5 h. \, U3 f" M' ^
                        end;                        ) Y# {& U2 i- f: s' T' x
                        newDirection(@);
9 m9 W4 Z2 V5 G0 T( j" b' I/ ]                        @.HasOrder := true;! s# T5 b3 i- a  f# f8 A7 ?, E/ q( p
                end;
  F% p0 y2 q3 V, M$ E  k0 q3 V        end;
: L. N  O% o; B! @end;        -- of the method# ^2 M8 z- N9 i( ?0 E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 \; m9 x) m& t1 E- H; @. T
% u% w( h0 |; E: s! Q这是AGV_putin中arrive的method。
# w3 X4 x( M1 m
3 z0 Y" \9 b" Q  e当到达物料速度越高时,这个报警更多,: p) M+ H2 g7 B
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* j1 X* v$ O/ }+ P程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 u4 |: k. H( d/ i3 Z, D( a/ J! ]/ |
另外一个小建议,就是move,所有的move都可以这样# ^0 g6 P, X0 E/ C9 ~/ }: z. |2 A
if not move() then debug end( W, y3 ~- V' z8 ?; Q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, }  o( m8 F- \" D, j2 u1 G
plant simulation中的free libraries有AGV模板,1 U) _0 X$ U! ~$ J$ r1 Q6 J
里面也有案例。
( a: h. G5 n* P+ }* s; z$ i我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* r. A3 Q2 U! x% ^
& q( l* s5 d0 B/ F. ~: o我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 }! W% t7 ^- a. }  F( i) a
$ _4 {1 I: B& p4 C  {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( ^: k( ^- x& V4 I1 z6 u
这是AGV_putin中arrive的method。+ W# P' v3 ~0 n! b

# ]/ Q" M, J' K) l当到达物料速度越高时,这个报警更多,

3 W* ^7 ^3 g: T! I' `5 _- h另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-13 14:03 , Processed in 0.018338 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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