CS机器人ModBusTCP通讯

2024-09-30

1.  简介

Modbus是一种串行通讯协议,是Modicon公司于1979年为使用可编程逻辑控制器通信而发表。Modbus已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。

CS系列机器人支持modbus tcp,机器人既可以做主站也可以做从站,在某些情况下我们可以通过modbus poll即第三方通讯助手来测试该通讯。

CS 系列支持的,可使用 Modbus 协议读写的数据类型为布尔型与无符号短整型(16 位)两种,

每种类型分别包含一组输入和一组输出寄存器,因此 Modbus 共有 4 组寄存器可被主站访问。其中,

输入型寄存器只允许读操作,输出型寄存器可读可写。有关寄存器协议接口的详细说明,请登陆官网:

www.elibot.com,进入“服务与支持 > 技术资料”板块,选择“CS_用户手册_V2.11.0_附件”进行

查询

1. 布尔型寄存器(8 位):主要用于操作数字 IO,CS 系列目前可访问的输入/输出数字 IO 寄存器

的有效地址范围为 0-63,虽然其值的类型为 bool,但每个 IO 仍会占用一个字节的空间,所以数字 IO

共占 2*64 字节。

2. 无符号短整型(16 位):用于保存和修改机器人的版本,TCP,系统状态等信息;也用于映射

数字 IO。CS 系列目前可访问的输入/输出寄存器的有效地址范围为 0-415。

工具 Modbus 主站设备可通过以下功能码读/写从站寄存器:

1. 0x01: 读一个或者多个输出数字信号 (read output bits)

2. 0x02: 读一个或者多个输入数字信号 (read input bits)

3. 0x03: 读一个或者多个输出寄存器 (read output registers)

4. 0x04: 读一个或者多个输入寄存器 (read input registers)

5. 0x05: 写单个输出数字信号 (write output bit)

6. 0x06: 写单个输出寄存器 (write output register)

7. 0x0F: 连续写多个输出数字信号 (write multiple output bits)

8. 0x10: 连续写多个输出寄存器 (write multiple output registers)

2.  操作流程

2.1机器人做从站

机器人做从站,modbus通讯使用机器人控制柜FB1网口或FB2网口,连接控制柜和电脑,

机器人Ip设置:

电脑设置为机器人的同一网段后可以ping一下查看网络是否连接正常

打开第三方网络调试助手modbus poll,--connection--connect,选择modbus tcp/ip,ip地址栏输入机器人的ip,端口默认502,最后点击ok

只要对话框不显示noconnection 就表明调试软件已连上cs机器人

接下来我们可以用modbus poll来:

写入标准数字输出

读取标准数字输出

读取标准数字输入

读取寄存器

写入寄存器

2.1.1读取标准数字输入

功能码选择 02 Read Discrete inputs ,地址格式十进制,起始地址 0,读写数量 24(机器人输入地址 0-23,共 24 个)

上图显示输入4为1与下图示教器显示匹配,可见读取成功

2.1.2读取标准数字输出

功能码选择 02 Read Discrete Inputs ,地址格式十进制,起始地址 32,(机器人输出地址 32-59,共 28 个),读写数量可选择 28 即全部读取

由图可见32与41为1,与机器人modbus slave界面显示标准数字输出0和标准数字输出显示的数据一样,可见读取成功

2.1.3写入标准数字输出

setup--read/write definition中可以先择 01 read coils(0x)读取线圈方便在modbus poll上观察

点击functions--选择功能码15:write multiple coils(写多个线圈),勾选所需的coil,点击send,回复respons ok 即可输出信号

2.1.4读取寄存器

setup--read/write definition中可以先择 功能码04read input registers,十进制,起始地址 97,

读写数量 10(根据实际需求修改)

2.1.5写入寄存器

可以在setup--read/write definition 选择04 read input register,地址address256,数量10,先读这些可读可写的寄存器方便我们观察变化

