用戶使用CPU315-2DP的CPU實(shí)現(xiàn)一個很復(fù)雜的工藝控制,時(shí)間要求很嚴(yán)格,有很多時(shí)間序列,例如A點(diǎn)信號為1后觸發(fā)定時(shí)器1,定時(shí)5秒鐘,時(shí)間到后,輸出一電平給B點(diǎn),觸發(fā)定時(shí)器2,延遲3秒后,采集C傳感器的值,觸發(fā)定時(shí)器3,并每隔10秒計(jì)算一下(有個公式)等等,類似這樣的工藝有很多段,每段都不太一樣,使用定時(shí)器數(shù)量也不一樣,用戶程序編了,但還沒完成,因?yàn)槎〞r(shí)器不夠用了,超過了plc能提供的定時(shí)器數(shù)量256個,所以就有了上面的那些報(bào)怨。
總結(jié)一下,用戶報(bào)怨西門子plc能提供的定時(shí)器數(shù)量太少不夠用,不能滿足用戶的需求(終于聽明白了)。
聽完用戶的問題,用戶也平靜了許多,我心里也有底了。首先我沒有給用戶直接的答案,而是先關(guān)心一下用戶調(diào)試程序的困難,我只是說了句:“您調(diào)試程序是不是不太方便啊?”我的話音剛落,用戶的話匣子又打開了,訴苦啊,調(diào)試不方便,定時(shí)器走亂了,互相條件依存太多, ……總之沒有好用的地方,快被折磨死了。聽完用戶所言后提醒自己,別再往用戶“傷口” 上撒鹽了,還是開藥方吧,先把病看好了,接下來再聊別的。
不夠用可以使用IEC定時(shí)器(SFB3-SFB5),只要CPU容量夠用,數(shù)量沒有限制,顯然用戶不知道此信息,否則他就不會報(bào)怨定時(shí)器不夠用了,如果真的使用了IEC定時(shí)器編程,估計(jì)用戶的程序會有一半是定時(shí)器的程序了,所以我先沒有告訴他,免得又引出很多話,用戶也不容易啊。
那給用戶開了什么藥方了呢?
方子很簡單:定時(shí)器一個,加法指令一個(MW0=MW0+1)。
使用方法:因?yàn)橛脩羲卸〞r(shí)器使用的時(shí)間單位都是秒,于是就將T1設(shè)定成1秒的定時(shí)器,程序運(yùn)行后啟動定時(shí)器,然后在定時(shí)時(shí)間到后執(zhí)行MW0=MW0+1,即每定時(shí)到1秒鐘MW0就加1,這樣通過判斷MW0的值就會得出相應(yīng)的計(jì)時(shí)時(shí)間(秒),并能判斷出時(shí)間過了多少秒,例如MW0=10,就是10秒,當(dāng)MW0數(shù)值達(dá)到最大定時(shí)時(shí)間值后可以清零。這樣就很好的滿足了用戶的需求,解決了問題,同時(shí)程序結(jié)構(gòu)比較清晰,不容易亂。