电机控制窗口制作

电机控制窗口制作
电机控制窗口制作

电机控制窗口制作

1)设备名称:首先添加个静态文本框,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,选择属性中的字体属性,设置字体属性中的文本属性,静态填写设备名称,动态添加变量Y_NAME(为内部变量,文本变量8位字符集),更新周期为有变化时。

2)设备编号:首先添加个静态文本框,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,选择属性中的字体属性,设置字体属性中的文本属性,静态填写设备编号,动态添加变量Y_KKS(为内部变量,文本变量8位字符集),更新周期为有变化时。

3):首先从图库中添加该图标,单击右键出现选择对话框,单击选择属性,出现对象

属性对话框,选择事件,选择对象事件,选择单击,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void Click(char* lpszPictureName, char* lpszObjectName )

{

SetV isible("运行画面","电机控制帮助窗口",TRUE);}

4)设备状态:首先添加个静态文本框,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,首先选择颜色属性,选择背景颜色,单击右键选择动作对话框,在表达式/公式中添加变量:

GetTagBit(GetTagChar("M_SF"))+GetTagBit(GetTagChar("M_SS"))*2

其中M_SF和M_SS为内部变量,文本变量8位字符集。

数据类型:选择模拟量

表达式/公式结果:

1. 数值范围1:等于0;颜色为绿色

2. 数值范围2:等于1;颜色为红色

3. 数值范围3:等于2;颜色为绿色

4. 数值范围4:等于3;颜色为黄色

5 数值范围5:等于4;颜色为灰色

6.其他:灰色。

在对象属性对话框其次选择字体属性,设置字体属性为文本,静态填写为设备状态,动态选择动作对话框,在表达式/公式中添加变量:

GetTagBit(GetTagChar("M_SF"))+GetTagBit(GetTagChar("M_SS"))*2

其中M_SF和M_SS为内部变量,文本变量8位字符集。

数据类型:模拟量

表达式/公式结果:

1. 数值范围1:等于0;设备停止

2. 数值范围2:等于1;设备运行

3. 数值范围3:等于2;设备停止

4. 数值范围4:等于3;反馈错误

5. 其他:设备状态

5)设备控制方式:首先添加个静态文本框,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,选择属性中的字体属性,设置字体属性中的文本属性,静态填写设备控制方式,动态选择动作对话框,在表达式/公式中添加变量:

GetTagBit(GetTagChar("M_ZN"))+GetTagBit(GetTagChar("M_AUTO"))*2

其中M_ZN和M_AUTO为内部变量,文本变量8位字符集。

数据类型:模拟量

表达式/公式结果:

1. 数值范围1:等于0;设备就地控制

2. 数值范围2:等于1;设备远程计算机手动控制

3. 数值范围3:等于2;设备就地控制

4. 数值范围4:等于3;设备自动控制方式

5 其他设备控制方式

6)设备故障分析:首先添加个静态文本框,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,首先选择颜色属性,选择背景颜色,单击右键选择动作对话框,在表达式/公式中添加变量:

GetTagBit(GetTagChar("M_ZF"))+GetTagBit(GetTagChar("ZS_F"))*2+GetTagBit(GetTagChar(" ZD_F"))*4

其中M_ZF和ZS_F和ZD_F 为内部变量,文本变量8位字符集。

数据类型:模拟量

表达式/公式结果:

1. 数值范围1:等于0;颜色为灰色

2. 数值范围2:等于1;颜色为黄色

3. 数值范围3:等于2;颜色为黄色

4. 数值范围4:等于3;颜色为黄色

5. 数值范围5:等于4;颜色为黄色

6. 数值范围6:等于5;颜色为黄色

7. 数值范围7:等于6;颜色为黄色

8. 数值范围8:等于7;颜色为黄色

9. 其他:灰色

在对象属性对话框其次选择字体属性,设置字体属性为文本,静态填写为设备状态,动态选择动作对话框,在表达式/公式中添加变量:

GetTagBit(GetTagChar("M_ZF"))+GetTagBit(GetTagChar("ZS_F"))*2+GetTagBit(GetTagChar(" ZD_F"))*4+GetTagBit(GetTagChar("M_ZF1"))*8

其中:M_ZF、ZS_F、ZD_F、M_ZF1(内部变量,文本变量8位字符集)

数据类型:模拟量

表达式/公式结果:

1. 数值范围1:等于0;设备无故障

2. 数值范围2:等于1;设备硬件故障

3. 数值范围3:等于2;设备启动报警

4. 数值范围4:等于3;设备硬件故障

5. 数值范围5:等于4;设备停止报警

6. 数值范围6:等于5;设备硬件故障

7. 数值范围7:等于6;设备启、停报警

8. 数值范围8:等于7;设备硬件故障

9. 数值范围9:等于8;设备软启动故障

10. 其他:设备故障分析

在对象属性对话框再次选择选择闪烁属性,设置闪烁属性中的背景闪烁激活属性,静态设置为否,动态选择动作对话框,在表达式/公式中添加变量:

GetTagBit(GetTagChar("M_ZF"))+GetTagBit(GetTagChar("ZS_F"))*2+GetTagBit(GetTagChar(" ZD_F"))*4+GetTagBit(GetTagChar("M_ZF1"))*8

其中:M_ZF、ZS_F、ZD_F、M_ZF1(内部变量,文本变量8位字符集)

数据类型:模拟量

表达式/公式结果:

1. 数值范围1:等于0;否

2. 数值范围2:等于1;是

3. 数值范围3:等于2;是

4. 数值范围4:等于3;是

5. 数值范围5:等于4;是

6. 数值范围6:等于5;是

7. 数值范围7:等于6;是

8. 数值范围8:等于7;是

9. 数值范围9:等于8;是

10. 其他:否

7)启动按钮设置:首先添加一个按钮,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,在对象属性对话框中首先选择其他属性,首先设置允许操作员控制属性,静态设置为是,设置动态选择动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("M_ZN"))+GetTagBit(GetTagChar("M_AUTO"))*2

其中M_ZN、M_AUTO(内部变量,文本变量8位字符集)

数据类型:模拟量

表达式/公式结果:

1. 数值范围1:等于0;否

2. 数值范围2:等于1;是

3. 数值范围3:等于2;否

4. 数值范围4:等于3;否

5. 其他:否

再次设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

