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