計(jì)數(shù)器應(yīng)該說(shuō)也是每種PLC中都存在的一個(gè)指令目錄,以西門(mén)子PLC來(lái)說(shuō)的話,計(jì)數(shù)器指令目錄下邊有,增計(jì)數(shù)器、減計(jì)數(shù)器、增減計(jì)數(shù)器以及高速計(jì)數(shù)器。
高速計(jì)數(shù)一般需要特殊的點(diǎn)位或者專用的計(jì)數(shù)模塊來(lái)實(shí)現(xiàn)高速計(jì)數(shù)功能,因此并沒(méi)有增/減計(jì)數(shù)器這樣的計(jì)數(shù)器常用,因此我就以增計(jì)數(shù)器在PLC在編程中的使用方法和注意事項(xiàng)來(lái)答題吧。
我還是以西門(mén)子200Micro/win軟件來(lái)說(shuō),請(qǐng)看下圖:
先簡(jiǎn)單介紹一下梯形圖下的計(jì)數(shù)器指令和引腳:
這個(gè)圖片上的CTU就是一個(gè)增計(jì)數(shù)器,所謂增計(jì)數(shù)器就是計(jì)數(shù)時(shí)候是不斷的加1加1這樣慢慢增大的,CU就是增計(jì)數(shù)信號(hào)的引腳,你要計(jì)數(shù)的變化量信號(hào)要引入這個(gè)引腳。下邊的R就是復(fù)位計(jì)數(shù)器的計(jì)數(shù)值,比如最后C255處,M0.0如果接通,那么不管C255的當(dāng)前值為多少,都會(huì)變?yōu)?,即C255=0。而下邊的PV是一個(gè)預(yù)設(shè)值,這個(gè)值的作用是計(jì)數(shù)器的當(dāng)前值計(jì)數(shù)到和PV值相等的時(shí)候,計(jì)數(shù)器的節(jié)點(diǎn)信號(hào)就接通,如圖中網(wǎng)絡(luò)3處C1的常開(kāi)觸點(diǎn)就會(huì)接通。
再來(lái)說(shuō)一些計(jì)數(shù)器在編程使用中的注意事項(xiàng):
①圖中網(wǎng)絡(luò)1處C1計(jì)數(shù)器的當(dāng)前值是7,所以網(wǎng)絡(luò)3處C1計(jì)數(shù)器的節(jié)點(diǎn)信號(hào)沒(méi)有接通是off狀態(tài)。---這里說(shuō)明,計(jì)數(shù)器有線圈指令和節(jié)點(diǎn)信號(hào),它們的命名必須一致!這樣計(jì)數(shù)器計(jì)數(shù)到60的時(shí)候,網(wǎng)絡(luò)3處的C1節(jié)點(diǎn)才能接通!
②圖中網(wǎng)絡(luò)1和網(wǎng)絡(luò)2,C1=7,C100=7,他們都是由SM0.5觸發(fā)的(1s的時(shí)鐘脈沖信號(hào)),但是C100這里沒(méi)有上升沿P指令,而C1處有上升沿指令,但計(jì)數(shù)的結(jié)果是一樣的。---這里說(shuō)明,計(jì)數(shù)器指令是不需要配個(gè)邊沿指令也能準(zhǔn)確的計(jì)數(shù)的!
③圖片中可以看到我用了3個(gè)計(jì)數(shù)器指令,C1,C100,C255,其實(shí)計(jì)數(shù)器的編號(hào)比如C25,C36,隨你高興怎么起名字,但是在西門(mén)子200PLC中計(jì)時(shí)器的個(gè)數(shù)是有限制的編號(hào)只能在C0-C255這之間,如果你使用C256,則直接出現(xiàn)紅色波浪線提示非法!
這里說(shuō)了計(jì)數(shù)器編程使用中的3個(gè)注意事項(xiàng)了,再來(lái)看一個(gè)圖片:
這個(gè)圖片上可以看到C255=1了,因?yàn)镃1第一次等于60的時(shí)候,使得網(wǎng)絡(luò)3處的V0.0接通了一次,V0.0又觸發(fā)了C255進(jìn)行了一次計(jì)數(shù),就由0變?yōu)榱?。這里V0.0就變成了一個(gè)1分鐘的脈沖標(biāo)記位了,因?yàn)镾M0.5是1s的脈沖,它觸發(fā)計(jì)數(shù)器計(jì)數(shù)60次就自動(dòng)復(fù)位,這樣V0.0就等于60s的脈沖了。這樣的時(shí)間和計(jì)數(shù)器配合,來(lái)達(dá)到自己想要的時(shí)鐘信號(hào),在PLC編程中是非常常用的編程方法。
在這個(gè)圖片上看到C1=27,那是第二次計(jì)數(shù)到27;而網(wǎng)絡(luò)2處的C100=87的原因是R引腳的復(fù)位點(diǎn)是M0.1,我沒(méi)有讓M0.1接通,所以C100就一直在計(jì)數(shù)。當(dāng)C100計(jì)數(shù)到60的時(shí)候,它的節(jié)點(diǎn)其實(shí)也是接通了的,且目前C100=87的時(shí)候它的節(jié)點(diǎn)還是接通的。---這里就說(shuō)明了第④個(gè)注意事項(xiàng),計(jì)數(shù)器的當(dāng)前值大于等于PV預(yù)設(shè)值之后,計(jì)數(shù)器的節(jié)點(diǎn)指令就是一直接通的,它會(huì)一直計(jì)數(shù)到32767就沒(méi)法再繼續(xù)向上計(jì)數(shù)了,所以在編程的時(shí)候一定要注意對(duì)計(jì)數(shù)器的復(fù)位!
這里的32767,我在很多的答題中都反復(fù)的說(shuō)過(guò)了,這是16位字長(zhǎng)整數(shù)在有符號(hào)情況下的最大表示值,因此C計(jì)數(shù)器,它本身就是一個(gè)16位的指令,也因此PV處的變量也必須是整形變量,如下圖:
這個(gè)圖片上我要給C2計(jì)數(shù)器初始化賦值為0的話,就要用字傳送指令,因?yàn)镃2就是一個(gè)16位變量。同時(shí)C3的PV值關(guān)聯(lián)到VW10,因?yàn)镻V處也是要求16位變量。---因此計(jì)時(shí)器和PV引腳都需要是16位的整形變量,可以算是第⑤個(gè)注意事項(xiàng)!
就說(shuō)這么多了,應(yīng)該能對(duì)提問(wèn)者有所幫助,謝謝!