陸雪影
【摘要】PLC中自帶有定時(shí)器,但是一般PLC自帶的定時(shí)器數(shù)量有限,在有有的應(yīng)用中,較少的定時(shí)器數(shù)量難以PLC的應(yīng)用,為此,需要通過外擴(kuò)定時(shí)器來滿足PLC應(yīng)用的需求。在本文的研究中,對(duì)基于PLC的外擴(kuò)256個(gè)并行外部定時(shí)器進(jìn)行研究。
【關(guān)鍵詞】PLC技術(shù);并行定時(shí)器
定時(shí)器指令是PLC工作運(yùn)行中的重要指令,可以進(jìn)行構(gòu)造時(shí)序、人為制造中斷等各種應(yīng)用,是PLC應(yīng)用中不可或缺的重要手段。
1. 定時(shí)器設(shè)計(jì)
常用的PLC微控制器的內(nèi)部定時(shí)器數(shù)量有限,在有大量定時(shí)任務(wù)需要完成時(shí),PLC自帶的內(nèi)部定時(shí)器難以滿足應(yīng)用的需求,因此需要通過外擴(kuò)定時(shí)器芯片,來實(shí)現(xiàn)大量定時(shí)器單元的設(shè)計(jì)。
1.1 總體結(jié)構(gòu)設(shè)計(jì)
在本課題所研究的并行定時(shí)器中,實(shí)現(xiàn)了256個(gè)定時(shí)范圍為1~228,最小定時(shí)時(shí)間為1ms定時(shí)器。由于并行定時(shí)器的定時(shí)范圍寬、單元數(shù)量多,因此采用并行方式執(zhí)行,在較短的時(shí)間內(nèi)對(duì)所256個(gè)定時(shí)單元進(jìn)行掃描,完成一次定時(shí)操作。
為了節(jié)省接口數(shù)量,并行定時(shí)器單元的輸入輸出接口采用雙向I/O接口。外部控制器訪問定時(shí)器的方式是按照一定的時(shí)序?qū)崿F(xiàn)數(shù)據(jù)的寫入和讀取,定時(shí)器內(nèi)部定時(shí)單元的訪問和操作通過相應(yīng)命令來控制。定時(shí)器的內(nèi)部框架圖設(shè)計(jì)如圖1所示。
1.2 定時(shí)器命令設(shè)計(jì)
在定時(shí)器總體設(shè)計(jì)過程中,PLC與并列控制的外部定時(shí)器之間通過命令的方式來實(shí)現(xiàn)數(shù)據(jù)的交互。定時(shí)器的命令范圍控制命令和讀取命令兩種。在PLC與外部定時(shí)器進(jìn)行數(shù)據(jù)通信的過程中,為了保證256個(gè)外部定時(shí)器單元初始化成功和正確讀取,PLC的輸入輸出頻率應(yīng)該在300kHz以上。在PLC的地址總線中,輸入0x000-0x0ff表示256個(gè)定時(shí)器中某個(gè)定時(shí)器的編號(hào),而0x00-0x120表示將256個(gè)定時(shí)器劃分為8組每組數(shù)量為32個(gè)定時(shí)器的中斷標(biāo)志組,通過分組可以更快的實(shí)現(xiàn)對(duì)定時(shí)器的初始化和讀取操作。
(1)控制命令
PLC向定時(shí)器單元發(fā)送的初始化、啟用、停用、暫停等控制命令,控制命令的輸入格式如表1所示。
通過設(shè)置相應(yīng)的定時(shí)器地址,并且輸入定時(shí)器初始數(shù)據(jù),PLC就可以控制256個(gè)外部定時(shí)器單元中的某個(gè)定時(shí)器啟動(dòng),當(dāng)啟動(dòng)標(biāo)志位和使用標(biāo)志位同時(shí)置1,并且結(jié)束標(biāo)志位和工作標(biāo)志位同時(shí)置0時(shí),控制外部定時(shí)器開始工作。當(dāng)啟動(dòng)標(biāo)志位或者使用標(biāo)志位中的某個(gè)位置0時(shí),定時(shí)器停止工作,并且載入初始值,等待下一次被PLC啟用。
(2)讀取命令
的那個(gè)RW端置高電平后,PLC可以訪問定時(shí)器單元內(nèi)的定時(shí)數(shù)據(jù)來獲取相應(yīng)的定時(shí)狀態(tài)和定時(shí)值信息。當(dāng)讀取命令的輸入地址為0x100時(shí),可以并行讀取1個(gè)定時(shí)器單元組中的32個(gè)外部單元的數(shù)據(jù),0表示定時(shí)單元未啟動(dòng)或者未結(jié)束,1表示定時(shí)器時(shí)間到達(dá)。
2. PLC程序控制
PLC程序是指PLC并行控制256個(gè)外部定時(shí)器單元的程序。程序的主要模塊分為如下五個(gè)部分的內(nèi)容。
2.1 1kHz分頻模塊
分頻模塊將50MHz的方波進(jìn)行分頻,實(shí)現(xiàn)分頻為50%占空比的1kHz頻率信號(hào)輸出。在分頻時(shí)需要一個(gè)計(jì)數(shù)器進(jìn)行輸出控制,計(jì)數(shù)器的計(jì)算公式如式(1)所示。
(1)
根據(jù)式(1)計(jì)算得到計(jì)數(shù)次數(shù)為25000,因此當(dāng)技術(shù)次數(shù)為25000時(shí),輸出1kHz取反,獲得50%占空比的1kHz方波。
2.2 地址計(jì)數(shù)模塊
在訪問兩端RAM時(shí),通過地址技術(shù)模塊輸入地址,當(dāng)PLC模塊需要讀取外部定時(shí)器中的定時(shí)數(shù)據(jù)時(shí),地址計(jì)數(shù)器模塊停止計(jì)數(shù),在完成讀取操作后,繼續(xù)進(jìn)行地址增加,在完成一個(gè)循環(huán)之后,等待下一次1kHz脈沖到達(dá)。
地址計(jì)數(shù)采用11位寄存器,11個(gè)寄存器的低3位保持地址持續(xù)時(shí)間,在8個(gè)時(shí)鐘周期的持續(xù)時(shí)間中,完成一次單元操作。在單元操作完成后,地址計(jì)數(shù)器累加,地址計(jì)數(shù)所指向的地址后移。
2.3 計(jì)時(shí)與邏輯控制模塊
計(jì)時(shí)與邏輯控制模塊讀取兩端口RAM中的數(shù)據(jù),讀取RAMCR中的數(shù)據(jù)并判斷當(dāng)前定時(shí)的定時(shí)狀態(tài)和定時(shí)初始值;讀取RAMCE中的數(shù)據(jù),進(jìn)行減操作,開始進(jìn)行定時(shí)。如果在計(jì)時(shí)與邏輯控制模塊運(yùn)行過程中發(fā)現(xiàn)了定時(shí)結(jié)束的定時(shí)單元,則將RAMCE中的D27和D28位置分別設(shè)置為0和1,如果定時(shí)單元未技術(shù)則設(shè)置為1和0,其余情況設(shè)置為0和0。
3. 總結(jié)
PLC中自帶了定時(shí)器以滿足一般應(yīng)用的需求,但由于PLC所在帶的定時(shí)器較少,因此難以滿足復(fù)雜應(yīng)用的需求。在本文的研究中,采用PLC未接定時(shí)器的方式來擴(kuò)充PLC的定時(shí)器的數(shù)量,并通過并行處理來提高定時(shí)器工作的實(shí)時(shí)性,提高定時(shí)器計(jì)數(shù)和定時(shí)的準(zhǔn)確性。
參考文獻(xiàn)
[1]孫志雄,謝海霞.基于FPGA的高速串并/并串轉(zhuǎn)換器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014,(8):151-152.
[2]李克儉,付杰,蔡啟仲,等.基于FPGA的串行定時(shí)器設(shè)計(jì)[J].廣西工學(xué)院學(xué)報(bào),2012,23(3):61-65.
[3]張煒,李克儉,蔡啟仲,等.基于FPGA的PLC并行定時(shí)器的設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(4):1244-1249.