西門子S7-200 PLC特殊繼電器使用技巧與編程指南 有些輔助繼電器具有特殊功能或存儲系統的狀態變量、有關的控制參數和信息,我們稱為特殊標志繼電器。用戶可以通過特殊標志來溝通PLC與被控對象之間的信息,如可以讀取程序運行過程中的設備狀態和運算結果信息,利用這些信息用程序實現一定的控制動作。用戶也可通過直接設置某些特殊標志繼電器位來使設備實現某種功能。
特殊標志繼電器用“SM”表示,特殊標志繼電器區根據功能和性質不同具有位、字節、字和雙字操作方式。其中SMB0、SMB1為系統狀態字,只能讀取其中的狀態數據,不能改寫,可以位尋址。系統狀態字中部分常用的標志位說明如下:
SM0.0:始終接通;
SM0.1:首次掃描為1,以后為0,常用來對程序進行初始化;
SM0.2:當機器執行數學運算的結果為負時,該位被置1;
SM0.3:開機后進入RUN方式,該位被置1一個掃描周期;
SM0.4:該位提供一個周期為1分鐘的時鐘脈沖,30秒為1,30秒為0;
SM0.5:該位提供一個周期為1秒鐘的時鐘脈沖,0.5秒為1,0.5秒為0;
SM0.6:該位為掃描時鐘脈沖,本次掃描為1,下次掃描為0;
SM1.0:當執行某些指令,其結果為0時,將改位置1;
SM1.1:當執行某些指令,其結果溢出或為非法數值時,將改位置1;
SM1.2:當執行數學運算指令,其結果為負數時,將改位置1;
SM1.3:試圖除以0時,將改位置1;
S7-200中SM0.0的用法: 1、SM0.0在程序運行時始終為ON。
2、SM0.0是一個無條件的常閉觸點,用來啟動無條件運行的指令。
只要上電,SM0.0必然是“1”。因此程序中那些不受任何條件限制,必須要執行的指令就用它作為觸發觸點。
3、問:程序有時要在指令前加SM0.0,為什么不直接連在母線上,不是一樣嗎?
最佳答案: 因為,S7-200的指令是不能直接連在“母線”上的,這不符合語法要求。
SM0.0是不可控的觸點,適用于無條件觸發的場合,并非每個指令都需要SM0.0。在其它場合,要用可控制的觸點來觸發指令,如I0.0、M0.0或各種比較指令等等。如果沒有可控觸點可用,就只能用SM0.0。
其他答案: a、S7200編程中有規定,在輸出類指令前必須有觸點指令,有的時候輸出指令不需要條件直接輸出為1,但為了滿足這樣的編程約定就串連常為1的sm0.0在前面。
b、不同PLC廠家都有自己語法規定,SIEMENSS7-200梯形圖就這樣要求的,不能母線直接連輸出指令(或子程序調用)。
c、一個程序用不用SM0.0在于多方面的需要,如果你不需要也能完成控制要求那不用當然好了。不過對于一些指令你還是非用它不可呢!另外在調試程序時它還是你的好幫手呢!
基本指令 一關于狀態字(SM) 01、SMB0包括8個狀態位(SM0.0/SM0.1/SM0.2/SM0.3/SM0.4/SM0.5/SM0.6/SM0.7)
02、SMB1包含了各種潛在的錯誤提示,可在執行某些指令或執行出錯時由系統自動對相應進行置位或復位.
03、SMB2在自由接口通信時,自由接口接收字符的緩沖區.
04、SMB3在自由接口通信時,發現接收到的字符中有奇偶效驗錯誤時,可將SM3.0置位.
05、SMB4標志中斷隊列是否溢出或通信接口使用狀態.
06、SMB5標志I/O系統錯誤.
07、SMB6CPU模塊識別(ID)寄存器.
08、SMB7系統保留
09、SMB8-SMB21I/O模塊識別和錯誤寄存器,按字節對形式(相鄰兩個字節)存儲擴展模塊0-6的模塊類型、I/O類型、I/O點數和測得的各模塊I/O錯誤.
10、SMB22-SMB26記錄系統掃描時間.
11、SMB28-SMB29存儲CPU模塊自帶的模擬電位器所對應的數字量.
12、SMB30-SMB130SMB30為自由接口通信時,自由接口0的通信方式控制字節;SMB130為自由接口通信時,自由接1的通信方式控制字節;兩字節可讀可寫。
13、SMB31-SMB32永久存儲器(EEPROM)寫控制.
14、SMB34-SMB35用于存儲定時中斷的時間間隔.
15、SMB36-SMB65高速計數器HSC0、HSC1、HSC2的監視及控制寄存器.
16、SMB66-SMB85高速脈沖輸出(PTO/PWM)的監視及控制寄存器.
17、SMB86-SMB94自由接口通信時,接口0或接口1接收信息狀態寄存器.
18、SMB186-SMB194自由接口通信時,接口0或接口1接收信息狀態寄存器.
19、SMB98-SMB99標志擴展模塊總線錯誤號.
20、SMB131-SMB165高速計數器HSC3、HSC4、HSC5的監視及控制寄存器.
21、SMB166-SMB194高速脈沖輸出(PTO)包絡定義表.
22、SMB200-SMB299預留給智能擴展模塊,保存其狀態信息