迪文科技论坛

用户名  找回密码
 立即注册
帖子
查看: 1789|回复: 5

T5L屏做主机写的MODBUS协议

[复制链接]

6

主题

32

回帖

336

积分

中级会员

Rank: 3Rank: 3

积分
336
QQ
发表于 2019-7-25 16:05:20 | 显示全部楼层 |阅读模式
本帖最后由 神秘の宅叔 于 2019-7-27 20:57 编辑

有没有T5L屏做主机写的MODBUS协议,,用C写的,,各位大佬
回复

举报

27

主题

75

回帖

925

积分

高级会员

Rank: 4

积分
925
发表于 2019-7-25 17:09:04 | 显示全部楼层
你好,这个帖子的内容没能解决您的问题是么?不知是哪里有问题呢?
http://inforum.dwin.com.cn:20080 ... &extra=page%3D1
回复

举报

6

主题

32

回帖

336

积分

中级会员

Rank: 3Rank: 3

积分
336
QQ
 楼主| 发表于 2019-7-25 17:10:26 | 显示全部楼层
CCN 发表于 2019-7-25 17:09
你好,这个帖子的内容没能解决您的问题是么?不知是哪里有问题呢?
http://inforum.dwin.com.cn:20080/forum.php?mo ...

这个是从机的代码吧,
回复

举报

82

主题

150

回帖

2698

积分

超级版主

Rank: 8Rank: 8

积分
2698
发表于 2019-7-25 19:45:05 | 显示全部楼层
本帖最后由 神秘の宅叔 于 2019-7-26 12:46 编辑

您好,暂时还没有屏做主机C程序,如果要写,我的想法是这样:C写法思路还是可以按照迪文os汇编的思路例子,也就是从DGUS的变量地址配置上面借用一块地址,分别按照写好的字节的配置,程序去判断并来控制主机指令发送、和接收处理,
可以从如下的细节做参考例如:
1、单条mdoubs指令的启用和关闭,
2、读写的Modbus设备地址
3、读写的Modbus设备地址0x03 0x10 ....
4、0x 0000所有页面下均执行指令; 0x0001仅在指定页面下执行指令;0x0002仅在VP指向的变量缓冲区低字节内容为0x5A才执行指令
5、本条指令执行后,等待应答的最大周期(n*40/20ms,收到应答正确后立即执行下条)
6、本条指令读写数据在VP空间的起始地址
7、本条指令读写的数据在Modbus设备上的数据起始地址。

我们做好上面程序的几点架构之后是基本能跑modubs通讯,或者我们还可以增加一些其他的功能是程序的设计更加的完善:
1、总线通信状态反馈,0x00=失败,0x**=成功
2、本条指令执行后,未收到应答或应答错误,再次补发的次数
3、产生的通讯错误码。 01 通讯超时 02 校验错误 03 应答地址不对
4、指令执行后无应答,是否执行下条指令。
等等,
modbus的协议虽然是固定的,但是具体主、从的双方配合还是可以根据我们自己写的程序去做得更好。

说了这么一堆,其实我想要表达的是上面用vp地址判定的思路是一种适合迪文厂家进行直接写好库模板让用户去使用的一种方式,用户也大可不按照上述这个设计思路,直接根据自己设计的项目,配合界面的触控按键、显示控件,程序直接将主机的的指令,直接程序将固定好指令轮询时间、协议数据,通过串口发出来,这样的程序应该对用户的思路没有局限性,反而是取决于用户的屏上面的demo功能限制,所以一千个demo就会一千种不同的C程序了,我们可以将mdobus指令写成固定的函数,只是控制好相关的读写操作两头的地址,这样写法会更加直接简单,当然楼上的C51的例子例如CRC程序也都是可以直接复制过来用的。

正是因为这样,所以T5L虽然开放了C语言平台,方便用户自己写程序。如果实在是不想写这个C程序的串口通讯,而且只是针对于串口通讯那一块的开发,
所以建议楼主现在实际完全也可以用迪文os内核、用迪文已经写好的汇编modbus程序那套架构去用,用迪文已经写好os的内核,程序不跑T5L80c51,迪文os汇编怎么写的不用去理会,甚至都不需要看代码,实际需要做的只是按照说明操作手册在界面上面配置好控件、触摸和配置22文件了。

当然我说的只是我的一些理解和想法,仅供参考。


回复

举报

6

主题

32

回帖

336

积分

中级会员

Rank: 3Rank: 3

积分
336
QQ
 楼主| 发表于 2019-7-26 09:13:29 | 显示全部楼层
神秘の宅叔 发表于 2019-7-25 19:45
您好,暂时还没有屏做主机C程序,如果要写,我的想法是这样:C写法思路还是可以按照迪文os汇编的思路例子, ...

咱这个,汇编和C是不兼容的吧
回复

举报

82

主题

150

回帖

2698

积分

超级版主

Rank: 8Rank: 8

积分
2698
发表于 2019-7-26 12:45:38 | 显示全部楼层
HXS 发表于 2019-7-26 09:13
咱这个,汇编和C是不兼容的吧

关于DWIN编程和51编程兼容问题:
1、DWIN OS程序这个是迪文的C编译器或者迪文OS汇编(用迪文软件DWIN C Compiler 1.1.0.7或者OSBuild3.0.2.6生成),是在T5L_OS*.bin内核底层程序上运行的,所以必须下载T5L_OS*.bin内核底层程序后再下载DWIN OS程序。
2、T5L的 OS CPU 8051程序,用户基于OS 的8051 平台开发的应用程序(用Keil公司的软件,需要安装迪文T5L的KEIL接口驱动程序)。注:Keil软件编译后的hex文件,需要用迪文的PC工具软件“DownLoadFor8051 V1.4”转换为T5L51*.BIN文件。


也可以这样理解:
T5L51*.BIN 就是8051直接运行的代码,没有DWIN OS平台了。

DWIN OS程序是在T5L DWIN  OS虚拟机上运行的代码。


T5L51*.BIN一旦下载到T5L芯片里,就会把T5L_OS内核和DWINOS汇编的程序都冲掉,要恢复用汇编的OS程序的话,先要下载T5L的OS内核程序如T5L_OS_DGUS2_V1*.BIN,然后再下载DWINOS*.BIN)

回复

举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-4-4 09:40 , Processed in 0.036001 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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