if (GetTagBitWait(GetTagChar("M_ZN"))==0)

{

//如果该阀远程=0 ,提示用户并结束程序

MessageBox(FindWindow(NULL,"WinCC-运行系统- "),"该阀现处于就地控制状态,禁止操作!","注意",MB_ICONWARNING);

return;

}

else

{

//如果该阀自动=0 则提示用户并禁止用户操作,

if (GetTagBitWait(GetTagChar("M_AUTO")))

{

//如果该阀自动=0 ,提示用户并结束程序

MessageBox(FindWindow(NULL,"WinCC-运行系统- " )," 该阀现处于计算机自动控制状态,禁止操作!","注意",MB_ICONWARNING);

return;

}

else

{

if (MessageBox(FindWindow(NULL,"WinCC-运行系统- " )," 是否需要启动!","注意",MB_ICONWARNING|MB_YESNO) == IDYES )

{

//启动阀

SetTagBitWait(GetTagChar("M_ZS"),1);

SetTagBitWait(GetTagChar("M_ZD"),0);

}

}

}

(8)停止按钮设置:首先添加一个按钮,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

if (MessageBox(FindWindow(NULL,"WinCC-运行系统- " )," 是否需要停止!","注意",MB_ICONWARNING|MB_YESNO) == IDYES )

{

SetTagBitWait(GetTagChar("M_ZS"),0);

SetTagBitWait(GetTagChar("M_ZD"),1);

}

(9)设置手/自动按钮:首先添加一个按钮,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,在对象属性对话框中首先选择字体属性,设置文本属性,静态设置为手/自动,设置动态选择动作对话框,在表达式/公式中添加变量:

GetTagBit(GetTagChar("M_AUTO"))

其中M_AUTO(内部变量,文本变量8位字符集)

1.是/真:手动

2. 否/假:自动

其次设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

char* proCaption;

//根据现在阀的状态,改变显示的信息

if (!GetTagBit(GetTagChar("M_AUTO")))

{

proCaption="现状态为手动,是否切换为自动?";

}

else

{

proCaption="现状态为自动,是否切换为手动?";

}

if (MessageBox(FindWindow(NULL,"WinCC-运行系统- " ),proCaption,"注意

",MB_ICONWARNING|MB_YESNO) == IDYES )

{

//手/自动切换

SetTagBit(GetTagChar("M_AUTO"),!GetTagBit(GetTagChar("M_AUTO")));

}

}

(10)设置报警复位按钮:首先添加一个按钮,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,在对象属性对话框中设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

//

SetVisible(GetTagChar("AdWindowsName1"),GetTagChar("SetWindowsName"),TRUE);

SetTagBit(GetTagChar("ZS_F"),FALSE);

SetTagBit(GetTagChar("ZD_F"),FALSE);

}

11)设置维修挂牌属性:首先添加一个按钮,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,在对象属性对话框中首先选择字体属性,设置文本属性,静态设置为维修挂牌,设置动态选择动作对话框,在表达式/公式中添加变量:

GetTagBitWait(GetTagChar("M_FLAG"))

("M_FLAG"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:取消挂牌

否/假:维修挂牌

其次设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

if (GetTagBitWait(GetTagChar("M_FLAG"))==0)

{

if (MessageBox(FindWindow(NULL,"WinCC-运行系统- " )," 该设备是否要挂牌!","注意",MB_ICONWARNING|MB_YESNO) == IDYES )

{

SetTagBitWait(GetTagChar("M_FLAG"),1);

}

}

else if (GetTagBitWait(GetTagChar("M_FLAG"))==1)

{

if (MessageBox(FindWindow(NULL,"WinCC-运行系统- " )," 该设备是否要取消挂牌!","注意",MB_ICONWARNING|MB_YESNO) == IDYES )

{

SetTagBitWait(GetTagChar("M_FLAG"),0);

}

}

}

电机控制帮助窗口设置

(1)设备名称按钮设置:在添加一个静态文本如上图的NAME文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示NAME,设置变量选项,添加变量Y_NAME,更新周期改为有变化时。

(2)设备编号按钮设置:在添加一个静态文本如上图的KKS文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示KKS,设置变量选项,添加变量Y_KKS,更新周期改为有变化时。

(3)设备故障反馈信号按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("M_ZF"),!GetTagBit(GetTagChar("M_ZF")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("M_ZF"))

("M_ZF"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的ZF文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为ZF,设置变量选项,添加变量Y_ZF,更新周期改为有变化时,

4)设备远程/就地选择信号按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选

