PlC与上位机串口通信时间

watarno 2004-07-10 11:17:30
我用vc的Api串口读写函数,通过Rs232口和CQM1H-CPU51用hostlink码进行通信,每读PLC一个字的时间要50mm左右,请问有哪些可能原因造成的通信时间需要这么长?
COMMTIMEOUTS timeouts;
timeouts.ReadIntervalTimeout = 30;
timeouts.ReadTotalTimeoutMultiplier = 3;
timeouts.ReadTotalTimeoutConstant = 50;timeouts.WriteTotalTimeoutMultiplier = 3;
timeouts.WriteTotalTimeoutConstant = 30;
...全文
1511 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
AthlonxpX86 2004-08-13
  • 打赏
  • 举报
回复
同情啊,不过我也不好过,我也许连大学都上不上.............
watarno 2004-08-12
  • 打赏
  • 举报
回复
找不到你说的这个
我的电脑-属性-硬件-设备管理器-端口-com1

你说的2000设备管理器->串口->串口设置->高级在哪儿?
AthlonxpX86 2004-08-12
  • 打赏
  • 举报
回复
我用线程采集,发送的数据量很小(几个字的长度),发送频率肯定高,我用的是com口,不知道怎么关掉你说的那个硬件缓冲?
===========================================================
所以说你的这种方式肯定会很慢,首先线程信号机制肯定达不到你要求的频率,唯一可改的只能是硬件缓冲区设置方法如下,
2000设备管理器->串口->串口设置->高级
watarno 2004-08-12
  • 打赏
  • 举报
回复
我用线程采集,发送的数据量很小(几个字的长度),发送频率肯定高,我用的是com口,不知道怎么关掉你说的那个硬件缓冲?
watarno 2004-08-12
  • 打赏
  • 举报
回复
硬件已经运到厂里去了,我现在没有plc,我再有机会试一下,把结果告诉你,也许以后没有机会再做控制的项目了,现在做的项目都是纯软件的,没有什么意思,你的硬件水平真高,我在学校里学的太杂了,老师来什么项目就去做什么项目,毕业了还不知道拿什么去找工作,我现在没有专业,没有方向,连英语都学不好,只是老师的一个机器,唉,真不知道前途在什么地方,而且老师不给钱!
AthlonxpX86 2004-08-12
  • 打赏
  • 举报
回复
别忙着结贴啊,说说结果怎么样,我也很想知道是不是这个原因。
watarno 2004-08-12
  • 打赏
  • 举报
回复
已经找到,谢谢!
AthlonxpX86 2004-07-15
  • 打赏
  • 举报
回复
还不太懂你什么意思,你的数据通讯是什么方式,数据包方式?这样计算50ms确实太慢大概只有200bps,我想可能是因为你的数据通讯方式是可编程控制的少量数据通讯方式,比如先发送一个字节控制pic,然后再接受pic发送的数据,这样就会有很多原因我知道的如下
1 计算机串口UART 16550有硬件数据缓冲FIFO,这样会造成数据包发送延时,如果是编程控制少量数据发送,且发送频率高就会造成速度非常慢,win2000下可关闭这个硬件缓冲来提高数据发送的实时性
2 线程延时,线程切换会造成你的程序等待20ms或更长时间.
Pipi0714 2004-07-10
  • 打赏
  • 举报
回复
应该是plc的问题,我想。应为用单片机时候没有这种问题!
watarno 2004-07-10
  • 打赏
  • 举报
回复
虽然波特率,超时都是影响相应时间的因素,但是我感觉不是核心原因,应该是PLC某出的设置可能有问题,唉,也不知道怎么改的让它快一点,郁闷死了!
zhangnanonnet 2004-07-10
  • 打赏
  • 举报
回复
波特率,超时都是影响相应时间的因素

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