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