设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9837|回复: 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'
+ @; {5 y% \" y" _* A! F4 o8 U. R*/
" ?. K) P! n0 a4 lis
& g6 h( J3 h! a4 _/ M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 P; B, T0 ~" A* {$ T
do4 ?- r+ ]4 w+ s& r) d
        Lan := rootfolder.Internal.Tools.AOLlanguage;0 q4 }" `3 b4 E' ~, a' |& e2 }
        if current = @.Destination -- else return
% X' Y! n/ R6 ~' U" l        then
& N  c6 t) z6 A  V. C, x* v; R, k# P                @.Destination := void;
# K% A' C& V  Y6 c- T. ~" W                if @.occupied then# ^& v) _" i1 T, t6 N3 f
                        part := @.cont;& `/ L0 [- ^$ K' z
                        @.transpOrder := void;
# F9 ~' d  ]8 T5 @& `+ t) W! L  f0 V% O3 r                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ z) t6 N/ x0 f, R+ G9 J                                @,root.eventcontroller.simTime);0 S! b+ E2 n1 D
                        @.HasOrder := false;
  S! S# V4 w7 s  L2 O% ^                        @.DrivingHome := true;
3 N' H8 X7 [0 p& ]$ d, ]9 G                        rgManager.tryToStartTransOrder;
# b5 U1 N5 q6 @8 o- w                        if @.Destination = void. V9 Y% T  H* b, m, @$ [6 X
                        then -- no transport order for vehicle @
8 y4 Z8 C( ]4 T) Y( ^1 |; j                                @.Destination :=
. c. _- S* }8 G( A" N6 v2 S* K                                rgManager.nearestFreeStation(@,track.~);
' D- V* ?# S! _5 n, g1 G1 X1 o                                newDirection(@);   
5 `9 E4 E8 d- J) o. v. m                                if @.Destination /= void then
' S1 t/ L( w4 t( F8 ]* J3 w                                        @.Destination.NumReservation :=9 s2 M5 |9 @6 ~+ q0 G6 @
                                        @.Destination.NumReservation + 1;
7 s  r4 @7 n$ Z                                end;
' e9 V3 W8 p6 V2 J, ^4 Y                                @.CurrIcon := "drivingHome";% m; [5 \0 X# N1 w# V$ g/ ^
                                @.DrivingHome := true;0 r$ p% [% n% e# r1 V5 g
                        end;
  \" P& V  M) s# l$ J. [& S' _$ R                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. L4 T" ^" m9 g" w7 a                        part := @.transpOrder;
9 _; O6 c1 y# S+ N                        part.move(@);-- load part
+ d4 X: O# q$ @7 H" [3 R                        @.CurrIcon := "load";3 G( n4 ]: j3 L3 l
                        GlobalDistObj := part.globDestination;
/ K; [7 X& [% U. b% D  P% Y                        assignLObj := rgmanager.rgAssignL;
! P8 a( x2 Y# {! r8 u0 D% k                        row := assignLObj.getRowNo(GlobalDistObj);
2 W8 K, c! l1 q  L                        if Row = -1 then -- since 70
& N" Q5 J; R3 {5 h, A5 m8 I. T                                if lan=1 then, B/ f- _: y$ u7 p: O' o
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, ]* P& A: t$ d, L5 m) R* M# E                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" f3 \# O+ P" R  v5 l# M, I                                else: Y+ j' `3 N; Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. ?! D- _* G) V  b5 L3 `
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ ?/ r& c0 m+ `: @. t) o                                end;
5 r. w- x3 X" E$ |                        else( R: g5 A# G) P9 ]  y
                                @.Destination := assignLObj[1,row];) a+ B0 \' k# Z4 |( O* d
                        end;                        ; R8 M/ u! C1 s5 B) E9 t2 _
                        newDirection(@);1 [  h! ~2 t/ P! B
                        @.HasOrder := true;
6 A) D4 m, Q: X5 k3 m                end;; r9 D4 L, k! S, F) L* ?' K5 z
        end;4 u$ S' w& l- {- F
end;        -- of the method& d1 G: N' v0 c5 ~& W- l0 O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' F/ D) u1 ]4 n3 V) x+ N% j
$ L5 v. R: M9 I! D9 B: ?8 Y这是AGV_putin中arrive的method。
' @$ \( [& \, h; v; I! J
6 {. F4 J; L. i/ d  F当到达物料速度越高时,这个报警更多,  }( C1 @* x4 P; L, @3 Z6 x0 Q+ g
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 Z4 ~, h+ u* v6 h* M$ v. z' {
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  Q$ r7 R# T$ _7 H6 s# T
$ C* `3 R' I) O
另外一个小建议,就是move,所有的move都可以这样. R+ G) I2 ^0 {# x' b# M
if not move() then debug end
) P/ h$ F& A3 Q7 O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; T6 W9 A8 r* ]6 j2 X
plant simulation中的free libraries有AGV模板,
, q& a8 [0 D8 c+ ?/ ~" P" f里面也有案例。3 F: Z# o1 I+ @7 f0 _7 y5 g5 x
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 O  S# z! ?! F' S% F) ^; A: D. Q( X1 e1 [
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. `6 p% g; |  `  f- g' o
" r$ b5 D& P* t# Y% H那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 E! K. s: r6 Y' D- v
这是AGV_putin中arrive的method。& a3 g6 o7 l1 U7 x/ M

3 ?- M( F  r, B& s" ]. O2 ]8 a  E当到达物料速度越高时,这个报警更多,

% s4 P* l$ l8 C: n* T9 k# f2 i另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-28 09:00 , Processed in 0.019762 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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