西門子S7-200系列PLC是工業場合應用最廣的現場控制設備之一,S7-200系列PLC支持自由端口、MPI、PPI和Moddus等通訊方式。自由端口方式需要用戶自己制定通訊協議,PLC與上位機兩端都需要編寫相應的協議程序,實現復雜、難度較高。西門子的Step7 MicroWin編程軟件使用PPI(Point to Point)協議連接PLC,利用PPI協議可以調試\下載PLC程序、傳輸數據,但西門子并未公開PPI協議內容。Modbus是工業控制現場廣泛應用的通訊協議,在嵌入式領域,嵌入式主板通常采用Modbus與PLC相連,英創嵌入式工控主板就提供了基于串口和TCP的Modbus軟件包,但PLC要支持Modbus協議同樣需要相應的程序編寫,同時Modbus協議會占用一定的PLC中斷和代碼資源。
S7-200系列PLC的編程通訊接口內部固化了PPI通訊協議,如果上位機軟件能利用PPI協議讀寫PLC,就可以省去PLC的通訊程序編寫。為了方便嵌入式工控主板與PLC連接,我們分析了PPI通訊協議格式,把操作PLC的常用指令封裝成了簡單的API接口函數,利用這些函數可以實現設置PLC工作模式、讀取PLC型號信息、讀寫PLC存儲器等功能。
ESM6802是預裝WEC7.0(或Linux)的i.MX6 雙核嵌入式工控主板,板載了雙網口,雙CAN,7串口,4-USB PCIe x1、精簡ISA等多種通訊接口,同時ESM6802提供了RGB、LVDS和HDMI三種顯示接口,可以支持從320×240分辨率的低成本LCD到1920×1080的全高清顯示屏。下面將以運行WEC7.0操作系統的ESM6802作為上位機,介紹WCE工控主板如何使用PPI協議連接S7-200 PLC。
1、硬件連接
S7-200系列PLC的編程通訊接口為RS485電平,安裝Step7 MicroWin的PC機通過PC/PPI通訊線纜連接PLC。PC/PPI通訊線纜完成了RS232電平到RS485電平的轉換,其RS232端與計算機串口相連,RS485端與PLC的編程通訊口相連。ESM6802同樣使用PC/PPI線纜連接PLC,ESM6802的COM3口為RS232電平,PC/PPI線可直接插到ESM6802的COM3口上使用,ESM6802與PLC的硬件連接方法如下所示:
圖1ESM6802與S7-200 PLC的硬件連接
2、軟件實現
PPI是點到點的主從協議, PLC的通訊接口缺省情況下工作在PPI從(slave)模式,以便接收來自Step7 MicroWin編程軟件的數據,Step7 MicroWin自然工作在PPI主(master)模式。ESM6802在與PLC相連時,ESM6802作為上位機工作在主模式,PLC通訊接口為缺省的從模式。
下面是我們基于PPI協議封裝的操作PLC的API函數,詳細的函數說明可參考ppi.h頭文件。
// 功能描述: 設置相應串口的通訊參數,
HANDLE PPI_OpenPort(LPCTSTR lpPortName);
// 功能描述: 關閉PPI使用的串口設備
BOOL PPI_ClosePort(HANDLE hPort);
// 功能描述: 設置ppi通訊的超時時間,單位為毫秒。默認超時時間為ms
int PPI_SetTimeout(HANDLE hPort, int nMilliseconds);
// 功能描述: 設置兩次ppi通訊之間的間隔時間,單位為毫秒。默認時間間隔為ms
int PPI_SetPollDelay(HANDLE hPort, int nMilliseconds);
// 功能描述: 設置設置本機的PPI地址,默認本機地址為x00
BOOL PPI_SetLocalAddress(HANDLE hPort, UINT8 bLocalAddr);
// 功能描述: 與指定的PLC握手
int PPI_FindPLC(HANDLE hPort, UINT8 bSlaveAddr);
// 功能描述: 讀取指定PLC的型號和保護等級
int PPI_GetPLCID(HANDLE hPort, UINT8 bSlaveAddr, UINT8 cpuId[], UINT8 *pProtectionLevel);
// 功能描述: 設置PLC工作在RUN模式或STOP模式
int PPI_SetPlcMode(HANDLE hPort, UINT8 bSlaveAddr, int nMode);
// 功能描述: 讀PLC指定存儲器數據
int PPI_Read(HANDLE hPort, UINT8 bSlaveAddr, LPCSTR lpStorageAddress, UINT8 *pNumofRead, UINT8 readData[]);
// 功能描述: 寫PLC指定存儲器數據
int PPI_Write(HANDLE hPort, UINT8 bSlaveAddr, LPCSTR lpStorageAddress, UINT8 *pNumofWrite, UINT8 writeData[]);
2.1WEC7應用PPI API示例
下圖是在WEC7工控主板ESM6802上運行的利用PPI API操作PLC的Demo程序,程序實現了搜索PLC、設置PLC工作模式、獲取PLC型號信息以及讀寫PLC存儲器等功能。
圖2在WCE上運行的操作PLC的例子程序
2.2Linux應用PPI API示例
下圖是在Linux工控主板ESM6802上運行的PPI API應用示例。用戶運行./test_ppi后進入命令行操作,可以實現搜索PLC、設置PLC工作模式、獲取PLC型號信息以及讀寫PLC存儲器等功能,可以通過m查看幫助信息,根據幫助信息對PLC進行操作。
圖3在Linux主板上運行的操作PLC的例子程序
ESM6802具有相當豐富的通訊接口,與突出控制功能的PLC可以形成良好的功能互補,同時ESM6802對大屏顯示器的支持也適合用做PLC控制系統的狀態監控人機交互終端。
PPI API以lib庫的形式提供,可以在英創所有WEC7 / Linux工控主板上運行,圖2、圖3所示的Demo程序提供源代碼參考,感興趣的用戶可與英創聯系索要。
-
Linux
+關注
關注
87文章
11329瀏覽量
209970 -
嵌入式主板
+關注
關注
7文章
6086瀏覽量
35486
發布評論請先 登錄
相關推薦
基于 EtherCAT 轉 ProfiNet 網關達成西門子 1200 PLC 與伺服電機通訊連接的應用實例
![基于 EtherCAT 轉 ProfiNet 網關達成<b class='flag-5'>西門子</b> 1200 <b class='flag-5'>PLC</b> 與伺服電機通訊<b class='flag-5'>連接</b>的應用實例](https://file1.elecfans.com/web3/M00/01/9B/wKgZPGdWqXKAdnuwABOUzYfOPOI755.png)
NPN和PNP器件與西門子PLC的連接與選型
![NPN和PNP器件與<b class='flag-5'>西門子</b><b class='flag-5'>PLC</b>的<b class='flag-5'>連接</b>與選型](https://file1.elecfans.com/web3/M00/00/D5/wKgZO2dOaU-ADoV-AAAe-JUSIw0419.png)
西門子中繼器怎么連接plc
西門子200plc與電腦連接步驟
宏集物聯網工控屏通過 S7 ETH 協議采集西門子 1200 PLC 數據
![宏集物聯網<b class='flag-5'>工控</b>屏<b class='flag-5'>通過</b> S7 ETH <b class='flag-5'>協議</b>采集<b class='flag-5'>西門子</b> 1200 <b class='flag-5'>PLC</b> 數據](https://file1.elecfans.com/web2/M00/F2/66/wKgaomZ1MV6AFYo5ADYM_65m7eQ436.png)
西門子PLC與ABB變頻器通訊怎么實現
西門子PLC的作用和工作原理
西門子PLC總線故障怎么解決
干貨分享:宏集物聯網HMI通過S7 MPI協議采集西門子400PLC數據
![干貨分享:宏集物聯網HMI<b class='flag-5'>通過</b>S7 MPI<b class='flag-5'>協議</b>采集<b class='flag-5'>西門子</b>400<b class='flag-5'>PLC</b>數據](https://file1.elecfans.com/web2/M00/ED/44/wKgZomZqg1aABbbgAAG9ZujEJLk752.png)
工業智能網關通過串口/網口實現西門子PLC實時通信
![工業智能網關<b class='flag-5'>通過</b>串口/網口實現<b class='flag-5'>西門子</b><b class='flag-5'>PLC</b>實時通信](https://file1.elecfans.com//web2/M00/EE/25/wKgaomZqXWyAcUa5AANC8L-O8CQ984.png)
西門子plc模塊型號詳解
西門子網口S7-COMM協議300 400如何使用?
![<b class='flag-5'>西門子</b>網口S7-COMM<b class='flag-5'>協議</b>300 400如何使用?](https://file1.elecfans.com/web2/M00/CD/2F/wKgZomYg1j6AdPgqAAPRhDpKi8E714.png)
評論