广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3912|回复: 8

MODBUS协议

[复制链接]

2

主题

6

帖子

30

积分

新手上路

Rank: 1

积分
30
发表于 2023-3-22 11:47:18 | 显示全部楼层 |阅读模式
使用mb_read_reg_03(slave,addr,quantity)函数 quantity=12没有问题,quantity=36时返回 nil,需要怎么处理?
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12619
发表于 2023-3-22 13:47:32 | 显示全部楼层
看一下你的设置是不是不支持一次读取36个寄存器数据
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

2

主题

6

帖子

30

积分

新手上路

Rank: 1

积分
30
 楼主| 发表于 2023-3-22 14:20:54 | 显示全部楼层
If后要接end 发表于 2023-3-22 13:47
看一下你的设置是不是不支持一次读取36个寄存器数据

协议设置里面吗?我设置的是轮询周期5000,轮询延时2000,应答超时2000,连续读取120,读取方式:阻塞
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12619
发表于 2023-3-22 17:34:33 | 显示全部楼层
你可以先将屏幕连接电脑测试。屏幕与电脑端的modbus slave测试,看看这个api的返回长度
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

2

主题

6

帖子

30

积分

新手上路

Rank: 1

积分
30
 楼主| 发表于 2023-3-24 10:54:49 | 显示全部楼层
If后要接end 发表于 2023-3-22 17:34
你可以先将屏幕连接电脑测试。屏幕与电脑端的modbus slave测试,看看这个api的返回长度 ...

测试代码如下:
                His_data1 = mb_read_reg_03(0,0x90,36)
                if His_data1 ~= nil
                then
                       
                end

                if His_data1 == nil
                then
                        print("...His_data1 read Failure ...")               
                end       
打印信息如下:
09:49:04.802         TXD        00 03 00 90 00 24 44 2D
09:49:04.856         RXD        00 03 48 00 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0A 00 0B 00 0C 00 0D 00
09:49:04.876         DBG        ...His_data1 read Failure ...
09:49:04.889         RXD        0E 00 0F 00 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 19 00 1A 00 1B 00 1C 00 1D 00
09:49:04.926         RXD        1E 00 1F 00 20 00 21 00 22 00 23 18 36

发送mb_read_reg_03命令后,是否需要延时等待?
测试的结果是从机回复的报文还没有结束,已经打印出”...His_data1 read Failure ...“
回复

使用道具 举报

1

主题

2

帖子

43

积分

新手上路

Rank: 1

积分
43
发表于 2023-3-24 11:19:32 | 显示全部楼层
我最近正好遇到,读取长度太长虚拟屏调试会有问题,下载到实体屏测试没问题
回复

使用道具 举报

2

主题

1253

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12619
发表于 2023-3-24 13:35:56 | 显示全部楼层
EmbEng 发表于 2023-3-24 10:54
测试代码如下:
                His_data1 = mb_read_reg_03(0,0x90,36)
                if His_data1 ~= nil

你用的是读取方式是阻塞还是非阻塞
Easy doesn't enter into Grown-up life
成年人的生活里面没有“容易”二字
回复

使用道具 举报

2

主题

6

帖子

30

积分

新手上路

Rank: 1

积分
30
 楼主| 发表于 2023-3-28 13:36:14 | 显示全部楼层
习惯不好 发表于 2023-3-24 11:19
我最近正好遇到,读取长度太长虚拟屏调试会有问题,下载到实体屏测试没问题 ...

谢谢!回头我也试一下下载到实体屏
回复

使用道具 举报

2

主题

6

帖子

30

积分

新手上路

Rank: 1

积分
30
 楼主| 发表于 2023-3-28 13:37:10 | 显示全部楼层
If后要接end 发表于 2023-3-24 13:35
你用的是读取方式是阻塞还是非阻塞

阻塞方式
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2024-11-22 02:13 , Processed in 0.045568 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表