设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7947|回复: 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'
; I  L7 t4 j* H; w8 J8 U7 ^7 d*/8 f' ]( t( z% P
is0 L3 Q0 N1 G( s5 Q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 t, N6 q& z' F5 X5 Hdo% ^" a- }7 S; v+ \- L( f9 t
        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 f! ~4 O: Y9 Y$ }  H; ^* z$ r        if current = @.Destination -- else return
1 @, Q7 W4 Q9 x; T; z7 w        then+ |. ~; B( p8 p7 Y  t- i  y
                @.Destination := void;
' i3 m  o, _' G$ p$ E5 f  I% F/ }                if @.occupied then
- U2 _2 Y0 ^9 f& E                        part := @.cont;
$ p2 \: Z, v# u' h" k( ^! W2 {                        @.transpOrder := void;9 v5 D, B0 x& V1 v; ^) u- ^  [
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
; k8 M6 b0 b, [# C& t  u                                @,root.eventcontroller.simTime);
2 Y+ u. g3 n/ x& o( j9 i  K1 ]                        @.HasOrder := false;
% u) l7 H$ S6 T' m% K                        @.DrivingHome := true;
$ E. ?, p% Y. P: V& P$ m) y1 r                        rgManager.tryToStartTransOrder;
& ^) p$ B' D: R, u) d                        if @.Destination = void
6 ^" k0 U1 q$ `                        then -- no transport order for vehicle @
# I2 j5 ~' W) A" N$ _                                @.Destination :=2 ]/ D% s% N  E* U8 L
                                rgManager.nearestFreeStation(@,track.~);
  I3 y. `% m$ p* q                                newDirection(@);   
+ B, o) ?6 m2 X4 |" L5 d                                if @.Destination /= void then+ A$ X* R- K# Z, \$ K& A5 {+ l
                                        @.Destination.NumReservation :=( W. g6 M) l# |: q' P
                                        @.Destination.NumReservation + 1;
$ f" v4 n9 I' W  E/ k                                end;& o1 y' U1 C  W( i; A. y
                                @.CurrIcon := "drivingHome";  d/ N. o5 J  T% P/ U: _) ]4 H
                                @.DrivingHome := true;" F6 n3 v+ @9 t& R0 Q
                        end;8 c3 ]5 I( T- c6 F- D! r; F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ @! g( r( g7 ?: ]                        part := @.transpOrder;8 ]7 K6 D0 n7 w- @' o; @# d
                        part.move(@);-- load part
( G) W# ]" h4 s3 |: Y( m0 E                        @.CurrIcon := "load";
, ~. x' P" ]& K! K; O# o                        GlobalDistObj := part.globDestination;
  H" l7 x# f$ q. [) ]                        assignLObj := rgmanager.rgAssignL;6 w/ f* m. t# w# [. A, Q2 ~
                        row := assignLObj.getRowNo(GlobalDistObj);
$ U/ F6 g) V$ L6 N) l, h1 P                        if Row = -1 then -- since 70
9 _' V0 p& D8 @2 q1 |& d1 a                                if lan=1 then
. T# m9 ]2 v4 z9 O. y: v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 P4 i/ n; x% t7 v2 Q                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 N8 y0 ^# m, Z8 C4 e
                                else
: D% p# {& @7 U& v                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 v2 @, X' ?4 s
                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ u9 r0 e0 a$ P/ k, u2 K                                end;
; U/ m" W/ ^( a, R                        else7 |$ M4 d7 {4 F3 @
                                @.Destination := assignLObj[1,row];
5 X# L) T1 `/ z                        end;                          F% Q0 H9 s, G
                        newDirection(@);) j4 p$ d  ?$ t. _
                        @.HasOrder := true;
' B( M% |# y/ A$ {! ?                end;. P0 H" `4 I, }! |/ R0 r
        end;
% X. M; x5 J1 ~- g: }4 {8 S" V  }end;        -- of the method
% \; e( H6 o; c: s+ y* r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 K# ?' S" f7 D8 Z; |. \9 g

9 M* p# A( ]$ p" J# v这是AGV_putin中arrive的method。$ M* E" L2 d, [- M. i  a

& K" |- o' o* K% O  f# R当到达物料速度越高时,这个报警更多,8 e4 P# f# x; g3 W  w" K; [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& D* R( |$ P0 q- m  U" T
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 b, z7 Q; `( _: C8 E2 d! I
' T! O( \8 k& e2 b- R另外一个小建议,就是move,所有的move都可以这样/ A0 k# m7 J8 C
if not move() then debug end
* U9 N, i! O* o! |. A2 b+ g7 l这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 @* ]: ~: \# E4 Lplant simulation中的free libraries有AGV模板," M& N  X! _$ A
里面也有案例。
( f0 x0 h. d4 ^& ^0 a7 ?; h$ n7 ~6 Q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) K! ^  B, Y" h; v# D: m5 K* a5 M2 |  x2 G. c/ \. N( S. s9 _
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   l! F+ j" j0 |& I* ]7 H+ [
3 o, h* q$ r, e# @& h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  D, J! b6 M% \' X这是AGV_putin中arrive的method。
% L1 N! j. G7 }0 \) a- k% Z9 @1 E" {9 d4 Y5 C! @  z/ \* g
当到达物料速度越高时,这个报警更多,
& u' Q# N! k; a- s9 Y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-6 23:26 , Processed in 0.020941 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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