来自西门子技术支持热线的故事:CP340总是接收1个数据

已锁定

西门子Auto

官方工程师

  • 帖子

    132
  • 精华

    16
  • 被关注

    227

论坛等级:侠圣

注册时间:2007-08-03

普通 普通 如何晋级?

来自西门子技术支持热线的故事:CP340总是接收1个数据

3079

3

2012-05-02 17:27:14

西门子S7-300的串口通讯一直都是西门子热线上的一个热点问题。这次又是一样,问题是客户的串口通讯模块CP340无法完整的接收数据。故事情节是这样的。

今早刚到公司,一同事就转给我一个串口通讯的case,拨通电话打过去。
Engineer:喂,您好,西门子热线,您这是什么问题呢?
Customer:您好,工程师,我想问一下,CP340如果进行自由通讯,是不是使用ASCII协议?
Engineer:对。
Customer:那我没有错啊。工程师,是这样的,我有一个S7-300的系统,与一个条码枪进行通讯。S7-300这边使用的是串口通讯模块CP340,与条码枪进行串口通讯,可是CP340每次只能接收1个字节的数据,而实际上条码枪是发送了4个字节的数据。
Engineer:CP340是什么接口的?RS485?还是RS232?
Customer:是RS485接口的,它是通过一个485/232(RS485转RS232)的接口转换器与条码枪进行通讯的。
Engineer:既然可以接收到数据,至少说明CP340在字符消息帧参数设置(如:9600,8-1-none)上没有问题。那你有没有查看CP340有什么报错信息;另外,你有没有使用电脑分别与CP340和条码枪做通讯测试呢?通过测试看看是哪里出问题了。而且电脑也有RS232接口,正好也可以验证你485/232的接口转换器是否有问题。
Customer:我都做了,CP340根本没有任何报错。电脑可以完整的接收到条码枪发送的4个字节数据;电脑通过485/232的接口转换器,与CP340通讯也没有问题,电脑发送多少个数据,CP340就可以接收到多少个数据。所以,我是没办法了,才求助于你们工程师来了。
Engineer:哦…,(同时我默默想着:数据总是接受不完整,是不是接收条件有问题)那你有没有通过设置结束字符的方式来接收数据呢?
Customer:哎,工程师,我做了,结果一样,也是只能接收到一个数据。而且以前我也做过相同的项目,都是这么做的,没有任何问题。就是不知道为什么这次是这种情况,是不是CP340坏了?
Engineer:哦…(同时脑子里开始快速思考——这会是什么情况造成的呢,突然我想到了什么)。(我又接着问)那既然接收到了一个字节的数据,那是一个什么样数据,能跟我说说么?
Customer:没太注意,不过有几次观察,好像都是接收到最后一个数据。
Engineer:(我心里有底了,与我预料的一样)这样吧,你将接收条件——字符延迟时间(默认是4ms),见图1,改大些,然后将组态编译保存下载,再试试。



图1

通话结束,客户去按照我的要求实验。15分钟后,拨通客户电话。
Engineer:喂,您好,实验做得怎么样了?
Customer:嗯,工程师,数据倒是接收上来了,也不是1个了,不过却超过4个了。
Engineer:你将字符延迟时间设置成多少了?
Customer:,我怕太小,设置成400ms了。
Engineer:我笑了,你设置时间太大了,改小点,改成100ms再试试。

客户挂断电话,又去实验。15分钟后,再次拨通客户电话。
Engineer:喂,您好,这次没有问题了吧?
Customer:工程师,接收正常了,可以收到4个数据了。不过这是为什么呢?
Engineer:是这样的。消息帧接收结束条件有3种,见图1,默认是以字符延迟时间作为结束条件,且字符延迟时间默认是4ms。也就是说一帧消息结束,到下一帧消息开始,这之间的时间必须大于4ms,否则就算成一帧消息。而你这项目中,条码枪的一帧消息含有4个字节数据,且条码枪发送这4个字节数据的时间间隔都超过4ms了,因此CP340将这4个字节数据当成了4个消息帧对待,于是造成后一个字节覆盖前一个字节,最后就只能接收到第4个字节的数据。至于按结束字符的方式来接收为什么结果一样,见图2,其实道理很简单,因为按结束字符的方式来接收,在设置结束字符的同时,也要设置字符延迟时间,且默认也是4ms,所以这也能解释为什么同样只能接收到一个数据的原因。



图2

Customer:哦,我明白了,没想到问题出在这里。
Engineer:关于这方面的知识,你可以通过手册(S7-300 CP340的PtP耦合与组态)了解。另外,也有一篇热线故事做了这方面的介绍,你可以看看。

来自西门子技术支持热线的故事:CP341怎么收不到数据?
http://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=4&a_id=749967
Customer:好的,谢谢工程师。
来自西门子技术支持热线的故事:CP340总是接收1个数据 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54044条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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