WinCC课程设计说明书
设计题目:运料小车控制系统监控界面设计 班 级: 10级自动化(2)班 姓 名: 段文林 学 号: 080310112 指导教师: 陈世军老师
物理与电气工程学院
2012年12月30日
一、题目:基于WinCC的运料小车控制系统监控界面设计
1、设计任务:
实现小车的自动运料方式与单动运料方式。单动运料过程:小车首先位于最左方,在后限位开关指示灯为绿色时,小车车门关闭,小车车箱上的煤为空,此时小车开始启动,向右运行,当运行到漏斗正下方时,前限位开关指示灯由红变绿,漏斗门打开,定时器开始计时7s(70x100ms),小车车箱装上煤,漏斗门关闭,小车开始向左运行,前限位开关指示灯变红,小车车门打开,开始卸煤,定时器开始计时5s(50x100ms),卸煤完成,小车停止。自动运料过程则为单动过程的不断重复。另外需组态两个按钮,停止按钮与复位按钮,停止按钮用来控制小车在单动与自动运料过程的停止。复位按钮刚用来对小车时进行复位,即小车回到如图所示的初始状态下。监控界面如下图所示,画面大小为800x600.
2、设计要求:
(1).创建如图所示的过程画面。
(2).创建所有使用的内部变量,并作变量说明(包括变量的数据类型、名称
以及作用,可列作表格写出)。
(3).写出4个按钮的左键事件的C动作程序代码。
(4).写出全局脚本程序代码(自动运行脚本程序与单动运行脚本程序),并要
求写出所使用的触发器。
二、设计步骤如下:
1.新建一个名为“080310112”的单用户工程项目。
2. 新建一个名为“080310112”的过程画面,过程画面大小为800x600在过程画面中添加如下元件,如图所示:
保存画面。
3. 所建内部变量以及内部变量类型如下表所示:
4. 过程画面中四个按钮的C动作程序代码如下: 自动:SetTagDWord("flag1",1); 单动:SetTagDWord("flag2",1); 停止:SetTagDWord("flag1",0);
SetTagDWord("flag1",0); 复位:SetTagDWord("flag1",0);
SetTagDWord("flag1",0); SetTagDWord("xiaochex",0);
5.打开全局脚本C编辑器,在脚本编辑器中新建2个全局动作分别命名为dandong.pas和auto.pas并分别添加触发器dwl和ff,全局动作脚本程序代码如下: (1)、单动dandong.pas程序:
#include "apdefap.h" int gscAction( void ) {
DWORD value,valueT5,valueT7; int bit1;
SetTagDWord("T5",50); SetTagDWord("T7",70);
SetTagDWord("loudoumei",1); bit1=GetTagDWord("dandongflag"); while(bit1)
{ bit1=GetTagDWord("dandongflag"); value=GetTagDWord("xiaochex"); value+=10; if(value>640) { value=640;
SetTagDWord("xiaochex",value);
SetTagDWord("qianxianwei",1);
SetTagDWord("loudoumen",30); SetTagDWord("loudoumei",0);
SetTagDWord("xiaochemei",1); while(bit1)
{valueT7=GetTagDWord("T7"); valueT7-=1; if(valueT7
SetTagDWord("T7",valueT7); SetTagDWord("loudoumen",0); SetTagDWord("loudoumei",1);
SetTagDWord("qianxianwei",0); while(bit1)
{ value=GetTagDWord("xiaochex"); value-=10; if(value
value=0;
SetTagDWord("xiaochex",value); while(bit1)
{SetTagDWord("xiaochemen",1); SetTagDWord("houxianwei",1); valueT5=GetTagDWord("T5"); valueT5-=1; if(valueT5
SetTagDWord("xiaochemei",0); SetTagDWord("houxianwei",0);
SetTagDWord("xiaochemen",0); SetTagDWord("dandongflag",0); }
SetTagDWord("T5",valueT5);
bit1=GetTagDWord("dandongflag"); } }
SetTagDWord("xiaochex",value); bit1=GetTagDWord("dandongflag"); } }
SetTagDWord("T7",valueT7);
bit1=GetTagDWord("dandongflag"); } }
SetTagDWord("xiaochex",value); bit1=GetTagDWord("dandongflag"); }
return 0; }
(2)、自动auto.pas程序如下:
#include "apdefap.h" int gscAction( void ) {
DWORD autovalue; DWORD autovalue1; DWORD autovalue2=1; DWORD autovalue3=1; DWORD time1value=50; DWORD time2value=70;
autovalue=GetTagDWord("autoflag"); while(autovalue)//激活周期触发器 {
autovalue1=GetTagDWord("xiaochex");
while((autovalue1==10||autovalue2==1)&(autovalue==1))//自动向右运行 {
SetTagDWord("houxianwei",0xff);//LED1监视 SetTagDWord("qianxianwei",0xFF);//LED2监视 SetTagDWord("loudousha",0);
autovalue=GetTagDWord("autoflag"); autovalue1=GetTagDWord("xiaochex"); autovalue1+=10;
if(autovalue1>700)(autovalue2=0,autovalue1=700); SetTagDWord("xiaochex",autovalue1); }
SetTagDWord("houxianwei",0x00FF);//LED1监视 SetTagDWord("qianxianwei",0xFF);//LED2监视 SetTagDWord("loudoumen",30);//料门监控 SetTagDWord("T7",time2value);
while ((time2value>0)&(autovalue==1))//定时器2计时 {
SetTagDWord("qianxianwei",0xFF);//LED2监视 time2value=GetTagDWord("T7"); time2value-=1;
SetTagDWord("T7",time2value);
if (time2value
SetTagDWord("loudoumen",0);//料门监控 SetTagDWord("chesha",48);//煤2监控
while((autovalue1==700||autovalue3==1)&(autovalue==1))//自动向左运行 {
SetTagDWord("houxianwei",0x00FF);//LED1监视 SetTagDWord("qianxianwei",0xff);//LED2监视
SetTagDWord("loudousha",1);//煤1监控 autovalue=GetTagDWord("autoflag"); autovalue1=GetTagDWord("xiaochex"); autovalue1-=10;
if(autovalue1
SetTagDWord("qianxianwei",0x00FF);//LED2监视 SetTagDWord("T5",time1value);
while ((time1value>0)&(autovalue==1))//定时器1计时 {
SetTagDWord("houxianwei",0xFF);//LED1监视 time1value=GetTagDWord("T5"); time1value-=1;
SetTagDWord("T5",time1value);
if(time1value
SetTagDWord("houxianwei",0xff);//LED1监视 SetTagDWord("qianxianwei",0xff);//LED2监视 SetTagDWord("T5",50); SetTagDWord("T7",70);
SetTagDWord("xiaochemen",1);//车门置位 }
return 0; }
6、右击工程文件名“080310112”,修改参数用户周期1为100。单击确定退出。
7、通过设置计算机属性来设置运行系统加载全局脚本运行系统以及图形运行系统。单击确定,退出。
8、打开过程画面,激活运行系统进行测试。 9、运行结果如下图所示:
WinCC课程设计说明书
设计题目:运料小车控制系统监控界面设计 班 级: 10级自动化(2)班 姓 名: 段文林 学 号: 080310112 指导教师: 陈世军老师
物理与电气工程学院
2012年12月30日
一、题目:基于WinCC的运料小车控制系统监控界面设计
1、设计任务:
实现小车的自动运料方式与单动运料方式。单动运料过程:小车首先位于最左方,在后限位开关指示灯为绿色时,小车车门关闭,小车车箱上的煤为空,此时小车开始启动,向右运行,当运行到漏斗正下方时,前限位开关指示灯由红变绿,漏斗门打开,定时器开始计时7s(70x100ms),小车车箱装上煤,漏斗门关闭,小车开始向左运行,前限位开关指示灯变红,小车车门打开,开始卸煤,定时器开始计时5s(50x100ms),卸煤完成,小车停止。自动运料过程则为单动过程的不断重复。另外需组态两个按钮,停止按钮与复位按钮,停止按钮用来控制小车在单动与自动运料过程的停止。复位按钮刚用来对小车时进行复位,即小车回到如图所示的初始状态下。监控界面如下图所示,画面大小为800x600.
2、设计要求:
(1).创建如图所示的过程画面。
(2).创建所有使用的内部变量,并作变量说明(包括变量的数据类型、名称
以及作用,可列作表格写出)。
(3).写出4个按钮的左键事件的C动作程序代码。
(4).写出全局脚本程序代码(自动运行脚本程序与单动运行脚本程序),并要
求写出所使用的触发器。
二、设计步骤如下:
1.新建一个名为“080310112”的单用户工程项目。
2. 新建一个名为“080310112”的过程画面,过程画面大小为800x600在过程画面中添加如下元件,如图所示:
保存画面。
3. 所建内部变量以及内部变量类型如下表所示:
4. 过程画面中四个按钮的C动作程序代码如下: 自动:SetTagDWord("flag1",1); 单动:SetTagDWord("flag2",1); 停止:SetTagDWord("flag1",0);
SetTagDWord("flag1",0); 复位:SetTagDWord("flag1",0);
SetTagDWord("flag1",0); SetTagDWord("xiaochex",0);
5.打开全局脚本C编辑器,在脚本编辑器中新建2个全局动作分别命名为dandong.pas和auto.pas并分别添加触发器dwl和ff,全局动作脚本程序代码如下: (1)、单动dandong.pas程序:
#include "apdefap.h" int gscAction( void ) {
DWORD value,valueT5,valueT7; int bit1;
SetTagDWord("T5",50); SetTagDWord("T7",70);
SetTagDWord("loudoumei",1); bit1=GetTagDWord("dandongflag"); while(bit1)
{ bit1=GetTagDWord("dandongflag"); value=GetTagDWord("xiaochex"); value+=10; if(value>640) { value=640;
SetTagDWord("xiaochex",value);
SetTagDWord("qianxianwei",1);
SetTagDWord("loudoumen",30); SetTagDWord("loudoumei",0);
SetTagDWord("xiaochemei",1); while(bit1)
{valueT7=GetTagDWord("T7"); valueT7-=1; if(valueT7
SetTagDWord("T7",valueT7); SetTagDWord("loudoumen",0); SetTagDWord("loudoumei",1);
SetTagDWord("qianxianwei",0); while(bit1)
{ value=GetTagDWord("xiaochex"); value-=10; if(value
value=0;
SetTagDWord("xiaochex",value); while(bit1)
{SetTagDWord("xiaochemen",1); SetTagDWord("houxianwei",1); valueT5=GetTagDWord("T5"); valueT5-=1; if(valueT5
SetTagDWord("xiaochemei",0); SetTagDWord("houxianwei",0);
SetTagDWord("xiaochemen",0); SetTagDWord("dandongflag",0); }
SetTagDWord("T5",valueT5);
bit1=GetTagDWord("dandongflag"); } }
SetTagDWord("xiaochex",value); bit1=GetTagDWord("dandongflag"); } }
SetTagDWord("T7",valueT7);
bit1=GetTagDWord("dandongflag"); } }
SetTagDWord("xiaochex",value); bit1=GetTagDWord("dandongflag"); }
return 0; }
(2)、自动auto.pas程序如下:
#include "apdefap.h" int gscAction( void ) {
DWORD autovalue; DWORD autovalue1; DWORD autovalue2=1; DWORD autovalue3=1; DWORD time1value=50; DWORD time2value=70;
autovalue=GetTagDWord("autoflag"); while(autovalue)//激活周期触发器 {
autovalue1=GetTagDWord("xiaochex");
while((autovalue1==10||autovalue2==1)&(autovalue==1))//自动向右运行 {
SetTagDWord("houxianwei",0xff);//LED1监视 SetTagDWord("qianxianwei",0xFF);//LED2监视 SetTagDWord("loudousha",0);
autovalue=GetTagDWord("autoflag"); autovalue1=GetTagDWord("xiaochex"); autovalue1+=10;
if(autovalue1>700)(autovalue2=0,autovalue1=700); SetTagDWord("xiaochex",autovalue1); }
SetTagDWord("houxianwei",0x00FF);//LED1监视 SetTagDWord("qianxianwei",0xFF);//LED2监视 SetTagDWord("loudoumen",30);//料门监控 SetTagDWord("T7",time2value);
while ((time2value>0)&(autovalue==1))//定时器2计时 {
SetTagDWord("qianxianwei",0xFF);//LED2监视 time2value=GetTagDWord("T7"); time2value-=1;
SetTagDWord("T7",time2value);
if (time2value
SetTagDWord("loudoumen",0);//料门监控 SetTagDWord("chesha",48);//煤2监控
while((autovalue1==700||autovalue3==1)&(autovalue==1))//自动向左运行 {
SetTagDWord("houxianwei",0x00FF);//LED1监视 SetTagDWord("qianxianwei",0xff);//LED2监视
SetTagDWord("loudousha",1);//煤1监控 autovalue=GetTagDWord("autoflag"); autovalue1=GetTagDWord("xiaochex"); autovalue1-=10;
if(autovalue1
SetTagDWord("qianxianwei",0x00FF);//LED2监视 SetTagDWord("T5",time1value);
while ((time1value>0)&(autovalue==1))//定时器1计时 {
SetTagDWord("houxianwei",0xFF);//LED1监视 time1value=GetTagDWord("T5"); time1value-=1;
SetTagDWord("T5",time1value);
if(time1value
SetTagDWord("houxianwei",0xff);//LED1监视 SetTagDWord("qianxianwei",0xff);//LED2监视 SetTagDWord("T5",50); SetTagDWord("T7",70);
SetTagDWord("xiaochemen",1);//车门置位 }
return 0; }
6、右击工程文件名“080310112”,修改参数用户周期1为100。单击确定退出。
7、通过设置计算机属性来设置运行系统加载全局脚本运行系统以及图形运行系统。单击确定,退出。
8、打开过程画面,激活运行系统进行测试。 9、运行结果如下图所示: