WinCC运料小车课程设计

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、运行结果如下图所示:


相关文章

  • 多种液体混合控制系统设计
  • 目录 1 题目背景与意义 . ......................................................................................................... ...查看


  • 科技文献检索课题
  • 1. 刀具数据库的研究与建立 2.双足行走机器人控制系统设计 3.基于VC的高速数据采集系统设计 4. 基于DSP飞机发动机转速表检测仪 5.移动式机器人软硬件设计 6.基于U盘的数控实验系统驱动部分设计 7.数控实验系统界面设计 8.无线 ...查看


  • 触摸屏教学大纲
  • 第1章 K-TP 178Micro型触摸屏及其操作软件WinCC flexible 1.1 编程软件WinCC flexible的安装和卸载 1.2 使用WinCC flexible创建项目与创建画面 1.3 触摸屏画面组态 1.4 触摸屏 ...查看


  • S7-400 PLC和WinCC在硅片清洗设备中的应用
  • S7-400 PLC 和WinCC 在硅片清洗设备中的应 用 1 引言 作为可再生能源的重要分支,太阳能以其清洁,相对便利的使用也得到了飞速发展,其中的硅材料太阳能电池在近几年的发展尤为迅速.硅片清洗机是硅材料太阳能电池生产过程中的重要设备 ...查看


  • 立体车库控制系统设计
  • 立体车库控制系统 1. 控制对象简介 本设计的控制对象是立体车库,如下图 升降横移式立体车库结构示意图 现代化的立体停车库是一种多层的空间停车库,是解决大都市停车难的问题的有效办法.机械式立体车库的类型很多,根据原里与结构可分为升降横移式. ...查看


  • 生产调度指挥中心建设方案
  • 中铝河南分公司生产指挥调度中心建设方案 1项目概况 中铝河南分公司,从建厂到现在已经有半个多世纪的历史,随着工艺的改进,产能的扩张,设备的控制手段也从落后到先进,从现场仪表到DCS,应有尽有.现在全厂分布着大大小小一百多套控制系统,五十多个 ...查看


  • wincc客户机不能访问服务器
  • 1. 将你的WinCC组态集成于Step7项目中. 在S7项目的树形目录下, 创建WinCC服务器与WinCC客户机. 2. 将你的WinCC项目组态成"multi-user project". 3. 完成WinCC服务 ...查看


  • 煤矿井下电力监测监控系统的设计方案
  • 煤矿井下电力监测监控系统设计方案 一.系统组成 1.1 数据交换中心 此部分主要由数据采集服务器和两台互为冗余的网路交换机组成. 数据采集服务器:主要通过井下隔爆交换机把井下各个电力监控分站的数据采集汇总到此服务器,完成数据处理及数据备份. ...查看


  • 基于测试法建立单容水箱的数学模型
  • 摘要 工业生产过程的数学模型有静态和动态之分.过程控制中通常采用动态数学模型,它是过程输出变量和输入变量之间随时间变化时动态关系的数学描述. 典型工业过程所涉及的被控对象的传递函数常有的形式有:一阶惯性加纯迟延.二阶惯性环节加纯迟延和n阶惯 ...查看


热门内容