择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("M_ZN"),!GetTagBit(GetTagChar("M_ZN")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("M_ZN"))("M_ZN"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的ZN文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为ZN,设置变量选项,添加变量M_ZN,更新周期改为有变化时,

(5)设备机旁信号按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("M_JP"),!GetTagBit(GetTagChar("M_JP")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("M_JP"))("M_JP"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的JP文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为JP,设置变量选项,添加变量M_JP,更新周期改为有变化时,

(6)设备集中信号按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("M_JZ"),!GetTagBit(GetTagChar("M_JZ")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:

GetTagBit(GetTagChar("M_JZ"))("M_JP"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的JZ文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为JZ,设置变量选项,添加变量M_JZ,更新周期改为有变化时,

(7)设备运行反馈信号按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("M_SF"),!GetTagBit(GetTagChar("M_SF")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("M_SF"))("M_SF"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的SF文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为SF,设置变量选项,添加变量M_SF,更新周期改为有变化时,

(8)设备停止反馈信号按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("M_SS"),!GetTagBit(GetTagChar("M_SS")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("M_SS"))("M_SS"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的SS文本,单击右键选择属性选项,出现对象属性对话框,设

置字体属性,在字体属性中设置文本属性,静态显示SS,设置变量选项,添加变量M_SS,更新周期改为有变化时.

(9)设备计算机手自动选择信号按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("M_AUTO"),!GetTagBit(GetTagChar("M_AUTO")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("M_AUTO"))("M_AUTO"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的AUTO文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示AUTO,设置变量选项,添加变量M_AUTO,更新周期改为有变化时,

(10)设备计算机手动启动信号按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("M_ZS"),!GetTagBit(GetTagChar("M_ZS")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("M_ZS"))("M_ZS"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的ZS文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示ZS,设置变量选项,添加变量M_ZS,更新周期改为有变化时,

(11)设备计算机手动停止信号按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("M_ZD"),!GetTagBit(GetTagChar("M_ZD")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("M_ZD"))("M_ZD"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的ZD文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示ZD,设置变量选项,添加变量M_ZD,更新周期改为有变化时

(12)设备启动报警按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("ZS_F"),!GetTagBit(GetTagChar("ZS_F")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("ZS_F"))("ZS_F"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的ZS_F文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示ZS_F,设置变量选项,添加变量ZS_F,更新周期改为有变化时

13)设备停止报警按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("ZD_F"),!GetTagBit(GetTagChar("ZD_F")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("ZD_F"))("ZD_F"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的ZD_F文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示ZD_F,设置变量选项,添加变量ZD_F,更新周期改为有变化时

14)设备维修挂牌按钮设置:首先添加一个按钮,设置文本为Set/Reset,单击右键出现选择对话框,单击选择属性,出现对象属性对话框,设置事件属性,选择事件,选择选择按钮下的鼠标事件,选择鼠标动作,单击右键,选择C动作,添加程序,程序如下:

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetTagBit(GetTagChar("M_FLAG"),!GetTagBit(GetTagChar("M_FLAG")));

}

添加个静态文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示为1,设置动态动作对话框,在表达式/公式中添加变量:GetTagBit(GetTagChar("M_FLAG"))("M_FLAG"内部变量,文本变量8位字符集)

数据类型:布尔型

表达式/公式结果:

是/真:1

否/假:0

在添加一个静态文本如上图的FLAG文本,单击右键选择属性选项,出现对象属性对话框,设置字体属性,在字体属性中设置文本属性,静态显示FLAG,设置变量选项,添加变量M_FLAG,更新周期改为有变化时

4、基于FPGA的步进电机细分驱动控制设计

南京工程学院 自动化学院 大作业(论文) 题目:基于FPGA的步进电机细分驱动 控制设计 专业:测控技术与仪器 班级:学号: 学生姓名: 任课教师:郭婧 成绩:

基于FPGA的步进电机细分驱动控制设计 一、基本要求: 在理解步进电机的工作原理以及细分原理的基础上,利用FPGA实现四相步进电机的8细分驱动控制。 二、评分标准: 1、设计方案介绍(共15分) 要求:详细叙述利用FPGA实现对四相步进电机进行8细分控制的设计方案。 评分标准: 13-15分:方案叙述详细,正确; 10-12分:方案叙述较详细,基本正确; 9分以下:酌情给分 0分:抄袭别人 2、VHDL设计部分(60分) 要求:给出详细的VHDL设计过程,提供详细的程序代码,如果设计中用到LPM模块,则给出生成LPM模块的每一步操作流程的截图,并加以文字描述。 评分标准: 54-60分:代码详细,截图完整,书写规范, 48-53分:代码较详细,截图较完整,书写较规范; 47以下:酌情给分 0分:抄袭别人 3、模拟调试部分(20分) 要求:给出详细的仿真过程,对软件编译、仿真分析、仿真波形进行截图。并给出8细分情况下的仿真测试结果,给出详细的实验结果分析。 评分标准: 18-20分:调试过程详细,正确,截图完整; 15-17分:调试过程较详细,基本正确,有截图; 14分以下:酌情给分 0分:抄袭别人

4、提高部分(5分) 要求:利用FPGA实验箱上的步进电机,实现细分控制。 评分标准:根据完成的程度给分。 0分:抄袭别人

参考:实验十八 FPGA步进电机细分驱动控制设计 示例程序和实验指导课件位置:\EDA_BOOK3_FOR_C35\chpt3\EXP18_MOTO\工程:step_a 一、实验目的 学习用FPGA实现步进电机的驱动和细分控制。 二、实验设备 PC机一台 GW48-PK4试验系统一台 连接线若干 三、实验内容 1、建立工程。完成以图18-1为原理图的工程设计,并保存工程名为step_a。 2、编译仿真。对以上工程进行编译,成功后进行方针测试。 3、引脚锁定。引脚锁定参考图18-2. 图18-1 步进电机PWM细分控制控制电路图 图18-2 引脚锁定图 4、下载测试 参考\EDA_BOOK3_FOR_C35\Chpt3\ALl.PPT\实验17.PPT 选择模式5,短路冒接clock0.根据第一章注释分别“38“和”42“或”“7”连接(见GW48主

电动机启动控制过程详解

三相异步电动机启动控制原理图 1、三相异步电动机的点动控制 点动正转控制线路是用按钮、接触器来控制电动机运转的最简单的正转控制线路。所谓点动控制是指:按下按钮,电动机就得电运转;松开按钮,电动机就失电停转。 典型的三相异步电动机的点动控制电气原理图如图3-1(a)所示。点动正转控制线路是由转换开关QS、熔断器FU、启动按钮SB、接触器KM及电动机M组成。其中以转换开关QS作电源隔离开关,熔断器FU作短路保护,按钮SB控制接触器KM的线圈得电、失电,接触器KM的主触头控制电动机M的启动与停止。 点动控制原理:当电动机需要点动时,先合上转换开关QS,此时电动机M尚未接通电源。按下启动按钮SB,接触器KM的线圈得电,带动接触器KM的三对主触头闭合,电动机M便接通电源启动运转。当电动机需要停转时,只要松开启动按钮SB,使接触器KM的线圈失电,带动接触器KM的三对主触头恢复断开,电动机M失电停转。在生产实际应用

中,电动机的点动控制电路使用非常广泛,把启动按钮SB换成压力接点、限位节点、水位接点等,就可以实现各种各样的自动控制电路,控制小型电动机的自动运行。 2.三相异步电动机的自锁控制 三相异步电动机的自锁控制线路如图3-2所示,和点动控制的主电路大致相同,但在控制电路中又串接了一个停止按钮SB1,在启动按钮SB2的两端并接了接触器KM的一对常开辅助触头。接触器自锁正转控制线路不但能使电动机连续运转,而且还有一个重要的特点,就是具有欠压和失压保护作用。它主要由按钮开关SB(起停电动机使用)、交流接触器KM (用做接通和切断电动机的电源以及失压和欠压保护等)、热继电器(用做电动机的过载保护)等组成。 欠压保护:“欠压”是指线路电压低于电动机应加的额定电压。“欠压保护”是指当线路电压下降到某一数值时,电动机能自动脱离电源电压停转,避免电动机在欠压下运行的一种保护。因为当线路电压下降时,电动机的转矩随之减小,电动机的转速也随之降低,从而使电动机的工作电流增大,影响电动机的正常运行,电压下降严重时还会引起“堵转”(即 电动机接通电源但不转动)的现象,以致损坏电动机。采用接触器自锁正转控制线路就可避免电动机欠压运行,这是因为当线路电压下降到一定值(一般指低于额定电压85%以下)时, 接触器线圈两端的电压也同样下降到一定值,从而使接触器线圈磁通减弱,产生的电磁吸力减小。当电磁吸力减小到小于反作用弹簧的拉力时,动铁心被迫释放,带动主触头、自锁触头同时断开,自动切断主电路和控制电路,电动机失电停转,达到欠压保护的目的。

步进电机驱动方式(细分)概述

步进电机驱动方式(细分)概述 众所周知,步进电机的驱动方式有整步,半步,细分驱动。三者即有区别又有联系,目前,市面上很多驱动器支持细分驱动方式。本文主要描述这三种驱动的概述。 如下图是两相步进电机的内部定子示意图,为了使电机的转子能够连续、平稳地转动,定子必须产生一个连续、平均的磁场。因为从宏观上看,电机转子始终跟随电机定子合成的磁场方向。如果定子合成的磁场变化太快,转子跟随不上,这时步进电机就出现失步现象。 既然电机转子是跟随电机定子磁场转动,而电机定子磁场的强度和方向是由定子合成电流决定且成正比。即只要控制电机的定子电流,则可以达到驱动电机的目的。下图是两相步进电机的电流合成示意图。其中Ia是由A-A`相产生,Ib是由B-B`相产生,它们两个合成后产生的电流I就是电机定子的合成电流,它可以代表电机定子产生磁场的大小和方向。 有了以上的步进电机背景描述后,对于步进电机的整步、半步、细分的三种驱动方式,都会是同一种方法,只是电流把一个圆(360°)分割的粗细程序不同。 整步驱动 对于整步驱动方式,电机是走一个整步,如对于一个步进角是3.6°的步进电机,整步驱动是每走一步是走3.6°。

下图是整步驱动方式中,电机定子的电流次序示意图: 由上图可知,整步驱动每一时刻只有一个相通电,所以这种驱动方式的驱动电路可以是很简单,程序代码也是相对容易实现,且由上图可以得到电机整步驱动相序如下: BB’→A’A→B’B→A A’→B B’ 下图是这种驱动方式的电流矢量分割图: 可见,整步驱动方式的电流矢量把一个圆平均分割成四份。 下图是整步驱动方式的A、B相的电流I vs T图: 可以看出,整步驱动描出的正弦波是粗糙的。使用这种方式驱动步进电机,低速时电机会抖动,噪声会比较大。但是,这种驱动方式无论在硬件或软件上都是相对简单,从而驱

三相双三拍步进电机控制系统设计要点

摘要 进步电机是几点数字控制系统中常用的控制元件之一。由于其精度高,体积小,控制方便灵活,因此在智能仪表和位置中得到广泛的应用。 步进电机是机电控制中一种常见的执行机构。步进电机最早是在1920年由英国人所开发。1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。他易于实现与计算机或其他数字元件接口,适用于数字控制系统。

1 课程设计任务和要求 课程设计任务 设计一个三相步进电机控制系统,设计一个计算机步进电机程序控制系统,可以对步进电机的转速、转向以及位置进行控制。通过设计,掌握步进电机的工作原理、掌握步进电机控制系统的设计原理、设计步骤,进一步提高综合运用知识的能力。 要求完成的主要任务: (1)设计接口电路和驱动电路,对步进电机进行控制。 (2)选择控制算法,编写控制程序,实现三相步进电机在双三拍工作方式下先正转90度,然后再反转60度,要求其速度可调,转向可控。 (3)写出设计说明书。 课程任务要求 (1)查阅资料,确定设计方案 (2)选择器件,设计硬件电路,并画出原理图和PCB图 (3)画出流程图,编写控制程序 (4)撰写课程设计说明书 2 步进电机的概述 2.1 步进电机的特点 1)一般步进电机的精度为步进角的3-5%,且不累积。 2)步进电机外表允许的温度高。步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。 3)步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。 4)步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的

两相步进电机控制系统设计

综合课程设计 题目两相步进电机 学院计信学院 专业10自动化 班级2班 学生姓名 指导教师文远熔 2012 年12 月28 日

两相步进电机课程设计报告 步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。控制系统通过单片机存储器、I/O 接口、中断、键盘、LED 显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。 关键字: 步进电机单片机

步进电机细分控制(英文)

1/17 AN1495 APPLICATION NOTE 1INTRODUCTION Microstepping a stepper motor may be used to achieve one or both of two objectives; 1) increase the position resolution or 2) achieve smoother operation of the motor. In either case the basic the-ory of operation is the same. The simplified model of a stepper motor is a permanent magnet rotor and two coils on the stator separated by 90 degrees, as shown in Figure 1. In classical full step operation an equal current is delivered to each of the coils and the rotor will align itself with the resulting magnetic vector along one of the 45 degree axis. To step the motor, the current in one of the two coils is reversed and the rotor will rotate 90 degrees. The complete full step sequence is shown in figure 2. Half step drive,where the current in the coil is turned off for one step period before being turned on in the opposite direction, has been used to double the step resolution of a motor. In either full and half step drive,the motor can be positioned only at one of the 4 (8 for half step) defined positions.[4][5] Therefore,the number of steps per electrical revolution and the number of poles on the motor determine the resolution of the motor. Typical motors are designed for 1.8 degree steps (200 steps per revolution)or 7.5 degree steps (48 steps per revolution). The resolution may be doubled to 0.9 or 3.75 degrees by driving the motor in half step. Further increasing the resolution requires positioning the rotor at positions between the full step and half step positions. Figure 1. Model of stepper motor MICROSTEPPING STEPPER MOTOR DRIVE USING PEAK DETECTING CURRENT CONTROL Stepper motors are very well suited for positioning applications since they can achieve very good positional accuracy without complicated feedback loops associated with servo sys-tems. However their resolution, when driven in the conventional full or half step modes of operation, is limited by the configuration of the motor. Many designers today are seeking alternatives to increase the resolution of the stepper motor drives. This application note will discuss implementation of microstepping drives using peak detecting current control where the sense resistor is connected between the bottom of the bridge and ground. Examples show the implementation of microstepping drives with several currently available chips and chip sets. REV . 2AN1495/0604

步进电机细分驱动方式的研究

步进电机作为电磁机械装置,其进给的分辨率取决于细分驱动技术。采用软件细分驱动方式,由于编程的灵活性、通用性,使得步进细分驱动的成本低、效率高,要修改方案也易办到。同时,还可解决步进电机在低速时易出现的低频振动和运行中的噪声等。但单一的软件细分驱动在精度与速度兼顾上会有矛盾,细分的步数越多,精度越高,但步进电机的转动速度却降低;要提高转动速度,细分的步数就得减少。为此,设计了多级细分驱动系统,通过不同的细分档位设定,实现不同步数的细分,同时保证了不同的转动速度。 1 细分驱动原理 步进电机控制中已蕴含了细分的机理。如三相步进电机按A→B→C……的顺序轮流通电,步进电机为整步工作。而按A→AC→C→CB→B→BA→A……的顺序通电,则步进电机为半步工作。以A→B为例,若将各相电流看作是向量,则从整步到半步的变换,就是在IA与IB之间插入过渡向量IAB,因为电流向量的合成方向决定了步进电机合成磁势的方向,而合成磁势的转动角度本身就是步进电机的步进角度。显然,IAB的插入改变了合成磁势的转动大小,使得步进电机的步进角度由θb 变为0.5θb,从而也就实现了2步细分。由此可见,步进电机的细分原理就是通过等角度有规律的插入电流合成向量,从而减小合成磁势转动角度,达到步进电机细分控制的目的。 在三相步进电机的A相与B相之间插入合成向量AB,则实现了2步细分。要再实现4步细分,只需在A与AB之间插入3个向量I1、I2、I3,使得合成磁势的转动角度θ1=θ2=θ3=θ4,就实现了4步细分。但4步细分与2步细分是不同的,由于I1、I2、I33个向量的插入是对电流向量IB的分解,故控制脉冲已变成了阶梯波。细分程度越高,阶梯波越复杂。 在三相步进电机整步工作时,实现2步细分合成磁势转动过程为 IA→IAB→IB;实现4步细分转动过程为IA→I2→IAB……;而实现8步细分则转

直流电机控制系统设计

直流电机控制系统设计

XX大学 课程设计 (论文) 题目直流电机控制系统设计 班级 学号 学生姓名 指导教师

沈阳航空航天大学 课程设计任务书 课程名称专业基础课程设计 院(系)自动化学院专业测控技术与仪器 班级学号姓名 课程设计题目直流电机控制系统设计 课程设计时间: 2012年7 月9 日至2012年7 月20 日 课程设计的内容及要求: 1.内容 利用51单片机开发板设计并制作一个直流电机控制系统。系统能够实时控制电机的正转、反转、启动、停止、加速、减速等。 2.要求 (1)掌握直流电机的工作原理及编程方法。 (2)掌握直流电机驱动电路的设计方法。 (3)制定设计方案,绘制系统工作框图,给出系统电路原理图。 (4)用汇编或C语言进行程序设计与调试。 (5)完成系统硬件电路的设计。 (6)撰写一篇7000字左右的课程设计报告。 指导教师年月日 负责教师年月日

学生签字年月日 目录 0 前言 (1) 1 总体方案设计 (2) 1.1 系统方案 (2) 1.2 系统构成 (2) 1.3 电路工作原理 (2) 1.4 方案选择 (3) 2 硬件电路设计 (3) 2.1 系统分析与硬件设计 (3) 2.2 单片机AT89C52 (3) 2.3 复位电路和时钟电路 (4) 2.4 直流电机驱动电路设计 (4) 2.5 键盘电路设计 (4) 3软件设计 (5) 3.1 应用软件的编制和调试 (5) 3.2 程序总体设计 (5) 3.3 仿真图形 (7) 4 调试分析 (9) 5 结论及进一步设想 (9) 参考文献 (10) 课设体会 (11) 附录1 电路原理图 (12) 附录2 程序清单 (13)

步进电机驱动器及细分控制原理

步进电机驱动器及细分控制原理 步进电机驱动器原理: 步进电机必须有驱动器和控制器才能正常工作。驱动器的作用是对控制脉冲进行环形分配、功率放大,使步进电机绕组按一定顺序通电。 以两相步进电机为例,当给驱动器一个脉冲信号和一个正方向信号时,驱动器经过环形分配器和功率放大后,给电机绕组通电的顺序为AA BB A A B B ,其四个状态周而复始 进行变化,电机顺时针转动;若方向信号变为负时,通电时序就变为 AA B B A A BB ,电机就逆时针转动。 随着电子技术的发展,功率放大电路由单电压电路、高低压电路发展到现在的斩波电路。其基本原理是:在电机绕组回路中,串联一个电流检测回路,当绕组电流降低到某一下限值时,电流检测回路发出信号,控制高压开关管导通,让高压再次作用在绕组上,使绕组电流重新上升;当电流回升到上限值时,高压电源又自动断开。重复上述过程,使绕组电流的平均值恒定,电流波形的波顶维持在预定数值上,解决了高低压电路在低频段工作时电流下凹的问题,使电机在低频段力矩增大。 步进电机一定时,供给驱动器的电压值对电机性能影响较大,电压越高,步进电机转速越高、加速度越大;在驱动器上一般设有相电流调节开关,相电流设的越大,步进电机转速越高、力距越大。 细分控制原理: 在步进电机步距角不能满足使用要求时,可采用细分驱动器来驱动步进电机。细分驱动器的原理是通过改变A,B相电流的大小,以改变合成磁场的夹角,从而可将一个步距角细分为多步。

定子 A 转子 S N B B B S N A A (a)(b) A S N B B N S B S N A (c)(d) 图3.2步进电机细分原理 图 仍以二相步进电机为例,当A、B相绕组同时通电时,转子将停在A、B相磁极中间,如图3.2。 若通电方向顺序按AA AA BB BB BB AA AA AA BB BB BB AA,8个状态周而 复 始进行变化,电机顺时针转动;电机每转动一步,为45度,8个脉冲电机转一周。与图2.1相比,它的步距角小了一半。 驱动器一般都具有细分功能,常见的细分倍数有:1/2,1/4,1/8,1/16,1/32,1/64;或:1/5,1/10,1/20。 细分后步进电机步距角按下列方法计算:步距角=电机固有步距角/细分数 例如:一台1.8°电机设定为4细分,其步距角为 1.8°/4=0.45°。当细分 等级大于1/4后,电机的定位精度并不能提高,只是电机转动更平稳。

直流电机控制系统设计.

XX大学 课程设计 (论文) 题目直流电机控制系统设计 班级 学号 学生姓名

指导教师 航空航天大学 课程设计任务书 课程名称专业基础课程设计 院(系)自动化学院专业测控技术与仪器 班级学号 课程设计题目直流电机控制系统设计 课程设计时间: 2012年7月9日至2012年7月20日 课程设计的容及要求: 1.容 利用51单片机开发板设计并制作一个直流电机控制系统。系统能够实时控制电机的正转、反转、启动、停止、加速、减速等。 2.要求 (1)掌握直流电机的工作原理及编程方法。 (2)掌握直流电机驱动电路的设计方法。 (3)制定设计方案,绘制系统工作框图,给出系统电路原理图。 (4)用汇编或C语言进行程序设计与调试。 (5)完成系统硬件电路的设计。 (6)撰写一篇7000字左右的课程设计报告。

指导教师年月日 负责教师年月日 学生签字年月日 目录 0 前言1 1 总体方案设计2 1.1 系统方案2 1.2 系统构成2 1.3 电路工作原理2 1.4 方案选择3 2 硬件电路设计3 2.1 系统分析与硬件设计3 2.2 单片机AT89C523 2.3 复位电路和时钟电路4 2.4 直流电机驱动电路设计4 2.5 键盘电路设计4 3软件设计5 3.1 应用软件的编制和调试5 3.2 程序总体设计5

3.3 仿真图形7 4 调试分析9 5 结论及进一步设想9参考文献10 课设体会11 附录1 电路原理图12附录2 程序清单13

直流电机调速系统设计 XXXXX大学自动化学院 摘要:本篇论文介绍了基于单片机的直流电机PWN调速的基本办法,直流电机调速的相关知识以及PWM调速的基本原理和实现方法。重点介绍了基于MCS-51单片机的用软件产生PWM信号以及信号占空比调节的方法。对于直流电机速度控制系统的实现提供了一种有效的途径。 直流电动机具有优良的调速特性,调速平滑,方便,调速围广,过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、制动和反转;能满足生产过程中自动化系统各种不同的特殊运行要求。电动机调速系统采用微机实现自动控制,是电气传动发展的主要方向之一。采用微机控制后,整个调速系统体积小,结构简单、可靠性高、操作维护方便,电动机稳态运转时转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。 关键词:单片机最小系统;PWM ;直流电机调速; 0 前言 电动机作为最主要的机电能量转换装置,其应用围已遍及国民经济的各个领域和人们的日常生活。无论是在工农业生产,交通运输,国防,航空航天,医疗卫生,商务和办公设备中,还是在日常生活的家用电器和消费电子产品(如电冰箱,空调,DVD等)中,都大量使用着各种各样的电动机。据资料显示,在所有动力资源中,百分之九十以上来自电动机。同样,我国生产的电能中有百分之六十是用于电动机的。电动机与人的生活息息相关,密不可分。电气时代,电动机的调速控制一般采用模拟法,对电动机的简单控制应用比较多。简单控制是指对电动机进行启动,制动,正反转控制和顺序控制。然而近年来,随着技术的发展和进步,以及市场对产品功能和性能的要求不断提高,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。直流电动机的起动和调速性能、过载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调速控制系统得到了很大的发展。而作为单片嵌入式系统的核心—单片机,正朝着多功能、多选择、高速度、低功耗、低价格、大存储容量和强I/O功能等方向发展。随着计算机档次的不断提高,功能的不断完善,单片机已越来越广泛地应用在各种领域的控制、自动化、智能化等方面,特别是在直流电动机的调速控制系统中。这是因为单片机具有很多优点:体积小,功能全,抗干扰能力强,可靠性高,结构合理,指令丰富,控制功能强,造价低等。所以选用单片机作为控制系统的核心以提高整个系统的可靠性和可行性。

基于FPGA的步进电机的PWM控制__细分驱动的实现

姓名___ _ _ _ 学号201016050136 院系电气信息工程学院 专业电子信息工程 班级___信息10-1______ __

目录 目录 (2) 摘要 (3) 关键词 (3) Abstract (3) Keywords (3) 一、引言 (4) 二、步进电机细分驱动的基本原理 (4) 三、Quartus II概述 (5) 四、课题设计 (5) (一)总体设计 (5) (二)细分电流的实现 (6) (三)细分驱动性能的改善 (6) (四)程序设计 (6) 六、仿真与测试结果分析 (10) 七、结论 (12) 参考文献 (12) 注释 (13) 附录 (14) 心得体会 (20)

摘要 在对步进电机细分驱动原理进行分析研究的基础上,提出一种基于FPGA 控制的步进电机细分驱动器。利用FPGA中的嵌入式EAB构成LPM-ROM,存放步进电机各相细分电流所需的PWM控制波形数据表,并通过FPGA设计的数字比较器,同时产生多路PWM电流波形,实现对步进电机转角进行均匀细分控制。实验证明,所研制的步进电机驱动器不仅体积小,简化了系统的设计,减少了延迟,改善了低频特性,有良好的适应性和自保护能力,提高了驱动器的稳定性和可靠性。 关键词 步进电机;细分驱动;脉宽调制;FPGA Abstract In this paper, a divided driving circuit for stepping motor controlled by FPGA is put forward, based on the analysis of the principle of stepping motor divided driving. Using embedded EAB in FPGA to compose LPM-ROM, store PWM control wave form data which stepping motor each phase subdivided driving current is needed.The magnitude comparator designed with FPGA generates several PWM current waveform synchronously, to realize the step angles even division control for three–phase stepping motor.Experimments have proved that the developed subdivision driver is not only smaller,sampler in system, can shorten the delay time,improve the stability in low frequency ,but has good self-adaptation and self-protection ability,and its stability and relibility are higher. Keywords stepping motor; divided driving;PWM; FPGA

步进电机控制方法

第四节 步进电机的控制与驱动 步进电机的控制与驱动流程如图4-11所示。主要包括脉冲信号发生器、环形脉冲分配器和功率驱动电路三大部分。 步进脉冲 方向电平 图4-11 步进电机的控制驱动流程 二、步进电机的脉冲分配 环形分配器是步进电机驱动系统中的一个重要组成部分,环形分配器通常分为硬环分和软环分两种。硬环分由数字逻辑电路构成,一般放在驱动器的内部,硬环分的优点是分配脉冲速度快,不占用CPU的时间,缺点是不易实现变拍驱动,增加的硬件电路降低了驱动器的可靠性;软环分由控制系统用软件编程来实现,易于实现变拍驱动,节省了硬件电路,提高了系统的可靠性。 1.采用硬环分时的脉冲分配 采用硬环分时,步进电机的通电节拍由硬件电路来决定,编制软件时可以不考虑。控制器与硬环分电路的连接只需两根信号线:一根方向线,一根脉冲线(或者一根正转脉冲线,一根反转脉冲线)。假定控制器为AT89S52单片机,晶振频率为12MHz,如图4-18:P1.0输出方向信号,P1.1输出脉冲信号。 则控制电机走步的程序如下: (1)电机正转100步 MOV 0FH,#100D ;准备走100步 CONT1: SETB P1.0 ;正转时P1.0=1 CLR P1.1 ;发步进脉冲的下降沿(设驱动器对于脉冲的下降沿有效) NOP ;延时(延时的目的是让驱动电路的光耦充分导通) NOP ;延时(根据驱动器的需要,调整延时) SETB P1.1 ;发步进脉冲的上升沿 MOV 0EH,#4EH ;两脉冲之间延时20000μs(决定电机的转速) MOV 0DH,#20H ;20000的HEX码为4E20 CALL DELAY ;调用延时子程序 DJNZ 0FH,CONT1 ;循环次数减1后,若不为0则继续,循环100次 RET (2)电机反转100步 MOV 0FH,#100D ;准备走100步 CONT2: CLR P1.0 ;反转时P1.0=0 CLR P1.1 ;发步进脉冲的下降沿(设驱动器对于脉冲的下降沿有效) NOP ;延时(延时的目的是让驱动电路的光耦充分导通) NOP ;延时(根据驱动器的需要,调整延时) SETB P1.1 ;发步进脉冲的上升沿

无刷直流电机控制系统的设计

1引言无刷直流电机最本质的特征是没有机械换向器和电刷所构成的机械接触式换向机构。现在,无刷直流电机定义有俩种:一种是方波/梯形波直流电机才可以被称为无刷直流电机,而正弦波直流电机则被认为是永磁同步电机。另一种是方波/梯形波直流电机和正弦波直流电机都是无刷直流电机。国际电器制造业协会在1987年将无刷直流电机定义为“一种转子为永磁体,带转子位置信号,通过电子换相控制的自同步旋转电机”,其换相电路可以是独立的或集成于电机本体上的。本次设计采用第一种定义,把具有方波/梯形波无刷直流电机称为无刷直流电机。从20世纪90年代开始,由于人们生活水平的不断提高和现代化生产、办公自动化的发展,家用电器、工业机器人等设备都向着高效率化、小型化及高智能化发展,电机作为设备的重要组成部分,必须具有精度高、速度快、效率高等优点,因此无刷直流电机的应用也发展迅速[1]。 1.1 无刷直流电机的发展概况 无刷直流电动机是由有刷直流电动机的基础上发展过来的。 19世纪40年代,第一台直流电动机研制成功,经过70多年不断的发展,直流电机进入成熟阶段,并且运用广泛。 1955年,美国的D.Harrison申请了用晶体管换相线路代替有刷直流电动机的机械电刷的专利,形成了现代无刷直流电动机的雏形。 在20世纪60年代初,霍尔元件等位置传感器和电子换向线路的发现,标志着真正的无刷直流电机的出现。 20世纪70年代初,德国人Blaschke提出矢量控制理论,无刷直流电机的性能控制水平得到进一步的提高,极大地推动了电机在高性能领域的应用。 1987年,在北京举办的德国金属加工设备展览会上,西门子和博世两公司展出了永磁自同步伺服系统和驱动器,引起了我国有关学者的注意,自此我国开始了研制和开发电机控制系统和驱动的热潮。目前,我国无刷直流电机的系列产品越来越多,形成了生产规模。 无刷直流电动机的发展主要取决于电子电力技术的发展,无刷直流电机发展的初期,由于大功率开关器件的发展处于初级阶段,性能差,价格贵,而且受永磁材料和驱动控制技术的约束,这让无刷直流电动机问世以后的很长一段时间内,都停

基于MCU和DSP的步进电机控制技术(精)

基于MCU和DSP的步进电机控制技术 步进电机已经渗透入我们生活的方方面面,本文介绍了一些重要的步进电机相关技术,为开发人员基本了解步进电机的工作原理提供了足够的信息,同时也介绍了用微控制器或数字信号处理器控制步进电机 的方法。 步进电机也叫步进器,它利用电磁学原理,将电能转换为机械能,人们早在20世纪20年代就开始使用这种电机。随着嵌入式系统(例如打印机、磁盘驱动器、玩具、雨刷、震动寻呼机、机械手臂和录像机等的日益流行,步进电机的使用也开始暴增。不论在工业、军事、医疗、汽车还是娱乐业中,只要需要把某件物体从一个位置移动到另一个位置,步进电机就一定能派上用场。步进电机有许多种形状和尺寸,但不论形状和尺寸如何,它们都可以归为两类:可变磁阻步进电机和永磁步进电机。本文重点讨论更为简单也更常用的永磁步进电机。 步进电机的构造 如图1所示,步进电机是由一组缠绕在电机固定部件--定子齿槽上的线圈驱动的。通常情况下,一根绕成圈状的金属丝叫做螺线管,而在电机中,绕在齿上的金属丝则叫做绕组、线圈、或相。如果线圈中电流的流向如图1所示,并且我们从电机顶部向下看齿槽的顶部,那么电流在绕两个齿槽按逆时针流向流动。根据安培定律和右手准则,这样的电流会产生一个北极向上的磁场。

现在假设我们构造一个定子上缠绕有两个绕组的电机,内置一个能够绕中心任意转动的永久磁铁,这个可旋转部分叫做转子。图2给出了一种简单的电机,叫做双相双极电机,因为其定子上有两个绕组,而且其转子有两个磁极。如果我们按图2a所示方向给绕组1输送电流,而绕组2中没有电流流过,那么电机转子的南极就会自然地按图中所示,指向定子磁场的北极。 再假设我们切断绕组1中的电流,而按图2b所示方向给绕组2输送电流,那么定子的磁场就会指向左侧,而转子也会随之旋转,与定子磁场方向保持一致。

直流电机控制系统设计范本

直流电机控制系统 设计

XX大学 课程设计 (论文)题目直流电机控制系统设计 班级 学号 学生姓名 指导教师

沈阳航空航天大学 课程设计任务书 课程名称专业基础课程设计 院(系)自动化学院专业测控技术与仪器 班级学号姓名 课程设计题目直流电机控制系统设计 课程设计时间: 7 月 9 日至 7 月 20 日 课程设计的内容及要求: 1.内容 利用51单片机开发板设计并制作一个直流电机控制系统。系统能够实时控制电机的正转、反转、启动、停止、加速、减速等。 2.要求 (1)掌握直流电机的工作原理及编程方法。 (2)掌握直流电机驱动电路的设计方法。 (3)制定设计方案,绘制系统工作框图,给出系统电路原理图。 (4)用汇编或C语言进行程序设计与调试。 (5)完成系统硬件电路的设计。 (6)撰写一篇7000字左右的课程设计报告。

指导教师年月日 负责教师年月日 学生签字年月日 目录 0 前言...................................................................................... 错误!未定义书签。 1 总体方案设计 ...................................................................... 错误!未定义书签。 1.1 系统方案 ...................................................................... 错误!未定义书签。 1.2 系统构成 ...................................................................... 错误!未定义书签。 1.3 电路工作原理............................................................... 错误!未定义书签。 1.4 方案选择 ...................................................................... 错误!未定义书签。 2 硬件电路设计 ...................................................................... 错误!未定义书签。 2.1 系统分析与硬件设计................................................... 错误!未定义书签。 2.2 单片机AT89C52............................................................ 错误!未定义书签。 2.3 复位电路和时钟电路................................................... 错误!未定义书签。 2.4 直流电机驱动电路设计 ............................................... 错误!未定义书签。 2.5 键盘电路设计............................................................... 错误!未定义书签。 3 软件设计 ............................................................................ 错误!未定义书签。 3.1 应用软件的编制和调试 ............................................... 错误!未定义书签。 3.2 程序总体设计............................................................... 错误!未定义书签。 3.3 仿真图形 ...................................................................... 错误!未定义书签。 4 调试分析 .............................................................................. 错误!未定义书签。

步进电机闭环细分驱动控制系统设计_宋鸿飞

步进电机闭环细分驱动控制系统设计 摘要:介绍了螺纹非接触光电测试系统中步进电机闭环细分控制系统的设计,并结合系统要求对抗干扰性和稳定性进行深入研究。文中对步进电机的特性与系统的性能相互关系进行了论述,在此基础上提出了可行的系统设计方案,给出了基于TA8435专用芯片的细分驱动设计电路,对系统抗干扰性和稳定性设计提出了具体解决办法,硬件设计中采用了传感器反馈的全伺服控制方法,软件上采用升频离散化处理,很好的解决了步进电机在高速启停过程中的堵转和丢步现象,提高了系统的稳定性和精度。 关键词:闭环控制;细分驱动;升频离散化 中图分类号:TP216文献标识码:A文章编号:1672-9870(2008)02-00093-03 收稿日期:200716 基金项目:国家863计划资助项目 作者简介:宋鸿飞(1980

角,并依靠电磁力锁定转轴在一定的位置上。因此在定位精度不高的场合下,一般的步进系统都采用开环控制。但由于步进电机固有的低频共振,高频扭矩小引起的失步和机械结构等因素的影响,都会造成实际位移值偏离指令设定值。因此在高定位精度的场合下,没有闭环反馈就无法知道电机是否丢步或过步,系统无法对其进行有效校正和补偿,导致不能准确定位。在步进系统中引入检测环节并对其进行闭环控制,可从根本上解决步进系统的定位精度问题,将使其性能大大提高。步进电机的闭环控制可采用各种不同的方法,其中包括步校验、无传感器反电动势检测和有传感器反馈的全伺服控制。 1系统构成 本电机系统设计应用精密在螺纹非接触光电测试系统中,两相步进电机通过精密滚珠螺杆把电机的轴角运动转化成直线位移运动,带动负载平台及上边安装的测试系统在螺管内部进行直线运动,实现对螺纹的实时检测。由于螺纹检测属于精密检测,对精密位移台的定位精度、速度范围和速度稳定性提出了很高的要求,因此步进电机采用开环控制方式是达不到系统的指标要求的,针对系统的要求步进电机要采用闭环细分控制方式。 电机控制系统设计采用有传感器反馈的全伺服控制方法。其系统组成包括四部分:(1)使用89S52单片机实现电机控制器设计;(2)电机细分驱动器采用东芝公司生产的TA8435电机驱动专业芯片实现电机细分驱动器的设计;(3)位置反馈传感器采用分辨率 1 图1步进电机闭环细分控制系统功能图 Fig.1Diagram for close-loop subdivision control system func- tion of stepper motor 2细分驱动器设计 结合螺纹检测系统对位移平台定位精度和速度范围的要求,步进电机步距角不能满足使用条件,在设计中采用细分驱动的方法,细分驱动电路是通过对步进电机的励磁绕组中电流的控制,来调整步进惦记步距角的大小,把原来的一个整步步距角细分成若干步来完成,从而实现步进电机的高精度定位,提高了步进电机的分辨率。实现细分驱动的方法有很多种,设计中使用了东芝公司生产的单片正弦细分二相步进电机驱动专用芯片TA8435,芯片采用的是脉宽调制式斩波驱动,该芯片有电路连接简单,工作稳定,特点如下: (1)工作电压范围宽(10 、B+、B 图2细分驱动电路原理图 Fig.2Circuit schematic diagram of subdivision driving 在系统中使用的位移平台螺杆导程L为4mm (即电机轴转动一周负载平台的直线位移量),细分数为为0.9° ,分数为 而转台的移动速度和脉冲频率、细分选择、电机本身的固有频率有关。在设计中由89S52的内部 定时器

相关文档
最新文档