迪文科技论坛

 找回密码
 立即注册
搜索
查看: 174|回复: 5

【提问】关于C51-MODBUS的提问

[复制链接]

3

主题

10

回帖

94

积分

注册会员

Rank: 2

积分
94
发表于 2024-9-3 15:32:04 | 显示全部楼层 |阅读模式
大家好,我使用的是论坛下面链接帖子的模板,通信正常使用,但是我移植了系统的一些读写代码,写了一些函数后,发现模板里的函数不能和新写的函数并存,新写的函数可以正常使用后,通信总会受影响,请问是什么原因呢

http://inforum.dwin.com.cn:20080 ... 2810&extra=page%3D1
回复

使用道具 举报

1

主题

35

回帖

548

积分

高级会员

Rank: 4

积分
548
发表于 2024-9-3 16:01:25 | 显示全部楼层
1、原来的程序主要是modbus通讯的功能,你新增加的移植一些代码主要是做什么的?
2、你看看你移植代码里面具体是那个地方逻辑有影响,目前这个模板核心功能是modbus通讯,移植的代码只能围绕通讯去工作,如果你移植代码逻辑有堵塞逻辑(比如你移植过来代码里面,有延时等待),就会影响通讯,也就是就会影响通讯采集,移植的逻辑不能有很长等待时间,只能加逻辑判断的方式去处理,逻辑不成立,就马上去采集数据,立马运行modbus通讯逻辑,因为原来里面只有采集数据。
3、你新加的功能不能在大循坏里面有堵塞的情况,要保证每一个逻辑功能块都是独立,如果条件不成立就马上运行下一个逻辑功能块函数,保证主程序里面函数都顺畅运行。
回复

使用道具 举报

3

主题

10

回帖

94

积分

注册会员

Rank: 2

积分
94
 楼主| 发表于 2024-9-3 16:12:54 | 显示全部楼层
王文佳666 发表于 2024-9-3 16:01
1、原来的程序主要是modbus通讯的功能,你新增加的移植一些代码主要是做什么的?
2、你看看你移植代码里面 ...

您好,我这里移植的是sys.c 就是迪文系统的对地址进行读写的那个文件,功能是一些对地址的读取和判断,没有延时的函数,会是中断的原因吗
回复

使用道具 举报

3

主题

10

回帖

94

积分

注册会员

Rank: 2

积分
94
 楼主| 发表于 2024-9-3 16:21:07 | 显示全部楼层
王文佳666 发表于 2024-9-3 16:01
1、原来的程序主要是modbus通讯的功能,你新增加的移植一些代码主要是做什么的?
2、你看看你移植代码里面 ...

您好,他有一个现象就是  在大循环里加了一个密码检测的函数,读地址然后对比,在跳转,modbus语句有两个03和10,加上这个函数的时候刚上电会只有03语句发出,对密码进行判断后,就没有modbus数据发出来了。
回复

使用道具 举报

1

主题

35

回帖

548

积分

高级会员

Rank: 4

积分
548
发表于 2024-9-3 16:55:41 | 显示全部楼层
lion5293 发表于 2024-9-3 16:21
您好,他有一个现象就是  在大循环里加了一个密码检测的函数,读地址然后对比,在跳转,modbus语句有两个 ...

1、那问题点应该是密码监测函数哪里,建议你在密码监测函数哪里加一个仿真测试。
(1)建议:在密码检测函数里面加测试点,可以用一个数据变量显示控件做标记测试、看看程序运行到哪里不正常,把C程序相关的逻辑变量用DGUS写函数显示到界面上,做一个显示控件,定义一个变量地址,把相关的变量逻辑显示到界面上。(比如运行到逻辑A处,显示1,运行到逻辑B处,显示2,运行到逻辑C处,显示3,那个程序段逻辑没有按照你设计的运行,那你调试哪个部分,跟踪问题点,就可以解决了)
(2)也可以多定义几个显示控件,分别做到程序不同的地方仿真,如果程序运行了,哪个控件就会显示,达到仿真测试作用。
回复

使用道具 举报

3

主题

10

回帖

94

积分

注册会员

Rank: 2

积分
94
 楼主| 发表于 2024-9-3 16:59:50 | 显示全部楼层
王文佳666 发表于 2024-9-3 16:55
1、那问题点应该是密码监测函数哪里,建议你在密码监测函数哪里加一个仿真测试。
(1)建议:在密码检测 ...

好的我试一下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 07:27 , Processed in 0.080626 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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