设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7112|回复: 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'
6 i  s3 U" S+ F$ L0 w*/
2 V" R' f0 t! g: x& q) h4 Mis
. u, K- z& D8 a5 o! V. R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) w* z# d& f; c' P/ h3 v2 N1 tdo* e% p. |5 l) G9 v" \: J! b
        Lan := rootfolder.Internal.Tools.AOLlanguage;/ ]( ?5 c" _$ t. {
        if current = @.Destination -- else return
4 u; }  J- B# \# ]9 ^% e9 P7 t        then
- A/ X2 d1 l; K3 _                @.Destination := void;
, c" T; i8 ~. ]$ u! s* [                if @.occupied then$ j+ @) \, v5 \! F0 Y8 B6 O5 z
                        part := @.cont;' P- p: S- w5 G" G5 t6 W
                        @.transpOrder := void;! a3 ~! z& Z8 Y8 m& P! W
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," l8 I+ e5 a. I6 K4 W, j
                                @,root.eventcontroller.simTime);
, ~" z; f% D3 ]! j+ u1 [! G- R* Z3 O- G                        @.HasOrder := false;: ?4 r8 h( ~. r9 T* q- a, v
                        @.DrivingHome := true;
- i0 \- t. s- \                        rgManager.tryToStartTransOrder;
+ U8 S. h0 [0 Y' |9 V  x  b                        if @.Destination = void& g0 q4 C' [2 T# ?2 e
                        then -- no transport order for vehicle @  d5 _" M5 ?' r( r, e) o
                                @.Destination :=
% S; w# T* \- k# c5 f/ _                                rgManager.nearestFreeStation(@,track.~);
7 _7 V9 {3 {6 D+ S- b                                newDirection(@);   
5 O/ @+ F) u& P. e                                if @.Destination /= void then
# [0 L* M0 C6 V  P. X7 @                                        @.Destination.NumReservation :=
* P4 D+ L  ~; k. v6 @                                        @.Destination.NumReservation + 1;
; F+ a5 _8 N' R! X% \                                end;
! t# P' W% }* D( `! E                                @.CurrIcon := "drivingHome";4 {% l3 B9 t4 T( |5 h  B- W! _
                                @.DrivingHome := true;
1 g3 S( f1 r) H# [) Y                        end;
1 }6 ^& t2 x6 S7 ~6 Q8 J, w                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; H* E9 A* N& a' T
                        part := @.transpOrder;2 A6 b( ]2 N3 O* B) O% ]- z4 l" D
                        part.move(@);-- load part
! l' |" K2 i2 t+ P                        @.CurrIcon := "load";
8 G; v, X' R! E( X$ G                        GlobalDistObj := part.globDestination;- z5 p2 C7 Y. a
                        assignLObj := rgmanager.rgAssignL;
6 Z9 n# N# @! n                        row := assignLObj.getRowNo(GlobalDistObj);* W) o  M6 l2 |2 u. Q
                        if Row = -1 then -- since 70
: t3 k8 v' q# E* e                                if lan=1 then
- ?3 C' j, j1 H8 m                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# s1 b) m/ R! B# f# ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- Z; j1 u, g+ a7 n  u& R                                else( t# v7 \: b% V$ M* ~% |7 j
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- s$ |$ S' `, K; @                                                to_str("in docking station: \"",?.~.name,"\""));                               
: D1 V2 P2 o( C% W5 {                                end;
( p# t6 L4 c) M; t1 B1 n$ U                        else
8 U0 x" Z7 Z& ^$ {( |& I6 L5 h                                @.Destination := assignLObj[1,row];
, R+ [* Z8 I% j( N, g$ V* e                        end;                       
7 \$ U" K) \- t% C                        newDirection(@);: ]+ q9 {/ V7 ?* @' A  K
                        @.HasOrder := true;
$ B, i0 ^! o, g0 q2 ~                end;; u1 i6 a& D' ?- p* d3 d
        end;' ]1 y7 e7 o# ]5 k" |
end;        -- of the method
9 W# k0 l/ c% d9 ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 X& g  W) q3 p
0 ~4 g  |5 Q6 n2 x" S& v- D, l
这是AGV_putin中arrive的method。
: T* j% e# |, S) _/ i) T% S( I
当到达物料速度越高时,这个报警更多,
5 O8 k1 p; ?; W! |1 B可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 t6 K1 S! g# ]* I1 ~" p6 E0 p程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ E/ K3 N" y) @: y- X3 |
& B" a0 k8 u- E/ I4 d/ v
另外一个小建议,就是move,所有的move都可以这样# I+ W3 h# W- u  W0 B
if not move() then debug end# q+ P2 w& W8 b$ ]
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" W$ m1 d' _  }$ Kplant simulation中的free libraries有AGV模板,8 ?1 R; P8 g  l4 v
里面也有案例。
# K- d: \* b2 N, K9 Y0 m8 _3 S2 ~我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" A$ ?0 @# T) b

/ O! K1 F, a  e; P+ U$ X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 E4 J. ?0 C4 O3 g! _: C0 v
: x( p* T0 \9 @/ f& D) h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 {7 X' C9 {: M1 @/ E
这是AGV_putin中arrive的method。' b/ ^3 W; d4 b$ w( a) O* N
9 Q! y8 G7 M1 j+ d4 m
当到达物料速度越高时,这个报警更多,

( {: p9 P3 c# A! {9 Z6 _3 m2 v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 05:22 , Processed in 0.018239 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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