设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7311|回复: 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) q0 N
*/
7 s! R" s% Y8 fis9 J, ^$ u- X- o6 q4 X
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% ]) Q; K5 X8 T8 i& udo
  [! B# Q- @/ r& x! f' `& V- _        Lan := rootfolder.Internal.Tools.AOLlanguage;7 x$ ^, q. c& l/ n4 \/ \
        if current = @.Destination -- else return) K, R0 v8 z! R! |+ P; E
        then
( M- H+ n% d- Z- L1 X* e+ R0 d                @.Destination := void;
- t$ s* q( v* W! K6 A                if @.occupied then
; g9 Q+ l. t, r# b: C1 E                        part := @.cont;
( W4 ?1 G- g, @" M, c                        @.transpOrder := void;& T$ y' w7 [9 k. H" ^, x% `. ]
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. p2 u+ J3 A" [# U7 s) m2 V" Z
                                @,root.eventcontroller.simTime);
1 G; [3 w6 G( \$ r3 Y0 g! J+ ^                        @.HasOrder := false;; g/ c( d+ v0 c8 ]
                        @.DrivingHome := true;
% ^! V% x% f# M8 e' @                        rgManager.tryToStartTransOrder;0 ?1 b: N. r$ A" ^
                        if @.Destination = void& r5 j" z$ Q0 M, I4 W# I/ h! ]/ l! L
                        then -- no transport order for vehicle @
0 c$ A! u$ r1 a  F" z& l, ~                                @.Destination :=
# `5 s9 q0 ?) O: Z: c% e/ Z) z                                rgManager.nearestFreeStation(@,track.~);" i6 ]! y6 m$ M, m4 _2 k
                                newDirection(@);   
( Z5 X* z+ n. |# m" Z9 O                                if @.Destination /= void then/ R0 r7 k/ P9 o9 j
                                        @.Destination.NumReservation :=& {* Z# K- S8 ~# L3 B+ S" d# X
                                        @.Destination.NumReservation + 1;
! Y0 h1 w- H/ |) b" e% W                                end;
1 |3 R" ]1 w/ [) }( K' ?4 T                                @.CurrIcon := "drivingHome";( B9 s* h7 ~3 t
                                @.DrivingHome := true;( R3 {4 n/ l( B- J" j
                        end;# `8 n8 `! ?3 O, ?3 r
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ g$ u* Q- K1 W! M1 _* c
                        part := @.transpOrder;
' h& s/ _! Y3 d) ^                        part.move(@);-- load part
* p& y- e' y& X. N! Y3 N0 U                        @.CurrIcon := "load";
. c9 [7 b# J7 ~3 R0 K3 k. w                        GlobalDistObj := part.globDestination;. Y' m9 W; N# V
                        assignLObj := rgmanager.rgAssignL;9 u2 E2 O" X7 x' M: k
                        row := assignLObj.getRowNo(GlobalDistObj);
4 T" d7 h& {5 U5 I2 z                        if Row = -1 then -- since 704 W8 T8 x" K3 @# Z% K2 N
                                if lan=1 then2 F; J7 Y: E! S' e
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 }8 J; m/ ^2 X# f5 }/ l) a. j
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 I: W  [# o% w- @* {
                                else
4 K/ x8 x  M: R" H- E* E( s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 Z4 a, y" H' G- i                                                to_str("in docking station: \"",?.~.name,"\""));                               
" K" T% ?+ Z, G3 ?                                end;
9 o4 o' N  L' ?5 U5 r) ]- G+ Q                        else
! G0 e' M$ U" F                                @.Destination := assignLObj[1,row];
% w% N6 ~3 Y6 S, d) `' q% F" }8 r3 w                        end;                        / o- V# _$ |) \; ?( [( s2 U
                        newDirection(@);
0 E1 N, z% ]: N2 R% ~6 m4 r; |                        @.HasOrder := true;
8 v/ _0 T% N1 j( G5 `# i                end;
! W1 g* M6 G* v! I        end;
: w0 g5 N5 `/ B' _# ~8 O( send;        -- of the method
. K+ \4 B5 |( Y( w
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% `! L  o  X" v) l" F; H" {8 S" e# B- J5 K9 ^
这是AGV_putin中arrive的method。
: _4 j( q# q% @( O- ]: U' e% y/ H' H; {+ o, K& B
当到达物料速度越高时,这个报警更多,
+ Q4 m) H  m' s2 b! Z0 p; P1 C2 Z可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  A7 Z; z; {6 ]. \5 q2 t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* @2 J3 k- B2 i1 d# g1 J
/ a( f! O. Y' ^. V9 P4 i5 i- _
另外一个小建议,就是move,所有的move都可以这样
% O' \. C5 ^( V, oif not move() then debug end. v; U& s& F% b- ~8 W; b
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  E1 i) |; ^! G6 h. v5 @plant simulation中的free libraries有AGV模板,
- l  ~. m9 K$ d% B. ]. j里面也有案例。
6 d- j, g4 n' q0 n我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# [2 ~& R$ r7 o1 J1 l, X- _: X3 ~
  ^! G9 M( F  q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ X# u; r  j# a; ^0 c" L+ o  s5 N
# F* X! Q7 Q, M5 N那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" o% T& q2 e% L4 @) h  r这是AGV_putin中arrive的method。
! R! n. I" P$ U( O5 B. a
4 T6 Z+ Q. |) k* o4 [当到达物料速度越高时,这个报警更多,
- ]2 B* }) R2 o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-3 11:23 , Processed in 0.015993 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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