加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 一、關于Ethernet/IP
    • 二、Ethernet/IP通信與實驗
    • 三、pycomm3
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

python實現(xiàn)Ethernet/IP協(xié)議的客戶端(一)

11/24 11:25
1002
閱讀需 8 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

Ethernet/IP是一種工業(yè)自動化領域中常用的網(wǎng)絡通信協(xié)議,它是基于標準以太網(wǎng)技術的應用層協(xié)議。作為工業(yè)領域的通信協(xié)議之一,Ethernet/IP 提供了一種在工業(yè)自動化設備之間實現(xiàn)通信和數(shù)據(jù)交換的標準化方法。python要實現(xiàn)Ethernet/IP的客戶端,可以采用pycomm3模塊,但不一定是pycomm3,其中原委咋們慢慢聊,本文為第一篇。

一、關于Ethernet/IP

1、Ethernet/IP的特點

實時性和可靠性: Ethernet/IP 被設計用于滿足工業(yè)控制系統(tǒng)中對實時性和可靠性的高要求。這對于需要在嚴格時間限制內(nèi)傳輸數(shù)據(jù)的應用非常重要,例如,在自動化制造過程中。

基于 TCP/IP: Ethernet/IP 是基于 TCP/IP 協(xié)議棧的,這使得它可以與通用的互聯(lián)網(wǎng)技術和網(wǎng)絡設備兼容。這也使得它相對于其他專有的工業(yè)網(wǎng)絡更易于集成。

多層次和多協(xié)議: Ethernet/IP 屬于 CIP(Common Industrial Protocol)協(xié)議族的一部分。CIP 是一種多層次、多協(xié)議的體系結(jié)構(gòu),它支持以太網(wǎng)、控制網(wǎng)(ControlNet)、設備網(wǎng)(DeviceNet)等多種網(wǎng)絡。Ethernet/IP是CIP的一個擴展,其中一種擴展方式為引入EDS文件,詳見CIP相關文檔的擴展方式。

開放標準: Ethernet/IP 是一個開放的標準,其規(guī)范是由 ODVA(Open DeviceNet Vendors Association)維護的。這種開放性意味著各種廠商的設備可以使用 Ethernet/IP 進行通信,促進了設備的互操作性。

應用領域: Ethernet/IP 廣泛應用于工業(yè)自動化中,包括了生產(chǎn)線控制、傳感器執(zhí)行器之間的通信、工業(yè)機器人控制等。

2、CIP相關文檔

https://download.csdn.net/download/weixin_54178481/87825320?utm_medium=distribute.pc_relevant_download.none-task-download-2~default~OPENSEARCH~Rate-1-87825320-download-88243395.257%5Ev14%5Epc_dl_relevant_base&depth_1-utm_source=distribute.pc_relevant_download.none-task-download-2~default~OPENSEARCH~Rate-1-87825320-download-88243395.257%5Ev14%5Epc_dl_relevant_base&spm=1003.2020.3001.6616.1

3、EDS文件解釋

https://zhidao.baidu.com/question/756737794820675884.html

4、假如Ethernet/IP的服務端會提供一個EDS文件,pycomm3該怎么用?

假設我有一個Ethernet/IP的服務端,那么PLC如何與其建立通信呢?

PLC編程軟件將該服務端的EDS文件寫入到PLC中,而因為EDS文件定義了該設備的寄存器等信息,所以PLC可以通過Ethernet/IP協(xié)議與服務端進行通信。

而pycomm3模塊是通過CIP進行通信的,沒有EDS文件的加載接口,因此需要直接通過CIP通信,應該是可行的。

二、Ethernet/IP通信與實驗

1、抓包過程

以下過程是我以非專業(yè)的術語描述,詳細過程可查閱官方文檔。

2、實驗與理論

本文將以實驗的方式來探究CIP協(xié)議的理論文檔,這樣就可以了解理論知識的同時,學會如何調(diào)試協(xié)議。

比如現(xiàn)在,我們已經(jīng)有了正常的通信包(PLC與服務端),那么我們將使用pycomm3來替換PLC,對比二者的通信包,進行調(diào)試。

三、pycomm3

1、一定是pycomm3么?

不一定,如果使用pycomm3實現(xiàn)不了通信,我們將采用其他模塊,比如cpppo,甚至自己組裝協(xié)議包來實現(xiàn)通信,這都是有可能的。

2、pycomm3官方文檔

Getting Started - pycomm3 1.2.14 documentation

3、關于實現(xiàn)CIP的三個類

pycomm3 中,CIPDriver、LogixDriverSLCDriver 是三個關鍵的驅(qū)動類,用于實現(xiàn)與設備進行通信的功能。以下是它們的簡要解釋:

(1)CIPDriver:

解釋: CIPDriver 是一個基礎的 CIP(Common Industrial Protocol)驅(qū)動器類。它實現(xiàn)了一些常見的 CIP 服務,如會話注冊、前向打開/關閉、通用消息傳遞等。這個類提供了一些基本的功能,可以在更高層次的協(xié)議中使用,如 Logix。

用途: 一般用于構(gòu)建更高級別的驅(qū)動器,如 LogixDriver。

(2)LogixDriver:

解釋: LogixDriverCIPDriver 的一個衍生類,專門用于與 Logix 系列的工業(yè)控制器進行通信。它實現(xiàn)了與 Logix 控制器通信的協(xié)議和服務,提供了對 Logix 控制器的更高級別的訪問。

用途: 用于與 Allen-Bradley Logix 系列控制器進行通信,支持對控制器進行讀寫、訂閱通知等操作。

(3)SLCDriver:

解釋: SLCDriverCIPDriver 的另一個衍生類,專門用于與 Allen-Bradley SLC 系列的工業(yè)控制器進行通信。它實現(xiàn)了適用于 SLC 控制器的通信協(xié)議和服務。

用途: 主要用于與 Allen-Bradley SLC 系列控制器進行通信,支持讀寫 SLC 控制器的數(shù)據(jù)。

這些驅(qū)動器類提供了一種在 Python 中與工業(yè)自動化設備進行通信的方式,允許開發(fā)人員構(gòu)建與特定工業(yè)控制設備交互的應用程序。

相關推薦

電子產(chǎn)業(yè)圖譜