【摘要】主要介紹了S7-200型PLC傳輸指令和移位指令的特點(diǎn)和使用方法,并以七段碼顯示為例,給出了應(yīng)用不同類型的指令進(jìn)行顯示和編程的方法。
【關(guān)鍵詞】傳送指令;移位指令;程序設(shè)計(jì);七段顯示譯碼指令
生活中,經(jīng)常能見到電梯樓層顯示、搶答器、交通燈剩余時(shí)間數(shù)碼顯示以及生產(chǎn)線上的顯示系統(tǒng),可以顯示數(shù)字或字母,本文利用S7-200系列PLC的指令實(shí)現(xiàn)對七段顯示數(shù)碼管的控制。在西門子S7-200系列PLC中,有多種方法可以實(shí)現(xiàn)七段碼顯示,其中比較常用的有基本指令、傳送指令和七段顯示譯碼指令SEG,筆者結(jié)合自己的工作經(jīng)驗(yàn),對幾種控制七段碼顯示的指令進(jìn)行比較,供大家學(xué)習(xí)和參考。
1.傳輸指令和七段碼顯示譯碼指令
1.1 傳輸指令
傳送指令用于在各個(gè)編程元件之間進(jìn)行數(shù)據(jù)傳送[1]。西門子S7-200系列PLC的傳輸指令包括單個(gè)傳送指令和塊傳送指令。單個(gè)傳送指令助記符為MOV,當(dāng)傳送的數(shù)據(jù)長度不同時(shí),助記符也不盡相同。單個(gè)傳送指令根據(jù)傳送數(shù)據(jù)長度可以分為:字節(jié)傳送指令MOVB,字傳送指令MOVW,雙字傳送指令MOVDW,實(shí)數(shù)傳送指令MOVR,利用傳送指令可以在不改變原數(shù)據(jù)值的情況下將IN中的數(shù)據(jù)傳送到OUT。塊傳送指令用來進(jìn)行一次傳送多個(gè)數(shù)據(jù)。
單個(gè)傳送指令的應(yīng)用如圖1所示
圖1 傳送指令的應(yīng)用
在傳送指令中,EN端為允許輸入端;ENO端為允許輸出端。當(dāng)輸入I0.1為“1”時(shí),傳送指令將MB0中的字節(jié)傳送給MB1,如果指令正確執(zhí)行,則輸出Q4.0為“1”,否則,如果輸入I0.0為“0”,則數(shù)據(jù)不傳送。一旦傳送成功,輸出Q4.0將一直保持為1,直到將Q4.0復(fù)位。在為變量賦初始值時(shí),為了保證傳送只執(zhí)行一次,一般MOV方塊指令和邊緣觸發(fā)指令聯(lián)合使用。
1.2 移位指令
移位指令是使位組合的字節(jié)數(shù)據(jù)、字?jǐn)?shù)據(jù)或雙字?jǐn)?shù)據(jù)向指定方向移位的指令[2]。根據(jù)移位的數(shù)據(jù)長度可分為字節(jié)型移位、字型移位、雙字型移位。還可以進(jìn)行循環(huán)移位。數(shù)據(jù)長度不同,移位方向不同,其功能指令也不相同。例如:將字節(jié)型數(shù)據(jù)向左移位,功能指令為SHL_B,將字型數(shù)據(jù)向右移位,功能指令為SHR_W,將雙字型數(shù)據(jù)循環(huán)左移,功能指令為ROL_DW。表1列出了左移指令,右移指令與左移指令相同,把梯形圖功能框中的字母L變成R,就全部變成了右移指令,指令功能將對應(yīng)的左移改成右移。
1.3 七段顯示譯碼指令
圖2 七段碼顯示指令
在S7-200系列PLC中,有一條指令SEG可以直接驅(qū)動七段顯示數(shù)碼管[3],如圖2所示,當(dāng)把PLC的輸出端用一個(gè)字節(jié)的前七個(gè)端口與數(shù)碼管的7個(gè)段(a、b、c、d、e、f、g)對應(yīng)接好,當(dāng)SEG指令的允許輸入端EN有效時(shí),將字節(jié)型輸入數(shù)據(jù)IN的低四位對應(yīng)的數(shù)據(jù)輸出到OUT指定的字節(jié)單元,這時(shí)IN處 的數(shù)據(jù)就可以通過數(shù)碼管顯示出來。在梯形圖中,七段數(shù)碼指令以功能框形式編程,語句表中的指令格式為SEG IN,OUT。
2.七段顯示數(shù)碼管系統(tǒng)分析
電梯上樓時(shí)七段顯示數(shù)碼管的順序顯示,十字路口紅綠燈的倒計(jì)時(shí)七段顯示數(shù)碼管的逆序顯示,以及搶答器的隨機(jī)顯示,都是七段碼的控制要求。
2.1 控制系統(tǒng)的分析
本文利用不同指令使七段顯示數(shù)碼管按0~9~A~F的順序顯示,其他顯示方法與這些方法大體相同。七段顯示數(shù)碼管a、b、c、d、e、f、g的位置關(guān)系如圖所示,在PLC電路圖中a~g分別與LED0~LED6對應(yīng)。
由圖3可知,欲使七段顯示數(shù)碼管顯示不同的數(shù)字或字母,只需將a、b、c、d、e、f、g各段按照不同的規(guī)律顯示即可。例如:顯示數(shù)字“1”,需要將“b、c”兩端置“1”,其余各段置“0”。數(shù)字0~9和字母A~F與七段顯示碼的對應(yīng)關(guān)系如表2所示。
圖3 數(shù)碼管的七段標(biāo)注
輸出Q0.0~Q0.6代表一個(gè)字節(jié)的后七位,其第一位為0。在S7-200系列PLC中,一個(gè)字節(jié)代表八個(gè)位,當(dāng)這八個(gè)位置按0或1顯示不同的組合時(shí)時(shí),代表了二進(jìn)制中的不同數(shù)值,通過轉(zhuǎn)換,可以轉(zhuǎn)換為10進(jìn)制數(shù)字和16進(jìn)制數(shù)字,如上表所示。當(dāng)用傳送指令把10進(jìn)制或16進(jìn)制數(shù)字傳送給輸出地址Q時(shí),相當(dāng)于傳輸給了Q0.0~Q0.6不同的數(shù)值,傳輸數(shù)值“0”,對應(yīng)的LED燈不亮,傳輸數(shù)值“1”,對應(yīng)的LED燈亮,通過上表的組合,便能顯示出不同的數(shù)字或字母。例如顯示數(shù)字0,需要將10進(jìn)制數(shù)“63”或16進(jìn)制數(shù)“3F”傳輸給Q0.0~Q0.6。若要顯示字母A,需要將10進(jìn)制數(shù)“119”或16進(jìn)制數(shù)“77”傳輸給Q0.0~Q0.6。以此類推。
2.2 PLC的輸入輸出地址分配
確定系統(tǒng)I/O地址分配如表3所示。
表3 七段顯示數(shù)碼管符號及變量表
PLC地址 數(shù)據(jù)類型 變量名 地址分類
I0.0 BOOL 起動按鈕 輸入
I0.1 BOOL 停止按鈕 輸入
Q0.0 BOOL a(LED0) 輸出
Q0.1 BOOL b(LED1) 輸出
Q0.2 BOOL c(LED2) 輸出
Q0.3 BOOL d(LED3) 輸出
Q0.4 BOOL e(LED4) 輸出
Q0.5 BOOL f(LED5) 輸出
Q0.6 BOOL g(LED6) 輸出
2.3 PLC的外部接線圖
根據(jù)上表,可以畫出PLC與外部元件的接線圖,如圖4所示。
圖4 PLC外部接線圖
2.4 系統(tǒng)要求
利用PLC編程實(shí)現(xiàn)以下功能要求:
按下起動按鈕SB1,系統(tǒng)按照0、1、2、4、5、6、7、8、9、A、B、C、D、E、F的順序循環(huán)顯示。
3.程序設(shè)計(jì)方法
3.1 利用傳輸指令實(shí)現(xiàn)
圖5 傳輸指令實(shí)現(xiàn)七段碼顯示梯形圖
圖6 利用SEG指令實(shí)現(xiàn)七段碼顯示梯形圖
利用循環(huán)移位指令和傳輸指令可以實(shí)現(xiàn)以上的控制要求。首先利用起動按鈕起動輔助繼電器M0.0,利用定時(shí)器設(shè)定一個(gè)脈沖發(fā)生電路,并使其周期為2s,占空比50%,再利用循環(huán)移位指令使其每次向左移動一位,每次移動的過程中,由傳送指令向輸出地址傳送不同的數(shù)據(jù),實(shí)現(xiàn)數(shù)字和字母的循環(huán)顯示。例如:輔助繼電器M1.0數(shù)值為1時(shí),向QB0中輸入10進(jìn)制數(shù)字63或16進(jìn)制數(shù)字3F,循環(huán)移位指令移動至M1.7時(shí),應(yīng)該向QB0中傳輸代表數(shù)字8的10進(jìn)制數(shù)127,M2.0閉合時(shí),傳輸數(shù)字9,以此類推,M2.7閉合時(shí),傳送字母F。梯形圖如圖5所示。
3.2 利用七段碼譯碼指令實(shí)現(xiàn)
利用譯碼指令實(shí)現(xiàn)可以更簡單、方便的實(shí)現(xiàn)以上控制。梯形圖如圖6所示。
4.結(jié)語
在PLC的編程中,用基本指令和輔助繼電器也能夠?qū)崿F(xiàn)七段數(shù)碼管顯示控制。不同的編程方法可以達(dá)到相同的效果。利用傳輸指令來實(shí)現(xiàn)可以使讀者更好的理解位、字節(jié)、字、雙字的區(qū)別與聯(lián)系。對于理解西門子編程軟件中的數(shù)據(jù)類型以及尋址范圍有很大的幫助。而對于利用SEG功能指令實(shí)現(xiàn)七段碼顯示,則顯得程序簡單、條理清晰,邏輯關(guān)系明確。
因此,在利用PLC編程的過程中,我們?nèi)绻軌驀L試不同的方法實(shí)現(xiàn)同一種功能,不僅能提高自己的編程水平,還能夠更好的理解功能指令的強(qiáng)大用途。既充實(shí)了自己的知識,又能達(dá)到事半功倍的效果。
參考文獻(xiàn)
[1]陳海霞,柴瑞娟,任慶海,孫承志編著.西門子S7-300/400PLC編程技術(shù)及工程應(yīng)用[M].機(jī)械工業(yè)出版社.
[2]郭繼紅主編.電氣控制與PLC技術(shù)實(shí)例教程[M].機(jī)械工業(yè)出版社.
[3]陳麗主編.PLC控制系統(tǒng)編程與實(shí)現(xiàn)[M].中國鐵道出版社.
作者簡介:趙金山(1972—),男,山西翼城人,碩士,講師,現(xiàn)供職于臨汾職業(yè)技術(shù)學(xué)院,主要從事電氣自動化,機(jī)電一體化方面的研究。