组态王交通灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训项目2:交通灯自动控制系统(I)
2.1实训题目
交通灯自动控制系统
2.2实训任务
建立一个交通灯自动控制系统。
1、红绿灯按照一定的规律亮灭。
2、若小车行驶到斑马线,并且相应的控制红灯亮,小车停止前进。其余时间小车自由行驶。
图2.1 系统总体界面
2.3实训步骤
2.3.1新建一个工程
组态王工程管理器的主要作用是为用户集中管理本机上的组态王工程。工程管理器的主要功能包括:新建、删除工程,对工程重命名,搜索组态王工程,修改工程属性,工程的备份、恢复,数据词典的导入导出,切换到组态王开发或运行环境等。
1、在工程管理器中选择菜单“文件/新建工程”,或者点击工具栏的“新建”按钮,出现“新建工程向导之一” 对话框。
2、单击“下一步”,弹出“新建工程向导之二”对话框,选择所要新建的工程存储的路径。一般是d:\个人名字
3、单击按钮,弹出“新建工程向导之三”对话框,在对话框中输入工程名称:“我的工程2”,在工程描述中输入:“交通灯自动控制系统I”
4、单击“完成”。
5、弹出对话框,选择“是”按钮,将新建工程设为组态王当前工程。
2.3.2整体效果
新建画面的方法:单击工程浏览器左边“工程目录显示区”中“画面”项,右面“目录内容显示区”中显示“新建”图标,鼠标双击该图标,弹出“新画面”对话框。
图形制作:十字路口,左右和上下的红绿黄灯,从左向右行驶的小车,从右向左行驶的小车,从上向下行驶的小车,以及从下向上行驶的小车。
2.3.3 构造数据库变量
在工程浏览器中左边的目录树中选择“数据词典”项,右侧的内容显示区会显示当前工程中所定义的变量。双击“新建”图标,弹出“定义变量”属性对话框。组态王的变量属性由基本属性、报警配置、记录配置三个属性页组成。
需要定义的变量有:
carz 内存实型从左向右行驶的小车
cary 内存实型从右向左行驶的小车
cars 内存实型从上向下行驶的小车
carx 内存实型从下向上行驶的小车
hong 内存离散控制左右小车运行的红灯
huang 内存离散控制左右小车运行的黄灯
green 内存离散控制左右小车运行的绿灯
hong2 内存离散控制上下小车运行的红灯
huang2 内存离散控制上下小车运行的黄灯
green2 内存离散控制上下小车运行的绿灯
time 内存实型计数(当交通灯为内存型的需要定义此变量)
2.3.3.1 carz变量的设置
1、在工程浏览器的左侧选择“数据词典”,在右侧双击“新建”,弹出“变量属性”对话框。
2、对话框设置为:
变量名:“carz”
变量类型:内存实数
变化灵敏度:0
初始值:0
最小值:0
最大值:1000
图2.2 定义变量carz
3、设置完成后,单击“确定”
4、用类似的方法建立其它小车变量。
2.3.3.2 hong变量的设置
图2.3 定义变量hong
2.3.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、用同样的方法设置其它小车的动画连接。
2.3.5后台语言
//对左小车的控制
if(\\本站点\hong==1 && \\本站点\carz==400)
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)