【开发资料】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怎么 .
已下载:) 正需要!!!!赞~~~ 谢谢分享 请问下这modbusC主机有串口5的吗,看这个是串口4的,源码没开放,不好修改。 本帖最后由 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写命令在上电之后就直接写值了,我可以不进行写值吗,怎么设置
各位大佬求帮忙
兄弟,这个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
兄弟,这个02模式为什么对自己自定义的变量地址无效,对于迪文屏能硬件自清零的内部地址(如0x9c、0xaa、0x ...
02 模式只对 06 05 命令有效。 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-28 16:07
u8 xdata BT[]={
//0 1 2 3 4 5 6 7 8 9 10 11 ...
急等夫子大侠答疑,谢谢:lol