- 最近手里有个项目要求使用的是迪文触摸屏,与从机直接通讯,使用的是modbus协议,记录一下使用笔记。
一、开发环境
屏幕型号:DMT48270C043_15WT
开发软件:DGUS Tool V7.388.exe
bin文件编辑软件:010Editor.exe
modbus 通讯:屏幕默认串口4,485
二、注意事项
1、DWIN_SET文件夹中应有的文件
- 特别注意需要有DWINOS_T5_Modbus_V7.bin这个文件,这可能属于一个app内核文件吧,可能资料发给我的太多了,挨个试,试到这个好用。
2、编辑22文件,配置modbus
- 手册中指的22文件,实际上是22_Config.bin文件,也有可能22_.bin都识别。使用010Editor.exe*这个软件打开bin文件。
- 编辑22文件按照如下表格式,更多参照该文档。
- 0xE000开始的第一行用来配置通讯参数;
- 0xE008之后的每一行代表一条modbus指令,这一行中的200F这个位置(0xE00C)的值要特别注意,在0xE00B为0x0002时,在触摸屏工程中向200F这个地址写0x005A便会触发该条modbus指令数据,如下图。
- 更多操作参照论坛及视频:
http://forum.dwin.com.cn/forum.php?mod=viewthread&tid=144&extra=page%3D1
3、编辑22文件,配置某些地址的初始值,用于发送modbus指令
- 编辑初始值,然后保存->生成工程,下载到屏幕中发现发出的数据并没有赋值上初始值0xFF00,打开22_Config.bin 0x1000这个位置也是没有值的,那就手动改了它,改完后别忘记把0xE000的数据重新写入一遍,再下载到屏幕就好用了。
- 数据通讯成功
题外:
- 迪文这款屏幕稳定性还是不错的,整明白整个流程下次开发就容易了,特别说明:无论是客服还是技术支持都是很客气的,可能需要等待点回复时间,但都会有回应。
- 但不得不说,第一次使用该屏幕modbus功能,开发起来比较费事,毕竟做开发,一个细节没注意到都会导致通讯失败,费时费力,而导致开发难的主要原因是“使用手册”modbus这部分不完整,好多细节没有说清楚(比如对于出厂的屏幕使用modbus在DWIN_SET文件夹中需要放置哪些文件,22文件的命名规则,22文件是否允许放置多个等),好多步骤没有需要摸索,而且感觉上位机还隐藏着bug(比如工程生成完毕后,使用modbus的05写线圈功能,就需要给一个地址比如0x1000覆初值0xFF00,但每次生成的工程22文件的对应位置上并没有改动,只能手动将22文件的0x1000改为0XFF00,若这个地址超出了赋值范围,设置时至少在上位机上应该提示一下;还有工程改动后,每次生成的新工程都会将22文件上次编写0xE000位置的modbus指令给清空,需要重新复制过来,很费事),资料整体感觉很乱,应该有一个开发向导,至少让开发者按照步骤先搭建起一个能发数据的例程,幸亏参考视频帮助了不少,建议多录制更新。
- 项目开发都追求时间,不可能将所有的文档的每个细节全看一遍,但要使用这个功能,应该尽可能的在这个位置详细内容,可能存在的不明确点标识出来。官网的资料最好按照屏幕型号分类,我要开发这款屏幕,我只想知道这款屏幕相关的全部资料。
- 以上仅表示个人意见,所表达的内容存在个人开发疏漏的情况。