朱青 1组态王交通灯.docx
《朱青 1组态王交通灯.docx》由会员分享,可在线阅读,更多相关《朱青 1组态王交通灯.docx(17页珍藏版)》请在冰点文库上搜索。
朱青1组态王交通灯
集散控制技术结课论文
——交通灯自动控制系统
学院:
电力学院
专业:
自动化
学号:
*********
姓名:
朱青
******************
[摘要]交通系统是一个具有随机性、模糊性和不确定性的复杂系统,建立数学模型非常困难,有时甚至无法用现有的数学方法加以描述。
目前大多采用的是自适应信号控制,它需要数学建模,且不考虑交通延误、停车次数等。
运用组态王系统能模仿有经验的交警指挥交通时的思路,达到很好的控制效果。
通过实验保证了系统运行稳定可靠,能根据不同的交通流量进行模糊控制决策,优化信号灯的配时,从而可以有效的解决交通流量不均衡、不稳定带来的问题。
关键词:
交通、智能控制、组态
1.引言
道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。
现在交通系统已不能满足经济发展的需求。
由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。
在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。
并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。
交通控制在未来的交通管理中起着越来越重要的作用。
智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。
使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。
2.交通信号灯工作原理
东西(EW)、南北(SN)两干道交于一个十字路口,各干道有一组红、黄、绿三个指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行,黄灯闪烁表示离红灯亮还有5S时间(警告状态)。
3.建立一个交通灯自动控制系统。
1、红绿灯按照一定的规律亮灭。
2、若小车行驶到斑马线,并且相应的控制红灯亮,小车停止前进。
其余时间小车自由行驶。
图2.1系统总体界面
实验步骤
4.1新建一个工程
组态王工程管理器的主要作用是为用户集中管理本机上的组态王工程。
工程管理器的主要功能包括:
新建、删除工程,对工程重命名,搜索组态王工程,修改工程属性,工程的备份、恢复,数据词典的导入导出,切换到组态王开发或运行环境等。
1、在工程管理器中选择菜单“文件/新建工程”,或者点击工具栏的“新建”按钮,出现“新建工程向导之一”对话框。
2、单击“下一步”,弹出“新建工程向导之二”对话框,选择所要新建的工程存储的路径。
一般是d:
\个人名字
3、单击按钮,弹出“新建工程向导之三”对话框,在对话框中输入工程名称:
“我的工程2”,在工程描述中输入:
“交通灯自动控制系统I”
单击“完成”。
弹出对话框,选择“是”按钮,将新建工程设为组态王当前工程。
4.2整体效果
新建画面的方法:
单击工程浏览器左边“工程目录显示区”中“画面”项,右面“目录内容显示区”中显示“新建”图标,鼠标双击该图标,弹出“新画面”对话框。
图形制作:
十字路口,左右和上下的红绿黄灯,从左向右行驶的小车,从右向左行驶的小车,从上向下行驶的小车,以及从下向上行驶的小车。
4.3构造数据库变量
在工程浏览器中左边的目录树中选择“数据词典”项,右侧的内容显示区会显示当前工程中所定义的变量。
双击“新建”图标,弹出“定义变量”属性对话框。
组态王的变量属性由基本属性、报警配置、记录配置三个属性页组成。
需要定义的变量有:
carz内存实型从左向右行驶的小车
cary内存实型从右向左行驶的小车
cars内存实型从上向下行驶的小车
carx内存实型从下向上行驶的小车
hong内存离散控制左右小车运行的红灯
huang内存离散控制左右小车运行的黄灯
green内存离散控制左右小车运行的绿灯
hong2内存离散控制上下小车运行的红灯
huang2内存离散控制上下小车运行的黄灯
green2内存离散控制上下小车运行的绿灯
time1内存实型计数(当交通灯为内存型的需要定义此变量)
4.3.1carz变量的设置
在工程浏览器的左侧选择“数据词典”,在右侧双击“新建”,弹出“变量属性”对话框。
对话框设置为:
变量名:
“carz”
变量类型:
内存实数
变化灵敏度:
0
初始值:
0
最小值:
0
最大值:
1000
图2.2定义变量carz
3、设置完成后,单击“确定”
4、用类似的方法建立其它小车变量。
4.3.2hong变量的设置
图2.3定义变量
4.4动画连接
本项目中需要制作动画效果的部分包括:
1、十字路口左右和上下的红绿黄灯
2、小车的连接
2.3.4.1十字路口左右和上下的红绿黄灯
1、在画面上双击图形对象“左红灯”,弹出该对象的动画连接对话框。
2、单击“填充属性”,弹出填充属性连接对话框,
图2.4左红灯动画连接
3、单击“确定”按钮,完成左红灯的动画连接。
这样建立连接后,变量“hong”的变化就通过设置颜色的填充范围表示出来。
4、用同样的方法设置其它红绿黄灯的动画连接。
2.3.4.2小车的连接
1、在画面上双击图形对象“从左向右行驶的小车”,弹出该对象的动画连接对话框。
2、单击“水平移动”,弹出水平移动连接对话框,
图2.5左小车动画连接
3、单击“确定”按钮,完成从左向右行驶的小车左红灯的动画连接。
这样建立连接后,变量“carz”的变化就通过设置小车的行驶表示出来。
4、用同样的方法设置其它小车的动画连接
4.5后台语言
//对左小车的控制
if(\\本站点\hong==1&&\\本站点\carz==400)
{\\本站点\carz=\\本站点\carz;}
else
{\\本站点\carz=\\本站点\carz+10;
if(\\本站点\carz==1000)
{\\本站点\carz=0;}
}
if(\\本站点\green==1)
{\\本站点\carz=\\本站点\carz+10;}
//对右小车的控制
if(\\本站点\hong==1&&\\本站点\cary==390)
{\\本站点\cary=\\本站点\cary;}
else
{\\本站点\cary=\\本站点\cary+10;
if(\\本站点\cary==1000)
{\\本站点\cary=0;}
}
if(\\本站点\green==1)
{\\本站点\cary=\\本站点\cary+10;}
//对上小车的控制
if(\\本站点\hong2==1&&\\本站点\cars==220)
{\\本站点\cars=\\本站点\cars;}
else
{\\本站点\cars=\\本站点\cars+10;
if(\\本站点\cars==600)
{\\本站点\cars=0;}
}
if(\\本站点\green2==1)
{\\本站点\cars=\\本站点\cars+10;}
//对下小车的控制
if(\\本站点\hong2==1&&\\本站点\carx==240)
{\\本站点\carx=\\本站点\carx;}
else
{\\本站点\carx=\\本站点\carx+10;
if(\\本站点\carx==600)
{\\本站点\carx=0;}
}
if(\\本站点\green2==1)
{\\本站点\carx=\\本站点\carx+10;}
//水平红绿灯控制语言编写
\\本站点\time=\\本站点\time+1;
if(\\本站点\time<=58)
{\\本站点\green=1;
\\本站点\huang=0;
\\本站点\hong=0;}
if(\\本站点\time>=59&&\\本站点\time<=60)
{\\本站点\green=0;
\\本站点\huang=1;
\\本站点\hong=0;}
if(\\本站点\time>60&&\\本站点\time<120)
{\\本站点\green=0;
\\本站点\huang=0;
\\本站点\hong=1;}
if(\\本站点\time>=120&&\\本站点\time<122)
{\\本站点\green=0;
\\本站点\huang=0;
\\本站点\hong=1;}
if(\\本站点\time==122)
{\\本站点\time=0;}
//垂直红绿灯控制语言编写
if(\\本站点\hong==1)
{\\本站点\hong2=0;
\\本站点\green2=1;
\\本站点\huang2=0;}
if(\\本站点\green==1)
{\\本站点\hong2=1;
\\本站点\green2=0;
\\本站点\huang2=0;}
if(\\本站点\huang==1)
{\\本站点\hong2=0;
\\本站点\green2=0;
\\本站点\huang2=1;}
5.制作报警
在工程浏览器中左边的目录树中选择“报警组”项,双击新建,定义新的报警组“报警1、2”.
对计数变量进行报警定义,使其大于3次后开始报警。
在画图中拉出报警窗口,双击报警窗口,在属性页进行各项调试。
最后在view中运行系统,报警窗口显示如下:
6.画实时趋势曲线
在画图工具中找到实时趋势曲线,单击拖到画面上,接着双击实时曲线,弹出曲线定义对话框,在表达式曲线1中对计数进行定义,然后单击确定。
7.画历史趋势曲线
在画图工具中找到插入通用控件,找到历史趋势曲线单击,右击历史曲线,增加本站点计数,然后单击确定。
8.实验结论
组态课程已经结束,通过这次课程测试,我受益匪浅,得到了许多提高。
组态设计是一次综合性的实践,它将各种知识结合到一起综合运用到实践上来扩展、弥补、串联所学的知识。
通过本次组态课程测试我得到了很多收获。
首先,了解组态王的基本知识和在控制领域的作用和地位。
在精神方面锻炼了思想、磨练了意志。
面对存在的困难首先分析问题根据目的要求确定可实现的部分,定出那不准的方面找同学和老师讨论研究,再完善、再修改、再发现问题、再解决培养了自己的耐心、恒心及遇事不乱的精神。
总之,我明白了理论和实践之间存在的距离只有靠不断的思考不断的动手才能将所学的知识真正运用到实践上来。
在组态课程测试中我的很多方面的能力都得到了提高,尤其在一些机箱和PLC方面让我感触颇深。
我个人认为组态王是个即灵活又细腻的工作,它要求耐心和细心去不断完善,同时还需要有良好的逻辑思维能力。
通过这次组态课程测试,我分析问题和解决问题的能力有所提高,也巩固了所学的知识,加深了对理论知识的理解,更重要的是锻炼自己的独立性,为我今后的工作和学习打下坚实的基础。
附件:
运行截图