《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 業界動態 > WinCE工控主板通過PPI協議連接西門子PLC

WinCE工控主板通過PPI協議連接西門子PLC

2017-08-03

  西門子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的硬件連接方法如下所示:

2017041914925909263122526.gif

  圖1 ESM6802與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[]);

  下圖是在WEC7工控主板ESM6802上運行的利用PPI API操作PLC的Demo程序,程序實現了搜索PLC、設置PLC工作模式、獲取PLC型號信息以及讀寫PLC存儲器等功能。

2017041914925910984863309.gif

  圖2 在WCE上運行的操作PLC的例子程序

  ESM6802具有相當豐富的通訊接口,與突出控制功能的PLC可以形成良好的功能互補,同時ESM6802對大屏顯示器的支持也適合用做PLC控制系統的狀態監控人機交互終端。

  PPI API以lib庫的形式提供,可以在英創所有WCE工控主板上運行,圖2所示的Demo程序提供源代碼參考,感興趣的用戶可與英創聯系索要。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 在线观看人成网站深夜免费| 无码人妻一区二区三区在线视频| 人妻无码一区二区三区AV| 视频在线观看一区| 国产欧美久久一区二区| 18亚洲男同志videos网站| 大伊香蕉在线精品视频人碰人| 一级毛片aaaaaa视频免费看| 新婚娇妻1一29芷姗txt下载| 久久国产精品无码一区二区三区| 校霸把学霸往死里做| 亚洲国产精品久久网午夜| 波多野结衣久久高清免费| 免费a级毛片在线播放| 精品无码人妻夜人多侵犯18 | 中文字幕精品一区二区| 日韩aa在线观看| 么公又大又硬又粗又爽视频| 欧美一级www| 亚洲午夜国产精品无卡| 91精品国产高清久久久久| 女人18毛片水真多国产| 一级做a免费视频观看网站| 成人在线观看不卡| 中文字幕不卡在线| 我叫王筱惠第1部分阅读| 中文字幕无线码一区二区| 无遮挡无删动漫肉在线观看| 久久天堂AV综合色无码专区| 日韩乱码人妻无码中文字幕视频| 久青草视频在线播放| 最近中文字幕高清2019中文字幕 | 动漫美女人物被黄漫小说| 老师的胸好大好软| 四虎成人免费网址在线| 美女扒开尿口让男人捅| 吃奶摸下激烈视频无遮挡| 网址你懂的在线观看| 另类人妖交友网站| 精品四虎免费观看国产高清午夜 | 69无人区卡一卡二卡|