1.创建一个Springboot项目
2.引入pom文件
<dependency>
<groupId>com.github.s7connector</groupId>
<artifactId>s7connector</artifactId>
<version>2.1</version>
</dependency>
3.创建S7Util工具类
package com.ximenzi.s7.utils;
import com.github.s7connector.api.DaveArea;
import com.github.s7connector.api.S7Connector;
import com.github.s7connector.api.factory.S7ConnectorFactory;
/**
* @author zyw
* @version 1.0
* @date 2021-10-19 15:57
*/
/**
* S7协议连接PLC工具类
* JAVA-PLC-RETURN
* INT = DINT = INTEGER
* STRING = STRING = STRING
* Float = REAL = REAL
* INT = DWORD = LONG
* SHORT = WORD = INTEGER
*/
public class S7Util {
/**
* ip , 区块 , byte数据,偏移量
* @param ip
* @param block
* @param buffer
* @param offset
*/
public void writePlcRegister(String ip , Integer block , byte[] buffer , Integer offset ){
S7Connector connector = S7Util.s7Connector(ip);
connector.write(DaveArea.DB,block,offset,buffer);
}
/**
* ip , 区块 , 多少位字节 , 偏移量
* @param ip
* @param block
* @param buffer
* @param offset
* @return
*/
public byte[] readPlcRegister(String ip , Integer block , Integer buffer , Integer offset){
S7Connector connector = S7Util.s7Connector(ip);
return connector.read(
//选择区块
DaveArea.DB,
// 区块编号
block,
//字节
buffer,
//偏移
offset);
}
/**
* 通过IP和端口跟S7进行连接
* @param ip
* @return
*/
public static S7Connector s7Connector(String ip){
return S7ConnectorFactory
.buildTCPConnector()
.withHost(ip)
.withPort(102)
.withTimeout(10000)
.withRack(0)
//optional
.withSlot(1)
//optional
.build();
}
}