设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10277|回复: 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'
4 p% {6 m4 a8 v*/
# X8 c) {4 H5 Q/ Jis) {. U3 X3 v% G1 a  r
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! U) c* N/ N# Y& r/ Kdo' m' z# [6 S- I; n& Y8 Y* L
        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 ?& |( y) o: k7 f1 @        if current = @.Destination -- else return7 H: |/ ^" R# x  z3 T- M! J9 Z# S
        then
* f1 M3 ?: n( X                @.Destination := void;
9 \3 b4 C1 Z( J$ p- c# A                if @.occupied then
: J7 A1 v/ G+ ^( v                        part := @.cont;0 D0 C1 t$ `' I8 j  J, B( q+ z* O
                        @.transpOrder := void;
9 P+ X$ F0 I8 l$ Q' N# B0 _  S% i/ R                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 r% m1 g" s. X* c3 W  l( b                                @,root.eventcontroller.simTime);. i- g/ E* j/ z' @3 _6 B& N" H) D
                        @.HasOrder := false;$ ]) }+ V# B+ ?
                        @.DrivingHome := true;
; {% [- n" e8 }5 c5 V! l                        rgManager.tryToStartTransOrder;" ^1 M* e0 x' @( T
                        if @.Destination = void
  `' y7 z1 E2 J. T3 s+ X6 @                        then -- no transport order for vehicle @
5 N4 n6 N$ [! l                                @.Destination :=
; u9 }* p  ^7 \; l                                rgManager.nearestFreeStation(@,track.~);5 ?5 }9 [1 Z# n6 Z) K# L( {: h7 q
                                newDirection(@);   
4 X) J7 w( Z6 f1 Q- m: ~                                if @.Destination /= void then( f: [2 p- d- s! P, \
                                        @.Destination.NumReservation :=; T2 Q  a1 z  C6 H
                                        @.Destination.NumReservation + 1;" `% E, ?: c* z- D
                                end;
% o7 A; {* q$ |) C  }% `                                @.CurrIcon := "drivingHome";
1 S- }) \5 `6 P8 [* e7 p; Q; o: Y                                @.DrivingHome := true;
* S4 e: M5 E3 ~- X3 ~) I                        end;
$ L0 N( ~$ ^2 s1 s: I6 J7 j- g                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 b# y5 J6 |: n6 m
                        part := @.transpOrder;
, \" U" M& m9 H                        part.move(@);-- load part
6 W8 a# r$ R9 V+ I' c, w; ^                        @.CurrIcon := "load";6 ~8 L3 @- I$ t, S& K
                        GlobalDistObj := part.globDestination;
$ k8 F7 ?% P$ b                        assignLObj := rgmanager.rgAssignL;
3 ?( {  G  C5 q- m- i5 Q! o! E                        row := assignLObj.getRowNo(GlobalDistObj);
- X; f( q; l: p- u( P                        if Row = -1 then -- since 708 n$ i* X5 l# r6 r4 O, Q# Y
                                if lan=1 then3 b' P% E* }" Q( ~# P6 N0 M7 m
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& P1 w. t! c# }* j5 e* Z- a4 T% z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));, n3 l. a. E, j
                                else
4 z3 ^7 T! q- b6 V, r: Z. ]0 F) [5 K                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) \2 s2 @+ f7 q1 E6 u( J                                                to_str("in docking station: \"",?.~.name,"\""));                               
, o6 k9 A; m. d6 R: L                                end;
; [, _1 c7 V2 l                        else
3 w+ ~) _7 A# }$ b6 M$ ~                                @.Destination := assignLObj[1,row];. w1 s4 h' O9 k: O
                        end;                       
4 [5 A. n' g4 z; b                        newDirection(@);
8 ~% H, \, f. |5 ]7 u                        @.HasOrder := true;
1 e' v8 f: Q, g2 A: K* X) n' u                end;
! J" R: N; Q' F& a) t- l' P        end;
7 e  ~6 w3 V% k4 m& W8 Lend;        -- of the method8 d/ Y8 C9 L4 l; F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ w3 c% d: H/ v# |
- R; t$ h: E- \1 |这是AGV_putin中arrive的method。4 y7 T, `4 p8 S
/ a8 S0 v- G; ~. X
当到达物料速度越高时,这个报警更多,
2 w# i# Q- a- A/ c; Q% j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% f5 f, u, E4 c0 ?* m! A2 l程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. i, ~/ n- X% a, f1 Y" z- S
4 f* u, N( t: @  @' V$ P0 o( k
另外一个小建议,就是move,所有的move都可以这样
, T3 G. [+ m: A4 F$ t1 sif not move() then debug end; v4 o$ ~- z, d. T1 v* U
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; w7 M) U' r% z! e, Hplant simulation中的free libraries有AGV模板,7 f* x  p" u+ y. I. `0 v5 f
里面也有案例。7 L, U: b/ \+ o. M* w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; n$ S6 b  d. c" ?
, q( Z/ q: `8 r2 I# \2 h& ~我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 a5 v& c7 @3 O7 k  g1 ~( A, a
/ [3 V; X% e5 d6 m( P& w
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 1 t- X/ K5 u, [* a6 u4 S7 P
这是AGV_putin中arrive的method。) g  P- J$ }) a& Q+ |  B& g8 c

( J2 y9 A! N" O2 w当到达物料速度越高时,这个报警更多,

5 H! K  x8 F+ \7 C5 d! i8 M4 ?# \另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-23 22:33 , Processed in 0.024062 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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