前言:西門子S7-200PLC廣泛應于工業控制領域,是一款性能高,運行穩定的控制器。此次我們要把西門子的S7-200PLC通過modbus驅動連接到EMCP物聯網云平臺(簡稱EMCP),實現電腦Web頁面、手機APP和微信對200PLC的遠程監控。
1) S7-200 一臺(建議使用CPU226 或 CPU224 有兩個串口的PLC,port1口做程序的下載和在線監視,port0做Modbus-RTU從站與EG20網關通訊)。也可以使用Smart200PLC(以下以老款200PLC做案例解說)。
2) 河北藍蜂科技的EG20網關一臺,天線和電源適配器(以下用EG20作為實例)。
3) SIM卡一張,有流量,大卡(移動、聯通或電信卡)。
4) DP9針公頭一個。
5) 聯網電腦一臺(WinXP/Win7/Win8/Win10操作系統)
物料準備如下;
網關相關技術參數與使用說明,可參考《EG20用戶使用手冊》。
1、 保證網關可以正常聯網,可通過4G卡(移動/聯通/電信流量卡,大卡)聯網(需接上隨網關附帶的天線)或通過網線聯網(需將路由器出來的網線接到網關的WAN口);
2、 網關接12V或24V直流電源,上電。(注意,電源正負極不要接反)。
200PLC連接電源(注意電源是24VDC還是220VAC),準備一顆9針串口頭(如下圖),用兩顆導線分別焊接的3和8引腳(200PLC系統手冊中有介紹,3和8引腳為RS485通訊口)。此時我們將PLC prot0串口的3引腳連接EG20網關的“RS485A”端子,8引腳連接EG20網關的“RS485B”端子。
1,將200PLC經編程電腦連接到電腦上,打開Step7-MicroWin編程軟件,新建工程,在主程序中添加Modbus Slave Port0功能塊(MBUS_INIT,MBUS_SLAVE)。
庫文件
•西門子Modbus從站協議庫包括兩條指令:MBUS_INIT 指令和MBUS_SLAVE 指令。
•MBUS_SLAVE 指令用于為Modbus主設備發出的請求服務。
•MBUS_INIT 指令用于啟用、初始化或禁止Modbus從站通訊。在使用MBUS_SLAVE 指令之前,必須正確執行MBUS_INIT 指令。指令完成后立即設定“完成”位,才能繼續執行下一條指令。
MBUS_INIT、MBUS_SLAVE指令說明請參考“STEP 7-MicroWIN”軟件中的幫助。
注意:CPU222在設置MBUS_INIT指令時,“MAXAI”要設置成“16”。
上面我們將 Modbus 保持寄存器區從 VB1000 開始(HoldStart = VB1000),并且保持寄存器為100個字(MaxHold=100),因保持寄存器以字(兩個字節)為單位,實際上這個通信緩沖區占用了VB1000~VB1200共200個字節。
2,設置庫存儲區。
點擊菜單欄中的“文件”在下拉框中選擇“庫存儲區分配”在打開的對話框中輸入庫存儲區的起始地址,注意避免該地址和程序中已經采用或準備采用的其它地址重合,可以點擊“建議地址”避免modbus功能塊所占用的地址和程序中的寄存器地址重疊。
3、編譯程序,編譯無誤后,通過PPI電纜將程序下載到PLC(如果PLC只有一個串口,且這個串口配置成了modbus口,那么我們在下程序時需要將PLC的運行開關扳到“stop”位置),下載完成后斷電,打開程序監控查看MBUS_INIT 指令和MBUS_SLAVE 指令的“Error”引腳輸出是否為正常(0位正常,其他數值為故障,請參看西門子PLC技術手冊中的故障列表)。
用管理員賬號登錄EMCP平臺 (建議使用360瀏覽器極速模式、瀏覽器(Chrome)或者支持Chromium內核的瀏覽器),對EMCP云平臺進行設置。具體操作參照《EMCP物聯網云平臺用戶手冊》。登錄EMCP后首先進入設備列表顯示頁面,因為我們未創建任何設備,所以是一個空頁面,我們需要按照以下步驟進行操作。
步驟:點擊【后臺管理】(只有管理賬號才有此權限)→【設備中心】→【EG設備管理】→【+新增】→填寫設備信息→點擊【保存】。其中,【設備名稱】必填,其余選項均可選填。
EG設備管理網關配置中最主要兩個地方需要配置,一是配置網串口通訊參數,二是創建modbus驅動,下面分步驟對此功能進行講解。注:網關只有在線后才可以進行遠程配置。
步驟:點擊【步驟②:網關、儀表管理】→【綁定網關】→填寫【SN編號】和【驗證碼】→【確定】。
SN和驗證碼在網關的機殼標簽上,SN為12位純阿拉伯數字,驗證碼為6位英文字母,【備注】可以根據需求填寫,編輯完成后點擊【確定】。
(帶*必填項)
此時在“網關基本信息中”可以看到綁定的網關是否連接到平臺(成功登錄平臺可以看到“在線”綠色字樣,如果不成功則顯示“離線”灰色字樣,此時請檢查網絡或網絡信號)。
使用串口RS485通訊,需設置RS485通訊參數。
在網關上連接的每一個設備,都需要建立對應的設備驅動。就像電腦上插了一個鼠標,只有電腦系統里安裝了這個鼠標的驅動,電腦才能識別到這個鼠標。設備跟網關通過哪個通訊口連接,就在哪個通訊口下添加驅動。如圖所示,點擊【RS485】后面的【添加驅動】出現右側基本配置表進行配置。
注:配置完成后,點擊保存。
基本配置介紹:
【驅動名稱】:必填項,自定義即可,當有多個驅動時進行區分。
【品牌】:必填項,選擇“通用modbus設備”。
【型號】:必填項,選擇“Modbus RTU”。
【設備地址】:必填項,設備地址根據200PLC設置的從站號進行填寫,本案例PLC從站號為“1”,所以此處填“1”。
【最小采集周期】:是網關采集設備數據的時間間隔,單位:ms。如設置1000ms,即網關1s采集一次設備數據。
【通訊等待時間】:網關接收通訊數據等待時間。可根據需要進行調整,默認1000ms。
【16位整型】、【32位整型】、【32位浮點型】:是指對應數據類型的解碼順序。默認設置即可
【分塊采集方式】:0— 按最大長度分塊:采集分塊按最大塊長處理, 對地址不連續但地址相近的多個分塊,分為一塊一次性讀取,以優化采集效率;1— 按連續地址分塊:采集分塊按地址連續性處理,對地址不連續的多個分塊, 每次只采集連續地址,不做優化處理。直接選擇默認即可。
【4區16位寫功能碼】:寫4區單字時功能碼的選擇。直接選擇默認即可。
步驟:點擊【步驟③:變量管理】→【+添加變量】→填寫變量信息→【保存】。
變量介紹:
【儀表、PLC】:必填,選擇剛才創建的驅動即可。根據實際情況選擇。
【變量名稱】:必填,自定義即可。注意不能有重復的名稱。
【單位】:非必填,自定義即可。在列表展示時,變量會帶上單位展示。
【寄存器類型】:必填,在西門子PLC中,Q點對應【線圈(0x)】,I點對應【離散量輸入(1X)】,V區對應【保持寄存器(4X)】,AI區對應【輸入寄存器(3X)】。
【寄存器地址】:必填,地址填寫時不帶寄存區標志符,具體對應設置見下方圖片。
【數據類型】:必填,根據實際需要選擇即可。
【小數位數】:非必填,根據需求填寫。
【死區設置】:非必填,默認即可。根據需要填寫即可。更詳細的說明請參考后面“?”幫助。
【狀態列表】:非必填。可將數值直接與文本映射。如值為“10”,映射字段為“設備故障”,則當采集到變量的值為“10”時,會直接在設備監控和歷史報表中顯示“設備故障”。
【數值運算】:非必填。可將采集到的數據根據填寫的公式進行計算,更詳細的說明請參考后面的“?”幫助。
【讀寫方式】:可根據需求自行修改該寄存器的讀寫方式,默認為只讀。
PLC各寄存區變量在平臺添加填寫示例如下圖所示:
添加完成后,【變量管理】如下圖所示,此時可以點擊【數據測試】按鈕檢查變量值能否采集到,或者值是否正確。
打開Step7-MicroWin 編程軟件的“程序狀態監控”和“狀態表監控”,查看程序的運行狀態和內部數據的數值顯示。通過狀態表我們可以查看各數據的當前值和對數據進行強制。如下圖。
用戶登錄EMCP平臺,點擊”S7-200“設備的圖片或設備名稱進入EG設備即可查看、修改相關數據。