设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7164|回复: 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'
) ~) X4 Q4 R  K) I2 b*/& R0 R: C9 Z- \6 W9 O
is
) ]) d. y' B, {/ W. Z6 G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 r+ Z) {/ s0 A9 q- ]do
) P& P, w) D+ e7 v        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 W5 v2 t: C) I6 U* T  Y        if current = @.Destination -- else return
" A' _* U* a. a! B# G% Z( j' e        then
) o, z7 n$ {# K8 B3 V                @.Destination := void;1 C8 X/ F) R! e4 ]4 R: W; S
                if @.occupied then5 {. B# o* y8 E( x
                        part := @.cont;1 j% f  g/ u6 X: Z/ e
                        @.transpOrder := void;. y0 T& l0 e- ~. w, T& T, U
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* m- |, ]; ^/ {) Q, u6 a% `3 E. C                                @,root.eventcontroller.simTime);
1 ~- t6 U9 A7 F* t0 s, ^8 J- K                        @.HasOrder := false;
/ g( X/ Z9 o6 c, S4 P$ s! {                        @.DrivingHome := true;
/ ]# U' m% P- Z& l" O0 X                        rgManager.tryToStartTransOrder;8 j: V# W. I6 _, t+ I- @7 O9 l' r& J5 c
                        if @.Destination = void
5 A) U' u- [* O' d% X                        then -- no transport order for vehicle @
" U0 T4 ?: t4 j# B; V9 z                                @.Destination :=
- a( `" Q$ R1 U9 o4 ~                                rgManager.nearestFreeStation(@,track.~);6 }6 P- q, L! e/ t& o
                                newDirection(@);   ; d/ |% e: P% N9 ?5 d; g7 D. S. [
                                if @.Destination /= void then
/ g4 @) w& L0 p9 E                                        @.Destination.NumReservation :=% @2 q! r& q! S8 B2 o0 \* e
                                        @.Destination.NumReservation + 1;
9 O! a: X7 A- c- y+ }' ^                                end;
! \; \3 U- P# w( W6 Y4 O+ v5 z/ Z                                @.CurrIcon := "drivingHome";& \' R8 ]1 c! t
                                @.DrivingHome := true;2 {6 A' I( u% z4 k6 b
                        end;
  O1 X, x9 I: W: n- }, _$ v- l                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ `+ P- s) n# A9 a& R+ n; ~% l                        part := @.transpOrder;! G3 C; W, p) s4 a- ~$ \; {- T1 B
                        part.move(@);-- load part/ B; v  y5 [/ i
                        @.CurrIcon := "load";
) [' i6 C4 I1 x& `1 M3 f* _  N                        GlobalDistObj := part.globDestination;, X4 l$ \, e, K, }9 d. g/ ]
                        assignLObj := rgmanager.rgAssignL;
* N* y. y; O- g: ?6 h                        row := assignLObj.getRowNo(GlobalDistObj);
8 g6 Q! ?+ y3 @# s' Z- N                        if Row = -1 then -- since 70. A: u& b+ R2 l+ O) V
                                if lan=1 then
( N- t: D& N) `2 ]$ w                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 X; H7 U( _+ c, d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% k7 t3 u# P  Z0 ]                                else! Q( Y4 \$ w5 _, k8 P: b& ]# K
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* z: z( v7 L& M, S; c; d                                                to_str("in docking station: \"",?.~.name,"\""));                                ! {* U* l; P% c; E4 s' ]
                                end;% o0 N4 j9 t) l# V
                        else
: l* d- }3 L' R6 q+ a9 Y2 N7 F                                @.Destination := assignLObj[1,row];
/ z8 t4 R. W3 y- y! ~# d  H+ r                        end;                        , J; [& ]% y1 x
                        newDirection(@);# {4 p3 {/ ^, `) P
                        @.HasOrder := true;) T3 j3 Z" E3 `4 Y9 w& w" L
                end;0 P6 q) G1 X- M9 n/ i. [7 U- Y) B
        end;
5 _5 X: S3 k' V5 g  yend;        -- of the method
$ g) H! s) \4 {0 m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - J1 E' ?5 Q2 G; {6 y
  s$ W+ c8 z0 d; f0 I7 o
这是AGV_putin中arrive的method。
2 D. |: t# o5 ^- B* V9 x) w: Z, Z2 ~9 U
当到达物料速度越高时,这个报警更多,1 D2 s4 ]$ I6 I- `) E, ~
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; `0 D4 A% N& |. ]- ~$ z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?% b3 h# L" J+ I- P, s/ A
0 Z" Q4 x5 N3 @! c4 _  _
另外一个小建议,就是move,所有的move都可以这样
- m7 Z! e9 z# n8 q/ |7 z5 Qif not move() then debug end
2 |7 }1 Z( @2 {2 v$ t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% u2 f  L, j7 q, Nplant simulation中的free libraries有AGV模板,
  u! k2 |" N/ f7 i, o: s( C4 X里面也有案例。
1 w" w- m) o! v4 m8 B我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ D3 J8 R: q2 n. }# L; k. A: m

+ D' D% Q0 X6 B& U  R% [我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ R5 e- T. D9 Q2 }. S
$ X7 m) J7 W$ v0 O& ?那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; P4 R7 T( {* C& o6 X
这是AGV_putin中arrive的method。
$ j3 a! C2 O9 q0 @9 Q, P; k2 `; y8 M
当到达物料速度越高时,这个报警更多,
, D. z* l* G& o/ a' ]: n
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-23 16:54 , Processed in 0.017477 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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