何淼
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院,陜西 西安 710300)
西門子S7—1200有著很多強(qiáng)大的功能,配有PROFINET集成接口、靈活的擴(kuò)展能力以及具有集成工藝特點(diǎn),能夠提供簡易的通信和行之有效的解決方案,供多種工藝任務(wù)的需求,特別是能夠提供多種應(yīng)用所需的特性各異的自動(dòng)化需求。其中,計(jì)數(shù)器是S7—1200提供的一種用來累計(jì)輸入脈沖個(gè)數(shù)的編程元件,在實(shí)際應(yīng)用中用于對(duì)產(chǎn)品進(jìn)行計(jì)數(shù)或完成復(fù)雜邏輯控制任務(wù)。
在S7—1200的PLC中,可以使用計(jì)數(shù)器指令對(duì)內(nèi)部程序事件和外部過程事件進(jìn)行計(jì)數(shù)。每個(gè)計(jì)數(shù)器都使用數(shù)據(jù)塊中存儲(chǔ)的結(jié)構(gòu)來保存計(jì)數(shù)器數(shù)據(jù)。用戶在編輯器中放置計(jì)數(shù)器指令時(shí)分配相應(yīng)的數(shù)據(jù)塊。
S7—1200PLC有3種計(jì)數(shù)器:加計(jì)數(shù)器CTU、減計(jì)數(shù)器CTD、加減計(jì)數(shù)器CTUD。在調(diào)用指令時(shí),系統(tǒng)會(huì)自動(dòng)生成保持計(jì)數(shù)器數(shù)據(jù)的背景數(shù)據(jù)塊。這些指令屬于軟件計(jì)數(shù)器,其最大計(jì)數(shù)速率受其所在的OB的執(zhí)行速率限制。如果需要速率更高的計(jì)數(shù)器,可以使用CPU內(nèi)置的高數(shù)計(jì)數(shù)器。選用西門子S7—1200加計(jì)數(shù)器CTU,在完成CTU用法探討后,通過分析自動(dòng)線上產(chǎn)品數(shù)量檢測裝置的控制要求,分配其I/O,設(shè)計(jì)其梯形圖,最終完成自動(dòng)生產(chǎn)線上產(chǎn)品數(shù)量檢測的PLC控制。
本文選用CPU為1214C DC/DC/DC的西門子S7—1200PLC,編程軟件用博途V15。在博途V15環(huán)境下添加計(jì)數(shù)器時(shí),先在項(xiàng)目樹中,打開OB1,然后在指令樹中,拖拽CTU計(jì)數(shù)器指令到程序段中,系統(tǒng)自動(dòng)打開背景數(shù)據(jù)塊選擇對(duì)話框,單擊確認(rèn)按鈕,采用默認(rèn)設(shè)置,系統(tǒng)就會(huì)給計(jì)數(shù)器自動(dòng)分配背景數(shù)據(jù)塊,如圖1所示。
圖1 CTU計(jì)數(shù)器
在圖1中,%DB1“IEC_Counter_0_DB”為計(jì)數(shù)器背景數(shù)據(jù)塊,由系統(tǒng)自動(dòng)生成;單擊“Int”可以選擇計(jì)數(shù)器的數(shù)據(jù)類型(Int、SInt、DInt、UInt、USInt、UDInt等),計(jì)數(shù)器的計(jì)數(shù)范圍取決于所選的數(shù)據(jù)類型;CU為計(jì)數(shù)器的脈沖輸入端,即啟動(dòng)計(jì)數(shù)器的條件;PV為計(jì)數(shù)器的預(yù)設(shè)值;R為計(jì)數(shù)器的復(fù)位端;CV為存儲(chǔ)計(jì)數(shù)器當(dāng)前值的地址;Q為計(jì)數(shù)器的輸出值。
S7—1200計(jì)數(shù)器使用一個(gè)存儲(chǔ)在數(shù)據(jù)塊中的結(jié)構(gòu)來保持計(jì)數(shù)器數(shù)據(jù)。在工作區(qū)中,放置定期器指令時(shí)要求分配該數(shù)據(jù)塊,也就是說使用計(jì)數(shù)器時(shí),要為其分配背景數(shù)據(jù)塊。下面利用時(shí)序圖2,說明接通計(jì)數(shù)器的工作過程。
圖2 計(jì)數(shù)器的時(shí)序圖
圖2是計(jì)數(shù)值為無符號(hào)整數(shù)的CTU時(shí)序圖(其中預(yù)設(shè)值PV=3),每當(dāng)計(jì)數(shù)器的脈沖輸入端CU的值從0變?yōu)?時(shí),加計(jì)數(shù)器的當(dāng)前值CV=CV+1。當(dāng)CV≥PV時(shí),計(jì)數(shù)器的輸出端被置為1。這時(shí)若再加計(jì)數(shù)器脈沖,計(jì)數(shù)器的當(dāng)前值仍然不斷增加,直到所選計(jì)數(shù)器數(shù)據(jù)類型的范圍限值。當(dāng)復(fù)位端R的值從0變?yōu)?,計(jì)數(shù)值的當(dāng)前值和輸出狀態(tài)就重置為0。
自動(dòng)生產(chǎn)線上產(chǎn)品數(shù)量檢測裝置控制要求如下。啟動(dòng)按鈕、停止按鈕控制電機(jī)的運(yùn)動(dòng),電機(jī)拖動(dòng)傳送帶運(yùn)轉(zhuǎn),以驅(qū)動(dòng)傳送帶傳輸工件,光電傳感器檢測通過產(chǎn)品的數(shù)量,每湊夠3個(gè)產(chǎn)品,機(jī)械手動(dòng)作1次,進(jìn)行包裝,機(jī)械手動(dòng)作后延時(shí)2s,把機(jī)械手電磁鐵切斷。
根據(jù)自動(dòng)生產(chǎn)線上產(chǎn)品數(shù)量檢測裝置的控制要求可知,有啟動(dòng)按鈕、停止按鈕、光電傳感器共計(jì)3個(gè)數(shù)字量輸入,有電機(jī)、機(jī)械手共計(jì)2個(gè)數(shù)字量輸出,因此本文選擇的CPU為1214C DC/DC/DC的西門子S7—1200PLC可以滿足其硬件要求,表1是產(chǎn)品數(shù)量檢測的I/O分配表。
表1 產(chǎn)品數(shù)量檢測的I/O分配表
在設(shè)計(jì)產(chǎn)品數(shù)量檢測的梯形圖時(shí),先借助輔助繼電器M,利用“啟保停”編程方法,實(shí)現(xiàn)M0.0的啟動(dòng)和停止;然后用M0.0啟動(dòng)電機(jī)運(yùn)動(dòng);用M0.0與光電傳感器I0.2作為計(jì)數(shù)器CTU的脈沖輸入端,而計(jì)數(shù)器CTU的復(fù)位端則用定時(shí)器TON的常閉觸點(diǎn)或M0.0接通一次的信號(hào);再用計(jì)數(shù)器的常開觸點(diǎn)使機(jī)械手Q0.1得電,并且同時(shí)驅(qū)動(dòng)5s開始計(jì)時(shí)TON;最后用TON的常閉觸點(diǎn)斷開Q0.1,使機(jī)械手停止運(yùn)動(dòng)。
打開博途V15編程軟件,首先創(chuàng)建新項(xiàng)目,在“設(shè)備組態(tài)”中,選擇控制器的PLC類型、CPU型號(hào)、CPU訂貨號(hào)和PLC版本號(hào),然后完成以太網(wǎng)地址的設(shè)置,再在“程序塊—Main—OB1”中,輸入圖3設(shè)計(jì)的梯形圖,最后再分別將項(xiàng)目樹中的“設(shè)備組態(tài)”和“OBI梯形圖”下載到PLC中。此時(shí),只需根據(jù)產(chǎn)品數(shù)量檢測的I/O分配,完成其PLC的外部接線后,按下啟動(dòng)按鈕I0.0閉合,M0.0線圈得電并自鎖,其常開觸點(diǎn)閉合,Q0.0線圈得電,傳送帶電機(jī)運(yùn)轉(zhuǎn);隨著傳送帶的運(yùn)動(dòng),光電傳感器每檢到一個(gè)工件都會(huì)給計(jì)數(shù)器CTU脈沖,當(dāng)脈沖數(shù)為3時(shí),CTU輸出狀態(tài)置位為1,其常開觸點(diǎn)閉合,O0.1得電,機(jī)械手把貨物抓走,與此同時(shí),定時(shí)器TON開始計(jì)時(shí),5秒后O0.1斷開,機(jī)械手復(fù)位。當(dāng)按下停止按鈕時(shí),電機(jī)停止運(yùn)轉(zhuǎn)。
圖3 梯形圖
本文在檢測自動(dòng)線上產(chǎn)品的數(shù)量時(shí),采用S7—1200的CTU計(jì)數(shù)器,從CTU計(jì)數(shù)器的使用、程序設(shè)計(jì)和系統(tǒng)調(diào)試3個(gè)方面進(jìn)行分析、設(shè)計(jì)和論證,從而證明采用CTU計(jì)數(shù)器設(shè)計(jì)的控制自動(dòng)生產(chǎn)線產(chǎn)品數(shù)量檢測的PLC程序,不但滿足了控制要求。實(shí)現(xiàn)產(chǎn)品數(shù)量檢測的目的,而且系統(tǒng)精確度高、修改和監(jiān)視也方便。