设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8673|回复: 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') |) }, q3 H! p8 {
*/3 M  s7 {4 A6 X  m" }
is$ q  V) ]4 M4 m' [7 p8 N
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 D3 ?) N) l7 A0 N. _7 r' tdo7 I' `/ Z" Y2 c: h
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 V3 X# ?$ I' p% {* h( F        if current = @.Destination -- else return
( x0 {1 u; g, i        then
/ T6 n1 F, i% ~8 S5 U* ?                @.Destination := void;6 A! k; p8 B; P9 v( P7 L/ Z
                if @.occupied then  |6 k2 m& \7 q1 f% K8 y; j5 F6 f
                        part := @.cont;
( c! b/ m! k9 g8 z/ ?+ Z7 }                        @.transpOrder := void;0 J7 D: V" r/ P; C9 o5 q3 ^" }( n
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 R3 {8 {6 ?, r1 |                                @,root.eventcontroller.simTime);
5 V) d) J5 e. e                        @.HasOrder := false;/ b$ k1 P4 F! a8 a: R2 W
                        @.DrivingHome := true;
, }% m& ^6 O+ v9 N7 `                        rgManager.tryToStartTransOrder;8 @0 s$ d1 j. T9 ]
                        if @.Destination = void
8 c$ {1 o; o' w+ ^" ^- |                        then -- no transport order for vehicle @& R' g+ v  b* s9 ]* B
                                @.Destination :=
  G' P8 p  [0 s! f! H, w6 [                                rgManager.nearestFreeStation(@,track.~);
( G; r: s, q* Z1 v                                newDirection(@);   ; g* D& J; d: R+ p
                                if @.Destination /= void then; n9 z# Y5 k! P* `# R
                                        @.Destination.NumReservation :=( s, n# P/ }. J0 M3 O7 ~$ o  [
                                        @.Destination.NumReservation + 1;
0 [' p2 ^( i8 J, S# S- m                                end;
! G: \1 ]" k0 `6 Z5 N                                @.CurrIcon := "drivingHome";
& j0 b0 w; X9 z( V; V! o; M0 X                                @.DrivingHome := true;
6 O, v: u! H! T& d+ h- @4 q                        end;
6 S, `6 D' C1 J, b9 A                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 C; b% n( s& l2 F1 c                        part := @.transpOrder;" N. r0 ?* D3 ~4 e$ |! O4 h
                        part.move(@);-- load part
& Y9 I7 X) U$ y8 u* D. g1 r                        @.CurrIcon := "load";
; o' X& P4 N( ^+ h$ i) Z                        GlobalDistObj := part.globDestination;- m1 V1 w( ^& e4 d' E6 t. q; y
                        assignLObj := rgmanager.rgAssignL;% i# k1 M% i7 e$ k& l. l
                        row := assignLObj.getRowNo(GlobalDistObj);9 k* j, `, C  ^% z' z
                        if Row = -1 then -- since 706 x/ q* f- M0 @+ g
                                if lan=1 then8 }  _' S0 W/ p$ M+ X+ z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! Q/ Q7 @0 a  f; N2 i! g                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 Y/ a7 \  ]- Y
                                else0 T3 Y- Q. E! C7 v( v
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* \* f' p) f% _# G2 l/ u                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 a. _$ m1 p: |1 C3 f                                end;% Q# _8 S$ m- {+ _. b. r
                        else. f) N. y! R7 A5 U
                                @.Destination := assignLObj[1,row];* x, v. ^+ \5 {8 Z) S3 e/ @
                        end;                        5 R6 W$ n0 x. T# y: |3 y0 q
                        newDirection(@);
: b; z+ J: }8 r0 J5 R/ d# [                        @.HasOrder := true;
; b" Q3 @1 @3 ]                end;
7 z2 V4 Q+ i9 f9 F- V) t  S6 t* o        end;
2 y' f5 w1 S( j$ E3 [end;        -- of the method
7 S% v0 [; N: Q  q2 p2 _# V8 D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 b6 j1 P  e+ n( [

+ ], ^7 F; G7 g2 o& f这是AGV_putin中arrive的method。
) O( X# O, ^5 n3 C, p! n/ m! S' f; \5 s$ K- z1 d. U4 ]3 R
当到达物料速度越高时,这个报警更多,
, Q; J2 {3 m/ @可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% G, Y# W" {8 U  ?( \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 {7 K$ ?9 {; G% B2 r; [
5 E+ B+ T7 Z6 B1 \8 B另外一个小建议,就是move,所有的move都可以这样( ]0 |: A% _$ m
if not move() then debug end
2 s; z# O5 B! N( L这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 `" ~6 o1 C1 f5 Z" S* A
plant simulation中的free libraries有AGV模板,% f9 A% y; u+ m! S7 J
里面也有案例。# v7 `4 f4 F/ b8 q  i/ j' p
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( O' P: n$ |2 D: e+ q. v6 u9 A

/ y, K6 s7 M" {( o4 o6 \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ ?# j# ]3 I% y2 Q' K/ K7 f' X4 t' M" C5 C: }
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 e9 z2 V- e& l; s" N/ I
这是AGV_putin中arrive的method。! j- s' m+ |1 C4 [) f
0 E. [  }5 m6 ]. F4 ]  x
当到达物料速度越高时,这个报警更多,
4 C& Z# d6 C" ]; m' @& b) t) J
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-19 12:30 , Processed in 0.017571 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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