设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5567|回复: 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'
0 I3 f7 i1 B; e' |" T: A0 y0 b. [2 s; T*/7 E0 m% L0 L1 J& b% {5 A
is5 r2 j* p3 P. R$ P) S/ N
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 n( |, k9 x1 `8 n
do
; v7 j; d8 t6 D5 [3 E        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 a" V3 v9 }" F5 ~$ R  {        if current = @.Destination -- else return3 e$ S* |  t0 U6 N  d2 Q
        then
; X( E7 M! n' b4 D1 y% w, Q                @.Destination := void;
0 B* {/ `" F* d9 L  ~3 n                if @.occupied then
' y4 s  b) O* c+ G1 D, D, i, y                        part := @.cont;4 T' }7 F- v% U$ E! {7 B: ^0 h  Q) O
                        @.transpOrder := void;
$ x1 Z% [1 P. t/ Y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," A3 U& o% s# x; T, ]( N/ X, ]* z
                                @,root.eventcontroller.simTime);# |* ?* c" F0 j2 f: M/ c! g
                        @.HasOrder := false;
; v. F: ]9 q6 K+ t1 ]$ f                        @.DrivingHome := true;
/ p5 s3 T3 S! Y9 M7 r8 H                        rgManager.tryToStartTransOrder;
0 L5 C, T6 z; Y; a7 ~2 J, |5 O8 ]                        if @.Destination = void
% a- ~9 L" n- [3 j. l                        then -- no transport order for vehicle @
# x5 m5 F3 Z7 ~$ v" r" B                                @.Destination :=) v! k# S. g" h7 J
                                rgManager.nearestFreeStation(@,track.~);
% E) {! w- ]7 [8 I' E1 R                                newDirection(@);   
) e8 T1 ^1 s4 M9 c) m" A                                if @.Destination /= void then
  o  ^( C3 k& P! c                                        @.Destination.NumReservation :=
" T- Y# n) x, d) f$ E) g  H                                        @.Destination.NumReservation + 1;" W  l$ ?$ Y  F
                                end;
( u: D& f# Q" M4 v4 l- W7 j! @/ m                                @.CurrIcon := "drivingHome";9 b$ D/ k1 f, q+ w
                                @.DrivingHome := true;
3 `% a( |5 D7 A                        end;
! p$ x+ M8 ~9 ^2 k! r9 Q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ r9 O1 ~9 h( U) P
                        part := @.transpOrder;9 {7 y, O5 P3 M
                        part.move(@);-- load part
# S( T6 S+ l  g% s9 K                        @.CurrIcon := "load";
8 m* |9 S/ D- k8 N2 |2 g                        GlobalDistObj := part.globDestination;
8 p; y/ T& y# h+ Y8 [5 ?0 E                        assignLObj := rgmanager.rgAssignL;
' f  a" K! y6 G0 A5 v; f. @6 q                        row := assignLObj.getRowNo(GlobalDistObj);( l& q) ^* g2 G6 J7 G+ E
                        if Row = -1 then -- since 70
% a2 V" I" o  d                                if lan=1 then
. Q  x1 d' Y0 b' s* [( T$ E$ G                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ y' U$ B7 B' |$ ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));& z$ j0 l" ^9 H# e5 m* ~- b& J
                                else7 L& ]7 V0 e0 X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 |, s0 \5 V# O
                                                to_str("in docking station: \"",?.~.name,"\""));                                  y8 ^3 k: X! q6 Q! A: O
                                end;) ]9 F5 Q& _& O5 t1 c$ A  E' A- v
                        else
  [# Y9 ]+ D* Y' o                                @.Destination := assignLObj[1,row];) a/ G) _4 F2 k! v
                        end;                          U3 E8 j( P& H, ?# z0 P# g
                        newDirection(@);2 A% T0 ^5 P8 u& W
                        @.HasOrder := true;7 d# k, ^, p1 z& `
                end;
' B/ {+ h- p* f, z' ~) H5 O        end;
0 D) k7 r/ k" j3 pend;        -- of the method
5 Q5 h9 a6 ~$ j, Q( V. h5 ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) |1 U+ K0 j$ C

+ y# [; q# r+ `9 x' o5 R这是AGV_putin中arrive的method。
; F. X9 P2 l: Y$ \" N  x# ]: ?( W* H- D7 f
当到达物料速度越高时,这个报警更多,% f& J* k% g, z2 O: d0 r( y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! @0 u( ]/ @) i' _9 K2 [( r: O5 M: O' n$ z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. s2 T- @4 U9 R2 M9 f; A4 u4 O. A! W- P4 q% w0 g6 L
另外一个小建议,就是move,所有的move都可以这样& \" O: ^* [/ T/ E- w
if not move() then debug end6 q( O# R. {2 C; q( _$ w
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  Y, {8 v# S6 c1 R7 t  v. xplant simulation中的free libraries有AGV模板,
+ \/ f( C' Q: x1 h) l里面也有案例。& ^- E# ^6 @6 {( a' g( J" d9 Y8 m
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 [$ y, h5 `! H
* N+ I3 b4 R' a& h$ s我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! Q3 ?3 W  C9 \, ~
/ I) c  r  T, Y* B, o* G, T" U
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 E( Z& j, h% O6 w4 S0 P这是AGV_putin中arrive的method。
+ f2 r# V* l& c  |) t7 T& k+ b5 w4 W0 O8 E/ W- L* E9 K
当到达物料速度越高时,这个报警更多,
2 @7 R- K1 u; y" W5 ?$ Z# P; P- B2 O7 x
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-6 08:55 , Processed in 0.022587 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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