设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9427|回复: 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'
# L$ M* c. [9 n! f# R* v*/) \9 W+ P( I2 L4 q9 \) s# Y+ W& S
is
; t1 k5 I2 F3 Z6 r+ g- J# O- Q- R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) Z1 e! k2 d3 P. b  bdo
- W9 g8 ^# }4 x1 D) f        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ r7 b7 L  @3 F4 O        if current = @.Destination -- else return
4 S7 {+ C9 G2 ~5 ?        then. y7 _- ~: g' P
                @.Destination := void;
* l, M7 k: m2 \                if @.occupied then7 l* V- \9 o  O* c: K" y2 O! ?
                        part := @.cont;5 |3 ~0 W6 v4 Y7 ?, Y  j
                        @.transpOrder := void;. U' Q* G: m; `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 t. q. l: _7 h5 f
                                @,root.eventcontroller.simTime);
8 A, I) s- a8 a                        @.HasOrder := false;
+ b! M- n" ?2 m& I& o- @                        @.DrivingHome := true;$ F3 }/ q7 h; K: r- w6 j/ x
                        rgManager.tryToStartTransOrder;% Z% Y' b$ t" i9 P) x+ ]0 a  l
                        if @.Destination = void9 _- t% w' Q8 b; O9 {
                        then -- no transport order for vehicle @
- b* J2 C( {, F4 D* n, E+ l) S" e                                @.Destination :=' X$ O( s) B# S
                                rgManager.nearestFreeStation(@,track.~);
% z- [+ [5 v& v1 w/ g& p' d                                newDirection(@);   
9 T4 ~) O* N( }% u/ a- U                                if @.Destination /= void then
; p8 b. s" y6 j7 D2 P                                        @.Destination.NumReservation :=
- N1 X, y% Y7 p! ?1 N9 _                                        @.Destination.NumReservation + 1;
# Q/ ?  R3 K* W" B                                end;
" `8 k9 s* O& Y+ P1 _' X                                @.CurrIcon := "drivingHome";  I) B. a# z; w& S6 T& x: p
                                @.DrivingHome := true;
2 n7 O1 `5 j) ]1 x4 W                        end;, |9 e) P; F& D3 [5 b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( s+ C/ K: h, }# ^& w  S
                        part := @.transpOrder;
8 Y0 h- n0 `* |3 b                        part.move(@);-- load part
! ?% x* g8 b0 I0 Z; G                        @.CurrIcon := "load";
% e$ R( |+ h/ P$ ~( E: h+ r                        GlobalDistObj := part.globDestination;
" w8 M  `7 w5 ]- N" j                        assignLObj := rgmanager.rgAssignL;3 l+ |$ k5 C: Z# y$ m% G( `0 Q
                        row := assignLObj.getRowNo(GlobalDistObj);
6 r8 n  t  T: a6 l* G# Q: X7 g8 g                        if Row = -1 then -- since 70: ~$ W2 W7 ]; T/ C1 ]0 |
                                if lan=1 then
! q4 P6 s+ \: c$ i4 v1 M                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* u* j" P; }$ @; b, Q6 ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% \0 }% j, P: K8 j2 j                                else# j# O7 R- t. T! z5 J( ~$ P+ ~7 ?
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 d: V+ L4 c5 U! V' c+ T3 q# F                                                to_str("in docking station: \"",?.~.name,"\""));                                . b4 C/ f. c) y1 N$ Z
                                end;3 B6 d) w! s$ a. ~% H' p( E/ h
                        else
% A0 ^" u3 Y5 x5 M! y! a1 M5 I5 o0 e* t                                @.Destination := assignLObj[1,row];8 \' R2 J, X  e" s
                        end;                       
- k/ D7 U& ?- u# H; F! b                        newDirection(@);
5 Z- H; m2 b4 w% @8 W; J                        @.HasOrder := true;) [2 w2 I  J8 ], T0 O
                end;
0 G6 }+ O8 ]/ |+ i" q1 ^3 e        end;# {, N; j) y0 c5 o$ L+ g6 [4 _
end;        -- of the method& [3 z$ _; Y4 K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 X* _  I6 J+ w& u7 a; \" B8 Z+ G' u9 F; T+ {: `% f! |0 n
这是AGV_putin中arrive的method。
  e9 [) {4 V3 Y0 v+ q1 w# _" k0 U% q# k8 i4 l+ d% ]
当到达物料速度越高时,这个报警更多,- ^6 M2 R& s7 |" ]6 D8 g
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 Z( r) I( e' J: u  a. J4 X
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ p/ B+ c1 B( ?- `

7 ?! i9 ], |5 o; _+ I/ g另外一个小建议,就是move,所有的move都可以这样
+ t2 Q5 A7 C( d% D& B0 v- u$ ?6 rif not move() then debug end1 Z- {' }& c9 m) s' f
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 h, G8 |, D8 |plant simulation中的free libraries有AGV模板,
# {4 v( T5 j, z( I' `" [9 j里面也有案例。
+ Q2 i, e! N# ~我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 T/ \( h. a3 |: f/ _( i" X

5 y9 l& R# o/ g1 y% V7 N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' h, N, l" `4 Q! p9 q4 _: q
8 X4 N) |1 `  Z2 ]- O! V9 {/ f& b
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ N9 w+ D4 S3 m7 K这是AGV_putin中arrive的method。4 _( ^. C8 F4 b5 j

9 r  Z* u7 |# [! w当到达物料速度越高时,这个报警更多,
8 H  u. v5 E- O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-31 17:33 , Processed in 0.023126 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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