各位同仁、各位高手:
我的系统用AC6410(AC6410有32路,16输入16输出)的32路端口的 10 29 11 30 四个输出(电源地线09
除外)它们对应的16路输出输出端口名是 PO0 PO1 PO2 PO3
工作时:让P01置位『给01置位,分高位和地位(高位是输出1,地位是输出0),高低位对应的是正方转』,然后
给P00脉冲 『给00脉冲 脉冲频率是固定的 是控制器内部SP的频率』同理 P03置位然后给P02脉冲,P01和P03
一个是水平脉冲,一个是垂直脉冲
比如说工程中有个“上下左右”的控制对话框
点击“左”的时候,系统做两件事:※ PO1置高位 ※ P00输出脉冲(脉冲多少由象素量决定)
我的原理是通过图像处理得到要输出的象素量
象素量的正负对应PO1的高位或者地位,大小对应给脉冲的多少。
AC6410出来通过共阴极转共阳极电路板后接的“福建漳州维德焊接设备有限公司”的步进电机控制箱(见附件)
以下是我编程的内容,但是程序运行的时候步进电机并没有转,只有“咔”的一声
void CCrossDlg::OnLeftmove()
{
CString string;
GetDlgItemText(IDC_EDIT_LEFT,string);
int iPos=atoi(string.GetBuffer(0));
::AC_6410_DO(::NTportio,::idd[0],0xfffe);
}
void CCrossDlg::OnRightmove()
{
CString string;
GetDlgItemText(IDC_EDIT_RIGHT,string);
int iPos=atoi(string.GetBuffer(0));
::AC_6410_DO(NTportio,idd[0],0xfffe);
}
void CCrossDlg::OnUpmove()
{
CString string;
GetDlgItemText(IDC_EDIT_UP,string);
int iPos=atoi(string.GetBuffer(0));
::AC_6410_DO(NTportio,idd[0],0xfffe);
}
void CCrossDlg::OnDownmove()
{
CString string;
GetDlgItemText(IDC_EDIT_DOWN,string);
int iPos=atoi(string.GetBuffer(0));
::AC_6410_DO(NTportio,idd[0],0xfffe);
}
请问一下,我的问题出在哪里,该如何改进呢? 万分感谢!
本人QQ 58556289 天天看论坛等你救我啊!