VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3390|回复: 20

怎样解决串口通迅时CPU占用高的问题

[复制链接]

1

主题

19

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-3-11 16:30:02 | 显示全部楼层 |阅读模式

我是用VB写的一个监控系统,需要和PLC串口通迅.用的是MSComm控件通迅,可在通迅的时候CPU的占用的很多,
请问有没有高手知道怎么样解决?

谢谢
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-6-6 01:30:01 | 显示全部楼层
用台好点的机子
回复

使用道具 举报

0

主题

3

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-6-25 18:45:01 | 显示全部楼层
估计是程序设计的问题。如果不是非常必要,通讯不要太频繁。另外发送、接收的数据处理的代码也要好好设计。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-6-27 19:00:01 | 显示全部楼层
多线程如何?
回复

使用道具 举报

0

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-6-28 11:00:02 | 显示全部楼层
尽量使用事件驱动模式,避免死循环等待
回复

使用道具 举报

0

主题

10

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-7-4 05:15:02 | 显示全部楼层
一直都用MSComm,应该不是MSComm连接的问题,还是着重看其他的地方吧。
回复

使用道具 举报

1

主题

19

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
 楼主| 发表于 2020-7-7 12:15:02 | 显示全部楼层
我现在是用的,传送后延时,延时代码如下:
'*************************************
Public Sub MyDelay(WaitTime As Single)
'*************************************
    Dim Wait    As Single
    Wait = Timer + WaitTime
    Do
        DoEvents
    Loop Until (Timer > Wait)
    DoEvents
End Sub
不知道是不是上面程序的问题,我试着用ONCOMM事件,代码如下,
Private Sub MSC1_OnComm()
    If MSComm1.CommEvent = comEvReceive Then
        ...........
    End If
End Sub
我在"Private Sub MSC1_OnComm()"设置了断点,
可是在接收到串口信息时没有触发这个事件

请各位高手帮忙
回复

使用道具 举报

0

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-7-14 22:45:02 | 显示全部楼层
应该是你的延时程序造成的,用事件触发方式就可以了. 没有触发通讯事件,可能是Rthreshold 属性=0了,它是触发接收事件的字节数,将其改为1或者你希望的字节数即可.
回复

使用道具 举报

0

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-7-15 13:00:01 | 显示全部楼层
缓冲区设大些,不要每收到一个字符就触发事件
回复

使用道具 举报

1

主题

19

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
 楼主| 发表于 2020-7-24 17:30:01 | 显示全部楼层
谢谢,楼上各位的帮助,CPU的问题解决了,不过还有别的问题,

如果我想每10个字节触发一次OnComm事件,Rthreshold就要设为10才对的,刚开始的时候如果Rthreshold设为小于10的数字,会触发多次ONCOMM事件,可是后来也不知道怎么的,只要设Rthreshold为1到10的数字都只是触发一次OnComm事件,而不是多次.

我一直不能理解这是什么原因,

请高手帮忙.
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

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