林錦實



摘要:泓格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