全球FlexSim系统仿真中文论坛
标题:
处理器的处理状态如何触发?仿真速度加快,动作出错。
[打印本页]
作者:
qiush1234
时间:
2011-9-20 15:35
标题:
处理器的处理状态如何触发?仿真速度加快,动作出错。
本帖最后由 qiush1234 于 2011-9-20 16:14 编辑
; ^5 n6 m) I, \& @
5 a# u j6 s. d. }" l" z7 T
如题:最近在做一个课题时。遇到一些问题。
8 ~% w9 ~1 h+ L4 \2 W, [ j- j0 t
行车将工件吊运到在等待中的运输车,运输车将工件送达处理区域。
% i2 T: A! G. ]: E, }. X
此时运输车不能离开处理区域。
$ |9 {! e) u# W# F0 u, T. B: b
由顶升装置将运输车连同工件一起上升至处理位。
( R$ ^4 r/ y2 l Z, T! ]9 R
等处理完成后,运输车再次运送工件到卸载位。
8 a5 [2 P' A) l8 ?
仍然由行车将工件吊运到储存区。
* X3 S% b9 N0 O- |
问题1:
; @" z' j* l( S1 V* D
下面是一段顶升装置上升下降的代码:
0 `6 Z2 m* f" ?# _& u# m
if (msgparam(1)==1)
6 N/ C: C: B+ L" D
{
1 M3 e9 q3 x+ E. H& A9 q0 d# \* G
initkinematics(ki,sup);
/ u- _! s& C9 ]. W8 J7 z
double time1=addkinematic(ki,0,0,fl,1,0,0,0,0,time(),KINEMATIC_TRAVEL);
. R e, @! x' `5 B' X
senddelayedmessage(zzc,time1-time(),current,1,0,0);
( o- z/ i2 P2 Q) c3 v7 e( S
double tiup=time1-time();
; C+ d( N1 r& c2 ]: i6 _
}
" p4 b) c, g8 O3 W T0 L7 y& x
else if(msgparam(1)==2)
/ t( H6 _- F5 y* P" \
{
2 D" {5 V' I0 c" m* l5 `4 \
initkinematics(ki,sup);
- x9 F( b3 n1 j, ?
double time1=addkinematic(ki,0,0,-fl,1,0,0,0,0,time(),KINEMATIC_TRAVEL);
( ]: s' x8 X/ w
double tidown=time1-time();
* X9 p# O9 r( ^
}
S4 y f" m0 e" ^6 k" Z* t! W
如何计算下降完成时间点-上升起始点的时间段?
" [4 K0 `, u A7 z( O
我现在是将这两个数值输入到标签中来进行计算。应该可以直接在代码中将它们提取出来吧。
; W2 z7 Z& R5 k
问题2:仿真速度对比中,按500~1000倍的速度模拟没有出现问题,上升下降后Z轴回到0点。
- j" E, a3 z( ~( C5 S$ I/ e' c* j
当仿真速度调到1000倍以上时,动作出现错误,一直上升或是下降,不回到起始位置?
8 M5 Y# {: G6 l! v, n
问题3:
如何在临时物体不进入处理器的情况下触发处理器的处理行为?
作者:
domcylai
时间:
2011-9-20 17:21
作者:
xiexiaoch134
时间:
2011-9-20 19:06
问题1:可以通过getkinematics来获取对应的时间。
7 w7 U/ L z6 K2 @
问题2:flexsim中如果仿真速度过快,会出现动力学执行不完整的现象。
3 ?6 n; v8 I) z3 [( A
问题3:没有临时实体的处理行为有意义吗?如果你的意思只是想触发处理器的某一触发器的话,sendmessage命令可以任意时间任意地点触发处理器。
作者:
qiush1234
时间:
2011-9-20 20:15
因为临时物体经过处理后仍然是由运输车运输到卸载位。
' w% P( b' |$ F* M0 r
进入处理器后如何让临时物体返回运输车,再由行车运输到卸载。
作者:
xiexiaoch134
时间:
2011-9-20 22:19
请上传模型,不能因为人总会饿所以不要吃饭。
作者:
qiush1234
时间:
2011-9-26 08:15
完善了模型后出现临时物体消失的问题:
6 ?6 v: Z3 ^; t
流程简介
5 X9 n; u' ~8 F5 N* T9 ?% P6 T4 x U
1.自发生器644生成货物,
; X# s9 i: u% @7 E. _
2.由行车吊运至暂存区578
& M9 \) B0 o. R: z) E7 t7 [' j
3.暂存区578的到处理器579由任务执行器运输到位,上升后将临时物体移交至处理器579中。
+ \0 p+ A; D! C
4.当处理器579处理完成后,又由任务执行器将货物运输至暂存区693,然后任务执行器中的升降装置返回。
) K) P- e- X# L6 U" |) Z, ]
5.最终由行车将暂存区693处理完成的货物运输到下一个处理器。
2 j" t0 b2 ~; t7 Z% ^$ G% {& t) Q1 Z
1 N6 K a5 ?, R. X& y9 w
当程序运行到第4条时临时物体出现了位置错误。(临时物体的位置:X:8655644.000,Y:0,Z:-3)
3 j% M! w: j# w% _9 ~4 Z E
直到进行到暂存区693时又出现了。
# G- j( x2 ^' A8 a6 B3 S
我在任务执行器的进入触发中已经设置了临时物体的坐标的,为何临时物体还会移动到很远的地方呢?
作者:
vivion
时间:
2012-5-15 15:25
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3