技术论坛

 从EM277通讯字节看数据一致性

返回主题列表
作者 主题
工控人来学习
官方工程师
西门子官方工程师西门子官方工程师

经验值:3090
发帖数:155
精华帖:24
楼主    2020-06-08 10:08:43
主题:从EM277通讯字节看数据一致性 精华帖 

        最近在网上遇到一个用户反馈的问题,是关于EM277的,我简单介绍一下,讲起来还挺有意思。

        S7-200是西门子很成功的一款CPU,在国内拥有大量的用户,也使用了很多年(图1)。

              

                                                     图1  S7-200系列PLC

        EM277是S7-200用于DP通讯的模块(图2)。

                          

                                                  图2  EM277用于DP通讯

        用户反馈的一个问题,是关于EM277与CPU 315连接,在通讯设置过程中,如果输入地址长度为“字(Word)”,一致性设置为“总长度(Total length)”,此时最多只能设置为8个字(Word);如果将一致性设置为“单元(Unit)”,则最多可设置16个字(Word)。如果超过这个设置长度,则下载后会报错,模块不能正常工作。

        当时看到这个反馈,我的第一反应是有点不可思议:首先是这个产品已经用了这么多年了,并且拥有大量的用户,从来没听说过类似情况的反映;其次,EM277产品本身似乎也没有什么问题,因此在我们平时支持的过程中,也几乎没怎么接到过EM277使用过程中有类似问题的反馈,并且这个产品已经非常成熟了,因此我们这边也很少再针对这个产品做什么测试了,结果居然有这样的问题反馈,这倒是令我感到有些意外,同时也有点怀疑用户的反馈是否正确。

        于是我做了一个简单的组态(图3)。

           

                                                                     图3 组态EM277

        在组态过程中,可以发现:

        1)在右侧的可选字节长度中,可以看到有32个字(Word)的IO可以选择;

                  

 

        2 )在组态成为自定义长度的过程中,IO的字长系统可以允许最长64个字(Word)。

                   

        因此,我基本上判断用户可能是使用上有些错误的地方。

        但按照客户的描述,似乎又是实际的情况……

        于是,我们决定做个测试。

        测试的过程我就不详述了,我们用各种字节长度进行了组合,得到一些测试结果:

        1)组态通用模块,输入输出类型,一致性选择为“Total Length(总长度)”,如果长度超过8个字(Word),则报错(见图4,5)。

             

                                                                 图4  通讯字节设置超过8个word

            

                                                                      图5 报错信息

         2)组态通用模块,输入输出类型,64个字(Word)输入/64个字(Word)输出,一致性选“Unit(单元)”,可以正常通讯(见图6)。

             

                                                                   图6 总长度的设置为64个字

        因此,从测试的结果看,我们最终得到这样一个结果,对于S7-300与EM277进行DP通讯来讲:

一致性选择为“Total Length(总长度)”,长度最多设置为8个字(Word)。    

一致性选“Unit(单元)”,长度最多可设置64个字(Word)。   

        至此,可以说我们得到了设备配置方面的结论。但其实还有个问题,即从结果上看,设置总长度时,貌似一致性数据的长度比设置单元的要小,这是什么原因,为什么会是这样的结果?

        于是我们进一步检查了数据一致性的相关内容,发现如果我们去查看S7-300的数据一致性,可以看到,大多数情况下,数据一致性在访问点刷新时,应该是不大于32个字节(有的CPU是8个字节);而在DP通讯过程中,由于DP通讯并非直接的访问点刷新,因此此时在一致性选择为“总长度(Total Length)”时,其一致性也是有限制的,例如此时最大仅可设置8个字,如果超限就会报错;但如果一致性设置是“单元(Unit)”,则其一致性仅为一个“字(Word)”或者“字节(Byte)”—取决于设置,因此,此时最大通讯数据可设置为64个字,但实际的一致性数据仅为1个“单元(Unit)”。

        至此,我们才找到这个问题背后的真实原因。另外,我们也看到,数据一致性也取决于设备、通讯方式等等因素,因此,这个Case 分享给大家,抛砖引玉,如果您对数据一致性的话题感兴趣的话,大家可以一起查些资料,继续讨论一下。       

 

来自西门子技术支持与服务
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。