林锦实
摘要:泓格PCI-1202板卡有16路的IO数字量输入通道、16路的IO数字量输出通道。文章利用组态王软件设计人机交互界面,可以对流水灯的点亮状态进行远程监控和操作。
关键词:PCI-1202板卡;流水灯控制;组态王
鸿格PCI-1202板卡是一种模拟量输入、输出,数字量输入、输出卡,主要实现的功能:32路的模拟量输入、2路的模拟量输出、16路的IO数字量输入控制、16路的IO数字量输出控制。PCI-1202板卡的16路IO数字量输出控制通道CN1通过端子板DN20输出:PCI-1202板卡的16路IO数字量输入控制通道CN2通过端子板DN20输出。
1 控制要求
设置2个按钮、1个水泵控制开关、1个蜂鸣器控制开关、4个灯。当按钮l、2都没有按下时,所有灯都灭;当按钮2按下时灯左循环点亮,时间间隔3 s'u:当按钮l按下时,4个灯右循环点亮,时间间隔2 s;当按钮1、2同时按下时,2灯一组交替闪烁,间隔时间5 s:当按钮1、2同时按下、水泵控制開关闭合时,下限报警灯亮;当按钮1、2同时按下、蜂鸣器控制开关闲合时,上限报警灯亮[2]。
2 硬件设计
2个按钮分别接在PCI-1202的CN2口连接的端子板的CON2的2、3端子,对应DI1、2寄存器。下限报警、上限报警、灯l—4发光二极管、水泵、蜂鸣器分别接在PCI-1202的CN1口连接的端子板的CON1的1-8端,对应D00~7寄存器,当对应端口输出高电平时发光二极管亮、水泵启动、蜂鸣器响。流水灯控制装置外形结构及控制面板如图1所示。
3 系统组态
打开“工程管理器”,选择文件夹,新建工程。
3.1组态王中鸿格PCI-1202板卡驱动的安装
组态王6.53开发的鸿格PCI-1202板卡原来的版本有缺陷,不能正常通信。经我们与北京亚控公司联系新开发了驱动,驱动文件名为PCI- 1202.dll,版本号为60.1.2.20。用此新驱动更新原来的驱动后,才能正常使用鸿格PCI-1202板卡。
组态新驱动的安装方法:单击开始菜单一程序一组态王6.53-工具一安装新驱动,打开“驱动安装工具”,选择新驱动(PCI 1202.dll文件),安装驱动。
定义组态王设备:板卡一新建一智能模块一鸿格-PCI-1202-PCI,下一步一起“设备名称:PCI1202”,下一步一确定“设备地址”,第一块PCI-1202板卡,地址为0,下一步一确定恢复时间,下一步一完成。
3.2变量设置
该工程所设I/O变量如表1所示。
除以上I/O变量外,该系统为实现循环时间控制简便编程,还需要设置一些内存变量,如表2所示。
3.3画面制作与编程
(1)按照实际设备的构成制作画面,如图2所示。
(2)打开“工程浏览器”|“命令语言”|“数据改变命令语言”。
变量域:$秒
左循环=左循环+1;
if(左循环>3)
{左循环=0;}
右循环=右循环+1;
if(右循环>2)
{右循环=0;}
闪烁间隔时间=闪烁间隔时间+1;
if(闪烁间隔时间>5)
{闪烁间隔时间=0;}
(3)打开“工程浏览器”|“命令语言”|“事件命令语言”。
事件描述:循环状态==0;发生时:
灯1=0;灯2=0;灯3=0;灯4=0;下限报警=0;上限报警=0;
事件描述:循环状态==1;发生时:
灯1=1;灯2=0;灯3=0;灯4=0;下限报警=0;上限报警=0;
事件描述:循环状态==2;发生时:
灯1=0;灯2=1;灯3=0;灯4=0;下限报警=0;上限报警=0;
事件描述:循环状态==3;发生时:
灯1=0;灯2=0;灯3=1;灯4=0;下限报警=0;上限报警=0;
事件描述:循环状态==4;发生时:
灯1=0;灯2=0;灯3=0;灯4=1;下限报警=0;上限报警=0;
(4)打开“画面属性”1“画面命令语言”
编写“存在时“命令语言
if《按钮1==1)&&(按钮2==10))∥按钮按下为0,没有按下为1
{循环状态=0;}∥没有按钮按下,所有灯灭
if((按钮1==1)&&(按钮2==0))
{右循环=0;
if(左循环==3)
{循环状态=循环状态-1;}
if(循环状态<1)
{循环状态=4;}}∥只有按钮2按下,灯左循环点亮,间隔时间3 s
else
{if((按钮1==o)&&(按钮2==10
{左循环=0;
if(右循环==2)
{循环状态=循环状态+1;}
if(循环状态>4)
{循环状态=l;}}}JJ只有按钮1按下,灯右循环点亮,间隔时间2s if《按钮1==o)&&(按钮2==00
{if闪烁间隔时间==5)
{闪烁=!闪烁;}//按钮1、2同时按下,2灯为一组交替闪烁
if(闪烁==0)
{灯1=1;灯2=1;灯3=0;灯4=0;}//闪烁==0时灯1、2亮,灯3、4灭
else
{灯1=0;灯2=0;灯3=1;灯4=l;}}//闪烁==1时灯1、2灭,灯3、4亮//
if((按钮1==0)&&(按钮2==0)&&(水泵==1))
{下限报警=1:}
else
{下限报警=0;}
if((按钮1==0)&&(按钮2==o)&&(蜂鸣器==10
{上限报警=1;}
else
{上限报警=0;}
编写“隐含时”命令语言
灯1=0;灯2=0;灯3=0;灯4=0;下限报警=0;
上限报警=0;
4 系绕调试与结语
启动“运行系统”,按下按钮1、2,在不同组合时,观察4个灯显示的不同状态:同时按下按钮1、2,再启动水泵,观察现象:同时按下按钮1、2,再启动蜂鸣器,观察现象[3]。如运行状态不符合要求,修改软件再运行,直至得到满意的运行结果。
[参考文献]
[1]杨宁,阳泳,江世明基于单片机的LED流水灯控制与简述[J]电子世界,2016 (1):52-53
[2]朱艳梅.基于单片机的流水灯的设计与实现[J].电子制作,2014 (3):23-24
[3]谢智英.流水灯在单片机实训中的应用[J].信息系统工程,2015 (11):90-92