设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6754|回复: 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') H. {, [- u- q+ U1 e2 M  }
*/) c! j6 V1 G8 t; }: Q9 {9 e9 K$ G
is
* r$ [  a9 V% |4 X! G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* M% P; n, H$ Y  y4 bdo
" j- ?9 `4 O0 |% K% p; V9 v        Lan := rootfolder.Internal.Tools.AOLlanguage;
, n- ?; _& \8 b) |5 ]        if current = @.Destination -- else return
% A* F( H3 M8 ]$ ^- _) ?        then
4 n' B& g6 c2 l" }                @.Destination := void;
. c  d+ c! u4 L# n) i9 p! s) P                if @.occupied then
$ O6 V" Y5 h+ \& H                        part := @.cont;; d2 {9 v; T4 ?2 F2 u/ Z' G2 T
                        @.transpOrder := void;
" A8 M1 x$ C$ K9 P# S: E                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, S3 H' D& t- e$ U2 B/ X, f6 c
                                @,root.eventcontroller.simTime);
8 p, }9 ]/ q: w$ {0 m$ U                        @.HasOrder := false;* M; H, y4 l- I  w
                        @.DrivingHome := true;$ P# S! k7 z4 p& W$ Q4 t
                        rgManager.tryToStartTransOrder;
9 z) ]' M+ }( D4 c6 P7 `  a9 i                        if @.Destination = void
' J2 k$ @" C: \2 Q/ z                        then -- no transport order for vehicle @
, j& I) F- r2 u  }9 B                                @.Destination :=. A* I% C9 K' o% X+ }# e3 L
                                rgManager.nearestFreeStation(@,track.~);1 u7 `5 V! j# _. e& ]& _7 F% w2 N& D
                                newDirection(@);   
/ e& Z* |7 i3 M                                if @.Destination /= void then
5 ~, F9 i0 Q. f% g- {( W! r                                        @.Destination.NumReservation :=5 e5 \0 v1 X# p& J
                                        @.Destination.NumReservation + 1;
. E( a& L& h" {. q. y  ~3 i& b2 @6 v                                end;
. a6 q7 S, D) W) v9 [# a! T                                @.CurrIcon := "drivingHome";
1 \$ o% K; ?* i/ u                                @.DrivingHome := true;6 e# F* u+ ~- x! Y( h
                        end;
. N, O( P5 b3 F& k" A5 x                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  m. b8 S) l) e) F, N' D
                        part := @.transpOrder;
$ s: t3 Z" ~' W9 b  h8 h                        part.move(@);-- load part9 \. c) O  R4 F  G
                        @.CurrIcon := "load";8 l5 r" O3 m' J9 b- O, r+ J, t
                        GlobalDistObj := part.globDestination;& `; b0 ^5 x5 ^' ]8 Z
                        assignLObj := rgmanager.rgAssignL;
( u: z$ I6 U4 e! L' x9 [: c5 O                        row := assignLObj.getRowNo(GlobalDistObj);% W/ T7 W- k* o; q+ O; o) R4 y6 S
                        if Row = -1 then -- since 701 P8 @0 U5 z4 O* D! E, O
                                if lan=1 then7 n7 v& v0 n- W& `% p; ^
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' o* r+ I# F; h7 p/ n/ t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));% {4 l0 a( z/ ^. W& C
                                else
6 l; R7 x, g# L/ r( ]+ T, Y3 m2 [                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" Y7 E, q3 H% q/ S                                                to_str("in docking station: \"",?.~.name,"\""));                               
  Z! B3 ~: d) c" ^+ V                                end;
$ Q3 M* B3 h1 X+ g# O( `: R5 F$ _                        else
+ E6 i7 a9 |3 ?7 h1 [                                @.Destination := assignLObj[1,row];( _  K; [' h% n9 y) t
                        end;                       
" o1 |6 \/ O2 y- X) p( g                        newDirection(@);
! i4 g, h" N6 z! Y1 m/ V                        @.HasOrder := true;/ ]  z. b0 C9 i& y
                end;
: Z* A( p+ U1 V( ?        end;
# f$ @* ?( q" s: P: Zend;        -- of the method
9 b5 [- T* N. j1 R* U& x: ]$ t5 w* `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' n+ Y3 e8 `6 E" \. p: ^3 Z

) ~# Z) [4 z9 O+ r! z! d1 j这是AGV_putin中arrive的method。+ {7 R3 h6 P  J. b7 i7 A

* ?/ _( ~+ n, W  M/ m' e" v6 `9 [& M) E, {9 m当到达物料速度越高时,这个报警更多,9 O# v, ?/ Z6 C2 t  L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" R( ~4 r; k% A* a0 G& L8 i5 G1 p
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# N9 R: J5 Y! f2 }* ]" [, y- Y* j: E5 L
; u  K3 D. T9 a( Y另外一个小建议,就是move,所有的move都可以这样
6 Y6 f, r$ P( Lif not move() then debug end
+ ^' L( t( E! d3 i这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 T5 ^0 ~6 ~3 L& ?% h# F4 G2 ]4 Pplant simulation中的free libraries有AGV模板,9 e8 f' x2 d& D+ G
里面也有案例。
* @) p* J$ ?& D. s/ G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) o) k6 Y' f* Z4 t+ C; ?( ~0 J& [
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , T7 t- z' ?6 U1 _
/ ~4 g& e; |# z6 g6 N7 ]+ W; m
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * c+ v; a( ]1 ]- q) l
这是AGV_putin中arrive的method。' }" i1 `7 P2 O; `- R
9 @- c0 f* Z0 A
当到达物料速度越高时,这个报警更多,
9 B+ m2 M0 U# C% i2 r) d1 t
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-24 20:15 , Processed in 0.017018 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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