在PLC的程序設(shè)計(jì)中,有時(shí)候會(huì)有這種需求:希望某段邏輯一直為真(1)或一直為假(0);希望某段程序僅在PLC啟動(dòng)后執(zhí)行一次;希望有一個(gè)頻率固定的時(shí)鐘脈沖來(lái)進(jìn)行通信或控制報(bào)警燈。所有這些需求,都可以手動(dòng)編程來(lái)實(shí)現(xiàn)。但我今天想給大家介紹的一個(gè)小技巧,不需要任何編程,利用S7-1200/1500 CPU本身提供的系統(tǒng)字節(jié)位(System Byte Bits)與時(shí)鐘字節(jié)位(Clock Byte Bits)來(lái)實(shí)現(xiàn)上述功能。
所謂“系統(tǒng)字節(jié)位”,是指系統(tǒng)字節(jié)(byte)中的位(bit)。
這里的“系統(tǒng)字節(jié)”,是在CPU的硬件配置中指定的一個(gè)M存儲(chǔ)區(qū)的字節(jié)。當(dāng)將硬件配置下載到CPU之后,操作系統(tǒng)會(huì)對(duì)該字節(jié)的某些位進(jìn)行寫(xiě)操作,以實(shí)現(xiàn)特定的功能(比如:某個(gè)位常為1,某個(gè)位常為0)。
時(shí)鐘字節(jié)與系統(tǒng)字節(jié)類似,也是在硬件配置中指定的M存儲(chǔ)區(qū)的字節(jié),它的位(bits)可以周期性的變化。
我們以CPU1215C為例,打開(kāi)其硬件組態(tài),在屬性頁(yè)面中,找到“系統(tǒng)與時(shí)鐘存儲(chǔ)區(qū)(System and clock memory)”,如下圖:
可以看到,默認(rèn)情況下,系統(tǒng)字節(jié)位與時(shí)鐘字節(jié)位都沒(méi)有啟用。
通過(guò)勾選“使用系統(tǒng)存儲(chǔ)區(qū)字節(jié)(Enable the use of system memory byte)”就可以啟用系統(tǒng)字節(jié)位。系統(tǒng)默認(rèn)使用位存儲(chǔ)區(qū)(M)的個(gè)字節(jié)(Byte1)作為系統(tǒng)字節(jié)。
系統(tǒng)字節(jié)的值是可以修改的,其范圍在0~8191之間。
無(wú)論使用哪個(gè)字節(jié)作為系統(tǒng)字節(jié),其0~7位(bits)都遵循如下規(guī)則:
使用默認(rèn)的MB1作為系統(tǒng)字節(jié)的硬件配置如下圖:
時(shí)鐘字節(jié)(Clock byte)第0~7位的定義見(jiàn)下表:
使用默認(rèn)MB0作為時(shí)鐘字節(jié)的硬件配置如下圖:
注:S7-300/400中也支持時(shí)鐘字節(jié),但是不支持系統(tǒng)字節(jié)。
硬件配置好之后,將其編譯下載到CPU中,便可以在程序中使用了。是不是很方便呢?