首页
新闻动态
产品展示
资料下载
联系我们
新闻动态
新闻动态
当前位置:
网站首页
>
新闻动态
>
新闻动态
新闻动态
基于VGUS串口屏的Modbus从机方案
分享到:
点击次数:
更新时间:2022-08-17 16:26:08 【
打印此页
】 【
关闭
】
导读:
该方案将VGUS串口屏作为Modbus从机,用户设备为Modbus主机。使用Modbus协议通讯,支持常用的功能码,标准指令格式快速上手。串口模式,传输模式可配置。传输模式支持RTU模式或ASCII模式,以提供更大的灵活度,能够方便快速连接到总线。
注意:仅SDWb系列串口屏支持该方案应用。
配置说明及注意事项:
1.设备地址配置路径:屏参配置->串口参数配置->帧头->高字节。
(设备地址默认为 0xA5,若设定值为 0,则自动恢复默认设备地址)
2.串行数据格式配置。
波特率配置路径:屏参配置->串口参数配置->波特率。
工作模式配置路径:屏参配置->串口参数配置->帧头->低字节。
工作模式配置数据说明:
使用帧头低字节的用于定义串口模式和传输模式。
bit7-bit4:保留,写0。
bit3-bit1:定义串口模式。
000:7N1(7数据位,无校验,1停止位);
001:7E1(7数据位,偶校验EVEN,1停止位);
010:7O1(7数据位,奇校验ODD,1停止位);
011:7N2(7数据位,无校验,2停止位);
100:8N1(8数据位,无校验,1停止位);
101:8E1(8数据位,偶校验EVEN,1停止位);
110:8O1(8数据位,奇校验ODD,1停止位);
111:8N2(8数据位,无校验,2停止位)。
bit0:定义传输模式。
0:RTU模式;
1:ASCII模式。
注意:使用RTU模式时,必须使用8数据位,不满此条件,将默认配置为8E1模式。
3.RTU模式时,波特率小于或等于19200Bps时,报文帧间隔需大于3.5个字符时间。报文内字符间隔需小于1.5个字符时间。波特率大于19200Bps时,报文帧间隔需大于1.750ms。报文内字符间隔需小于750μs。
4.本方案支持的指令功能与VGUS串口指令集所实现的功能一致。
5.VGUS中涉及到主动上传串口数据的功能均已屏蔽。
6.需要更新到固件SDWb_Firmware_MODBUS_SLAVE-xxxxxxxx.bin。
7.可以使用Modbus Poll等工具模拟Modbus主机与屏进行通讯测试。
Modbus Slave 指令操作表:
指令举例说明
注意:以下举例指令的从机地址均为0xA5。
一、0x03指令举例说明
1.1 读变量存储器
从变量存储器0x0020地址开始读取1个变量数据。
发送:A5 03 00 20 00 01 9C E4
成功应答:A5 03 02 12 34 C4 EA
变量存储器0x0020地址的数据为0x1234。
上述指令ASCII模式的发送和应答:
ASCII发送:3A 41 35 30 33 30 30 32 30 30 30 30 31 33 37 0D 0A
ASCII成功应答:3A 41 35 30 33 30 32 31 32 33 34 31 30 0D 0A
1.2 读寄存器
从寄存器0x03地址开始读取2个变量数据。
发送:A5 03 F0 03 00 02 1E 2F
成功应答:A5 03 04 00 00 00 02 9E 38
寄存器0x03地址的数据为0x0002。(读取数据的低字节为寄存器的有效数据)
上述指令ASCII模式的发送和应答:
ASCII发送:3A 41 35 30 33 46 30 30 33 30 30 30 32 36 33 0D 0A
ASCII成功应答:3A 41 35 30 33 30 34 30 30 30 30 30 30 30 30 35 34 0D 0A
二、0x06指令举例说明
2.1 写单个变量存储器
将变量存储器0x0020地址的数据写为0x5566。
发送:A5 06 00 20 55 66 2E 5E
成功应答:A5 06 00 20 55 66 2E 5E
2.2 写单个变量存储器
控制蜂鸣器鸣叫200ms。
发送:A5 06 F0 02 00 14 02 21
成功应答:A5 06 F0 02 00 14 02 21
2.3 写1个数据到单个曲线缓存区
曲线缓冲区通道0写入一个数据。
发送:A5 06 F1 01 00 60 F3 FA
成功应答:A5 06 F1 01 00 60 F3 FA
三、0x10指令举例说明
3.1 写多个数据到变量存储器:
将字符“hello word”写入0x0200为起始地址的变量存储器。
发送:A5 10 02 00 00 06 0C 68 65 6C 6C 6F 20 77 6F 72 64 FF FF AA BC
成功应答:A5 10 02 00 00 06 58 97
3.2 写多个数据到寄存器:
切换到2号页面。
发送:A5 10 F0 03 00 02 04 00 00 00 02 21 4D
成功应答:A5 10 F0 03 00 02 9B EC
3.3 写多个数据到曲线缓存区:
通道0,通道1,通道7分别写入两个数据
发送:A5 10 F1 83 00 06 0C 00 10 00 20 00 30 00 40 00 50 00 60 91 F8
成功应答:A5 10 F1 83 00 06 9A 3B
0x83表示数据顺序为:(通道0+通道1+通道7)+…+(通道 0+通道1+通道 7)。
通道0数据:0x0010 0x0040
通道1数据:0x0020 0x0050
通道7数据:0x0030 0x0060
3.4 扩展指令功能
3.4.1 直接写显存
以(100,100)为起始坐标,设置4个像素点为红色(0xF800)。
发送:A5 10 F2 00 00 06 0C 00 64 00 64 F8 00 F8 00 F8 00 F8 00 A4 A4
成功应答:A5 10 F2 00 00 06 6B 97
3.4.2 连续播放音频文件。
连续播放1次编号为1,2,3的音频文件。
发送:A5 10 F2 03 00 04 08 01 00 01 00 02 00 03 00 90 E3
成功应答:A5 10 F2 03 00 04 1A 56
数据0xF2 0x03表示连续播放音频文件指令。
四、0x10指令说明
该指令用于设置或清除变量存储器中指定地址的特定比特。
地址范围:0x0000-0xEFFF。
指令格式:
功能算法:
结果= (当前内容 AND And_Mask) OR (Or_Mask AND And_Mask)。
如果 Or_Mask 值为零,那么结果是当前内容和 And_Mask 的简单逻辑 AND(与)。如果 And_Mask 值为零,结果等于 Or_Mask 值。
注:当前内容为变量存储器参考地址的数据。
示例1:
在不影响其它位的情况下,将位0置1。
And_Mask=0xFFFF
Or_Mask=0x0001
将变量存储器地址0x0122的位0置1。
发送:A5 16 01 22 FF FF 00 01 C5 BF
成功应答:A5 16 01 22 FF FF 00 01 C5 BF
示例2:
在不影响其它位的情况下,将位0置0。
And_Mask=0xFFFE
Or_Mask=0x0000
将变量存储器地址0x0122的位0置0。
发送:A5 16 01 22 FF FE 00 00 55 BF
成功应答:A5 16 01 22 FF FE 00 00 55 BF
五、位操作区(线圈)说明
在变量存储器中开辟一块区域,用于位变量操作区??山岷舷允究丶痛ッ丶褂?。
位变量操作区地址与变量存储器地址对应关系如下:
使用0x01、0x05、0x15指令时,读取或写入的地址需要使用下表中的地址。
线圈地址范围:0-512
变量存储器地址与线圈地址对应关系表
5.1 0x01指令,读线圈:
从线圈地址0开始,读取10个线圈。
发送:A5 01 00 00 00 0A A5 29
成功应答:A5 01 02 5A 01 33 45
5.2 0x05指令,写单个线圈:
将线圈地址2写为“ON”。
发送:A5 05 00 02 FF 00 34 DE
成功应答:A5 05 00 02 FF 00 34 DE
5.3 0x15指令,写多个线圈:
从线圈地址0开始,写10个线圈。写入数据为0xA3 0x02。
发送:A5 0F 00 00 00 0A 02 A3 02 D6 CE
成功应答:A5 0F 00 00 00 0A CC E8
上一条:
一招让UI“动”起来——用户体验从功能机时代跃升到智能机时代
下一条:
圆形进度条在串口屏上的应用
一区二区视频日韩免费,亚洲AⅤ无码专区在线,久久精品亚洲AV无码四区,久久国产精品99久久