JAVA与西门子S7 PLC通信,方式一:S7connector 您所在的位置:网站首页 plc中的true怎么读 JAVA与西门子S7 PLC通信,方式一:S7connector

JAVA与西门子S7 PLC通信,方式一:S7connector

2024-07-18 01:19| 来源: 网络整理| 查看: 265

背景

        在公司项目中,需要用到和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 实验室设备网 版权所有