设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9688|回复: 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'
# Q' n  E  v; B( s+ d3 I*/
% i% ]% D- R* J; |( K# |is
$ y7 j! ?5 r' [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% I: P! f4 c% e7 {
do
  L$ Y. T% L3 V, y" Z# q        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 O# o* _* |1 ~3 T' h        if current = @.Destination -- else return
4 T! p+ m% U  y' }$ X0 Z$ j        then, s# I0 j( O# y  X" R* r
                @.Destination := void;
# T1 a0 B3 Z) F# ?* ~                if @.occupied then
+ S2 w; B+ s0 x: ~                        part := @.cont;
3 ]+ W! w& L. G5 P( b                        @.transpOrder := void;
* L' W- C7 z& s- E5 Q  Y3 f$ J                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 v* ]' K2 w) F* F; A                                @,root.eventcontroller.simTime);6 J9 a7 z8 T! @2 ~' t) T
                        @.HasOrder := false;; v( [: {8 A9 q0 F6 J9 }
                        @.DrivingHome := true;5 g, |$ {4 Z0 L" O/ _# X2 I- T) Y3 n
                        rgManager.tryToStartTransOrder;
5 I1 g5 b3 s& X/ c7 p6 |                        if @.Destination = void: C. w1 m# C: ^7 K, w1 N
                        then -- no transport order for vehicle @( x$ @6 V: Z% A1 N' `8 S( I2 |
                                @.Destination :=( f0 C' g8 M  ]8 h
                                rgManager.nearestFreeStation(@,track.~);
+ C  {; Y  \1 P8 K) E# n  f                                newDirection(@);   . O! i, _* I$ N$ i# u0 `
                                if @.Destination /= void then
  A/ g7 Z. }  l1 G: m                                        @.Destination.NumReservation :=
  P* y. r) b( l% }                                        @.Destination.NumReservation + 1;
& P% G  s% e; |4 X# f: I& S                                end;
( ~4 s4 H( S- ?' ~/ F8 h/ ?+ r                                @.CurrIcon := "drivingHome";. S( Z* j) x0 }% H
                                @.DrivingHome := true;( s5 V* ~9 z# t0 h: B8 }- o
                        end;
& V+ O7 R& |& r: {8 c                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 l4 K7 V; q- i( v/ l/ l( x  O0 l                        part := @.transpOrder;+ L8 L$ o$ f9 f; R
                        part.move(@);-- load part
0 N1 x8 r( l/ ]2 {; ?; N  `                        @.CurrIcon := "load";4 Y! s' C+ r* P% t" w
                        GlobalDistObj := part.globDestination;
* U+ o: I+ u6 K1 z/ N1 e                        assignLObj := rgmanager.rgAssignL;
& _: z+ i6 V+ N7 h                        row := assignLObj.getRowNo(GlobalDistObj);
0 ?3 ]& T- K6 N$ r" P- _                        if Row = -1 then -- since 70
7 K  {4 v5 \+ r3 \. j                                if lan=1 then  L+ K7 l1 `1 }8 U$ }
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' _0 t; |" J+ O( c% U3 E8 Y) `9 l
                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 z# `  z8 O" t% R
                                else
# v9 |7 A( E- [# a4 T4 e  C                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# m: u/ v- u) J! `; j+ ]
                                                to_str("in docking station: \"",?.~.name,"\""));                                ! K) p4 y% Q9 Z4 x3 U
                                end;
1 y4 F1 h5 N# ]& N6 M9 c# d& x                        else
& u7 c) Q( b& Z0 Z! D# |, {                                @.Destination := assignLObj[1,row];0 y* s2 B8 E% |  f
                        end;                       
) U8 F3 w$ |2 J" V3 M                        newDirection(@);5 x/ _& O9 J4 y5 W; X+ {
                        @.HasOrder := true;9 h1 \0 ^2 u5 D3 Z3 Z
                end;
& Q( D, ?9 _$ Z7 W7 P+ n" k        end;
- w6 ?) M) B2 R) C6 nend;        -- of the method2 N) S, O6 K' E3 G4 t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 E( T& N4 B. e$ Y3 b. F" m

% _5 j- B1 n. t  J* _这是AGV_putin中arrive的method。% \7 ^" q5 u/ v# Z, v+ ~7 x

6 e8 I+ v/ ^, n: M/ N当到达物料速度越高时,这个报警更多,& a. j4 W, ~* F$ u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# @2 w, `' K6 T3 s: x, P; W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" A# t" w3 C  F; \& ]

/ [7 T+ I) d  z另外一个小建议,就是move,所有的move都可以这样1 g5 x! p; Q' v6 Z& `
if not move() then debug end
, d7 r3 t1 J- T( V: l' z4 w) L这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ ?1 o0 g: ?( r4 x4 y# B3 x
plant simulation中的free libraries有AGV模板,
8 Q- R, X; f1 _' x: [+ M( C$ q- S里面也有案例。" o9 J/ G* M: M' e/ ?* l* T
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 p6 }6 |& [* v0 [+ u3 }3 A
! d  \7 }/ r/ n1 ]7 X8 d! u5 W( N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  V4 y1 {3 G, a) C& S! `4 _8 a- H( s) r3 l! J
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& J/ a6 ]9 s) @# R& z9 Q! Q3 z6 \) v这是AGV_putin中arrive的method。- M5 C* ?. A  n  H- U! v7 O

8 p4 [1 C3 R0 {# ~6 s# S" K" d当到达物料速度越高时,这个报警更多,
8 I' r- t, o- A+ ^4 |1 d/ |
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-17 10:43 , Processed in 0.019678 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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