欧姆龙 eip协议
1. EIP 是什么?
EIP 全称:
EtherNet/IP = Ethernet Industrial Protocol
它不是简单的“以太网 TCP/IP 通信”,而是在标准 Ethernet/TCP/IP 之上运行 CIP(Common Industrial Protocol)。
可以理解成:
┌─────────────────────────┐
│ 应用层:CIP │
├─────────────────────────┤
│ EtherNet/IP (EIP) │
├─────────────────────────┤
│ TCP / UDP │
├─────────────────────────┤
│ Ethernet │
└─────────────────────────┘
2. 欧姆龙 PLC 为什么使用 EIP?
欧姆龙的 NJ/NX/NY 等控制器支持 EtherNet/IP 后,可以直接和很多设备通信:
EtherNet/IP
│
┌───────────┼───────────┐
▼ ▼ ▼
欧姆龙PLC 机器人 变频器
│
▼
伺服
│
├── 远程IO
├── 安全设备
├── 条码枪
└── 其他PLC
所以在自动化产线里非常常见。
3. EIP 最重要的两种通信
这是你学习欧姆龙 EIP 时最应该先搞懂的。
① I/O 通信
也叫:
Implicit Messaging / Cyclic I/O
例如:
PLC ───────────────→ 远程IO
输出数据
PLC ←─────────────── 远程IO
输入数据
它类似:
PLC输出区 → Device
Device输入区 → PLC输入区
而且是周期性自动交换。
例如:
PLC
Output Assembly
│
│ EtherNet/IP
▼
机器人
Input Assembly
这种特别适合:
- PLC ↔ 远程 IO
- PLC ↔ 机器人
- PLC ↔ 变频器
- PLC ↔ 伺服
- PLC ↔ 其他控制器
② Explicit Messaging
这是另外一种。
PLC
│
│ Request
▼
设备
│
│ Response
▼
PLC
它更像:
读某个参数
写某个参数
读取设备信息
修改配置
底层通常涉及 CIP Object。
例如:
Class
Instance
Attribute
也就是常见的:
CIP:
Class ID
Instance ID
Attribute ID
4. EIP 和普通 TCP Socket 不一样
这是很多刚开始学习的人最容易搞混的。
普通 TCP:
C# / C++
│
│ TCP Socket
▼
设备
你自己定义:
01 03 00 10 ...
而 EIP:
PLC
│
▼
EtherNet/IP
│
▼
CIP
│
├── Assembly Object
├── Identity Object
├── Connection Manager
├── Message Router
└── ...
所以 EIP 本质上是一个工业协议栈,不是“给 PLC 开一个 TCP 端口然后发数据”。
5. 如果你想用 C++ / C# 与欧姆龙 PLC 通信
这就很有意思了。
可以做:
C++ / C#
│
│ EtherNet/IP
▼
欧姆龙 PLC
如果你以后想开发工业自动化商业软件,EIP 非常值得研究。
尤其可以做:
PC工业软件
│
├── EtherNet/IP
├── Modbus TCP
├── OPC UA
├── S7
└── MC Protocol
│
▼
PLC网络
然后做成一个统一的:
工业设备通信 SDK / 测试软件 / PLC 数据采集平台。
这和你之前考虑的 C++ WebServer + 工厂 ATE + MES 其实可以很好地结合起来。
浙公网安备 33010602011771号