设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7371|回复: 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'& p* B. p  w' r4 v* n
*/
$ `9 q9 Y7 \; C/ jis' l  w7 |1 m! A9 J7 s0 V. }& g
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 `' W/ m$ I! s0 X' E
do
, s3 L. c) v4 u' c        Lan := rootfolder.Internal.Tools.AOLlanguage;0 T1 a2 F$ v' N1 _1 V
        if current = @.Destination -- else return
* Y) t% s9 K' [& q) v, V, z1 b        then6 e+ K4 x9 _; G, m- G- @
                @.Destination := void;  K9 F8 f9 |% t% e
                if @.occupied then7 k6 Q, s+ p0 B2 W, f/ O
                        part := @.cont;
/ _: g' }; B/ J2 O* {! f) ]9 y                        @.transpOrder := void;% n0 J, Q1 U# M+ v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# o) j3 Z$ r" s, k* P6 L% x, p
                                @,root.eventcontroller.simTime);& Q& k% a5 [6 ~/ ]  g
                        @.HasOrder := false;. d; |2 q  I$ a) f- O  j, Y( \
                        @.DrivingHome := true;
+ V6 A$ ~7 \% h" ?6 a" F                        rgManager.tryToStartTransOrder;% v4 M8 h7 Y" H- W; y( F) \! V) F
                        if @.Destination = void/ ?9 _" }! P! J9 b
                        then -- no transport order for vehicle @+ A, E- t$ R3 n3 ^! \. X9 H. V+ g
                                @.Destination :=3 [6 }, ~% h$ c) V/ n. D
                                rgManager.nearestFreeStation(@,track.~);; Q- {, ]  v5 s3 \- E" y
                                newDirection(@);   - R( }: g9 A) B+ w& l
                                if @.Destination /= void then; T- l% M, ~; F8 Q# m# F7 ~6 D: D% C
                                        @.Destination.NumReservation :=
5 W' T7 }9 C6 Q                                        @.Destination.NumReservation + 1;" J& ]9 J( ?9 S0 t4 C" v' q5 c
                                end;, R: y7 t. ?9 Z; ^; R# T$ |
                                @.CurrIcon := "drivingHome";( R$ n) s0 H! N& [
                                @.DrivingHome := true;: e# g( j7 J0 t1 {# o( z) H
                        end;
5 J, t9 B0 K7 n7 f                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 Q/ b- X# Z( ?+ v$ z1 I/ t                        part := @.transpOrder;1 G  m/ g- y. T9 l5 x% E% r
                        part.move(@);-- load part
/ J. Y2 ]3 C7 A% z. E+ j6 B+ {1 u                        @.CurrIcon := "load";
" l  C" n- M7 i4 \" t; a                        GlobalDistObj := part.globDestination;
" V4 t/ R. y7 r8 w                        assignLObj := rgmanager.rgAssignL;* W+ {8 o6 x' d* h
                        row := assignLObj.getRowNo(GlobalDistObj);$ }. t" n- E* T" `! S
                        if Row = -1 then -- since 70
. h1 Q: f; i" A                                if lan=1 then" g; R5 D5 k+ W' D# S! k7 C
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ t; Y+ `, {# G$ k7 l8 N$ u                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 B+ _$ ~* y0 L( L/ N
                                else7 ]8 K/ }8 V$ d  g; T+ R: s4 R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) ~8 w) W0 U: O0 {                                                to_str("in docking station: \"",?.~.name,"\""));                               
( U5 p* _# x( |; `8 _6 q# w                                end;# F0 n: K5 B$ {. d, ?
                        else
! q( Q+ a- t8 I. N* G3 U+ p9 C, W                                @.Destination := assignLObj[1,row];
7 I# ?5 C" C. q' d+ E  A* R# i' x                        end;                       
) [# t. D; a+ V+ [$ w0 k                        newDirection(@);7 J$ a; R$ g  d3 g: C8 h3 Z, W& h+ t
                        @.HasOrder := true;6 s) ]+ h8 X9 b
                end;
' D7 ~: T7 A- ?3 w) X$ r" Z        end;
7 J$ B: F0 n- `( V! oend;        -- of the method
6 W9 c; ?. a7 X! L% ?2 P+ _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) P" y/ i& x( g3 j% E! a  J5 P* ~) u) `0 U# f# W8 T
这是AGV_putin中arrive的method。
6 @8 p& T' S  A3 ^1 ^. Z" B
8 l  M$ U% B# W# Q2 w0 ~; o当到达物料速度越高时,这个报警更多,
* p; N+ ~, w; S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 ^* c2 W: D6 K5 ~6 \8 j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 V- d# k! |+ I& ~4 z; h1 Z5 a

% }3 f" ~' m3 E; \4 k, R8 v; `& g另外一个小建议,就是move,所有的move都可以这样" j% X8 G+ j. a  d9 R2 U6 @
if not move() then debug end8 w' ?  e8 \. j7 `
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 t4 p  [/ N) tplant simulation中的free libraries有AGV模板,
. h6 e- d  L- E0 q; V! L里面也有案例。
& {* U8 M- b, M7 f" ~4 r# i! [" Y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: Y6 B: q: @% c8 e$ \( U4 y- Y  ?+ j6 _. A* n6 K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 q8 q) j( M9 x8 B: i. l0 x* H& q% @2 r0 x9 A* y: X
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' V* K, I! Q- z( D
这是AGV_putin中arrive的method。) i8 k9 c9 P0 a7 L2 G' p
) p0 {9 S% u5 b3 j+ A' }, i; ?
当到达物料速度越高时,这个报警更多,
3 q( F! f6 ]& ?$ _! v! @+ u
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-7 20:30 , Processed in 0.023815 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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