JAVA与西门子S7 PLC通信,方式一:S7connector | 您所在的位置:网站首页 › plc中的true怎么读 › JAVA与西门子S7 PLC通信,方式一:S7connector |
背景
在公司项目中,需要用到和PLC进行通讯,经过搜索后查询到使用JAVA与PLC通信两种方式,测试后达到正常读写的目的,于是记录下学习过程。 环境Spring+SpringMVC+MybatisPlus / SpringBoot PLC: 西门子 S7-1500/S7-1200(1214C) PLC设置第一步: 使用 TIA Portal 创建DB数据块,设置地址为:12 (地址可设置为1-59999 任意一个数字); 第二步:在DB块中插入新行,此处设置了8个Bool类型,1个Byte、3个String(参考) 首次添加时不会显示“偏移量”,需要右键数据块,选择属性,在‘常规-属性’中,取消‘优化的块访问’后将程序下载到设备后即可以看到偏移量。 正在准备设备模拟文章中... JAVA使用S7Connector读写数据 读取/写入单个数据第一步: 在pom中增加依赖:添加s7Connector依赖。 com.github.s7connector s7connector 2.1当前项目中需要和PLC通信实现读取PLC地址中的数据、向PLC地址中写入数据,所以下面通过三个方法来实现 连接-读取-写入 这三个目标。 第二步: 初始化PLC链接 /** * 初始化PLC连接 */ public S7Connector initConnect(){ //PLC地址 String ipAddress = "192.168.1.2"; //默认端口 String port = "102"; S7Connector s7Connector = S7ConnectorFactory .buildTCPConnector() .withHost(ipAddress) .withPort(port) .withTimeout(10000) //连接超时时间 .withRack(0) .withSlot(1) .build(); S7Serializer s7Serializer2L = S7SerializerFactory.buildSerializer(s7Connector); return s7Connector; }第三步:读取PLC地址中的数据 PLC中待读取的数据地址为DB1000,偏移量为2,数据类型word (2位的16进制数据); (稍后补充PLC截图) 读取PLC中数据很简单,调用s7connect.read 即可,但是需要根据PLC中存储的数据类型将二进制数组解析为Java数据类型; /** * 读取PLC中的数据,字符串类型 * **/ public void readPlcData() { S7Connector s7Connector = initConnect(); //第一个参数:DaveArea.DB 表示读取PLC的地址区域为DB //第二个参数:DB地址,若plc中是DB1000,则填1000 //第三个参数:数据长度, |
CopyRight 2018-2019 实验室设备网 版权所有 |