设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7300|回复: 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'
/ ?  r  Y7 M6 j% b" e*// Q, X; o( E, z4 ^' [/ a/ r* d
is
( p  P/ R' L$ j5 S, E, M9 S6 y2 p( i        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ h/ o( D: O2 X/ ^2 c2 c
do+ ]+ C' X6 I) F6 _# p) m
        Lan := rootfolder.Internal.Tools.AOLlanguage;- E9 n4 q1 R! S( i* L) W
        if current = @.Destination -- else return) `* B, x0 h% Q6 _  {, C
        then
1 @! D1 E7 O3 h& }: I                @.Destination := void;
; \* M# z+ U( }                if @.occupied then
5 L+ u1 r0 e1 M, U; I+ c                        part := @.cont;/ D' p' p( m- W+ M% B
                        @.transpOrder := void;
0 I4 p1 `+ ^2 j3 j: X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& P! U$ [6 d5 ?/ b' K% k4 r7 Q                                @,root.eventcontroller.simTime);
  r( y! b5 Y) _2 @$ W' q. E7 c                        @.HasOrder := false;
2 m1 L7 ?, Z; R1 i# @% E3 c2 j                        @.DrivingHome := true;
+ ~5 X3 T+ f6 T$ q  W3 J. z! b                        rgManager.tryToStartTransOrder;; w+ {1 _0 N, v! }- z; U3 e
                        if @.Destination = void' X1 m% }6 c! }; ~
                        then -- no transport order for vehicle @1 d9 x. d# D' e2 n9 }" T7 ~7 T, C
                                @.Destination :=$ c% q* q/ K0 T) |$ c4 n
                                rgManager.nearestFreeStation(@,track.~);
0 A2 n& D  r! b# Y                                newDirection(@);   2 d+ V" ^/ T! V  X: [7 D
                                if @.Destination /= void then
/ q) Y# `7 }7 o. Q                                        @.Destination.NumReservation :=& k* Z/ \1 _5 H4 J) N2 Q
                                        @.Destination.NumReservation + 1;0 v! r0 x: G( _) |( q; M9 c8 k1 o
                                end;
" c2 K) U# a  ~0 ^6 o                                @.CurrIcon := "drivingHome";" K! E2 l, I0 Y9 b0 W
                                @.DrivingHome := true;. e# f% l/ s: Y1 x' z2 e3 o
                        end;3 u4 ~8 x* e' O0 Z7 D5 n& p" s
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: |  J, v! Q* T* A( \                        part := @.transpOrder;
  g( X. l" ^9 I. N+ P; E                        part.move(@);-- load part
: z& K$ O4 z  \" A( @                        @.CurrIcon := "load";
* |% Z1 I1 b3 y) Q" Y( B                        GlobalDistObj := part.globDestination;1 v/ D7 |7 c* A& A8 e0 j
                        assignLObj := rgmanager.rgAssignL;
! [3 i+ P' Q( s, |% V4 k2 n                        row := assignLObj.getRowNo(GlobalDistObj);5 J  C1 m; O. t- m/ A
                        if Row = -1 then -- since 70
* t) f5 C, c2 k% l4 Y$ o) K                                if lan=1 then
$ C, S$ U+ i; k5 H                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  R6 I1 h. F" M; M$ r$ S                                                to_str("in der Andockstation: \"",?.~.name,"\""));- S" N6 f9 g* ^: h; g
                                else
8 ?/ L$ m' R0 F* q5 _& S! ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 J6 I4 _- v  g  w/ p2 D3 E                                                to_str("in docking station: \"",?.~.name,"\""));                               
; V/ r3 _* g0 [; ^0 A  ?) [                                end;3 _- K+ ]3 w! r, m
                        else
7 r$ l2 k4 w6 q# g2 U3 H9 N                                @.Destination := assignLObj[1,row];
6 L) a5 Z' P7 J+ t+ ~                        end;                       
% i& Z) l# I" r/ b/ f                        newDirection(@);
& M/ Q3 C% t5 i7 Y                        @.HasOrder := true;" w* c: n% i5 [: D. t$ o; m
                end;" e2 q" h' c/ L7 {4 a- J- F
        end;
; i9 u3 F7 E) y) _' q" o, uend;        -- of the method6 {* M% E# X5 d" E! p. O! D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) U3 ?# C/ w+ G4 [/ o9 x/ Q. v. Z. h5 z
这是AGV_putin中arrive的method。
, r- H" ~7 l5 t9 M9 V: K  w1 L
* ?# G9 D( A% c: i; L" v5 S! R$ Q当到达物料速度越高时,这个报警更多,. N; e" @+ S) ]  a
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 E3 Q6 R. t1 o* P程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 K* V9 u) e  C$ x; B* L" _( g+ H* S% v  L, L
另外一个小建议,就是move,所有的move都可以这样
9 n/ ]& }6 {" t& y; J2 Wif not move() then debug end: j1 k- w& `6 D6 \6 w% K  E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ q0 ^/ Q' Y' u8 Z
plant simulation中的free libraries有AGV模板," t4 D8 f' ~$ `% ^/ k( e: B
里面也有案例。
/ e" u9 l9 i' n我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# o! y2 a6 X2 @9 z! ~$ `8 p2 a
; e# R; h: [7 J3 H8 g0 X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 ~2 J! \( {5 G! B
, D& z6 N8 X0 d7 G那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 _( A) k8 K0 h1 F) e这是AGV_putin中arrive的method。$ r+ c' P7 m7 V8 X2 T: @

8 k; a  e! u6 {当到达物料速度越高时,这个报警更多,
6 g  s4 L4 O: T: M+ m4 E' g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-2 18:37 , Processed in 0.023294 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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