秦 偉
(臨汾職業(yè)技術(shù)學(xué)院,山西 臨汾 041000)
現(xiàn)代的PLC除了能處理邏輯開(kāi)關(guān)量外,還能對(duì)數(shù)據(jù)進(jìn)行處理?;具壿嬛噶钪饕糜谶壿嬃康奶幚恚δ苤噶顒t用于對(duì)數(shù)字量的處理,包括數(shù)據(jù)的傳送、變換、運(yùn)算,以及程序流程控制,此外功能指令還用來(lái)處理PLC與外部設(shè)備的數(shù)據(jù)傳送控制。三菱FX系列PLC具有豐富的功能指令資源,其種類(lèi)越來(lái)越多、功能越來(lái)越強(qiáng)、應(yīng)用也越來(lái)越方便。
其中,觸點(diǎn)比較指令和MOV指令是功能指令中最常用的指令,是功能指令中的基本指令。采用這兩種功能指令進(jìn)行程序設(shè)計(jì),具有結(jié)構(gòu)緊湊、語(yǔ)句簡(jiǎn)潔、編程容易、修改靈活等優(yōu)點(diǎn)。本文以交通燈控制程序?yàn)槔榻B傳送指令和比較指令在程序設(shè)計(jì)中的應(yīng)用。
在PLC中,大多數(shù)功能指令實(shí)際上是一些來(lái)完成特定任務(wù)的子程序。在應(yīng)用中,只要按照功能指令操作數(shù)的要求填入相應(yīng)的操作數(shù),然后在程序中驅(qū)動(dòng)它們(實(shí)際上是調(diào)用相應(yīng)子程序),就會(huì)完成該功能指令所代表的功能操作。
觸點(diǎn)比較指令和MOV指令是功能指令最常用的一種,其主要功能是對(duì)軟元件的讀寫(xiě)和清零等,子元件的比較、交換等,這些指令是PLC進(jìn)行各種數(shù)據(jù)處理和數(shù)值運(yùn)算的基礎(chǔ),而其本身的應(yīng)用也可以使一些邏輯運(yùn)算控制得到簡(jiǎn)化和優(yōu)化。
觸點(diǎn)比較指令實(shí)質(zhì)上是一個(gè)常開(kāi)觸點(diǎn),影響這個(gè)常開(kāi)觸點(diǎn)動(dòng)作的不是位元件輸入(X)或位元件線(xiàn)圈輸出(Y,M,S),而是指令中兩個(gè)字元件 S1和S2相比較結(jié)果。如果比較條件成立則該觸點(diǎn)動(dòng)作,條件不成立則觸點(diǎn)不動(dòng)作。在使用時(shí)它們和普通觸點(diǎn)一樣放在梯形圖的橫線(xiàn)上,因而稱(chēng)為在線(xiàn)比較指令(onLine Comparisons)。
傳送指令MOV是功能指令中應(yīng)用最多的基本功能指令。其實(shí)質(zhì)上是一個(gè)對(duì)位元件置位和對(duì)字元件進(jìn)行讀寫(xiě)操作的指令。應(yīng)用組合位元件進(jìn)行復(fù)位和置位操作,不但能實(shí)現(xiàn)較多的輸出,較大地簡(jiǎn)化程序;而且如輸出有變化,只要修改輸出字的數(shù)值,而無(wú)需逐項(xiàng)修改程序。
在城市十字路口的東、西、南、北方向,裝設(shè)了紅、綠、黃三色交通信號(hào)燈。為了交通安全紅、綠、黃燈必須按照一定時(shí)序輪流發(fā)亮。
當(dāng)東西方向紅燈亮?xí)r,南北方向綠燈亮;當(dāng)南北方向綠燈亮到25S時(shí)綠燈閃3次,閃亮周期為1S;然后南北方向黃燈亮2S。當(dāng)南北方向黃燈熄滅后,東西方向綠燈亮,南北方向紅燈亮;當(dāng)東西方向綠燈亮夠25S后閃3次,每次1S,接著東西方向的黃燈亮2S(代表快要切換到紅燈)。交通燈像這樣周而復(fù)始,不斷循環(huán)工作。交通燈的控制模型如圖1所示。
交通燈有12個(gè)燈,但是東西方向和南北方向的燈,只要是同一組,它們就是一起工作的。為節(jié)省輸出口,把同一方向同一顏色的燈接在一起,這樣就節(jié)省了一半的PLC輸出口,因此,只要6個(gè)輸出繼電器控制即可。由此,我們可以繪出圖2所示的交通的燈I/O接線(xiàn)圖。
圖1 交通燈模型
圖2 交通燈I/O接線(xiàn)圖
根據(jù)設(shè)計(jì)要求可以確定系統(tǒng)的I/O地址分配,如表1所示。
表1 交通燈I/O分配
按交通信號(hào)燈的設(shè)計(jì)要求,并結(jié)合系統(tǒng)I/O分配,可以用數(shù)軸的方法繪制出交通燈時(shí)序圖,圖3所示。把系統(tǒng)的工作過(guò)程簡(jiǎn)單地用時(shí)序圖來(lái)表示,再編寫(xiě)程序,這樣可以把復(fù)雜的控制要求簡(jiǎn)化并找到編程思路。
圖3 交通燈時(shí)序圖
通過(guò)繪制時(shí)序圖可將系統(tǒng)分為六個(gè)時(shí)間段(Ⅰ~Ⅶ)和八種狀態(tài)(①~⑧),每個(gè)時(shí)間段和狀態(tài)都與輸出一一對(duì)應(yīng),如表2所示。
表2 輸出、狀態(tài)、狀態(tài)編號(hào)、時(shí)間段對(duì)照表
在交通信號(hào)燈控制系統(tǒng)程序設(shè)計(jì)中,大多采用步進(jìn)指令、位移指令、置位/復(fù)位指令等功能指令進(jìn)行程序設(shè)計(jì),雖然比一般的基本指令編寫(xiě)的程序簡(jiǎn)單、易懂,但中間輔助元件比較多,對(duì)程序設(shè)計(jì)帶來(lái)很大的不便。根據(jù)觸點(diǎn)比較指令和MOV指令的特點(diǎn),結(jié)合交通燈的控制要求,利用傳送指令法和比較指令法進(jìn)行程序設(shè)計(jì),具有編程簡(jiǎn)單、邏輯清晰、易學(xué)易懂、易于實(shí)現(xiàn)控制等特點(diǎn)。
觸點(diǎn)比較指令可以方便地表達(dá)指令意思,利用時(shí)間作為字元件比較的條件,可以實(shí)現(xiàn)交通信號(hào)燈的控制。
圖3用數(shù)軸的方式列出了交通燈在不同時(shí)間段工作的八種狀態(tài)(①~⑧)。狀態(tài)①~⑧的時(shí)間分別為 30S、25S、3S、2S、30S、25S、3S、2S, 將這八個(gè)時(shí)間作為交通燈是否處于工作狀態(tài)的條件進(jìn)行比較,只要滿(mǎn)足條件,常開(kāi)觸點(diǎn)就會(huì)閉合,即輸出線(xiàn)圈就會(huì)通電。其控制程序如圖4所示。
圖4 觸點(diǎn)比較指令實(shí)現(xiàn)交通燈
圖4可以看出每一個(gè)輸出繼電器的線(xiàn)圈是唯一的,避免了雙線(xiàn)圈錯(cuò)。“大于K250,小于K280”的表達(dá)需要使用兩條觸點(diǎn)比較指令:LD>=和AND<,因此當(dāng)前交通燈的狀態(tài)為“南北方向綠閃”。通過(guò)這個(gè)例子可以看到觸點(diǎn)比較指令只有常開(kāi)類(lèi),只要它本身判斷的結(jié)果是正確的,所在的位置就相當(dāng)于一個(gè)閉合的觸點(diǎn)可以讓電流從它身上流過(guò)。
傳送指令MOV是傳送數(shù)據(jù)的功能,同樣的要求,利用位操作的方法可以實(shí)現(xiàn)交通燈的控制。
利用計(jì)算機(jī)二進(jìn)制的工作原理,四位二進(jìn)制數(shù)組成一位十六進(jìn)制數(shù)。因此,可將系統(tǒng)輸出看作二位十六進(jìn)制數(shù),在計(jì)算機(jī)運(yùn)算中“1”代表此元件處于工作狀態(tài),“0”代表此元件處于不工作狀態(tài)。如輸出有變化,只要修改輸出字的數(shù)值,而無(wú)需逐項(xiàng)修改程序,體現(xiàn)了很大的便利性和可操作性。
根據(jù)圖3可知,時(shí)間段Ⅰ~Ⅶ的時(shí)間分別為20S、3S、2S、20S、3S、2S, 在每一時(shí)間段各燈的工作狀態(tài)如表3所示。
在表3中可以發(fā)現(xiàn),為了是綠燈可以閃,可以給線(xiàn)圈組K2Y0(Y0-Y7)以不同的數(shù)來(lái)實(shí)現(xiàn)。在編程前必須理解表3中各時(shí)間段下所有Y代表的意義;例如 K2Y0=00010001時(shí),由于 Y4、Y1均為 1,因此當(dāng)前交通燈的狀態(tài)為“東西方向紅,南北方向綠”。
表3 交通燈各時(shí)間段的0、1表示
使用表3來(lái)設(shè)計(jì)交通燈控制程序的梯形圖,如圖5所示。
圖5 傳送指令實(shí)現(xiàn)交通燈控制
圖5有雙線(xiàn)圈的問(wèn)題存在,但在程序中有很多條給K2Y0送入數(shù)值的指令,它們都是對(duì)線(xiàn)圈Y0-Y7操作,當(dāng)圖5有多條觸點(diǎn)比較指令滿(mǎn)足,則MOV指令給K2Y0送數(shù)的功能均會(huì)執(zhí)行,但由于循環(huán)掃描最終保存的是最下面執(zhí)行的程序行,因此這里的“雙線(xiàn)圈”不會(huì)造成交通燈控制上的邏輯錯(cuò)誤。
功能指令本身給編程者提供了很大的想象空間。在編制程序的過(guò)程中,僅使用可編程序控制器的基本邏輯指令是遠(yuǎn)遠(yuǎn)不夠的。如果能應(yīng)用一些功能指令,可以使編程問(wèn)題比較順利地得到解決,編寫(xiě)程序才會(huì)得心應(yīng)手,靈活多變,收到意想不到的效果。
到目前為止,我們很多方法實(shí)現(xiàn)交通信號(hào)燈的控制,例如:基本指令法、步進(jìn)指令法、位移指令法、觸點(diǎn)比較法、傳送指令法等,每一種方法面對(duì)的控制任務(wù)都是相同的,從這里我們可以看到,程序執(zhí)行有快慢、算法有優(yōu)劣,切入點(diǎn)不同可以有不同的方法達(dá)到同樣的控制效果。
[1]秦偉.凸輪順控指令的程序設(shè)計(jì)與實(shí)踐 [J].機(jī) 械工程與自動(dòng)化,2012(3):136-138.
[2]PLC項(xiàng)目式教學(xué)、競(jìng)賽與工程實(shí)踐[M].北京:機(jī) 械工業(yè)出版社,2012.
[3]廖常初,周林.可編程序控制器的功能指令及其 應(yīng)用(一)FX系列PLC功能指令概述[J].電工技術(shù),1999(7):16-19
[4]呂玫.功能指令在PLC程序中的應(yīng)用[J].無(wú)錫職 業(yè)技術(shù)學(xué)院學(xué)報(bào),2006(4):38-40.
[5]宓哲民,顏見(jiàn)明.功能指令在計(jì)時(shí)控制電路中之應(yīng)用[J].可編程控制器與工廠(chǎng)自動(dòng)化,2010(12):110-113.