设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7048|回复: 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'  W  Y$ j8 B' p3 N/ {+ [
*/
4 @; v  W" w/ E6 W# mis, }6 I) c! S* l4 O4 X3 o8 y1 R
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;1 Z* G& I# `) S
do
2 p6 G2 g- w4 N8 H" E! O% L        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 D& j& W% [7 R- J        if current = @.Destination -- else return8 t7 V2 r! r- A! m/ E
        then
6 u2 L* T) f" R7 T                @.Destination := void;
% w* T# s( c* W1 r; X4 K+ A                if @.occupied then
% m8 E5 z4 ]: K% H2 g' X                        part := @.cont;; ?9 h* g  V/ w' K; k0 A
                        @.transpOrder := void;* K, ^# [8 F1 [* p% _1 f
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ r# G' X( o( A' ?& L8 R" m/ F
                                @,root.eventcontroller.simTime);
+ w. y" i  I0 L! C+ Q( w                        @.HasOrder := false;
3 c: ?; o) q4 ]1 F% h8 b                        @.DrivingHome := true;
* R5 L& n! g3 J2 v                        rgManager.tryToStartTransOrder;
8 n! K& E* x/ f7 r9 ?# k  V                        if @.Destination = void
; t2 }; N8 X' n0 S7 s( l  y+ B1 ^                        then -- no transport order for vehicle @) Y1 Y0 w5 ~/ M8 l' D
                                @.Destination :=1 G) L! p/ o% u% k
                                rgManager.nearestFreeStation(@,track.~);5 {( C8 o1 j/ H% W; Q6 \
                                newDirection(@);   
) D* R" g! X& e! P                                if @.Destination /= void then. Z& {" \% @# h: E! [, K( H6 }
                                        @.Destination.NumReservation :=
; W9 O. E) A3 T* K: d2 f$ N                                        @.Destination.NumReservation + 1;2 ]; B# k$ [6 O
                                end;0 c! e8 s3 A2 k- `& Z1 A) t8 y
                                @.CurrIcon := "drivingHome";6 A( A7 A! U, s9 ]
                                @.DrivingHome := true;
. E( k! S; V! t  T0 B. e# Y                        end;
$ J& ?' F2 W/ n/ l/ W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! P& q' s$ s3 h* D6 ^4 ~
                        part := @.transpOrder;1 e! t: ?. Y1 K' ?5 o& p
                        part.move(@);-- load part
7 k1 _0 F$ W7 H4 X2 }! G) f                        @.CurrIcon := "load";
% w) V! r; b& |; a) W9 O' V& h% Z                        GlobalDistObj := part.globDestination;2 a2 \2 {+ t4 a+ K* U6 V, [
                        assignLObj := rgmanager.rgAssignL;4 q# L8 Y$ s# |8 c
                        row := assignLObj.getRowNo(GlobalDistObj);
$ k4 e+ F" z; _8 i1 \- G2 D8 q                        if Row = -1 then -- since 704 |. R4 i7 E& Z" F7 ^8 Z
                                if lan=1 then
) y3 `! I- }) z% ~$ i                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 c! V& D9 Z5 P# {8 f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# P" @( V% b2 X. `, ?' A                                else
+ i0 M7 _  o7 ]* \                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- T$ u7 t1 v: G  |; _                                                to_str("in docking station: \"",?.~.name,"\""));                                5 Q% S  F: P! g9 X% J" _
                                end;8 v/ p/ @: c9 ^+ l( G+ `4 U& S$ ]& F
                        else
" _( g* C9 S, u8 w* S. f7 I: ]                                @.Destination := assignLObj[1,row];1 r8 d6 S9 {4 i. G0 n3 Y
                        end;                       
- D# n9 w1 o7 Y; q2 R                        newDirection(@);
! w6 E. S1 e, o) O! W. _2 w1 ]                        @.HasOrder := true;( U& F0 C2 A  U; Y* E# B& d: e9 B
                end;, {6 f/ a, |% H- c  [; J
        end;5 m: L! T9 s' U- Q8 c
end;        -- of the method
6 B; ~, e) q8 J' W/ l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ P5 a6 _/ ?% l6 H3 t8 p$ c8 M0 d2 c/ f
这是AGV_putin中arrive的method。/ m! z3 x& j$ p. b# N: m
% a7 v/ u6 n5 k+ r$ Q; [" N* s
当到达物料速度越高时,这个报警更多,* c" k+ v- _8 O+ K- U6 `: W2 h
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- x, x) ]5 x: r( r& B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( K1 o5 U2 D% [+ q, K+ {
* O8 ]8 z0 I( N) Z" R另外一个小建议,就是move,所有的move都可以这样2 R- @/ V) O- M* Y; U  ~
if not move() then debug end. V% R4 V6 }2 T* |1 E# T8 _
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 L. C/ s4 l  N/ z8 n8 cplant simulation中的free libraries有AGV模板,5 u* C: x% d- s: ~
里面也有案例。% ^" l  t. V& t
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ Q8 |+ N8 h' `* w% K; }
5 V# u% b/ r4 v( M0 z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 x- H" O0 d  n% q7 F# t6 d! D4 P, [/ c0 S' z/ Y' k
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 Z. f5 ?  X" v3 P; B6 q9 `这是AGV_putin中arrive的method。" Y& Y0 |% |; Z& J

2 E: ]% y! e- i: G当到达物料速度越高时,这个报警更多,

- A/ W1 T9 L3 X另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-13 07:28 , Processed in 0.017072 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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