不用编程实现USB或串口条码枪对接PLC,将数据写入到寄存器

        IGT-SER智能网关模块支持各种品牌的PLC之间通讯,也支持PLC与Modbus协议的工业机器人、智能仪表、条码枪等设备通讯。网关有多个网口、串口,也可选择WIFI,4G无线通讯。无需编程开发,只须配置数据的起始地址和数量即可,支持热插拔,断电重启后自恢复运行,在实际的工程项目中应用方便。

       本案以S7-1500的PLC为例,PLC的IP地址值为192.168.1.111,通过IGT-SER将条码存储到PLC寄存器,地址为DB6.DBB42开始的64个字节,先对PLC做好以下设置:

         首先打开参数设置软件(软件下载 )的'功能'->'类型与设备选择'页面,左边选择第四项后点'确认当前选择',如下图,根据提示下载参数重启网关模块。

 

USB接口条码枪:       

        通过'功能'->'网口参数编辑'设置网关模块自身的IP地址等网络参数,与PLC是通过交换机连接,所以设置到PLC同网段;通过'功能'->'串口参数编辑'设置USB接口参数(USB接口对应串口1,占用串口1的参数存储区),一般不用设置,默认即可。设置好的参数如下图:

        通过'功能'->'PLC之间通讯'进入PLC之间通讯的数据配置页面,以下是已配置完成的通讯数据配置(串口1对应USB接口):

         参数设置完成后下载重启,通过网关的参数配置软件读取网关参数后,看软件上的网关状态消息,根据状态消息调试。

RS232/RS485接口条码枪:       

        通过'功能'->'网口参数编辑'设置网关模块自身的IP地址等网络参数,与PLC是通过交换机连接,所以设置到PLC同网段;通过'功能'->'串口参数编辑'设置参数(串口1的参数存储区已被USB接口占用,所以设置串口2的参数,条码枪也接入IGT-SER模块的串口2),串口参数须要与条码器的值完全一致。设置好的参数如下图:

         通过'功能'->'PLC之间通讯'进入PLC之间通讯的数据配置页面,以下是已配置完成的通讯数据配置:

          参数设置完成后下载重启,通过网关的参数配置软件读取网关参数后,看软件上的网关状态消息,根据状态消息调试。

        IGT-SER支持几乎所有品牌的PLC的网口、串口通讯,软件与手册的下载地址。网关常配套的PLC类型如下:

        ◆ FX:  三菱FX系列PLC                                        ◆ QL:  三菱Q/L/R系列PLC
        ◆ AS:  三菱A系列PLC                                          ◆ OM:  欧姆龙全系列PLC
        ◆ S72S:  西门子S7-200/Smart系列PLC              ◆ S734:  西门子S7-300/400系列PLC
        ◆ S71K:  西门子S7-1200/1500系列PLC              ◆ MBS:  施耐德等Modbus兼容PLC
        ◆ DVP:  台达、信捷PLC                                      ◆ NAIS:  松下全系列PLC
        ◆ KVS:  基恩士全系列PLC                                   ◆ FTK:  永宏全系列PLC
        ◆ MSK:  LS/LG全系列PLC                                   ◆ KOY:  光洋全系列PLC
        ◆ ABM:  AB MicroLogix系列PLC                          ◆ ABC: AB Compact/Control系列PLC
        ◆ INO:  汇川全系列PLC                                        ◆ GE: GE PAC/PLC系统 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Modbus是一个用于在Java平台上实现Modbus协议的开源库。Modbus是一种通信协议,用于与PLC或其他设备进行数据交换。 要使用Java Modbus库进行串口读取PLC寄存器数据,需要进行以下步骤: 1. 首先,需要在Java项目中引入Java Modbus库的依赖。可以在项目的构建文件中添加相关依赖项,或者手动下载并导入库的jar文件。 2. 设置串口连接参数,包括串口名称、波特率、数据位、停止位和校验位等。可以使用Java中的SerialPort类来实现串口连接。 3. 在代码中创建Modbus主站对象,并设置串口连接参数。主站对象是与PLC进行通信的核心。 4. 使用主站对象的读取方法,比如readInputRegisters或readHoldingRegisters,来读取PLC寄存器中的数据。需要传入PLC地址、寄存器起始地址和读取的寄存器数量等参数。 5. 解析读取到的数据,并对其进行后续处理。可以根据PLC数据类型将读取的寄存器数据转换为相应的类型,比如整型、浮点型或布尔型等。 6. 最后,关闭串口连接,释放资源。 一个简单的示例代码如下: ```java import com.serotonin.modbus4j.ModbusFactory; import com.serotonin.modbus4j.ModbusMaster; import com.serotonin.modbus4j.exception.ModbusInitException; import com.serotonin.modbus4j.exception.ModbusTransportException; import com.serotonin.modbus4j.locator.BaseLocator; import com.serotonin.modbus4j.serial.SerialPortWrapper; import com.serotonin.modbus4j.serial.SerialPortWrapperFactory; import java.util.Scanner; public class ModbusDemo { public static void main(String[] args) { // 创建Modbus主站对象 ModbusFactory modbusFactory = new ModbusFactory(); SerialPortWrapper wrapper = SerialPortWrapperFactory.createSerialPort("/dev/ttyUSB0", 9600, 8, 1); ModbusMaster master = modbusFactory.createRtuMaster(wrapper); try { // 打开串口连接 master.init(); // 读取PLC寄存器数据 int slaveId = 1; // PLC的地址 int startOffset = 0; // 寄存器起始地址 int numberOfPoints = 10; // 读取的寄存器数量 BaseLocator<?> locator = BaseLocator.holdingRegister(slaveId, startOffset, numberOfPoints); int[] values = master.getValue(locator); // 处理读取到的数据 for (int value : values) { System.out.println("寄存器值:" + value); } } catch (ModbusInitException | ModbusTransportException e) { e.printStackTrace(); } finally { // 关闭串口连接 master.destroy(); } } } ``` 以上是一个基本的示例,实际的应用中还可以根据需要进行更多的配置和处理。由于Modbus协议的复杂性和PLC的不同,具体的操作和代码可能会有所不同,请根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值