之前发过一个DMIS实现报警的程序,感觉不很详细,现在把详细步骤给出:
我们根据利用DMIS标准语言,可以DIY一个报警程序,当工件超差了就自动“中文语音”进行提示。
例如,我们测量了一个孔,现在对该孔的直径进行评价:
F(CIR1) = FEAT/CIRCLE,INNER,CART, 83.818768, 91.526173, 70.000000, 0.000000,$
0.000000, 1.000000, 79.982000
MEAS/CIRCLE, F(CIR1), 3
GOTO/ 51.196154, 76.302343, 82.000000
PTMEAS/CART, 47.571419, 74.610806, 70.000000, 0.906184, 0.422884, 0.000000
GOTO/ 63.178670, 62.030642, 70.000000
GOTO/ 80.691685, 55.662245, 70.000000
GOTO/ 99.042599, 58.903559, 70.000000
PTMEAS/CART, 116.591581, 68.592731, 70.000000, -0.819320, 0.573336, 0.000000
GOTO/ 119.682697, 88.399090, 70.000000
GOTO/ 116.441383, 106.750004, 70.000000
GOTO/ 104.458866, 121.021705, 70.000000
PTMEAS/CART, 87.293306, 131.374982, 70.000000, -0.086863, -0.996220,$
0.000000
GOTO/ 86.945852, 127.390102, 82.000000
ENDMES
上面是圆CIR1常规的定义和测量,接下来是定义直径公差,公差名为TDIAM1和输出。
T(TDIAM1) = TOL/DIAM, -0.020000, 0.020000
OUTPUT/FA(CIR1), TA(TDIAM1)
然后根据上面的公差名称TDIAM1来写一段程序判断是否超差
DECL/COMMON,DOUBLE,TOL_CON
TOL_CON = VALUE/TA(TDIAM1),AMT
IF/(TOL_CON .EQ. 0)
ENDIF
IF/(TOL_CON .GT. 0)
TEMPSTR = Prompt/SOUND,'C:\TOL_MEG.WAV'
ENDIF
上面程序中的公差名称需要和定义的名称一致,都为TDIAM1
然后点击XP—》开始—》运行,输入sndrec32,点击确定
打开录音机,点击录音,可以录上自己的几段话,比如“超差了”、“注意”等等。
然后点击文件—》保存,按照DMIS程序中指定的路径保存一个WAV文件。
所有工作都完成了。
结果就是运行这个程序,测量完成后,如果没超差,就正常通过。
如果超差了,计算机就会放出刚刚录音的那一段话。
很多智能的功能,都可以通过开放的DMIS语言来实现。
统计合格率的程序,可以将帖子中的程序,判断超差的部分,增加一部分统计的内容.
(STT)
DECL/COMMON,INTGR,Total_N,Intol_N
$$$$
$$这一部分是完整的测量程序,下面开始报"超差"和合格率.
$$$$
DECL/COMMON,DOUBLE,TOL_CON,ELI
TOL_CON = VALUE/TA(TDIAM1),AMT
Total_N = ASSIGN/Total_N+1
IF/(TOL_CON .EQ. 0)
Intol_N = ASSIGN/Intol_N+1
ENDIF
IF/(TOL_CON .GT. 0)
TEMPSTR = Prompt/SOUND,'C:\TOL_MEG.WAV'
ENDIF
ELI = ASSIGN/ Intol_N/Total_N
WRITE/DID(DEFAULTSCREEN),'合格率为:',ELI
JUMPTO/(STT)