当前位置:首页 > DGUS屏的modbus主机内核-配置与调试-160425
Dgus
屏的modbus配置与调试
1:dgus屏modbus现只支持HEX的RTU主机格式,
暂时不支持ascii格式的通信模式, 暂时不支持从机格式的通信模式
2: modbus内核升级。SD卡升级如下(串口升级请参考串口升级文档)。
modbus内核为“DGUS_V71_MODBUS”,把内核文件装入sd卡上的DWIN_SET 文件夹中(可以随工程文件考入,也单独拷入即可),插到屏的sd卡接口。
3: modbus协议的配置方式有3种,
1)由屏上页面配置。一般测试可以用这个方法,请参考modbus7寸8寸历程。
>如上图的第二条指令03指令:
是将设备5的356(0x0164)地址的2个字的数读到屏上变量地址0001的显示,发送模式是 0,所有页面均可执行,
(如果要改成01模式,后面发送标志改成10,那么此指令会在10页面下才会执行)
上图配置后
屏主动会外发:05 03 01 64 00 02 85 AC
可以用串口测试回应:05 03 04 000A 000B DE36
历程的屏上面地址0x0001和0x0002设会显示数据1.0和1.1显示小数,(因为设置了一位定点小数)
>如上图的第二条指令16(0x10)指令: 是将屏上面变量地址4098(0x1002),的数写进0设备地址2,发送模式是2,也就是当4111(0x100F)这个设置的 按键返回地址键值0x005A按下之后,才进行发送,发送一次后地址0x100F键值底层自动清零。
以上两条可以用于测试通讯或简单的功能直接界面配置替换。
2)由22.bin文件配置。这个方法是90%的用户用的方法,22文件要单独拿出来写,不然点击生成配置文件,22文件会被软件本身未有初始值设置的控件的地方而清空。
Modbus协议在屏的内存地址0x5000(word)开始定义,UltraEdit-32打开是由字节编辑,那么0x5000折算到22.bin的字节地址为:0x5000X2=0xA000 . 用UltraEdit-32 打开22.bin(见图1)
图1:
0xa000=5A 表示启用modbus。 0xa001=A5 表示启用modbus。 0xa002=5A 表示保存配置文件。
0xa003=00 填入 5A 表示从22.bin把配置文件读入缓冲区 (22.bin配置时不用填,默认 00 即可)。
0xa004=00 与0xa005设定通信波特率,0060=9600 0480=115200 0xa005=60
0xa006=00 00H=8N1 01H=8E1 02H=8O1 03H=8N2 0xa007=00 默认 00 即可 ~
0xa00a=00 默认 00 即可
共16字节。
modbus协议指令
第一条modbus协议指令从0xa010开始。 0xa010 =5A 写入5A表示C,其他无效。 0xa011 =01 从机ID号。
0xa012 =03 modbus读取从机参数指令03。 0xa013 =22 读取从机参数的字节数,字数=0x11
0xa014 =00 与0xa015构成通信超时时间(0064=100ms) 0xa015 =64 0xa016 =00
0xa017 =01 0001表示只在0xa018 0xa019表示的页面下执行modbus 0xa018 =00
0xa019 =0A 000A表示本条只在10号页面下执行,其他页时停止执行。 (如果0xa016~0xa019均写0x0000, 0x0000 那么此条指令会在所有页面下均可执行;
如果0xa016~0xa019均写的0x0002 ,0x100F 那么此条指令会在在当地址0x100F写入0x005A后执行本条指令。实质的应用是做一个:键值0x0005A、地址0x100F的“按键返回”控件,当这个按键按下之后执行一次本条指令)
0xa01a =20
0xa01b =00 (是读或写数据的DGUS屏上面的存放地址2000) 0xa01c =10
0xa01d =00 0xa01c 0xa01d 从机数据地址1000。
0xa01e =00 读或写是否成功标志位,指令发送时是00,发送完成后等数据返回 时等于FF ,表示从机成功返回 ,等于00,返回错误或超时。 0xa01f = 00 保留默认 00
第二条modbus协议指令从0xa010开始。 0xa020 ~ 0xa02F 第三。。。。。。。。。。。。。。。。
依此类推。
3)由os程序代码配置。其实就是上电写入变量地址,比第二种方法进步的地方是不需要单独拿出22文件来写。注:由于升级了modbus内核,DGUS的0x5A 0xA5的协议屏不再支持,DGUS_5.04上位机软件串口下载无效,所以这种写法适用于5寸屏以上能用ED2的下载器用户,方便直接通过插上SD卡槽的串口下载os。下文的os写法可以直接复制到os编译软件进行查看。
; DWIN OS IJNE R255,0,4
;比较R255里面不是0后往下跳转4行
CALL MODBUS启用配置 CALL 第一条03指令 CALL 第一条06指令
LDBR R255,1,1 ;上电运行一次即可,0x5000以后地址不再访问 END
;=======================================
MODBUS启用配置: LDWR R0,0X5000 ;注:所有的变量地址都要经过R0和R1,在进行处理。
LDWR R10,0X5AA5 ;5000 其他的指令参考os指导说明文档。
LDWR R12,0X5A00 ;5001
;LDWR R14,0X0480 ;5002 9600=0060 115200= 0480 LDWR R14,0X0060 ;5002 9600=0060 115200= 0480 LDBR R16,0X00,10 ;5003 8N1 MOVXR R10,0,8 RET ;======================================= ;CMD 03 第一条03指令: LDWR R0,0X5008 LDBR R10,0X5A,1 ;
共分享92篇相关文档