设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6765|回复: 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'# Y9 m8 u- d  U8 h1 b. G
*/
' ?! g+ O9 E9 K, |/ p5 U- a! jis
6 a5 ^, ~3 n$ }& p/ U5 [6 `: z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, G/ X# E3 v1 P! {* x. tdo! F/ [8 G3 w- \: c" S
        Lan := rootfolder.Internal.Tools.AOLlanguage;% Z7 _" F. s# T5 c8 m7 m
        if current = @.Destination -- else return5 B8 z/ |: d) u* ]8 N
        then
7 r9 J$ J5 G, U/ q! k& d  k% q5 z                @.Destination := void;
9 U2 s2 A$ m9 o' |0 i                if @.occupied then& x3 `$ o2 i3 `! d% J% Y
                        part := @.cont;
# w1 L' y* ]. e* N+ O                        @.transpOrder := void;
: C" s- Q  i0 f                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 T9 t: h/ G+ W& R7 P+ Y8 v7 h1 I                                @,root.eventcontroller.simTime);5 ^( L3 a# K0 t6 O1 p, p' B2 {
                        @.HasOrder := false;2 j  r: B. n; d3 D* w
                        @.DrivingHome := true;
. ^. X8 w2 s2 }                        rgManager.tryToStartTransOrder;3 q, Y5 j1 X2 R) f, F! m, m
                        if @.Destination = void# h/ L& N1 x. m
                        then -- no transport order for vehicle @9 o+ v1 v" o. b) i0 x9 `- l( L
                                @.Destination :=3 M! P. {9 z5 i# j6 y' N5 ~( v
                                rgManager.nearestFreeStation(@,track.~);. W' C' B3 t3 W7 g" S" A3 _+ w
                                newDirection(@);   
5 I1 T1 S; W: s. f" u& N                                if @.Destination /= void then
$ K6 y& {+ k# c4 \, s, L+ s                                        @.Destination.NumReservation :=
  u" {) Z# W+ \3 B' E                                        @.Destination.NumReservation + 1;
) L$ _6 w$ _+ |: W                                end;
, ]1 x& s! j- z* I0 p' o; T                                @.CurrIcon := "drivingHome";
. t, }8 z$ L9 \2 K                                @.DrivingHome := true;) ]6 F  g' u0 l  J" S
                        end;0 E7 U& O4 G& ?, g
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 T4 U3 G+ F% }' {5 ~
                        part := @.transpOrder;2 q+ S; ?; L9 Y! `" e( y) B" [( G  K: |
                        part.move(@);-- load part) r5 K) O3 S" M- P' J9 R. C* M8 ^- \- H
                        @.CurrIcon := "load";
6 Z  T3 Y% e. J8 _  w- I" Y( v" L                        GlobalDistObj := part.globDestination;9 ?% p) ]( n& O' C/ Y: e5 k5 a3 n& W# X
                        assignLObj := rgmanager.rgAssignL;
9 X7 `  o* ^& u2 o                        row := assignLObj.getRowNo(GlobalDistObj);$ N  T2 f5 ^$ T) C8 V5 g1 B
                        if Row = -1 then -- since 70
- R5 K9 Y: H8 W* G, ?* Y, Q2 J" p                                if lan=1 then
' n" P! ]: l6 h: [$ o8 R                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 j7 n* {3 k; Q) b% C  _
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% l( G: s+ p9 p# w3 b: k; [2 i                                else
1 J% u, a  B! L9 T5 Z1 m7 ?                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 G9 G1 T3 G! N# u& T
                                                to_str("in docking station: \"",?.~.name,"\""));                                # B$ {' _" v3 `9 f; c: P
                                end;7 v* H8 L7 p! i! G- z  f& s9 h
                        else
/ v3 E$ {+ c4 x, u6 x8 H! y, a                                @.Destination := assignLObj[1,row];8 u/ c$ z- y3 i; B9 x
                        end;                        ) N1 M( W* O. [  U: k/ i2 K
                        newDirection(@);- V; Y% B4 C! p" M
                        @.HasOrder := true;
4 K% j7 [/ p9 _: c                end;
: h& x: ?6 M: T9 z9 i* z& T        end;0 C1 K4 M; e! N0 H% h
end;        -- of the method
5 `. d1 h2 K( H: h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 |! M' {2 U" ?* t* ?( {
, w: s$ {9 i1 d0 I4 O' R这是AGV_putin中arrive的method。, Y$ K( k  J. V0 a; D
1 w7 N5 @$ Y1 |' k9 L
当到达物料速度越高时,这个报警更多,
2 ~/ D: |& K1 `5 i5 c$ K! C可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. _7 J9 c. H9 B/ r. f- D6 j2 V, I程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# X5 [3 d: p; ?% l
, J6 \' }: y$ v/ S% u+ v0 g  Z" O
另外一个小建议,就是move,所有的move都可以这样
+ C, N, }: j; r' N# p) B5 b- ~# Bif not move() then debug end
. M% c5 W5 Y) b/ T3 n# _2 {这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: R, ]* }, v- ]4 @8 |4 yplant simulation中的free libraries有AGV模板,
! c! A! m% r" o1 |9 V里面也有案例。7 g7 J6 p7 V7 n
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: r& h5 W% e7 ?4 i! B! e
3 ]% ?+ `8 ^  x. i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. R/ N- V/ f( I- G5 J. v+ m0 n+ Z: k8 K! }: ?6 K( Z" k7 a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; d* A/ M# ]5 ^% m8 z
这是AGV_putin中arrive的method。: s# Z; @" h$ ^3 ~1 z/ Y
; @9 \% \2 K3 H+ H; k# H4 j' _
当到达物料速度越高时,这个报警更多,

0 B  J6 o3 U2 r# y! e& `另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-25 13:24 , Processed in 0.017709 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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