《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 一些PLC編程經(jīng)驗(yàn)分享

一些PLC編程經(jīng)驗(yàn)分享

2018-07-20
關(guān)鍵詞: PLC 編程 TON

  一,、時(shí)間繼電器:

  TON 使能=1計(jì)數(shù),,計(jì)數(shù)到設(shè)定值時(shí)(一直計(jì)數(shù)到32767),定時(shí)器位=1,。使能=0復(fù)位(定時(shí)器位=0),。

  TOF 使能=1,定時(shí)器位=1,,計(jì)數(shù)器復(fù)位(清零),。使能由1到0負(fù)跳變,計(jì)數(shù)器開(kāi)始計(jì)數(shù),,到設(shè)定值時(shí)(停止計(jì)數(shù)),,定時(shí)器位=0。如下圖:

1.jpg

  圖1:使能=1時(shí),,TOF(T38)的觸點(diǎn)動(dòng)作圖

2.jpg

  圖2:使能斷開(kāi)后,計(jì)數(shù)到設(shè)定值后,,TOF(T38)的觸點(diǎn)動(dòng)作圖(其中T38常開(kāi)觸點(diǎn)是在使能由1到0負(fù)跳變后計(jì)數(shù)器計(jì)時(shí)到設(shè)定值后變?yōu)?的)

  TONR 使能=1,,計(jì)數(shù)器開(kāi)始計(jì)數(shù),計(jì)數(shù)到設(shè)定值時(shí),計(jì)數(shù)器位=1,。使能斷開(kāi),,計(jì)數(shù)器停止計(jì)數(shù),計(jì)數(shù)器位仍為1,,使能位再為1時(shí),,計(jì)數(shù)器在原來(lái)的計(jì)數(shù)基礎(chǔ)上計(jì)數(shù)。

  以上三種計(jì)數(shù)器可以通過(guò)復(fù)位指令復(fù)位,。

  正交計(jì)數(shù)器 A相超前B相90度,,增計(jì)數(shù)

  B相超前A相90度,減計(jì)數(shù)

  當(dāng)要改變計(jì)數(shù)方向時(shí)(增計(jì)數(shù)或減計(jì)數(shù)),,只要A相和B相的接線交換一下就可以了,。

  二、譯碼指令和編碼指令:

  譯碼指令和編碼指令執(zhí)行結(jié)果如圖所示:

3.jpg

  DECO是將VW2000的第十位置零(為十進(jìn)制的1024),,ENCO輸入IN最低位為1的是第3位,,把3寫(xiě)入VB10(二進(jìn)制11)。

  三,、填表指令(ATT)

  S7-200填表指令(ATT)的使能端(EN)必須使用一個(gè)上升沿或下降沿指令(即在下圖的I0.1后加一個(gè)上升沿或下降沿),,若單純使用一個(gè)常開(kāi)觸點(diǎn),就會(huì)出現(xiàn)以下錯(cuò)誤:

4.jpg

  這一點(diǎn)在編程手冊(cè)中也沒(méi)有說(shuō)明,,需要注意,。其他的表格指令也同樣。

  四,、數(shù)據(jù)轉(zhuǎn)換指令

  使用數(shù)據(jù)轉(zhuǎn)換指令時(shí),,一定要注意數(shù)據(jù)的范圍,數(shù)據(jù)范圍大的轉(zhuǎn)換為數(shù)據(jù)范圍小的發(fā)注意不要超過(guò)范圍,。如下圖所示為數(shù)據(jù)的大小及其范圍,。

  

5.jpg

  (1)BCD碼轉(zhuǎn)化為整數(shù)(BCD_I)

  BCD碼轉(zhuǎn)化為整數(shù),,我是這樣理解的:把BCD碼的數(shù)值看成為十進(jìn)制數(shù),,然后把BCD到整數(shù)的轉(zhuǎn)化看成是十進(jìn)制數(shù)到十六進(jìn)制數(shù)的轉(zhuǎn)化。如下圖所示,,BCD碼為54,,轉(zhuǎn)化為整數(shù)后為36。

1.jpg

  整數(shù)轉(zhuǎn)化為BCD碼(I_BCD)則正好相反,,看成是十六進(jìn)制到十進(jìn)制的轉(zhuǎn)化,。

  (2)整數(shù)轉(zhuǎn)化為雙整數(shù)(I_DI)

  此問(wèn)題需要注意的是:整數(shù)轉(zhuǎn)化為雙整數(shù)后,,符號(hào)位被擴(kuò)展,,因?yàn)檎麛?shù)的精度小于雙整數(shù)的精度,,轉(zhuǎn)化后,雙整數(shù)除了表示整數(shù)的數(shù)值所占的位外,,其余空位用符號(hào)位填充,。如整數(shù)45轉(zhuǎn)化為雙整數(shù)后,基二進(jìn)制表示為:2#0000_0000_0000_0000_0000_0000_0010_1101,,而整數(shù)-45轉(zhuǎn)化為雙整數(shù)后則為:2#1111_1111_1111_1111_1111_1111_1101_0011,。

  五、不要重復(fù)使用PLC輸出線圈

  基本邏輯指令中常開(kāi)接點(diǎn)和常閉接點(diǎn),,作為使能的條件,,在語(yǔ)法上和實(shí)際編程中都可以無(wú)限次的重復(fù)使用。

  PLC輸出線圈,,作為驅(qū)動(dòng)元件,,在語(yǔ)法上是可以無(wú)限次的使用。但在實(shí)際編程中是不應(yīng)該的,,應(yīng)該避免使用的,。因?yàn)椋谥貜?fù)使用的輸出線圈中只有程序中最后一個(gè)是有效的,,其它都是無(wú)效的,。輸出線圈具有最后優(yōu)先權(quán)。

  如圖1和2所示,。

