林錦實(shí)
摘要:泓格PCI-1202板卡有16路的IO數(shù)字量輸入通道、16路的IO數(shù)字量輸出通道。文章利用組態(tài)王軟件設(shè)計(jì)人機(jī)交互界面,可以對流水燈的點(diǎn)亮狀態(tài)進(jìn)行遠(yuǎn)程監(jiān)控和操作。
關(guān)鍵詞:PCI-1202板卡;流水燈控制;組態(tài)王
鴻格PCI-1202板卡是一種模擬量輸入、輸出,數(shù)字量輸入、輸出卡,主要實(shí)現(xiàn)的功能:32路的模擬量輸入、2路的模擬量輸出、16路的IO數(shù)字量輸入控制、16路的IO數(shù)字量輸出控制。PCI-1202板卡的16路IO數(shù)字量輸出控制通道CN1通過端子板DN20輸出:PCI-1202板卡的16路IO數(shù)字量輸入控制通道CN2通過端子板DN20輸出。
1 控制要求
設(shè)置2個按鈕、1個水泵控制開關(guān)、1個蜂鳴器控制開關(guān)、4個燈。當(dāng)按鈕l、2都沒有按下時,所有燈都滅;當(dāng)按鈕2按下時燈左循環(huán)點(diǎn)亮,時間間隔3 s'u:當(dāng)按鈕l按下時,4個燈右循環(huán)點(diǎn)亮,時間間隔2 s;當(dāng)按鈕1、2同時按下時,2燈一組交替閃爍,間隔時間5 s:當(dāng)按鈕1、2同時按下、水泵控制開關(guān)閉合時,下限報(bào)警燈亮;當(dāng)按鈕1、2同時按下、蜂鳴器控制開關(guān)閑合時,上限報(bào)警燈亮[2]。
2 硬件設(shè)計(jì)
2個按鈕分別接在PCI-1202的CN2口連接的端子板的CON2的2、3端子,對應(yīng)DI1、2寄存器。下限報(bào)警、上限報(bào)警、燈l—4發(fā)光二極管、水泵、蜂鳴器分別接在PCI-1202的CN1口連接的端子板的CON1的1-8端,對應(yīng)D00~7寄存器,當(dāng)對應(yīng)端口輸出高電平時發(fā)光二極管亮、水泵啟動、蜂鳴器響。流水燈控制裝置外形結(jié)構(gòu)及控制面板如圖1所示。
3 系統(tǒng)組態(tài)
打開“工程管理器”,選擇文件夾,新建工程。
3.1組態(tài)王中鴻格PCI-1202板卡驅(qū)動的安裝
組態(tài)王6.53開發(fā)的鴻格PCI-1202板卡原來的版本有缺陷,不能正常通信。經(jīng)我們與北京亞控公司聯(lián)系新開發(fā)了驅(qū)動,驅(qū)動文件名為PCI- 1202.dll,版本號為60.1.2.20。用此新驅(qū)動更新原來的驅(qū)動后,才能正常使用鴻格PCI-1202板卡。
組態(tài)新驅(qū)動的安裝方法:單擊開始菜單一程序一組態(tài)王6.53-工具一安裝新驅(qū)動,打開“驅(qū)動安裝工具”,選擇新驅(qū)動(PCI 1202.dll文件),安裝驅(qū)動。
定義組態(tài)王設(shè)備:板卡一新建一智能模塊一鴻格-PCI-1202-PCI,下一步一起“設(shè)備名稱:PCI1202”,下一步一確定“設(shè)備地址”,第一塊PCI-1202板卡,地址為0,下一步一確定恢復(fù)時間,下一步一完成。
3.2變量設(shè)置
該工程所設(shè)I/O變量如表1所示。
除以上I/O變量外,該系統(tǒng)為實(shí)現(xiàn)循環(huán)時間控制簡便編程,還需要設(shè)置一些內(nèi)存變量,如表2所示。
3.3畫面制作與編程
(1)按照實(shí)際設(shè)備的構(gòu)成制作畫面,如圖2所示。
(2)打開“工程瀏覽器”|“命令語言”|“數(shù)據(jù)改變命令語言”。
變量域:$秒
左循環(huán)=左循環(huán)+1;
if(左循環(huán)>3)
{左循環(huán)=0;}
右循環(huán)=右循環(huán)+1;
if(右循環(huán)>2)
{右循環(huán)=0;}
閃爍間隔時間=閃爍間隔時間+1;
if(閃爍間隔時間>5)
{閃爍間隔時間=0;}
(3)打開“工程瀏覽器”|“命令語言”|“事件命令語言”。
事件描述:循環(huán)狀態(tài)==0;發(fā)生時:
燈1=0;燈2=0;燈3=0;燈4=0;下限報(bào)警=0;上限報(bào)警=0;
事件描述:循環(huán)狀態(tài)==1;發(fā)生時:
燈1=1;燈2=0;燈3=0;燈4=0;下限報(bào)警=0;上限報(bào)警=0;
事件描述:循環(huán)狀態(tài)==2;發(fā)生時:
燈1=0;燈2=1;燈3=0;燈4=0;下限報(bào)警=0;上限報(bào)警=0;
事件描述:循環(huán)狀態(tài)==3;發(fā)生時:
燈1=0;燈2=0;燈3=1;燈4=0;下限報(bào)警=0;上限報(bào)警=0;
事件描述:循環(huán)狀態(tài)==4;發(fā)生時:
燈1=0;燈2=0;燈3=0;燈4=1;下限報(bào)警=0;上限報(bào)警=0;
(4)打開“畫面屬性”1“畫面命令語言”
編寫“存在時“命令語言
if《按鈕1==1)&&(按鈕2==10))∥按鈕按下為0,沒有按下為1
{循環(huán)狀態(tài)=0;}∥沒有按鈕按下,所有燈滅
if((按鈕1==1)&&(按鈕2==0))
{右循環(huán)=0;
if(左循環(huán)==3)
{循環(huán)狀態(tài)=循環(huán)狀態(tài)-1;}
if(循環(huán)狀態(tài)<1)
{循環(huán)狀態(tài)=4;}}∥只有按鈕2按下,燈左循環(huán)點(diǎn)亮,間隔時間3 s
else
{if((按鈕1==o)&&(按鈕2==10
{左循環(huán)=0;
if(右循環(huán)==2)
{循環(huán)狀態(tài)=循環(huán)狀態(tài)+1;}
if(循環(huán)狀態(tài)>4)
{循環(huán)狀態(tài)=l;}}}JJ只有按鈕1按下,燈右循環(huán)點(diǎn)亮,間隔時間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))
{下限報(bào)警=1:}
else
{下限報(bào)警=0;}
if((按鈕1==0)&&(按鈕2==o)&&(蜂鳴器==10
{上限報(bào)警=1;}
else
{上限報(bào)警=0;}
編寫“隱含時”命令語言
燈1=0;燈2=0;燈3=0;燈4=0;下限報(bào)警=0;
上限報(bào)警=0;
4 系繞調(diào)試與結(jié)語
啟動“運(yùn)行系統(tǒng)”,按下按鈕1、2,在不同組合時,觀察4個燈顯示的不同狀態(tài):同時按下按鈕1、2,再啟動水泵,觀察現(xiàn)象:同時按下按鈕1、2,再啟動蜂鳴器,觀察現(xiàn)象[3]。如運(yùn)行狀態(tài)不符合要求,修改軟件再運(yùn)行,直至得到滿意的運(yùn)行結(jié)果。
[參考文獻(xiàn)]
[1]楊寧,陽泳,江世明基于單片機(jī)的LED流水燈控制與簡述[J]電子世界,2016 (1):52-53
[2]朱艷梅.基于單片機(jī)的流水燈的設(shè)計(jì)與實(shí)現(xiàn)[J].電子制作,2014 (3):23-24
[3]謝智英.流水燈在單片機(jī)實(shí)訓(xùn)中的應(yīng)用[J].信息系統(tǒng)工程,2015 (11):90-92