设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7578|回复: 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'& Q4 l& P. {0 e4 k' c+ `
*/
% Z( M: c1 \2 H8 P3 bis5 `; S# }0 q- f. V. M' I6 e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: D" [" k4 |9 H. U  a, U
do7 p4 r8 G  Q+ x9 E* c+ u# q* K7 C
        Lan := rootfolder.Internal.Tools.AOLlanguage;/ b5 C  K# [  J" ]0 A- Y
        if current = @.Destination -- else return! j* j" l0 N' [$ h) u
        then( D+ b# F/ h7 l/ w- Y1 N
                @.Destination := void;
9 L) u6 u) Q# S& d" c                if @.occupied then
9 I- w1 x6 a1 i  Q) u                        part := @.cont;; E8 A0 ^0 E. s( J
                        @.transpOrder := void;' y5 ]$ I( ^* c' z" J! Z( U
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) h" d$ N5 V. o" P) n                                @,root.eventcontroller.simTime);* H# _- U# K* `6 [$ |! I
                        @.HasOrder := false;
: @" Q* @1 t) }7 L8 M! X4 }8 A# P/ ^                        @.DrivingHome := true;! @9 `4 O( t$ T0 l( K% ]7 R, w$ j: C
                        rgManager.tryToStartTransOrder;3 B8 u) p& @( X, U+ h" {
                        if @.Destination = void& }0 t) ~/ W/ p! x7 Y. r. `; o
                        then -- no transport order for vehicle @
* \' M8 G9 j& O7 {                                @.Destination :=3 A$ a- O+ K% N* ]% I0 L% N5 u- S( j
                                rgManager.nearestFreeStation(@,track.~);1 \6 `4 e& n' z/ e! I6 ^% P, I
                                newDirection(@);   
% R# |6 O0 q$ X- }4 n# G1 D                                if @.Destination /= void then# h  g9 N1 Z) |. I- ]
                                        @.Destination.NumReservation :=- r- j$ F2 t" N+ h( k4 G5 `' L
                                        @.Destination.NumReservation + 1;
9 O0 @3 ?  b9 d( v                                end;
+ Q* k+ \! O: M# r( [# W% x                                @.CurrIcon := "drivingHome";
9 W1 S' k# o# L% C) P+ g3 d                                @.DrivingHome := true;
& I5 A+ o5 E8 j* _) o; U, n9 t                        end;( [2 D, o( b' C5 c" c
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) U0 H: @$ [4 \1 Q: C" ~; @
                        part := @.transpOrder;
: n8 {5 z0 t$ m6 _: G0 {9 c" P" ^                        part.move(@);-- load part- ~, A% f7 E! o' I: Z! Y; j
                        @.CurrIcon := "load";
' d) D5 l/ I# e( p                        GlobalDistObj := part.globDestination;0 w/ q: n; H( k  v! k
                        assignLObj := rgmanager.rgAssignL;
! c5 Y5 C* b6 S                        row := assignLObj.getRowNo(GlobalDistObj);
% @4 T& r4 d  s3 H0 @                        if Row = -1 then -- since 70
( P/ E- Y$ m' ^                                if lan=1 then. q# E( y' j- M1 V/ D  C! [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& L  `& r' _! g+ L9 \  A                                                to_str("in der Andockstation: \"",?.~.name,"\""));  A! z! `* v4 L+ ]" M
                                else: @( p& l+ G. p: w7 \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% O/ Y4 T  P0 n* \$ c5 k
                                                to_str("in docking station: \"",?.~.name,"\""));                                ; c! S# s8 L# @' `- ^- Y
                                end;$ R' P: Z: x+ y$ f8 c
                        else- y$ H* }% e( d. o
                                @.Destination := assignLObj[1,row];
9 C- K( ~& Q9 W0 |2 C                        end;                        1 r( U' a/ a% a, S, \1 \
                        newDirection(@);
& d+ c; u2 }" L/ I! c9 ?3 o  F                        @.HasOrder := true;1 d- [+ }- Y9 u' o
                end;/ ]8 k/ N* |) _( L% S
        end;
. k3 v( V. Q3 f8 R4 W0 p6 T, Pend;        -- of the method9 ^+ H1 t' F' ^8 i- |1 G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " C4 @6 |& c! l- U) x
9 C$ }# D% Q# i9 U: f  p* O
这是AGV_putin中arrive的method。: [' }. g+ D9 k/ h3 g- [
$ ^1 u0 E! G6 ^  a- r, O
当到达物料速度越高时,这个报警更多,: d0 P8 g$ Q' q0 J2 e! J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* M2 g( L2 D3 S: \9 ?, x7 U程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# H% C8 g: V! b) R& q8 W2 R+ [( U' E
9 F& U$ ?& X9 N另外一个小建议,就是move,所有的move都可以这样% k' s/ E1 j" |( b
if not move() then debug end4 d5 D( L7 {* y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ L9 V3 Q+ l& e; z- m" y- `
plant simulation中的free libraries有AGV模板,
3 a# o0 Q- o. `+ o  s/ i, r里面也有案例。. D1 ~/ ~) ?7 d
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 ?: P, {( D2 }& W. c/ q( |+ {$ n
* V- R4 L8 @# C! F5 D2 x我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- D" r( y+ B' W3 G2 n! N9 g2 h' G
/ X/ |0 s' @% `5 }/ `) \% y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 f! H) J. |; {( o( S8 Y" K3 h( J2 [
这是AGV_putin中arrive的method。& J* W2 ?8 a' U7 k( I

% V9 t% ?6 d0 e, k6 ^  B8 u6 @当到达物料速度越高时,这个报警更多,
& }; O& h4 [) A. E* p
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-18 13:24 , Processed in 0.020464 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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