罗克韦尔AB PLC与Java集成指南
目录
协议选型与配置
1. 优先协议
-
EtherNet/IP
罗克韦尔PLC原生支持,Java端使用EIPStackGroup库实现标签读写。
需在RSLogix 5000中定义标签权限(如I:0.4或N7:2)。 -
备选方案
- Modbus TCP:适用于基础型号,使用
jamod库。 - OPC UA:高端型号(如ControlLogix)推荐,使用
Eclipse Milo库。
- Modbus TCP:适用于基础型号,使用
Spring Boot集成EIPStackGroup
1. Maven依赖配置
<dependency>
<groupId>com.github.ethernet-ip</groupId>
<artifactId>eip-stack</artifactId>
<version>2.0.0</version>
</dependency>
- Spring Boot配置类
import com.ethernet_ip.EIPConnection;
public class PLCConnector {
private static final String PLC_IP = "192.168.1.10";
private static final int PLC_PORT = 44818;
public EIPConnection connect() throws IOException {
EIPConnection connection = new EIPConnection(PLC_IP, PLC_PORT);
connection.connect();
return connection; // 返回已连接的会话对象
}
}
- 数据读写工具类
@Service
public class PLCTagService {
@Autowired
private EIPConnection connection;
// 读取单个标签
public TagValue readSingleTag(EIPConnection connection, String tagName) throws IOException {
ReadTagService service = new ReadTagService(connection);
return service.readTag(tagName); // 返回标签值(支持 INT、BOOL、REAL 等类型):ml-citation{ref="7" data="citationList"}
}
// 批量读取标签
public List<TagValue> readTags(List<String> tagNames) throws IOException {
ReadTagService service = new ReadTagService(connection);
return service.readTags(tagNames);
}
// 批量写入标签
public void writeTags(Map<String, Object> tagValues) throws IOException {
WriteTagService service = new WriteTagService(connection);
service.writeTags(


337

被折叠的 条评论
为什么被折叠?



