发布时间: 2025-12-26

数字IO组合成整形寄存器使用方法


1.  简介

目前我们机器人使用EtherNetip,profinet通讯时可以使用整形寄存器进行整数的数据交互,使用modbus通讯时可以通过读取或者写入整数数值到通用寄存器里进行数据交互。在一些现场的plc可能不支持这几种通讯方式,然后是通过硬接线进行通讯,这个时候就无法使用上述所讲的寄存器了,就需要通过将数字IO组合成整形寄存器使用,这篇文档主要讲解如何将数字IO组合成寄存器使用。本篇文档都是使用DI0-DI3和DO0-DO3为例。

2.  操作流程

2.1机器人版本通用

2.1.1使用机器人ModbusSlave寄存器(使用时必须要按照DI0-DI15的顺序依次使用)

第一步:将PLC或者其他设备的线接到机器人IO端口,以输入,输出各接4根线为例,将输入线依次接到DI0,DI1,DI2,DI3端口,将输出线依次接到DO0,DO1,DO2,DO3端口。

第二步:查看这输入,输出4个端口是属于哪一个寄存器。如图-1红框所示,机器人内部有4个通过数字IO组成的寄存器,分别是标准数字输入IO组成的寄存器0,可配置数字输入与工具输入组成的寄存器1,标准数字输出组成的寄存器2,可配置输出与工具输出组成的寄存器3。其中寄存器0和1可读不可写,寄存器2和3可读可写。由此可知DI0-DI3是属于寄存器0,所以读取寄存器0的值即可,DO0-DO3属于寄存器2,所以在寄存器2中写入对应的值即可控制对应的信号点输出。

图-1

第三步:读取寄存器0的值,如图-2红框标记所示,通过var1=read_port_register(0)即可读取寄存器0的值并将值赋值给变量var1。

图-2

第四步:给寄存器2写值,如图-3红框标记所示,通过write_port_register(2,3)即可输出对应的信号点。

图-3

该视频为2.1.1操作讲解视频

输入输出寄存器的使用.mp4

注意事项:该寄存器是已经定义好了,不能进行更改,所以使用时必须要按照DI0-DI15,DO0-DO15的顺序依次接线使用,并且一旦使用了这个寄存器,这个寄存器的信号点就不能作为其他使用,比如你使用标准输入寄存器0,你只使用了DI0-DI3这4个信号点,那么剩下的DI4-DI15这个12个信号点也不能作为其他用途使用。其他3个寄存器也是同理。

2.1.2通过脚本自定义数字IO组合成寄存器使用(可以自定义顺序使用)

第一步:将PLC或者其他设备的线接到自己定义好的机器人IO端口上,本篇文档就以DI0,DI1,DI2,DI3和DO4,DO5,DO6,DO7为例。由4个信号组合在一起可以输出0-15共16个数值。

第二步:定义输入输出全局变量。如图-4红框标记所示。

图-4

第三步:编写输入脚本。脚本如图-5所示。

图-5

int.script(该文件为输入脚本文件)

第四步:编写输出脚本,如图-6所示。

图-6

out.script(该文件为输出脚本文件)

第五步:使用脚本文件,如图-7是一种使用方法。

图-7

2.2机器人版本大于2.13.1版本使用(可以自定义信号以及排列顺序)

第一步:将外部的输入信号线接在自己定义好的信号点上,本篇文档就以DI0,DI1,DI2,DI3和DO0,DO1,DO2,DO3为例。由4个信号组合在一起可以输出0-15共16个数值。

第二步:定义输入输出全局变量。如图-8红框标记所示。

图-8

第三步:编写获取输入变量值的脚本。如图-9所示,通过int=bit_list_to_integer([DI0, DI1, DI2, DI3])函数获取这个4个信号的状态,然后将这4个信号点的二进制转为十进制存储在变量int中。

图-9

第三步操作步骤讲解

20250409_161426.mp4

第四步:编写设置输出的脚本。如图-10标记1所示,先封装一个函数,再如标记2所示调用这个函数进行信号的输出。

图-10

out2.script(该文件为封装函数的脚本文件)

第四步操作视频

20250409_183146.mp4

2.3机器人版本大于2.12.1版本使用可以自定义信号以及排列顺序)

步骤与2.2操作步骤一致,区别在于要将bit_list_to_integer函数用byte_list_to_integer函数代替;将integer_to_bit_list函数用integer_to_byte_list函数代替。

3.  常见问题解答

1.使用机器人ModbusSlave寄存器时该寄存器是已经定义好了,不能进行更改,所以使用时必须要按照DI0-DI15,DO0-DO15的顺序依次接线使用,并且一旦使用了这个寄存器,这个寄存器的信号点就不能作为其他使用,比如你使用标准输入寄存器0,你只使用了DI0-DI3这4个信号点,那么剩下的DI4-DI15这个12个信号点也不能作为其他用途使用。其他3个寄存器也是同理。

 

 

 

提交反馈