在百度看到很多討論“西門子s7-200子程序調(diào)用定時(shí)器”的帖子,有朋友發(fā)帖說在子程序中使用了定時(shí)器當(dāng)主程序多次調(diào)用該子程序時(shí)發(fā)現(xiàn)程序的邏輯無法正常執(zhí)行?
其實(shí)在條件調(diào)用子程序中,當(dāng)停止子程序調(diào)用時(shí),如果定時(shí)器已被激活計(jì)時(shí)這種情況下步停止調(diào)用該子程序會(huì)造成定時(shí)器的失控。使用條件調(diào)用含有定時(shí)器的子程序時(shí),一定要注意定時(shí)器的分辨率和時(shí)序邏輯,以免造成程序運(yùn)行錯(cuò)誤,如果多次調(diào)用該子程序,可能會(huì)發(fā)生程序失控,這種情況下定時(shí)器一般只按照首次被調(diào)用時(shí)計(jì)時(shí)。如果用step7編寫fc塊多次調(diào)用定時(shí)器是沒問題的。因?yàn)閟7-200和s7-300在硬件和軟件上都是不同的,沒有類比性,在step7定義局部變量時(shí)定時(shí)器可以設(shè)置成參數(shù),而microwin中局部變量定義里沒有定時(shí)器類型,只能用固定編號(hào)的定時(shí)器。
s7-200的功能確實(shí)不夠綠色,定時(shí)器個(gè)數(shù)是有限的,但是可以通過寫程序來實(shí)現(xiàn)定時(shí)功能,這樣就不存在定時(shí)器被多次調(diào)用的問題了,定時(shí)器實(shí)際上就是讀取cpu內(nèi)部晶振的次數(shù),可以用定時(shí)器中斷或是sm0.5編寫子程序。
s7-200是一款通用性很強(qiáng)大的產(chǎn)品,直接提供的功能有限,但是可以不斷的思考,通過編程等方式獲得產(chǎn)品更大的利用空間。