如何使用S7-12001500的系統位與時鐘位?
在PLC的程式設計中,有時候會有這種需求:希望某段邏輯一直為真(1)或一直為假(0);希望某段程式僅在PLC啟動後執行一次;希望有一個頻率固定的時鐘脈衝來進行通訊或控制報警燈。所有這些需求,都可以手動程式設計來實現。但我今天想給大家介紹的一個小技巧,不需要任何程式設計,利用S7-1200/1500 CPU本身提供的系統位元組位(System Byte Bits)與時鐘位元組位(Clock Byte Bits)來實現上述功能。
所謂“系統位元組位”,是指系統位元組(byte)中的位(bit)。
這裡的“系統位元組”,是在CPU的硬體配置中指定的一個M儲存區的位元組。當將硬體配置下載到CPU之後,作業系統會對該位元組的某些位進行寫操作,以實現特定的功能(比如:某個位常為1,某個位常為0)。
時鐘位元組與系統位元組類似,也是在硬體配置中指定的M儲存區的位元組,它的位(bits)可以週期性的變化。
我們以CPU1215C為例,開啟其硬體組態,在屬性頁面中,找到“系統與時鐘儲存區(System and clock memory)”,如下圖:
可以看到,預設情況下,系統位元組位與時鐘位元組位都沒有啟用。
透過勾選“使用系統儲存區位元組(Enable the use of system memory byte)”就可以啟用系統位元組位。系統預設使用位儲存區(M)的第一個位元組(Byte1)作為系統位元組。
系統位元組的值是可以修改的,其範圍在0~8191之間。
無論使用哪個位元組作為系統位元組,其0~7位(bits)都遵循如下規則:
使用預設的MB1作為系統位元組的硬體配置如下圖:
時鐘位元組(Clock byte)第0~7位的定義見下表:
使用預設MB0作為時鐘位元組的硬體配置如下圖:
注:S7-300/400中也支援時鐘位元組,但是不支援系統位元組。
硬體配置好之後,將其編譯下載到CPU中,便可以在程式中使用了。是不是很方便呢?
好了,關於S7-1200/1500的系統位元組位與時鐘位元組位就先介紹到這裡。如果你喜歡這篇文章,可以去官網(
http://www。
founderchip。com
)下載本文PDF版本。
有網友留言說希望文章配圖使用中文,我想聽聽你的看法。
知乎不支援投票,歡迎到公眾號founderchip中投票,我會根據大家的反饋修改以後的文章配圖。
點選下文開啟文章,裡面有投票:
如何使用S7-1200/1500的系統位與時鐘位?
小程式【李工談工控】提供方便的文章檢索功能,歡迎體驗: