在实际工业程序中,经常需要实时更改当前的参数设置。如对于PMAC运动程序来说,我们可能想在运动的时候在窗口界面改变当前的运动速度,这样就可以完成在PC端控制设备的一切行为。
1.思路
对于如下程序
[plain] view
plain copy
-
&1
-
CLOSE ;确认所有缓冲区被关闭
-
-
OPEN PROG 40
-
CLEAR
-
-
TA(200)
-
TS(20)
-
F(30)
-
INC
-
Linear
-
-
p1=1
-
While (p1 > 0)
-
X(20) Y(0)
-
Dwell 0
-
X(-20) Y(0)
-
Dwell 0
-
EndWhile
-
-
CLOSE
如果希望动态改变运动速度,那么将其改造如下:
[plain] view
plain copy
-
&1
-
CLOSE ;确认所有缓冲区被关闭
-
-
OPEN PROG 40
-
CLEAR
-
-
TA(200)
-
TS(20)
-
F(30)
-
INC
-
Linear
-
-
p1=1
-
While (p1 > 0)
-
F(p2)
-
X(20) Y(0)
-
Dwell 0
-
F(p2)
-
X(-20) Y(0)
-
Dwell 0
-
EndWhile
-
-
CLOSE
这样我们在上位机通过发送命令动态改变p2的值就完成控制运动程序的速度功能了,这就最基本的参数设置思路。再复杂的程序也是通过这种变量控制的方式来完成的,这样的好处在于可以实现规定上下位机交互的变量,直接修改对应的变量值即可,对于自己通过其他方式生成的程序也可以完成参数控制。
2.代码演示
在之前界面上增加参数设置功能,控制运动速度,界面如下:
参数设置代码如下:
[cpp] view
plain copy
-
void CTest2Dlg::OnSaveSet()
-
{
-
TCHAR szSpeed[MAX_PATH];
-
-
GetDlgItemText(IDE_SPEED, szSpeed, MAX_PATH);
-
SetSpeed(szSpeed);
-
-
}
-
-
void CTest2Dlg::SetSpeed(TCHAR* szSpeed)
-
{
-
TCHAR szRes[MAX_PATH];
-
TCHAR szCmd[MAX_PATH];
-
-
sprintf(szCmd, "p2=%s", szSpeed);
-
PmacGetResponse(0,szRes,MAX_PATH,szCmd);
-
}
注意这里的状态列表新增参数设置按钮控制。
演示源代码下载链接
原创,转载请注明来自http://blog.csdn.net/wenzhou1219