设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9456|回复: 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'
* G2 n% n8 Z8 y0 M, K*/
6 H' d8 O  a  Iis
2 u2 r' v; O6 b% O; ^" U9 p        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 ~6 b9 R5 J- E* M: m8 mdo( ]* _( X1 l) U) k8 W
        Lan := rootfolder.Internal.Tools.AOLlanguage;
# ^' n4 ]8 p7 c$ J) A* W        if current = @.Destination -- else return
* u) C( o, d& c        then7 y! J- y9 Z* v, N
                @.Destination := void;- f) j) v! ?7 v& w4 ~' \
                if @.occupied then
5 {' X; l: f* r$ j& \, f                        part := @.cont;
( R! p4 U, o5 B) J                        @.transpOrder := void;/ B9 f* _# O6 i  |2 d
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 q4 x6 n/ [# U8 ]2 q( H
                                @,root.eventcontroller.simTime);
% {4 l. b" m3 U) \                        @.HasOrder := false;) W; [7 O( s  ~0 _! i0 ^( o5 W  j6 N
                        @.DrivingHome := true;
2 c; F/ X! M" Z( R                        rgManager.tryToStartTransOrder;
* I, J4 g. y' \. u! x9 q0 k                        if @.Destination = void
6 O2 r& k) v- c' B9 f2 `                        then -- no transport order for vehicle @
3 ]' W2 k) ^% g+ W& E  \* k: `                                @.Destination :=0 G* U* ^1 H( v" |9 v9 Q
                                rgManager.nearestFreeStation(@,track.~);" o' c0 [7 F) J; P) j* [
                                newDirection(@);   5 M9 n6 R, k; {$ L. N, l. j( P
                                if @.Destination /= void then
+ G- ?  X: I- ~' u: w) b                                        @.Destination.NumReservation :=" u2 k. h& Y6 f
                                        @.Destination.NumReservation + 1;
/ `. y0 @' _! X                                end;
, E1 v* M8 h9 }6 o                                @.CurrIcon := "drivingHome";
- d$ `2 I2 e6 }: c                                @.DrivingHome := true;
  O4 Z' j6 V1 ]) E! I$ P3 F                        end;. c0 ]8 [5 U5 }( m7 g3 v
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  K& g, F' e  P                        part := @.transpOrder;
1 N( A7 e% p. i8 Y' {( n                        part.move(@);-- load part
9 K2 O8 A6 J+ X' B' N- o                        @.CurrIcon := "load";
! L1 \5 F$ u/ P3 H" d3 `) i$ I                        GlobalDistObj := part.globDestination;% R, a/ ~7 x" a/ R/ T( @- F  H
                        assignLObj := rgmanager.rgAssignL;& k6 Q) {0 L+ C, z# O2 r0 I
                        row := assignLObj.getRowNo(GlobalDistObj);
" E! s) D0 ~* s* q8 q: ~# a7 a                        if Row = -1 then -- since 70
; r* P, {. i6 ?, y/ e                                if lan=1 then3 M# s/ A+ A5 V- Q2 G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% g* p( _) w# q% e2 v  \                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ j  y( V# _- I. I5 F" r) _8 l                                else5 z8 q+ ]# _0 f+ ?6 i
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; t! J. l4 W9 k( l: J) b6 ^+ Z
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' ^2 v! @) j* @                                end;7 x8 D6 W$ E. G# K& K9 l
                        else
6 e3 h- {& E( M0 f                                @.Destination := assignLObj[1,row];' O3 Q" h" u. @1 N7 I
                        end;                       
' \! s1 [# P" ]* z                        newDirection(@);
7 k/ ?# n9 N! B% i" g! L3 j9 j3 L                        @.HasOrder := true;! [; A, q# {8 I  d! Q6 R) i: B
                end;
6 O6 l! k# `; B3 M0 j. M# @, F( K        end;
4 Y, v7 D, M: w5 }- }( |end;        -- of the method
& j1 o4 [* _+ e8 }/ k; |2 b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 ]( I- w' g0 O
2 r9 N: T6 \' T  n: L  R- S这是AGV_putin中arrive的method。
3 o" @- U7 l0 n+ u/ _3 e
8 r/ L; w7 E) P当到达物料速度越高时,这个报警更多,1 B2 D0 p3 s' r+ X3 P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( a) V6 b2 s8 {( v% J程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& D! f% I: [0 g0 a& W- C3 g) s
+ i$ T7 s. i; c! _5 H) S5 f另外一个小建议,就是move,所有的move都可以这样" y$ B7 D8 B) V4 h0 g4 i- A
if not move() then debug end
, ]5 }/ l$ i& I. u9 {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" s1 q1 {0 E, M" N6 [% T$ A/ E& fplant simulation中的free libraries有AGV模板,
; K7 J. Z, O: M+ M里面也有案例。
0 Q& ]' E- k$ M' v我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 ]9 `- z7 m3 j# ?& b$ O& a$ A0 i& d+ _; @  t
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# J# a. Z, b1 G* ^7 S  E9 W, \& v4 n3 D/ u( j  t; |' `
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* A* Q; D/ U5 R/ x( X2 J' g这是AGV_putin中arrive的method。, p& A* Z+ v% Y- n# |' h6 X! |4 A# _
. B' W! V; d6 t4 O( `! Z
当到达物料速度越高时,这个报警更多,
4 d6 j0 p) w- x" P* a) ^
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-1 21:23 , Processed in 0.014976 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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