在实际工业程序中,经常需要实时更改当前的参数设置。如对于PMAC运动程序来说,我们可能想在运动的时候在窗口界面改变当前的运动速度,这样就可以完成在PC端控制设备的一切行为。
1.思路
对于如下程序
&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
如果希望动态改变运动速度,那么将其改造如下:
&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.代码演示
在之前界面上增加参数设置功能,控制运动速度,界面如下:
参数设置代码如下:
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