DGUS屏的modbus主机内核-配置与调试-160425

2018-12-22 19:56

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 ;

LDBR R11,0X01,1 ;ID LDBR R12,0X03,1 ;CMD LDBR R13,46,1 ;LEN *2 ;2 LDWR R14,0X0190 ;TIM 400MS LDWR R16,0X0001 ;MARK LDWR R18,7 ;MARK LDWR R20,0X0001 ;DGUS ADDRE LDWR R22,0X0001 ;ID_ADDRE LDWR R24,0X0000

MOVXR R10,0,8 ;READ_X1-X7 RET

;CMD 06 第一条06指令: LDWR R0,0X5058 LDBR R10,0X5A,1 ; LDBR R11,0X01,1 ;ID LDBR R12,0X06,1 ; CMD

LDBR R13,2,1 ;LEN *2 ;2 LDWR R14,0X0190 ;TIM 400MS LDWR R16,0X0002 ;MARK

LDWR R18,0X0060 ;MARK LDWR R20,0X000D ;DGUS ADDRE LDWR R22,0X000D ;ID_ADDRE LDWR R24,0XFF00

MOVXR R10,0,8 ;READ_X1-X7 RET

4:调试问题及解决方法

1) Modbus只是定义了一种通信数据格式,与硬件的通信接口没有任何关系, 通信口无论是RS232,485,还TTL电平连接都能运行modbus。

2) 配置好Modbus 协议后,下载到屏里,接上sscom32调试助手, 选择好波特率,若是配置了在任何页面都读取的指令,则屏会发送数据到 sscom32调试助手上。

3) 配置好后,若没有发送数据,则先检查配置文件有无错误,

波特率是否正确,22.bin文件是否被重新编译(用配置软件编译后, 22.bin文件会被改写清零。)

4) 用RS-232 TO 485 转接头调试时,转接头A+ 接屏A+. B- 接屏的B-。 或485+ 接屏A+. ,485- 接屏B-.。

转接头的GND 最好接到屏的 GND,有的转接头(无源)不好

GND不连接时有FFFFFFFFFF往串口发送。

1、 MODBUS本条指令处理定时时间怎样理解?

答:主机的读指令间隔是最大间隔,如果从机立即应答,那么应答后就会立马执行下一条指令。写指令的间隔就是真实的间隔,不论从机是否应答,间隔始终为设定的,从上往下依次执行。

读指令如果想让其以某一个时间频率读最简单的办法:可以在01模式指定页面运行指令,读指令穿插一条虚拟的写指令,这样交替达到即使立即响应也能延时的目的。

2、 MODBUS读写指令发送方式02模式如何运用? 答:实际就是利用按键返回按下发送一次,比如按键返回配置地址0x1000,键值0x005A,当这个按键按下的时候,配置指向的modbus屏上面的地址指令会下发一次,底层自动清零键值,不会重复发。一般对于写指令,数据变量录入参数之后,如果不额外配置一个按键返回用02模式发送,那么可以用os判断数据录入变化了就自动下发,不变化就不发,这里写os一般是用的写02模式下的时候也是会底层会自动清零键值。

3、 MODBUS和os配合问题? 答:os可以将运行周期调成是120ms或者80ms运行一次,这样变量刷新的处理速度会加快,但是屏上面变量的处理能力会下降,os的周期和MODBUS配置的指令是分开的,modbus多条指令从第一条到最后一条然后再从第一条重新开始,这个进行的时间是要看用户的实际需要,所以在某种程度上需要合理配合。尽量利用用01模式,尤其是写指令,可以在指定的页面配合指令的发送,os方面也可以判断页面分页运行的模式,这样避免所有指令发送等待周期过长。

4.对于miniDGUS屏的modbus配置,参考mini屏的文档,配置地址不同,功能上面大致一样,注意miniDGUS出厂的屏一般自带了迪文DGUS协议和modbus配置协议内核,用户无须升级内核,miniDGUS屏配置了modbus协议之后,原来的DGUS协议还能继续用,比较方便适合用DGUS5.04软件下载配置文件。


DGUS屏的modbus主机内核-配置与调试-160425.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:白龙潭游记

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: