热门搜索:

上海西邑电气技术有限公司成立于1996年。在西门子公司广大同仁和工控领域各界朋友的关怀下埋头发展,一路走来已成西门子合作伙伴中的佼佼者。总部设在上海,办公面积1500多平方米,员工150余人。

    西门子S7-200EM235CN模块

    更新时间:2024-05-08   浏览数:210
    所属行业:机械 电工电气 工控系统及装备
    发货地址:上海市金山区  
    产品规格:西门子S7-200EM235CN模块
    产品数量:100.00台
    包装说明:全新原装
    价格:面议
    产品规格西门子S7-200EM235CN模块包装说明全新原装型号西门子S7-200EM235CN模块 颜色白色 尺寸80*80*80 产品别名西门子S7-200EM235CN模块 用途工业 品牌西门子

    西门子S7-200EM235CN模块


    工程中,经常需要遇到一些需要循环累积的物理值,比如水的流量,电能等等。

     

    而浮点数的累积是个公认的难题。

     

    其中涉及到的简单的原理是,CPU对浮点数的表达是有精度限制的。通常一个32位的浮点数REAL,只能有7位数的精度。

     

    在平常的数学运算中,这样的精度足够了。但在流量、电能等需要数值累加的场合,当累加值达到一定的程度,准确说是累加值和运行值数量级差出来1E7倍的时候,累加计算就会出问题了。

     

    比方说需要12345678.0 和0.1累加的时候,你以为应该得到12345678.1,但因为表达精度限制,PLC的REAL数不能表达,得到的结果仍然是12345678.0 。而且一旦累积值过了这个限制,以后就永远不会增长了,我称之为加不进去了。

     

    而其实都不需要到数量级差1E7倍,通常我们的模拟量都是有精度要求的,比如12位精度,累加的数值自己先带了4位数小数,所以当数值差到1E4的时候,运行中已经出现问题了,数据的低位的精度已经丢失掉了。在使用者看来,累积值精度不准了。

     

     

    我们以往遇到有人咨询这样的问题的时候,通常给出的建议是累加的地方用双整数DINT来替换real,即在输入的地方累加数和运行值都放大一定的倍数,比如1000,并转化为DINT,然后累加,累加完成后,再将得到的结果转换为浮点数,然后除掉系数,得到正确的累加结果。

     

     

    因为整数的相加总是准确没有误差的,所以累积过程中不会有错误。比方说上面的累加,虽然一次累加得到的12345678.1不能被正确表达,但10次以后, 数值进位到高位,得到12345679,就可以显示出来了。

     

    但转换为整数,有一个问题,就是具体乘多少倍的倍数,又是个难题。针对项目中具体的物理量,还是容易些。比如瞬时流量的标定单位如果是100,那倍数3个0,而如果标定上线是10000,那倍数1个0即可。

     

    但如果要做一个通用的标准块,就没那么容易了。总不能所有数值都不管三七二十一加5个0 ,那样浪费了精度之后终累加数据的容量还会不够用。况且,你提前不能知道物理量的量纲的话,说不定啥时候出来个需要加10个0呢?

     西门子S7-200EM235CN模块

    所以,我就一直没能做出个标准的累加块来。一度想把倍数系数作为一个参数,调用时根据实际情况*,但也感觉实在太low了,还不如不做。

    这是个复杂的题目吗?所有接触过的人都认为很简单啦!长时间来,我自己也一直这么认为的。
       
    可今年两次遇到的奇葩的故事,促使我不仅把这段技术写出来,还要提前发布了。
       
    还是先讲故事。
       
    9月份的时候帮一个公司做事,要去现场的时候,老板说还有一个现场WINCC和S7-200通讯原本好好的, 突然坏掉了,希望先顺路帮修复一下。然后就去了。
       
    打开电脑一看, PC ACCESS的软件有安装,但没有配置PCA文件。问一下现场工作人员,说原本有做好的,但不小心搞坏了,没有备份。
       
    我说,那问题也不大,S7-200的程序有吗?
    有,在PLC里面可以上传上来。
       
    要带符号表的源程序。
    没有。
       
    那当时PC ACCESS的配置表从哪儿做的?
    上位机的组态工程师一个字一个字敲出来的。
       
    然后我直接晕掉了,只能答复:这事我帮不了,你们自己重新想办法吧!
       
    先遇到的是S7-200的, 然后上周,又再次遇到了一次几乎一模一样的故事,只不过CPU换成了SMART 200。
       
    应该怎么做呢?核心一条,OPC变量不能手动建立,得从plc程序导过来!

       PROFINET就像是我的亲密伙伴,因为在西门子,他的面市和我的入职几乎是同时开始的,我们是一起成长的。初的PN产品,例如ET200S只有一个PN端口,只能支持RT,设备连接只能通过交换机。初的我,是技术支持团队的一个新人,是网络通信的一个菜鸟,完全不懂通信理论。然而放在同事桌子上的PROFINET培训文档,吸引着我让我随手翻开,像是冥冥中注定,他和我注定在我的职业生涯中深深的纠缠在一起。我们也相互的成就着,通过我的努力,他给我们中国客户的生产带来了翻天覆地的变化,通过他的发展,也给我的职业生涯带来了深远的影响,那么他有什么奇妙之处呢?

          首先,在技术上,PROFINET基于以太网,也就是由于以太网,使之能够具有快速的通信速度和灵活的拓扑结构,而PN就是以太网上的实时协议集合,就和TCP是以太网的协议一样,**而已。但是这对于企业生产就不同了,因为在PN之前,以太网是不能延伸到现场级的,而如今以太网一直延伸到现场的末端,带有PN接口的传感器和执行器比比皆是。以太网的安装确实给用户带来了诸多的便利,然而,由于用户大都想着就近连接交换机即可,这种可能导致混乱的连接拓扑,还有就是交换机产品的选择,错误的选择同样会给用户生产带来一些问题,这两个看似很小的问题,却可能会给企业生产带来毁灭性的伤害。

          早年去一家钢厂,骨干网使用了冗余环网,正常生产了一段时间,却突然全网瘫痪,导致高炉停产,对于钢厂来说这是一个非常大的事故了。而现场的问题解决却是很简单,原因是冗余环网使用了西门子的SCALANCE X交换机,然而冗余管理器RM却使用了第三方的交换机,那我还说什么呢?前些天,去了另外一家钢管厂去做预维护,询问网络的拓扑连接是如何的,回答是不知,这是中国用户目前普遍存在的问题。通过PRONATA进行现场网络拓扑的扫描,竟然发现网络拓扑出现两个环网,而且是现场级的,也不知什么原因鬼使神差的让生产可以正常进行,我们知道环网会产生广播风暴,导致全网瘫痪。可是由于生产还在继续,我们无法确定真正的原因是什么,只能告诉用户这种环型链接风险较高,需要尽快整改。

          其次,对于PROFINET RT通信,我想这是中国用户常用的PN协议,因为配置简单,只要用过PROFIBUS DP就能做很快的转换。然而用户往往会有两个问题,一个是不清楚如何选择交换机,选择的依据是什么?另一个是不清楚分布式IO多能串联多少个,级联深度的依据是什么?

          对于个问题,我给用户传达的信息就是只要是交换机都支持PROFINET,然而并不是所有的交换机都适用,这种前后矛盾的话,大家肯定会觉得疑惑不解。PROFINET使用百兆全双工的技术,那么交换机必然是选择的连接部件,而我们在使用PN RT协议的时候,都知道RT通信的报文是带有**级的,也就是含有**级是6(高为7)的VLAN标签(其ID=0),这个标签使之PN数据在网络链路传输时可以“横行霸道”,因为除了MRP冗余环网之外的网络链路上的数据没有**级比它高的,其它数据难以望其项背,这样才能大程度的保证它的实时性。那么如果你选择了例如SCALANCE X300/400系列的交换机用来连接IO设备,那么VLAN标签的**级的意义就消失了,因为这些交换机默认支持VLAN,而这些交换机恰恰判定VLAN ID=0的数据没有**级,也就是说此时的PN数据只能和普通数据一样,不再被**转发,这意味就显而易见了。*二个问题,可能是困扰大家多的问题,因为它影响现场到底如何安装布线。到底能级联多少?我的答案就是能带多少IO设备就能级联多少IO设备?然而我们需要考虑线型网络末端的IO设备的刷新时间的大小,这就需要一个公式了,也就是说一个IO报文从PLC侧发出,经过若干台交换机,这些交换机是支持C&T或是S&F,那么这个公式就是报文的传输时间,加上经过各个交换机的延迟时间,达到终的设备。这个时间才是你参考的Update time的时间,如果不能满足你的实时性要求,那么这台设备需要在线型拓扑中靠近PLC,也就是你的IO控制器。  

          后,我想谈的就是PROFINET网络如何诊断了,这个是用户经常忽略或者无法正视的问题,因为一旦谈到诊断,那么必然需要全面的IT知识,不像前面所描述的,仅是需要组态和计算,从基本的Ping指令到Wireshark的使用,这些都是*的。但这些往往是用户缺乏的。具体诊断PN网络的方式有很多种,那是根据不同的故障现象采取不同的方法。这里和大家谈谈用户所面临的经常丢站的故障。

          丢站的根本原因就是IO数据没有在时间内出现,也就是**时了,这时会报丢站,OB86被激活。那么什么原因会导致IO数据在时间内不能出现,主要是两种原因,种就是网络拥堵严重,数据不能在时间内到达IO设备,那么这种情况使用Ping指令就可以来判断网络链路的状态;*二种就是数据发生畸变,可能是由于干扰或者安装的线缆短路所致,也就是IO报文的CRC检验出现错误,这种情况可以通过Step7在线查看分布式IO的端口的Statistics或者登陆管理型交换机的网页查看丢站IO设备所对应的端口的Statistics,再或者对于S7-1500来说使用LPNDR功能块来读取对应IO设备的端口的Statistics,来查看是否存在CRC错误。如果存在CRC错误,那么导致的原因就是前面我说的两种原因,干扰或者短路造成的,那么就去查EMC和线缆的状况。当然,Wireshark工具是诊断PN网络的重要的工具,当你具备IT知识的时候,建议你使用Wireshark这个工具去检测和发现网络故障,因为它是良好利器。

           关于PROFINET技术,其实它包罗万象,涉及各种IT知识,当你想理解它时,你就需要理解终端设备,例如:PLC和分布式IO,其实西门子PLC通信原理也是来源于我对PN的研究,然后理解TCP协议,路由协议等等,也就是这一根绿色的网线使我在技术上越走越远,越走越宽。这里我仅仅提到了PROFINET技术的冰山一角,深奥的理论主要集中在IRT上面,需要对其设备集成的交换机内部要有全面的理解,因为IRT需要对时,各个时间片段的计算是非常关键的,在这里我无法一一的给大家说明。而现在由我的同事,网络*冯学卫先生正在网上论坛主持PROFINET通信探秘技术π的活动,他是一位非常的工程师,对于IT和各种网络协议都非常的了解,我们经常在一起讨论关于网络,PN,通信的各种问题,对各种技术细节进行深入的剖析,例如Step7中IO RT的时间预留后台是如何计算的等等。大家如果想

    西门子S7-200EM235CN模块




    http://zx2015888.cn.b2b168.com