付純連
(通用技術集團大連機床有限責任公司,遼寧 大連 116620)
西門子840Dsl系統(tǒng)的NC程序可以在單程序段上編5組M功能,用于輔助動作的執(zhí)行。針對M功能,西門子提供了動態(tài)和靜態(tài)兩種NCK到PLC的接口地址。動態(tài)M功能接口地址可以將單程序段上的5組M0到M99這100個M功能一一對應的直接輸出給PLC。當需要使用M100以后的M功能時,沒有動態(tài)接口地址可以使用,只有將靜態(tài) M功能接口地址通過PLC程序處理后,才能得到一一對應的PLC地址。由于每增加一個M功能,都需要增加相應的PLC程序,程序編制的重復工作多。因此,我們編制對靜態(tài)M功能接口地址譯碼的程序,減少重復性的PLC程序編制工作,增強PLC程序的結構化、模塊化和通用性。
有關NCK到PLC的靜態(tài)M功能接口地址見表1。
表1 靜態(tài)M功能接口地址表
同時,我們還需要建一個用于存儲M功能譯碼地址的DB塊。在本文中,DB塊的容量是50個字節(jié),譯碼位地址是DBX0.0~DBX49.7,用于存儲M0到M399共計400個M功能。
在對西門子840Dsl系統(tǒng)的靜態(tài)M功能接口地址譯碼時,需要用雙字指針(參數(shù)類型pointer)確定譯碼后的地址。雙字指針(參數(shù)類型pointer)用于存儲器間接尋址,它具有32bit的結構:0000 0000 0000 0BBB BBBB BBBB BBBB BXXX,其中0-2bit(3個X)的數(shù)值表示被尋址的位地址,3-18bit(16個B)的數(shù)值表示被尋址的字節(jié)地址。通過雙字指針確定具體地址byte.bit,例如,11011表示地址為3.3。
在對靜態(tài)M功能接口地址譯碼時,我們先計算出譯碼后的字節(jié)地址和位地址,然后根據(jù)雙字指針格式,將字節(jié)地址左移三位,再與位地址進行或運算,就可以得到最終的譯碼地址并將譯碼地址置1。
同時,對靜態(tài)M功能接口地址的處理,需要滿足以下要求:
(1)能夠完成在NC程序的單程序段上執(zhí)行多組M功能;
(2)程序段中的M功能不論在第幾組,具有唯一的PLC地址;
(3)M功能的PLC地址只保持一個PLC掃描周期;
(4)當M功能超過最大數(shù)量時,NC讀入禁止并有信息顯示。
按照要求,編制流程圖,見圖1。
圖1 多組M功能譯碼流程圖
在實際應用中,通過在PLC程序中對西門子840Dsl靜態(tài) M功能接口地址的譯碼處理,譯碼結果準確,可以實現(xiàn)在西門子NC程序的單程序段上編制、執(zhí)行多組M功能,增強了PLC程序的結構化、模塊化和通用性,同時大幅減少了編制PLC程序的工作量。