沈盛陽,徐 凱,唐 堅(jiān)
(揚(yáng)力集團(tuán)股份有限公司,江蘇 揚(yáng)州 225000)
當(dāng)前的沖壓現(xiàn)場,智能化儀表的應(yīng)用十分廣泛,現(xiàn)場管理的上位機(jī)往往需要讀取這些儀表的實(shí)時(shí)數(shù)據(jù),以便進(jìn)一步的監(jiān)控,很多智能儀表由于成本的因素,更多的選擇開放程度高的串行通信。西門子的S7-1500PLC由于其強(qiáng)大的運(yùn)算控制能力,成為沖壓設(shè)備電氣控制的首選,那么研究二者之間的串行通信就顯得很有必要。
TIA博途軟件是西門子公司近期發(fā)布的一款全新的集成自動化軟件,將其全部自動化組態(tài)設(shè)計(jì)工具完美地整合在一個(gè)開發(fā)環(huán)境之中,提供了一個(gè)統(tǒng)一的工程開發(fā)平臺。TIA博途軟件包含STEP7、WinCC、Startdrive和SCOUT四個(gè)組件,本文主要介紹STEP7的運(yùn)用。需要注意的是,在安裝TIA博途軟件V14以上版本時(shí),推薦使用Windows 7 64位操作系統(tǒng)。
串行通信主要用于連接電力表、掃描儀、閱讀器等帶有串行通信接口的設(shè)備,本文中涉及到的MODBUS RTU就屬于串行通信的范疇。西門子的S7-1500 PLC的串行通信接口有RS-232、RS-422/485兩種類型。RS-232接口的最大通訊距離為15m,為9針串行接口,且只能連接單個(gè)設(shè)備。RS-422/485的接口最大通信距離為1200m,為15針串行接口,可以連接多個(gè)設(shè)備??稍赥IA博途軟件中對RS-422/485串行接口的配置,選擇該口作為RS-422接口或者RS-485接口使用。其中RS-422為4線全雙工模式,RS-485為2線制半雙工模式。
本文以S7-1500的CPU1511-1PN和CM PtP RS422/485 HF為例進(jìn)行配置,具體型號見表1。
表1 硬件配置
硬件配置完畢后,按照圖1所示接線,注意,15針連接頭引腳4接從站端的低電平端子,引腳11接從站端的高電平端子。如果連接的電纜(雙絞線)長度超過50m,則需要在接收端焊一個(gè)330Ω的終端電阻。
圖1 硬件接線
在TIA博途軟件的STEP7的組件中調(diào)用函數(shù)Modbus_Comm_Load,來初始化串口參數(shù),程序如圖2所示。具體的參數(shù)說明,REQ:出現(xiàn)上升沿時(shí),進(jìn)行端口初始化,將接口參數(shù)寫入到模塊中;PORT:通信模塊的硬件標(biāo)識符,安裝組態(tài)完CM PtP RS422/485 HF模塊后,便可在機(jī)架上設(shè)備組態(tài)的“硬件ID”找到端口值;BAUD:選擇數(shù)據(jù)傳輸速率,本例中選擇默認(rèn)值(9600);PARITY: 選擇奇偶校驗(yàn),0—無,1—奇校驗(yàn),2—偶校驗(yàn),本例中選擇默認(rèn)值(0);FLOW_CTRL:選擇流控制,本例中選擇默認(rèn)值(0);RTS_ON_DLY:RTS接通延遲選擇,本例中選擇默認(rèn)值(0);RTS_OFF_DLY:RTS關(guān)斷延遲選擇,本例中選擇默認(rèn)值(0);RESP_TO:響應(yīng)超時(shí),本例中選擇默認(rèn)值(1000);MB_DB:對函數(shù) Modbus_Master背景數(shù)據(jù)塊的引用,用于將初始化的結(jié)果與MODBUS主站進(jìn)行關(guān)聯(lián),參數(shù)為背景數(shù)據(jù)塊中的靜態(tài)變態(tài)MB_DB;DONE:如果上一個(gè)請求完成并沒有錯(cuò)誤,那么本例中的M3000.0輸出為高電平“1”,并保持一個(gè)周期。ERROR:如果上一個(gè)請求出錯(cuò),那么本例中的M3000.1輸出為高電平“1”,并保持一個(gè)周期。STATUS:錯(cuò)誤代碼,如果有錯(cuò)誤存儲在本例中的MW4000。最后,需要在在該數(shù)據(jù)背景塊的靜態(tài)變量中,將MODE參數(shù)設(shè)為4,表示使用半雙工(RS-485)二線制模式。
接著,繼續(xù)調(diào)用函數(shù)Modbus_Master,讀取從站的數(shù)據(jù),如圖3所示。具體參數(shù)說明,REQ:發(fā)送請求,該參數(shù)為高電平信號“1”時(shí),啟動該模塊,這里要注意,因?yàn)镽S-485為半雙工機(jī)制,如果讀取多個(gè)從站參數(shù)時(shí),應(yīng)該編寫一段輪詢程序,輪流啟動函數(shù)Modbus_Master,這樣不會有沖突;MB_ADDR:讀取從站的地址,本例中設(shè)定為2;MODE:0—讀取,1—寫入,本例只讀取從站的參數(shù),故設(shè)定為0;DATA_ADDR:從站保持寄存器的首地址,根據(jù)西門子MODBUS RTU通訊模式對應(yīng)的功能碼及地址,這里設(shè)為40001;DATA_LEN:從站保持寄存器的數(shù)據(jù)長度,因?yàn)楸纠枰x取6個(gè)字。這里就設(shè)定為6;DA-TA_PTR:指向數(shù)據(jù)緩沖區(qū)的指針,該緩沖區(qū)用于存儲MODBUS從站讀取的數(shù)據(jù),本例將地址為2的電子凸輪40001-40006數(shù)據(jù)區(qū)域讀出,存放在PLC的DB15.DBW30-DB15.DBW35中。其余參數(shù)的含義與上文函數(shù)Modbus_Comm_Load的一致,就不再贅述。
圖2 主站MODBUS通信模塊參數(shù)初始化
圖3 主站通信程序
將編譯好的程序下載到PLC后,監(jiān)控相應(yīng)的數(shù)據(jù)塊,就會看到我們需要的從站數(shù)據(jù)已經(jīng)讀取到PLC上。
本文所述的西門子S7-1500串行通信的應(yīng)用對壓機(jī)的智能制造有很大的提升,不僅能提高生產(chǎn)效率,也能滿足客戶數(shù)據(jù)采集的要求,集合MES系統(tǒng),進(jìn)一步夯實(shí)了“智能化、無人化”車間的基礎(chǔ)。