第一种方法:直接双击poll表格里的地址,修改value值来写入(对应功能码06 写单个输出寄存器)

第二种方法:点击functions --16:write multiple registers,双击图中显示列表来修改寄存器值

2.2机器人做主站

机器人做主站,modbus通讯使用机器人控制柜FB2网口,连接控制柜和电脑

查看电脑ip,这边为192.168.1.205

打开 modbus slave 调试助手,点击 connection--connect,如下图设置后点击ok

点击机器人示教器配置--通讯--modbus--添加modbus设备,输入ip(此处ip为主站ip)

2.2.1读线圈

打开modbus slave调试助手,右击名为“mbalave1”窗口,点击slave definition,

输入下图的id,功能码,地址,数量,点击ok

点击示教器页面,输入类型-数字输入 地址为0从站地址可为1,频率10(可选),当图标变为绿色即ok

打开modbus slave调试助手,双击对应地址,修改值,即可发现机器人示教器界面的值也改变

2.2.2写线圈

打开modbus slave,可点击File--new,会出来一根新的监视表,

右击其选择Slave Definition,

输入id 功能码 地址和数量,注意地址不要与上一步设置重复

机器人示教器上点击添加信号,如下图设置:

在该界面点击值,可在modbus slave,查看到

2.2.3读寄存器

打开modbus slave,可点击File--new,会出来一个新的监视表

右击其选择Slave Definition,

输入id 1,功能码04,地址20,数量5(自定义),点击ok

在机器人示教器界面点击添加信号,输入下列数据,圆形图标变绿色表明连接成功

可在modbus slave界面,点击对应地址输入数值,

在示教器界面可查看对应数值

2.2.4写寄存器

打开modbus slave,可点击File--new,会出来一个新的监视表

右击其选择Slave Definition,

选择id 1,function03,地址30,数量5(自定义),点击ok

在示教器界面点击添加信号--输入下图对应信息,圆形图标变绿色表明连接成功

点击值,输入数据,即可在modbus slave上查看到写入的值

3.  程序中操作

3.1机器人做从站

为方便在modbus信号在程序中方便配置和使用,可以在配置--通讯--modbus连接机器人自己作为主站

如上图所示,下述以数字输入,地址32;数字输出,地址33;寄存输入,地址266;寄存器输出,地址277为例

3.1.1任务中读取(等待)线圈值

当线圈m_a为高是弹出弹窗信息1

3.1.2任务中设置(给出)线圈值

机器人中如上图设置,点击运行,调试助手中显示为1,即成功

3.1.3任务中读取(等待)寄存器值

运行机器人程序,在poll中地址66输入44,机器人弹窗提示1,即ok

3.1.4任务中设置(给出)寄存器值

运行机器人程序,poll中地址277显示为值897即ok

3.2机器人做主站

确定按照上述步骤客户端io设置完成

3.2.1任务中读取(等待)线圈值

运行任务,当从站的信号modbus=高 时 ,页面弹出窗口提示“1”,代表已获取到该mosbus

3.2.2任务中设置写入线圈值

先检查助手里面准备写入得地址是否为0

如图在任务里添加设置

点击运行任务,助手中值变化

3.2.3任务中读取(等待)寄存器值

运行任务,当从站的信号modbus_2=3 时 ,页面弹出窗口提示“1”,代表已获取到该寄存器的值

3.2.4任务中写入从站的寄存器值

先检查助手里面准备写入得地址是否为0

如图在任务里添加设置

点击运行任务,助手中值变化



download-669.svg comicon14.svg

电话咨询

download-397.svg comicon15.svg

免费试用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

准备好突破增长瓶颈,开启智能制造了吗?
了解我们的机器人如何帮助您的业务增长
欢迎下载艾利特机器人资料

我已阅读并同意艾利特《隐私政策》《法律声明》

我已知晓并同意艾利特通过电子邮件发送相关资料

提交