2.jpg

  輸出線路未重復(fù)使用

3.jpg

  輸出線路未重復(fù)使用

  圖1:輸出線路未重復(fù)使用  圖2:輸出線路未重復(fù)使用

  圖1所示,,輸出線圈Q0.0是單一使用,表示I0.0和I0.1兩個(gè)常開(kāi)接點(diǎn)中任何一個(gè)閉合,,輸出線圈都得電輸出,。

  圖2所示,輸出線圈Q0.0是重復(fù)使用,,在網(wǎng)絡(luò)1和網(wǎng)絡(luò)2中重復(fù)使用兩次,,目的和圖1所示一樣,要求I0.0和I0.1兩個(gè)常開(kāi)接點(diǎn)中任何一個(gè)閉合,,輸出線圈得電輸出,。

  首先需要肯定是圖2所示的程序在語(yǔ)法上是完全正確的。但是,,Q0.0重復(fù)使用的輸出線圈中,,真正有效的是網(wǎng)絡(luò)2,網(wǎng)絡(luò)1是多余的,、無(wú)效的,。也就是說(shuō),I0.0無(wú)論是閉合還是斷開(kāi),,都對(duì)Q0.0不起作用,,Q0.0是否得電是由I0.1決定的,。

  這是因?yàn)镻LC在一個(gè)掃描周期中,PLC輸出點(diǎn)的刷新是在程序執(zhí)行完畢后執(zhí)行的,,在一個(gè)掃描周期中,即使I0.0閉合,,I0.1斷開(kāi),,在PLC程序執(zhí)行網(wǎng)絡(luò)1時(shí),輸出點(diǎn)Q0.0映像存儲(chǔ)器為1,,在執(zhí)行網(wǎng)絡(luò)2時(shí),,輸出點(diǎn)Q0.0映像存儲(chǔ)器又變?yōu)?。diangon.com程序執(zhí)行完畢,,PLC輸出點(diǎn)才執(zhí)行刷新,,最終輸出點(diǎn)Q0.0失電不輸出。同理,,在一個(gè)掃描周期中,,I0.0斷開(kāi),I0.1閉合,,輸出點(diǎn)Q0.0映像存儲(chǔ)器最終為1,,在PLC輸出點(diǎn)執(zhí)行刷新時(shí),輸出點(diǎn)得電輸出,。因此,,圖2所示的程序中,對(duì)Q0.0起作用的只是I0.1,。

  因此,,在PLC編程時(shí),重復(fù)使用數(shù)出線圈,。盡管在語(yǔ)法上是正確的,,但是應(yīng)該避免使用的。

  幾種置位,、復(fù)位的方法和比較

  位置位,、復(fù)位操作方法上,有好幾種方法,,可以直接采用置位,、復(fù)位指令,也可以采用數(shù)據(jù)傳送指令,、表格填充指令,,甚至可以采用移位循環(huán)指令。

  這幾種方法在具體運(yùn)用時(shí),,也要根據(jù)情況而定,。下面用一個(gè)范例來(lái)講解他們的不同之處,。要求對(duì)Q0.0~0.7、Q1.0~1.7十六位輸出進(jìn)行置位,、復(fù)位,。

4.jpg

  幾種置位、復(fù)位的方法

  在以上幾種方法中,,除移位循環(huán)指令外,,其他指令比較好理解。

  移位循環(huán)指令的方法,,置位是對(duì)16#FFFF十六位常數(shù)左循環(huán)16位,,送入輸出字QW0(由Q0.0~0.7、Q1.0~1.7組成),,無(wú)論16#FFFF如何循環(huán),,還是16#FFFF,16位輸出,。復(fù)位采用對(duì)QW0一次掃描周期一次執(zhí)行16位左移位指令,,將QW0中的數(shù)據(jù)全部移出(如果是帶符號(hào)位的字,連符號(hào)位也移出),,輸出復(fù)位,。

  在上面的方法中,直接采用置位,、復(fù)位的方法不僅可以對(duì)字節(jié),、字、雙字中的位進(jìn)行置位,、復(fù)位操作,,也可以對(duì)不成字節(jié)、字,、雙字的位進(jìn)行操作,。而數(shù)據(jù)傳送指令、移位循環(huán)指令,、填充指令只能對(duì)字節(jié),、字、雙字中的位進(jìn)行置位,、復(fù)位操作,,其中填充指令還只能對(duì)字操作。

  比如單單對(duì)Q0.0~0.6七個(gè)位輸出進(jìn)行置位,、復(fù)位,,采用數(shù)據(jù)傳送指令、移位循環(huán)指令,、填充指令是很難實(shí)現(xiàn)的,,此時(shí)只有采用直接置位,、復(fù)位指令的方法。

 

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]