在工業現場,大量SCALANCE網絡設備和各種
類型的PLC一起廣泛使用。用戶有時候希望通過
PLC程序來讀取SCALANCE設備的狀態或者控制
SCALANCE設備的行為,以滿足特定的需求,
這是可行的。
譬如,對于SCALANCE W,就可以通過PLC來
修改SSID名稱,更改信道,強制掃描和漫游、
重啟設備等等。當然也可以通過PLC獲取AP連接
的客戶端列表等診斷信息。
本文以S7-1500 PLC編程修改SCALANCE W
客戶端的SSID為例,闡述編程和配置的思路及
要點。用戶據此可自行編程,實現更多期望的功
能。
系統架構和基礎知
識
系統的參考架構如下圖,具有以太網接口的PLC
S7-1200/1500和SCALANCE設備相連。

該應用中PLC與SCALANCE的數據交換基于SNMP
協議,有必要先對SNMP的基礎知識作簡要介紹。
SNMP(簡單網絡管理協議)是用于IP網絡管理網
絡設備的標準協議,其根據客戶機-服務器模型工
作,如下圖。

在SNMP架構模型中,網絡組件可以分為管理單元和
被管理單元。
管理單元,指網絡管理站,在本例中指S7-
1500PLC.其作為SNMP Manager,在通信中角色為
客戶端。
被管理單元,指被管理的網絡實體,在本例中指
SCALANCE W700 無線客戶端。被管理單元具有
MIB(管理信息庫)和SNMP Agent,在通信中角
色為服務器。
MIB是SNMP管理器可以調用或修改的所有對象的集
合。MIB由SNMPAgent管理。SNMPAgent是在每
個被管理設備上運行的應用程序。當SNMP Manager
請求時,SNMP Agent可以查詢和修改MIB對象。
SNMP Manager向SNMP Agent發送Get命令用于讀
取被管設備信息,發送Set命令用于修改設備參數。
MIB對象以樹結構組織,由對象標識符
(OID)標識。OID描述了通過分層結構的MIB樹到
所需MIB 對象的路徑。如下圖中所示的OID
1.3.6.1.2.1.1.1是“sysDescr"(系統描述)對象的
路徑。
MIB對象以樹結構組織,由對象標識符
(OID)標識。OID描述了通過分層結構的MIB樹到
所需MIB 對象的路徑。如下圖中所示的OID
1.3.6.1.2.1.1.1是“sysDescr"(系統描述)對象的
路徑。
SNMP基于UDP/IP實現,通用端口號為161,
1、下載S7-1500 PLC SNMP程序庫
已經編寫好了用于S7-1500的SNMP
程序庫,使用該程序庫,用戶只需要填寫正確的
參數即可實現對SCALANCE的參數讀寫。在如下
網頁鏈接中下載庫文件,此處提供了博途V16和
V17的不同版本。
所下載的庫文件包括了PLC以太網通信相關的多個應
用程序,SNMP通信是其中之一。
2、在TIA博途中使用下載的庫
打開TIA博途中的S7-1500項目,在右側的“庫"--
“全局庫"中點擊打開全局庫按鈕,找到解壓后的全
局庫文件地址,下載的全局庫被打開。在本例中打開
的是前述V17版本的全局庫,而且本實驗環境所用
TIA博途為V18版本,所以打開時自動將該全局庫升
級為V18版本。

打開后可以看到
Libraries_Comm_Controller_V18(如果選擇的
是V16版本,則名稱可能與此不同),該庫中包
含了眾多通信相關的程序。選擇LSNMP,將其拖
放到左側PLC程序塊目錄下,可以看到在PLC的程
序塊目錄下增加了LSNMP的子目錄,子目錄下的
程序塊就可以被主程序調用去實現讀寫的功能。

3、編寫主程序
開始具體編程,將LSNMP_Set拖放至主程序中,填
入必要的參數。

參數excute :在上升沿的時候執行Set命令
參數abort :斷開連接的命令
參數community : 用于SNMP Manager 和
SNMP Agent的之間的認證,所以在PLC中賦予
該參數的值要與SCALANCE W700中配置的值一
致。在本例中,是寫操作,此處采用的是缺省值
private.

參數timeout :命令發出后等待回復的時間,超
時報錯。
參數connParam :這是關于PLC與SCALANCE設
備之間 UDP 連接的參數,其類型為
LSNMP_typeConnParam.
參數varBinding :這是需要發送或接收數據的組
合,對應于讀取或控制SCALANCE 設備變量的具
體參數,其類型為LSNMP_typeBind.
4、LSNMP_typeConnParam
和LSNMP_typeBind詳解
LSNMP_typeConnParam和LSNMP_typeBind
這兩個數據類型在將LSNMP庫拖放至主程序時已自
動添加到PLC數據類型中。

創建一個新的DB 塊SCALANCE_DB來存儲
connParam和varBinding這兩個接口參數,其類型
及賦值是理解控制程序的關鍵,下面分別闡述。
類型 LSNMP_typeConnParam
在創建的DB塊中定義一個名為ConnnectionPara的
變量,其類型為LSNMP_typeConnParam,這是
PLC與SCALANCE之間UDP連接的參數,展開后如
下圖。

ipAddress : 被管理單元的IP地址,本例中指
SCALANCE W700 的IP地址,此處為
192.168.0.18 .
localPort :本地端口號,可自行定義,但不要使用
常用的缺省的端號。
類型LSNMP_typeVarBind
在DB塊中再定義一個名為SSID的變量,其類型為
LSNMP_typeBind,這是需要讀取或控制
SCALANCE 設備變量的具體參數,展開后如下圖。

oID,對象ID,字符串類型,對應想要讀取或控制的
具體對象。本例中,要設置客戶端中SSID的名稱,
其
對
應
的
OID
是:‘1.3.6.1.4.1.4329.20.1.1.1.1.27.1.1.2.2.1.2.6.1
type:該OID所對應值的類型。本例中SSID值類型
是字符串,對應值為4。常見數據類型對應關系如
下:
16#02:整型,Integer
16#04: 字符串,String
16#41:計數器,Counter
length :對象值的長度,在本例中,要設定的SSID
是“TEST1234",共8個字符,占8個字節,所以此
處設置為8.
value : 這里存儲該OID具體的值,本例中是字符串
“TEST1234"。
5、測試結果
當參數設置正確,在程序中將接口參數execute對應
實參"SetSSID"產生上升沿時,就將客戶端的SSID修
改為“TEST234"。
在SCALANCE W700的網頁配置頁面中,可以看到
SSID已修改。

請輸入賬號
請輸入密碼
請輸驗證碼
以上信息由企業自行提供,信息內容的真實性、準確性和合法性由相關企業負責,化工儀器網對此不承擔任何保證責任。
溫馨提示:為規避購買風險,建議您在購買產品前務必確認供應商資質及產品質量。