CP340接收大量数据的处理

已锁定

四书五经

  • 帖子

    762
  • 精华

    58
  • 被关注

    30

论坛等级:侠圣

注册时间:2005-12-23

普通 普通 如何晋级?

CP340接收大量数据的处理

2978

6

2008-09-18 14:14:55

star star
我公司有一客户是做楼宇控制的,他们有一项目用的是S7-300的系统,要求与YORK的中央空调主机通讯,采用340模块读取相关信息,协议还是比较简单的,340发一个字节,然后YORK主机返回约5000个字节的数据(客户要求这么多,没办法),客户编程,调试,调用FB2接收数据,可客户发现每次接收完成后,查看接收数据块,都是发送数据的最后800多个字节,前面的数据都被覆盖了。客户咨询我公司,我们首先想到的是接收缓冲区,打开硬件组态,查看CP340的硬件缓冲区设置为250,最大也只能设到250。而客户已经接收了800多个字节,应该不是这个问题。那CP340一次最多可以接收多少数据呢?
带着这个疑问,我们决定在公司实验室做通讯实验。我们采用PC和MOXA 232转485转换器与CP340连接,使用串口调试助手发送一个1K字节左右的文件。CP340接收没有问题,经过不断的实验,最终我们确定CP340一次最大只能接收1024个字节的数据(9.6k波特率)。这个可能是硬件的限制。
总结一下,当340接收的数据小于1024时,当340检测到线路空闲时间大于硬件组态中定义的字符间隔时间就认为一帧结束,FB2置NDR=1。当接收的数据大于1024时,不管一帧是否结束,都会置NDR=1,然后继续接收直到一帧结束。
这样我们就可以加一条判断,当NDR=1 时,把接收到的长度赋给接收数据块的起始地址即可。程序代码如下:
CALL "P_RCV" , DB3//调用接收块
EN_R :=M20.0
R :=M20.1
LADDR :=256
DB_NO :=1
DBB_NO:=MW512//接收块起始地址
NDR :=M21.0
ERROR :=M21.1
LEN :=MW22//接收到的数据长度
STATUS:=MW24

A M 21.0
FP M 300.2
JNB _001
L MW 22
T MW 512
_001: NOP 0
CP340接收大量数据的处理 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。