夫子 发表于 2020-9-30 09:56:09

【开发资料】T5L C版 modbus 协议通信-程序套用模版

(以下文字内容为版主添加补充)
附件程序是基于迪文T5L平台开发的C程序模版,用户可以直接套用。
Info:暂未开放源码,主程序代码采用lib文件封装调用库。
用户使用keil uv4打开工程,直接修改波特率,补发次数,指令间延时,指令条数,从机ID号、编辑MODBUS_RTU指令


较DWIN OS汇编写的“T5L Modbus文件-V7”模版的功能区别:
1、设定的读写mobus指令配置方式不再采用22文件写入变量预加载方式,只需打开ModBusCVer1.0Main.c文件编辑MODBUS_RTU指令,设置有效的指令条数后,改写到的数组列表第1行代码顺序改写条数行定义即可。
2、指令发送的模式取消了所有页面下均执行指令模式功能,增加了 “指定变量的值非零时发送” ,“指定变量发生变化时自动发送”。具体请详见附件压缩包内说明文档。
3、新增功能:从机超时无应答,或者校验错误,主机可设置本条指令的补发功能,可设置补发次数。






串口2的代码修改版本参考如下论坛应用帖。
论坛首页›资料分享›Modbus通信开发›【提问】DMG10768C104_03W电容触控屏只有一个串口2怎么 .

wenzhendong 发表于 2020-9-30 10:29:56

已下载:)

琴琴小老妹 发表于 2020-9-30 15:37:09

正需要!!!!赞~~~

lihui163 发表于 2020-9-30 18:14:00

谢谢分享

xxQQ 发表于 2020-12-7 20:37:11

请问下这modbusC主机有串口5的吗,看这个是串口4的,源码没开放,不好修改。

xu.guo 发表于 2020-12-17 16:24:11

本帖最后由 xu.guo 于 2021-1-11 09:54 编辑

兄弟,这个02模式为什么对自己自定义的变量地址无效,对于迪文屏能硬件自清零的内部地址(如0x9c、0xaa、0xf0等)有效,我用的t5l4.0内核的48480屏。我设的地址为103f,通过值返回控件置1(置5aa5,置005a),无论用不用软件置0,模式2都不起作用贴上已经起作用的modbus模式2命令行:
0x5a, 0x01, 0x10, 0x06, 0x64, 0x02, 0x00, 0x9c, 0x10, 0x30, 0x00, 0x64,        //005      
0x5a, 0x01, 0x03, 0x06, 0x64, 0x02, 0x00, 0xf0, 0x10, 0x37, 0x00, 0x64,        //004

然后模式3的0x06写命令和模式40x10写命令在上电之后就直接写值了,我可以不进行写值吗,怎么设置
各位大佬求帮忙

xu.guo 发表于 2021-1-11 10:07:53

兄弟,这个02模式为什么对自己自定义的变量地址无效,对于迪文屏能硬件自清零的内部地址(如0x9c、0xaa、0xf0等)有效,我用的t5l4.0内核的48480屏。我设的地址为103f,通过值返回控件置1(置5aa5,置005a),无论用不用软件置0,模式2都不起作用贴上已经起作用的modbus模式2命令行:
0x5a, 0x01, 0x10, 0x06, 0x64, 0x02, 0x00, 0x9c, 0x10, 0x30, 0x00, 0x64,      //005      
0x5a, 0x01, 0x03, 0x06, 0x64, 0x02, 0x00, 0xf0, 0x10, 0x37, 0x00, 0x64,      //004

然后模式3的0x06写命令和模式40x10写命令在上电之后就直接写值了,我可以不进行写值吗,怎么设置
各位大佬求帮忙

夫子 发表于 2021-1-12 08:05:09

xu.guo 发表于 2021-1-11 10:07
兄弟,这个02模式为什么对自己自定义的变量地址无效,对于迪文屏能硬件自清零的内部地址(如0x9c、0xaa、0x ...

02 模式只对 06 05 命令有效。

qingge 发表于 2021-1-28 16:07:37

u8          xdata   BT[]={
//0   1   2   3   4   5   6   7   8   9   10    11                        
//0x5A, 0x01, 0x03, 0x02, 0x30, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,        //0011
0x5A, 0x01, 0x05, 0x02, 0x30, 0x04, 0x10, 0x01, 0x10, 0x01, 0x00, 0x00,-------OK
//0x5A, 0x01, 0x04, 0x40, 0x50, 0x01, 0x00, 0x01, 0x10, 0x02, 0x10, 0x02,        //002
0x5A, 0x01, 0x05, 0x02, 0x30, 0x04, 0x10, 0x02, 0x10, 0x02, 0x00, 0x01,-------OK
//0x5A, 0x01, 0x06, 0x01, 0x30, 0x04, 0x00, 0x00, 0x10, 0x42, 0x10, 0x42,        //003
0x5A, 0x01, 0x05, 0x02, 0x30, 0x04, 0x10, 0x03, 0x10, 0x03, 0x00, 0x02,-------OK
//0x5A, 0x01, 0x06, 0x01, 0x30, 0x04, 0x00, 0x00, 0x10, 0x43, 0x10, 0x43,        //004
0x5A, 0x01, 0x05, 0x02, 0x30, 0x04, 0x10, 0x04, 0x10, 0x04, 0x00, 0x03,-------OK
//0x5A, 0x01, 0x10, 0x03, 0x30, 0x04, 0x00, 0x00, 0x10, 0x44, 0x10, 0x44,        //005
0x5A, 0x01, 0x05, 0x02, 0x30, 0x04, 0x10, 0x05, 0x10, 0x05, 0x00, 0x04,-------OK
//0x00, 0x01, 0x10, 0x03, 0x30, 0x02, 0x10, 0x50, 0x10, 0x47, 0x10, 0x47,        //006
0x5A, 0x01, 0x05, 0x02, 0x30, 0x04, 0x10, 0x06, 0x10, 0x06, 0x00, 0x05,-------OK
//0x5A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,        //007
0x5A, 0x01, 0x05, 0x02, 0x30, 0x04, 0x10, 0x07, 0x10, 0x07, 0x00, 0x06,--------失效
//0x5A, 0x01, 0x03, 0x02, 0x30, 0x01, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, //008
0x5A, 0x01, 0x05, 0x02, 0x30, 0x04, 0x10, 0x08, 0x10, 0x08, 0x00, 0x07,-------失效
为什么有两条失效?

qingge 发表于 2021-1-29 14:46:44

qingge 发表于 2021-1-28 16:07
u8          xdata   BT[]={
//0   1   2   3   4   5   6   7   8   9   10    11      ...

急等夫子大侠答疑,谢谢:lol
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 【开发资料】T5L C版 modbus 协议通信-程序套用模版