
本文记录了基于组态王的三相异步电动机的启停控制,三相异步电动机的完全控制,三相电动机正反转控制,水箱水位监控系统,电机控制旋转动画,水箱水位联动控制和一个机械手的设计。
组态王(kingview)软件是基于Microsoft Windows XP/2000/NT操作系统,由工程管理器、工程浏览器和运行系统三部分组成的大型应用软件。软件系统环境如图4-1所示包括组态环境和运行环境两部分。组态环境相当于一套完整的工具软件,帮助用户设计和构造自己的应用系统。运行环境则按照组态环境中构造的组态工程,以用户指定的方式运行,并进行各种处理,完成用户组态设计的目标和功能。运行环境本身没有任何意义,必须与组态结果数据库一起才能构成用户应用系统。一旦组态工作完成,运行环境和组态结果数据库就可以离开组态环境而运行在监控计算机上。
监控画面的开发和运行是有工程浏览器调用画面制作系统和画面运行系统来完成的。通过对现场数据的采集处理,以动画显示、报警和事件处理、实时趋势曲线、历史趋势曲线和报表输出等多种方式向用户提供检验控制系统的动态运行情况。组态界面上既可以时事观察到系统的动态变化,也可观察前几次的实验数据。也就是说组态王(kingview)软件就是一个仿真实验的试验平台。
关键词:组态王;机械手;仿真
引言
本文中实验全部用组态王软件来实现,只需利用现有的计算机就可完成自动控制系统课程的实验,从而大大减少购置仪器的经费。
该系统是中文界面,具有人机界面友好、结果可视化的优点。对用户而言,操作简单易学且编程简单,参数输入与修改灵活,具有多次或重复仿真运行的控制能力,可以实时地显示参数变化前后系统的特性曲线,能很直观地显示控制系统的实时趋势曲线,这些很强的交互能力使其在自动控制系统的实验中可以发挥理想的效果。
正文题目
1 三相异步电动机的启停控制
1.1 工作原理
在三相异步电动机的起停控制中需要完成的要求是当按下启动按钮时,电机启动,显示电机正在运行,按下停止,电机停止。插入时间和日期。
1.2 新建工程
运行组态环境,在“组态王”工程管理器(Proj—Manager)选择选单“文件\新建工程或单击“新建”按钮。在工程路径文本框中输入一个有效的工程路径。在工程路径文本框中输入一在工程名称文本框中输入“三相异步电动机启停控制”,该工程名称同时将被作为当前工程的路径名称。在工程描述文本框中输入对该工程的描述文字。工程名称长度应小于32个字节,工程描述长度应小于40个字节。单击“完成”完成工程的新建。
1.3 系统控制界面设计
在组态王平台上建立三相异步电动机“主画面”窗口并设置好窗口属性。通过绘图工具箱中的工具,绘制出组建系统所需的各个元件,调用系统控件制作控制按钮,利用文字标签对相应元件进行注释。最后生成的整体效果图如下图所示。
1.4 数据变量的定义
数据库是”组态王”软件的核心部分,在工程管理器中,选择”数据库\数据词典”,双击”新建图标”,弹出”变量属性”对话框,创建三相异步电动机各个变量数据。如下图所示。
1.5 动画连接
由图形对象搭制而成的图形界面是静止不动的,需要对这些图形对象进行动画设计,真实地描述外界对象的状态变化,达到过程实时监控的目的。组态王实现图形动画设计的主要方法是将用户窗1:3中的图形对象与实时数据库中的数据对象建立相关性连接,并设置相应的动画属性。下图为启动按钮的动画连接。
1.6 应用程序命令语言
//点击运行时,热继电器保护控制程序段//
if(\\\\本站点\\热继电器保护输入==1)
{
\\\\本站点\\电动机=0;
}
1.7 结论
通过学习学会了组态王的基本操作,建立了三相异步电动机的启动和停止控制。为下一节三相异步电动机的完全控制打下基础。步奏为:
1)新建工程
2)设计系统界面
3)定义数据词典
4)写命令语言
5)连接动画
6)检查纠错
2 三相异步电动机的完全控制
2.1 工作原理
在三相异步电动机的完全控制中需要完成的要求是当按下启动按钮时若继电器输入保护未运行时,电机启动,显示电机正在运行,按下停止,电机停止。若继电器输入保护在电机运行时运行,则电机停止,系统报警,此时按启动或停止都无反应,拉下热继电器输入保护,按下停止报警解除。
2.2 新建工程
运行组态环境,在“组态王”工程管理器(Proj—Manager)选择选单“文件\新建工程或单击“新建”按钮。在工程路径文本框中输入一个有效的工程路径。在工程路径文本框中输入一在工程名称文本框中输入“三相异步电动机完全控制”,该工程名称同时将被作为当前工程的路径名称。在工程描述文本框中输入对该工程的描述文字。工程名称长度应小于32个字节,工程描述长度应小于40个字节。单击“完成”完成工程的新建。
2.3 系统控制界面设计
在组态王平台上建立三相异步电动机完全控制“主画面”窗口并设置好窗口属性。通过绘图工具箱中的工具,绘制出组建系统所需的各个元件,调用系统控件制作控制按钮,利用文字标签对相应元件进行注释。最后生成的整体效果图如下图所示
2.4 数据变量的定义
在工程管理器中,选择”数据库\数据词典”,双击”新建图标”,弹出”变量属性”对话框,创建三相异步电动机各个变量数据。如下图所示。
2.5 动画连接
由图形对象搭制而成的图形界面是静止不动的,需要对这些图形对象进行动画设计,真实地描述外界对象的状态变化,达到过程实时监控的目的。组态王实现图形动画设计的主要方法是将用户窗1:3中的图形对象与实时数据库中的数据对象建立相关性连接,并设置相应的动画属性。下图为热继报警灯的动画连接。
2.6 应用程序命令语言
if(\\\\本站点\\电机输出==1&&\\\\本站点\\热继报警输入==1)
{
\\\\本站点\\电机输出=0;
\\\\本站点\\系统报警=1;}
3 三相电动机正反转控制
3.1 工作原理
三相异步电动机正反转在组态中的要求为当没有故障报警时,按下正转电动机正转的灯亮,此时按反转按钮无效果,按下停止,电机停止。按下反转,电机反转的灯亮,此时按下正转无效果,按下停止电机停止。当故障报警时,按下正转或反转或停止无效果,推开继电器保护,此时按停止故障报警解除。
3.2 新建工程
运行组态环境,在“组态王”工程管理器(Proj—Manager)选择选单“文件\新建工程或单击“新建”按钮。在工程路径文本框中输入一个有效的工程路径。在工程路径文本框中输入一在工程名称文本框中输入“三相异步电动机完全控制”,该工程名称同时将被作为当前工程的路径名称。在工程描述文本框中输入对该工程的描述文字。
3.3 系统控制界面设计
在组态王平台上建立三相异步电动机正反转“主画面”窗口并设置好窗口属性。通过绘图工具箱中的工具,绘制出组建系统所需的各个元件,调用系统控件制作控制按钮,利用文字标签对相应元件进行注释。最后生成的整体效果图如下图所示
3.4 数据变量的定义
在工程管理器中,选择”数据库\数据词典”,双击”新建图标”,弹出”变量属性”对话框,创建三相异步电动机各个变量数据。如下图所示。
3.5 动画连接
由图形对象搭制而成的图形界面是静止不动的,需要对这些图形对象进行动画设计,真实地描述外界对象的状态变化,达到过程实时监控的目的。组态王实现图形动画设计的主要方法是将用户窗1:3中的图形对象与实时数据库中的数据对象建立相关性连接,并设置相应的动画属性。下图为反转按钮的动画连接。
3.6 应用程序命令语言
//===========================================
//**电机停止控制
//**故障报警
if(\\\\本站点\\热继报警输入==1)
{ \\\\本站点\\故障报警=1; }
else
{
if(\\\\本站点\\停止按钮==1)
{ \\\\本站点\\故障报警=0;}
}
//----------------------------
if(\\\\本站点\\故障报警==1 ||\\\\本站点\\停止按钮==1)
{
\\\\本站点\\电机正转=0;
\\\\本站点\\电机反转=0;
}
else
{
//**电机启动控制
if(\\\\本站点\\故障报警==0 &&\\\\本站点\\电机反转==0&&\\\\本站点\\正转启动按钮==1) //正转联锁
{ \\\\本站点\\电机正转=1;}
//--------------------------
if(\\\\本站点\\故障报警==0 &&\\\\本站点\\电机正转==0&&\\\\本站点\\反转启动按钮==1) //反转联锁
{ \\\\本站点\\电机反转=1;}
}
3.7 总结
通过学习和总结,在三相异步电动机的基础之上加上了正转和反转的指示灯,使电机更加符合实际要求,在后面的试验中还将加入电机动画,使其更加形象逼真。
4 水箱水位监控系统
4.1工作原理
自动状态下进行水位控制:如果水位低于下限,则水泵工作,为水箱进水;水位上升到上限,则关闭水泵。
手动状态下进行水位控制:按下系统启动水泵工作,为水箱进水;水位上升到上限,则关闭水泵。
4.2 新建工程
运行组态环境,在“组态王”工程管理器(Proj—Manager)选择选单“文件\新建工程或单击“新建”按钮。在工程路径文本框中输入一个有效的工程路径。在工程路径文本框中输入一在工程名称文本框中输入“水箱水位监控”,该工程名称同时将被作为当前工程的路径名称。在工程描述文本框中输入对该工程的描述文字。
4.3 系统控制界面设计
在组态王平台上建立水箱水位监控系统“主画面”窗口并设置好窗口属性。通过绘图工具箱中的工具,绘制出组建系统所需的各个元件,调用系统控件制作控制按钮,利用文字标签对相应元件进行注释。最后生成的整体效果图如下图所示
4.4 数据变量的定义
在工程管理器中,选择”数据库\数据词典”,双击”新建图标”,弹出”变量属性”对话框,创建水箱水位监控系统各个变量数据。如下图所示。
4.5 动画连接
水位上线报警设置的动画连接
水流的动画连接
4.6 应用程序命令语言
if(\\\\本站点\\水泵运行==1)
{\\\\本站点\\水流=10;}
else
{\\\\本站点\\水流=0;}
//-----------------------------
if(\\\\本站点\\手动自动选择==1&&\\\\本站点\\系统启动==1) //自动控制状态
{
if (\\\\本站点\\水泵运行==1)
{ \\\\本站点\\水位=\\\\本站点\\水位+0.5;}
else{ \\\\本站点\\水位=\\\\本站点\\水位-1;}
if(\\\\本站点\\过载报警==1||\\\\本站点\\水位上限报警==1)
{ \\\\本站点\\水泵运行=0;}
}
//-------------------------------
if(\\\\本站点\\水位>=\\\\本站点\\水位上限报警设置)
{ \\\\本站点\\水位上限报警=1;}
else
{\\\\本站点\\水位上限报警=0;}
//------------------------------------
if(\\\\本站点\\水位<=\\\\本站点\\水位下限报警设置1)
{\\\\本站点\\水位下限报警=1;}
else{\\\\本站点\\水位下限报警=0;}
//----------------------------------
if(\\\\本站点\\热继报警过在输入==1)
{\\\\本站点\\过载报警=1;}
//**水泵停止后,控制水位下降
if(\\\\本站点\\水泵运行==0)
{ \\\\本站点\\水位=\\\\本站点\\水位-1;}
//-------------------------------
//**状态开关选择为手动时水位控制=========
if(\\\\本站点\\手动自动选择==0) //手动状态
{
if(\\\\本站点\\水泵运行==1)
{ \\\\本站点\\水位=\\\\本站点\\水位+0.5;}
else{ \\\\本站点\\水位=\\\\本站点\\水位-1;}
if(\\\\本站点\\过载报警==1||\\\\本站点\\水位上限报警==1)
{ \\\\本站点\\水泵运行=0;}
}
//-------------------------------
if(\\\\本站点\\水位>=\\\\本站点\\水位上限报警设置)
{ \\\\本站点\\水位上限报警=1;}
else
{\\\\本站点\\水位上限报警=0;}
//------------------------------------
if(\\\\本站点\\水位<=\\\\本站点\\水位下限报警设置1)
{\\\\本站点\\水位下限报警=1;}
else{\\\\本站点\\水位下限报警=0;}
//----------------------------------
if(\\\\本站点\\热继报警过在输入==1)
{\\\\本站点\\过载报警=1;}
5 电机控制旋转动画
5.1 工作原理
热继报警为0时,按下启动按钮,电机转动,系统运行,按下停止,电机转动停止。
若继电器输入保护在电机运行时运行,则电机停止,系统报警,此时按启动或停止都无反应,拉下热继电器输入保护,按下停止报警解除。
5.2 新建工程
运行组态环境,在“组态王”工程管理器(Proj—Manager)选择选单“文件\新建工程或单击“新建”按钮。在工程路径文本框中输入一个有效的工程路径。在工程路径文本框中输入一在工程名称文本框中输入电机控制旋转动画,该工程名称同时将被作为当前工程的路径名称。在工程描述文本框中输入对该工程的描述文字。工程名称长度应小于32个字节,工程描述长度应小于40个字节。单击“完成”完成工程的新建。
5.3 系统控制界面设计
在组态王平台上建立“电机控制旋转动画的流程”窗口并设置好窗口属性。通过绘图工具箱中的工具,绘制出组建系统所需的各个元件,调用系统控件制作控制按钮,利用文字标签对相应元件进行注释。最后生成的整体效果图如下图所示。
5.4 数据变量的定义
数据库是”组态王”软件的核心部分,在工程管理器中,选择”数据库\数据词典”,双击”新建图标”,弹出”变量属性”对话框,创建电机旋转各个变量数据。如下图所
示。
5.5 动画连接
5.6 应用程序命令语言
//**系统报警
if(\\\\本站点\\系统运行==1&&\\\\本站点\\热继报警输入==1)
{
\\\\本站点\\系统运行=0;
\\\\本站点\\系统报警=1;
}
//-----------------------------------------------------
//**电机运行时旋转动画控制
if(\\\\本站点\\系统运行==1)
{
\\\\本站点\\电机正转动画=\\\\本站点\\电机正转动画+1;
if(\\\\本站点\\电机正转动画>=9)
{ \\\\本站点\\电机正转动画=0; }
}
6 水箱水位联动控制
6.1 工作原理
水箱通过一台水泵和相应的进水管道为水箱供水,水箱出水管道连接到多个用户。为用户提供水源。为了保持水箱的相对稳定,要求水箱水位在合适的范围内。水箱水位有两个报警限,分别为上限和下限。
监控要求如下:
(1)进行水位控制:如果水位低于下限,则水泵工作,为水箱进水;水位上升到上限,则关闭水泵。
(2)进行水位实时监测与显示。
(3)报表输出:生成水位参数的实时报表和历史报表,供显示和打印。
(4)曲线显示:生成水位参数的实时趋势曲线和历史趋势曲线。
6.2 新建工程
运行组态环境,在“组态王”工程管理器(Proj—Manager)选择选单“文件\新建工程或单击“新建”按钮。在工程路径文本框中输入一个有效的工程路径。在工程路径文本框中输入一在工程名称文本框中输入“三相异步电动机完全控制”,该工程名称同时将被作为当前工程的路径名称。在工程描述文本框中输入对该工程的描述文字。5.3 系统
6.3 控制界面设计
在组态王平台上建立水箱水位联动控制“主画面”, “水箱水位监控系统报警画面”,“水位监控系统日报表”,“水箱水位历史曲线”,“数据实时曲线”和“水箱水位联动控制 参数设置”六个窗口并设置好窗口属性。通过绘图工具箱中的工具,绘制出组建系统所需的各个元件,调用系统控件制作控制按钮,利用文字标签对相应元件进行注释。最后生成的整体效果图如下图所示。
6.4 数据变量的定义
数据库是”组态王”软件的核心部分,在工程管理器中,选择”数据库\数据词典”,双击”新建图标”,弹出”变量属性”对话框,创建电机旋转各个变量数据。如下图所
6.5 动画连接
进入主画面按钮的动画连接
出水水流画面的动画连接
实时数据曲线
6.6 命令语言
//***过载报警控制**********************************
if(\\\\本站点\\水泵运行==1&&\\\\本站点\\热继过载报警输入==1)
{ \\\\本站点\\过载报警指示=1; }
//-------------------------------------------------
//***过载报警后使系统运行和水泵运行全部停止*********
if(\\\\本站点\\热继过载报警输入==1)
{ \\\\本站点\\系统运行=0;
\\\\本站点\\水泵运行=0; }
//-------------------------------------------------
//***水泵运行控制**********************************
if(\\\\本站点\\水泵运行==1)
{ \\\\本站点\\水箱液位=\\\\本站点\\水箱液位+0.1;
\\\\本站点\\进水流动画=10;
\\\\本站点\\出水水流动画=10;
\\\\本站点\\水泵旋转动画=\\\\本站点\\水泵旋转动画+1;
if(\\\\本站点\\水泵旋转动画>=9)
{ \\\\本站点\\水泵旋转动画=0; }
\\\\本站点\\电机运行电流=\\\\本站点\\水箱液位*3.1;
\\\\本站点\\电机工作电压=\\\\本站点\\水箱液位*10.2;
}
else
{ \\\\本站点\\水箱液位=\\\\本站点\\水箱液位-0.1;
\\\\本站点\\进水流动画=0;
if(\\\\本站点\\水箱液位>0)
{ \\\\本站点\\出水水流动画=10; }
else
{ \\\\本站点\\出水水流动画=0;}
\\\\本站点\\电机运行电流=0;
\\\\本站点\\电机工作电压=0;
}
//--------------------------------------------------
//***水箱水位报警标志位的置位控制*****************
if(\\\\本站点\\水箱液位>=\\\\本站点\\水箱上限值设置)
{ \\\\本站点\\水箱上限报警=1; }
if(\\\\本站点\\水箱液位<=\\\\本站点\\水箱下限值设置)
{ \\\\本站点\\水箱下限报警=1;}
//--------------------------------------------------
//*******水箱水位报警标志位的置位控制***************
if(\\\\本站点\\水箱液位<\\\\本站点\\水箱上限值设置-\\\\本站点\\液位报警回差)
{ \\\\本站点\\水箱上限报警=0; }
if (\\\\本站点\\水箱液位>=\\\\本站点\\水箱下限值设置+\\\\本站点\\液位报警回差)
{ \\\\本站点\\水箱下限报警=0; }
//---------------------------------------------------
//***手动控制时液位超线停泵控制*********************
if(\\\\本站点\\手动_自动==0 &&\\\\本站点\\水箱上限报警==1)
{ \\\\本站点\\水泵运行=0; }
//***自动状态时的控制******************************
if(\\\\本站点\\手动_自动==1&&\\\\本站点\\系统运行==1)
{ if(\\\\本站点\\水箱上限报警==1)
{ \\\\本站点\\水泵运行=0; }
if(\\\\本站点\\水箱下限报警==1)
{ \\\\本站点\\水泵运行=1; }
}
//-------------------------------------------------
//***水位报表数据**********************************
if(\\\\本站点\\$秒==0)
{ \\\\本站点\\水位0=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==5)
{ \\\\本站点\\水位1=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==10)
{ \\\\本站点\\水位2=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==15)
{ \\\\本站点\\水位3=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==20)
{ \\\\本站点\\水位4=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==25)
{ \\\\本站点\\水位5=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==30)
{ \\\\本站点\\水位6=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==35)
{ \\\\本站点\\水位7=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==40)
{ \\\\本站点\\水位8=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==45)
{ \\\\本站点\\水位9=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==50)
{ \\\\本站点\\水位10=\\\\本站点\\水箱液位; }
if(\\\\本站点\\$秒==55)
{ \\\\本站点\\水位11=\\\\本站点\\水箱液位;
\\\\本站点\\已打印=0; }
7 搬运机械手
7.1 工作原理及流程
机械手目的就是将加工部件从右台搬运到传送带上,如图下图所示。机械手由初始位置开始运动,要把右盘部件搬运到左边传送带上,机械手具有升降,夹紧,放松,左移,右移等基本功能。还要求有单步,单次循环,多次循环,自动和手动。
工作流程如下,开始时机械手下降到部件的高度,然后夹紧部件,帯着部件上升一定高度,帯着部件向右移动到传送带上方,下降一定距离,放松把部件放在传送带上,上升回原位,向左移动回到最初位置,继续循环工作。工作流程如下图4444所示。
7.2 新建工程
运行组态环境,在“组态王”工程管理器(Proj—Manager)选择选单“文件\新建工程或单击“新建”按钮。在工程路径文本框中输入一个有效的工程路径。在工程路径文本框中输入一在工程名称文本框中输入工程的名称,该工程名称同时将被作为当前工程的路径名称。在工程描述文本框中输入对该工程的描述文字。工程名称长度应小于32个字节,工程描述长度应小于40个字节。单击“完成”完成工程的新建。
7.3 系统控制界面设计
在组态王平台上建立“机械手控制系统”窗口并设置好窗口属性。通过绘图工具箱中的工具,绘制出组建系统所需的各个元件,调用系统控件制作控制按钮,利用文字标签对相应元件进行注释。最后生成的整体效果图如下图所示。
7.4 数据变量的定义
数据库是”组态王”软件的核心部分,在工程管理器中,选择”数据库\数据词典”,双击”新建图标”,弹出”变量属性”对话框,创建机械手各个变量数据。如下图所示。
7.5 动画连接
由图形对象搭制而成的图形界面是静止不动的,需要对这些图形对象进行动画设计,真实地描述外界对象的状态变化,达到过程实时监控的目的。组态王实现图形动画设计的主要方法是将用户窗1:3中的图形对象与实时数据库中的数据对象建立相关性连接,并设置相应的动画属性。
物体水平移动与垂直移动参数如下图所示。
物体水平移动与垂直移动的参数如下图所示。
原点标志动画连接
上升按钮动画连接
上升指示灯动画连接
7.6 系统程序
if(\\\\本站点\\系统运行==1&&\\\\本站点\\自动状态==0)
{{if(\\\\本站点\\垂直下降==1||\\\\本站点\\垂直上升==1||\\\\本站点\\水平伸出==1||\\\\本站点\\水平缩回)
{\\\\本站点\\系统运行计数器=\\\\本站点\\系统运行计数器+1;}
if(\\\\本站点\\系统运行计数器==690)
{\\\\本站点\\系统运行计数器=0;}}}
//*****************
if(\\\\本站点\\系统运行==1&&\\\\本站点\\自动状态==0)
{ if(\\\\本站点\\水平伸出==1)
{\\\\本站点\\水平移动计数=\\\\本站点\\水平移动计数+1;} }
//*****************抓取物体的状态*********
if(\\\\本站点\\原点标志==1)
{\\\\本站点\\木块1=1;}
if(\\\\本站点\\自动状态==0)
{if(\\\\本站点\\水平移动计数==0&&\\\\本站点\\垂直下降==1)
{\\\\本站点\\木块1=1;\\\\本站点\\木块2=0;\\\\本站点\\木块3=0;}
if(\\\\本站点\\水平移动计数==0&&\\\\本站点\\垂直上升==1)
{\\\\本站点\\木块1=0;\\\\本站点\\木块2=1;\\\\本站点\\木块3=0;}
if(\\\\本站点\\水平移动计数==100&&\\\\本站点\\垂直上升==1)
{\\\\本站点\\木块1=0;\\\\本站点\\木块2=0;\\\\本站点\\木块3=1;}
}
//********************单步的停止******************
if(\\\\本站点\\停止==1&&\\\\本站点\\单步==1||\\\\本站点\\单次循环==1)
{\\\\本站点\\垂直移动计数=\\\\本站点\\垂直移动计数+0;
\\\\本站点\\垂直上升=0;
\\\\本站点\\垂直下降=0;
\\\\本站点\\水平伸出=0;
\\\\本站点\\水平缩回=0;}
//**原点标志位判断********************************
if(\\\\本站点\\水平移动计数==0&&\\\\本站点\\垂直移动计数==0)
{\\\\本站点\\原点标志=1;}
else{\\\\本站点\\原点标志=0;}
//**机械手的移动控制********************************
if(\\\\本站点\\自动状态==1&&\\\\本站点\\系统运行==1&&\\\\本站点\\单步==0)
{
{ //**机械手状态控制***----------------------------
\\\\本站点\\多次循环=1;
\\\\本站点\\系统运行计数器=\\\\本站点\\系统运行计数器+1;
if(\\\\本站点\\系统运行计数器<=110)
{\\\\本站点\\垂直下降=1;
\\\\本站点\\垂直上升=0;
\\\\本站点\\木块1=1;
\\\\本站点\\木块2=0;
\\\\本站点\\木块3=0;
\\\\本站点\\气爪放松=1; }
if(\\\\本站点\\系统运行计数器>110&&\\\\本站点\\系统运行计数器<=120)
{\\\\本站点\\垂直下降=0;
\\\\本站点\\木块1=1;
\\\\本站点\\木块2=0;
\\\\本站点\\木块3=0;
\\\\本站点\\气爪放松=0;
\\\\本站点\\气爪加紧=1;}
if(\\\\本站点\\系统运行计数器>120&&\\\\本站点\\系统运行计数器<=220)
{\\\\本站点\\垂直下降=0;
\\\\本站点\\木块1=0;
\\\\本站点\\木块2=1;
\\\\本站点\\木块3=0;
\\\\本站点\\气爪放松=0;
\\\\本站点\\垂直上升=1; }//**状态停顿**
if(\\\\本站点\\系统运行计数器>220&&\\\\本站点\\系统运行计数器<=230)
{\\\\本站点\\垂直上升=0; } //**状态停顿**
if(\\\\本站点\\系统运行计数器>230&&\\\\本站点\\系统运行计数器<=330)
{\\\\本站点\\水平伸出=1;
\\\\本站点\\水平移动计数=\\\\本站点\\水平移动计数+1; }
if(\\\\本站点\\系统运行计数器>330&&\\\\本站点\\系统运行计数器<=340)
{ \\\\本站点\\水平伸出=0;} //**状态停顿**
if(\\\\本站点\\系统运行计数器>340&&\\\\本站点\\系统运行计数器<=440)
{\\\\本站点\\垂直下降=1; } //**状态停顿**
if(\\\\本站点\\系统运行计数器>440&&\\\\本站点\\系统运行计数器<=450)
{\\\\本站点\\垂直下降=0;
\\\\本站点\\木块1=0;
\\\\本站点\\木块2=0;
\\\\本站点\\木块3=1; } //**状态停顿**
if(\\\\本站点\\系统运行计数器>450&&\\\\本站点\\系统运行计数器<=460)
{\\\\本站点\\气爪放松=1;
\\\\本站点\\气爪加紧=0; }
if(\\\\本站点\\系统运行计数器>460&&\\\\本站点\\系统运行计数器<=470)
\\\\本站点\\气爪放松=1; } //**状态停顿**
if(\\\\本站点\\系统运行计数器>470&&\\\\本站点\\系统运行计数器<=570)
{\\\\本站点\\气爪放松=1;
\\\\本站点\\垂直上升=1; }
if(\\\\本站点\\系统运行计数器>570&&\\\\本站点\\系统运行计数器<=580)
{\\\\本站点\\气爪放松=0;
\\\\本站点\\垂直上升=0; } //**状态停顿**
if(\\\\本站点\\系统运行计数器>580&&\\\\本站点\\系统运行计数器<=680)
{\\\\本站点\\水平缩回=1;
\\\\本站点\\水平移动计数=\\\\本站点\\水平移动计数-1; } //**状态停顿**
if(\\\\本站点\\系统运行计数器>680&&\\\\本站点\\系统运行计数器<=690)
{\\\\本站点\\水平缩回=0;
//-------------单循环-----------------------------------
if(\\\\本站点\\单次循环==1)
{\\\\本站点\\系统运行=0;}} //**状态停顿**
if(\\\\本站点\\系统运行计数器==690)
{\\\\本站点\\系统运行计数器=0;
\\\\本站点\\木块1=1;
\\\\本站点\\木块2=0;
\\\\本站点\\木块3=0;
}
if(\\\\本站点\\停止==1)
{if(\\\\本站点\\系统运行计数器==6)
{\\\\本站点\\系统运行=0&&\\\\本站点\\系统运行计数器==0; }}
}
//-----------------------------------------------
if( \\\\本站点\\垂直下降==1&&\\\\本站点\\垂直移动计数<=100)
{ \\\\本站点\\垂直移动计数=\\\\本站点\\垂直移动计数+1; }
if( \\\\本站点\\垂直上升==1&&\\\\本站点\\垂直移动计数<=100)
{ \\\\本站点\\垂直移动计数=\\\\本站点\\垂直移动计数-1; }
if( \\\\本站点\\水平伸出==1&&\\\\本站点\\水平移动计数<=10 )
{ \\\\本站点\\水平移动计数=\\\\本站点\\水平移动计数+1; }
if( \\\\本站点\\水平缩回==1&&\\\\本站点\\水平移动计数<=100)
{ \\\\本站点\\水平移动计数=\\\\本站点\\水平移动计数-1; }
//-------------单循环-----------------------------------
if(\\\\本站点\\单次循环==1&&\\\\本站点\\系统运行计数器==690)
{\\\\本站点\\系统运行计数器=0&&\\\\本站点\\系统运行==0;}
//-------------单步------------------------------
if(\\\\本站点\\自动状态==1&&\\\\本站点\\系统运行==1&&\\\\本站点\\单步==1)
{
{ //**机械手状态控制***----------------------------
\\\\本站点\\系统运行计数器=\\\\本站点\\系统运行计数器+1;
if(\\\\本站点\\系统运行计数器<110)
{\\\\本站点\\垂直下降=1;
\\\\本站点\\垂直上升=0;
\\\\本站点\\木块1=1;
\\\\本站点\\木块2=0;
\\\\本站点\\木块3=0;
\\\\本站点\\气爪放松=1; }
if(\\\\本站点\\系统运行计数器==110)
{\\\\本站点\\系统运行=0;}
if(\\\\本站点\\系统运行计数器>110&&\\\\本站点\\系统运行计数器<120)
{\\\\本站点\\垂直下降=0;
\\\\本站点\\木块1=1;
\\\\本站点\\木块2=0;
\\\\本站点\\木块3=0;
\\\\本站点\\气爪放松=0;
\\\\本站点\\气爪加紧=1;}
if(\\\\本站点\\系统运行计数器==120)
{\\\\本站点\\系统运行=0;}
if(\\\\本站点\\系统运行计数器>120&&\\\\本站点\\系统运行计数器<=220)
{\\\\本站点\\垂直下降=0;
\\\\本站点\\木块1=0;
\\\\本站点\\木块2=1;
\\\\本站点\\木块3=0;
\\\\本站点\\气爪放松=0;
\\\\本站点\\垂直上升=1; }
if(\\\\本站点\\系统运行计数器>220&&\\\\本站点\\系统运行计数器<230)
{\\\\本站点\\垂直上升=0; }
if(\\\\本站点\\系统运行计数器==220)
{\\\\本站点\\系统运行=0;}
if(\\\\本站点\\系统运行计数器>230&&\\\\本站点\\系统运行计数器<=330)
{\\\\本站点\\水平伸出=1;
\\\\本站点\\水平移动计数=\\\\本站点\\水平移动计数+1; }
if(\\\\本站点\\系统运行计数器>330&&\\\\本站点\\系统运行计数器<340)
{ \\\\本站点\\水平伸出=0;}
if(\\\\本站点\\系统运行计数器==340)
{\\\\本站点\\系统运行=0;}
if(\\\\本站点\\系统运行计数器>340&&\\\\本站点\\系统运行计数器<=440)
{\\\\本站点\\垂直下降=1; }
if(\\\\本站点\\系统运行计数器>440&&\\\\本站点\\系统运行计数器<450)
{\\\\本站点\\垂直下降=0;
\\\\本站点\\木块1=0;
\\\\本站点\\木块2=0;
\\\\本站点\\木块3=1; }
if(\\\\本站点\\系统运行计数器==450)
{\\\\本站点\\系统运行=0; }
if(\\\\本站点\\系统运行计数器>450&&\\\\本站点\\系统运行计数器<=460)
{\\\\本站点\\气爪放松=1;
\\\\本站点\\气爪加紧=0; }
if(\\\\本站点\\系统运行计数器>460&&\\\\本站点\\系统运行计数器<470)
\\\\本站点\\气爪放松=1; }
if(\\\\本站点\\系统运行计数器==470)
{\\\\本站点\\系统运行=0;}
if(\\\\本站点\\系统运行计数器>470&&\\\\本站点\\系统运行计数器<=570)
{\\\\本站点\\气爪放松=1;
\\\\本站点\\垂直上升=1; }
if(\\\\本站点\\系统运行计数器>570&&\\\\本站点\\系统运行计数器<580)
{\\\\本站点\\气爪放松=0;
\\\\本站点\\垂直上升=0; }
if(\\\\本站点\\系统运行计数器==580)
{\\\\本站点\\系统运行=0;}
if(\\\\本站点\\系统运行计数器>580&&\\\\本站点\\系统运行计数器<=680)
{\\\\本站点\\水平缩回=1; }
if(\\\\本站点\\系统运行计数器>680&&\\\\本站点\\系统运行计数器<6)
{\\\\本站点\\水平缩回=0; }
if(\\\\本站点\\系统运行计数器==6)
{\\\\本站点\\系统运行=0;}
if(\\\\本站点\\系统运行计数器==690)
{\\\\本站点\\系统运行计数器=0;
\\\\本站点\\木块1=1;
\\\\本站点\\木块2=0;
\\\\本站点\\木块3=0; }
}
8 结论
本次课程设计虽以结束,但在这次的课程设计中检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,以及如何完成好一件事情。通过这次课程设计,我对组态的知识有了进一步的学习。通过这次设计,感觉在多方面都有所提高。这次设计,综合运用本专业所学课程的理论,设计工作的实际训练从而培养和提高我思考以及解决能力,巩固了所学的内容,同时各科相关的课程都有了全面的复习,全面思考的能力也有了提高。在设计过程中遇到了很多问题,我都没有放弃,不明白的地方就及时查资料,问同学或是找老师帮忙。经过查阅有关方面的书籍,获取了很多专业方面的知识,拓展了视野,增加了我实际动手能力。
在此感谢我们的老师,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次设计的每个实验细节和每个结果,都离不开老师您的细心指导。
参考文献
[1] 袁秀英 石梅香.组态控制技术[M].电子工业出版社 2009
[2] 张贝克 尉龙 杨宁. 组态软件基础与工程应用[M] .机械工业出版社 2011
