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