故事作者:羲

最近创作

看看TA的故事

【专家大讲堂】20190808 PLC通信原理探秘系列之四——数据一致性的重要性——直播答疑

已锁定

总坛主 西门子1847工业学习平台

  • 帖子

    786
  • 精华

    3
  • 被关注

    49

论坛等级:奇侠

注册时间:2011-06-09

普通 普通 如何晋级?

【专家大讲堂】20190808 PLC通信原理探秘系列之四——数据一致性的重要性——直播答疑

2279

1

2020-07-24 13:28:53

直播时间:2019年8月8日(周四)19:30-20:30

 

主讲专家:赵欣

 

课程回看:

http://www.ad.siemens.com.cn/service/elearning/Course/2421.htmll

 

直播答疑汇总:

Q1:我们在做S7通讯的时候会经常使用BSend & BReceive,有这样的功能块儿,用这项功能块呢,我们来实现S7的通讯。那如果有因为我们比如说我们编程的时候,我们可能在OB1里面BSend & BReceive,那如果我们更高一级的中断,比如说有OB40,OB82和OB86等这些组织块啊,这些中断出现那会不会影响他通信的数据一致性呢?

A1:而这里呢,我们来去再强调一下,刚才我们提到了BSend & BReceive,我们推送数据啊,一次性推出数据,大家我刚才看到网友说推到Shadow Buffer。实我们对于300来说是240个字节,但实际上呢,对于300来说不是240字节,而是206个字节。原因我已经讲过了,是因为有s7pdu是有s7的Header的,就是S7的报文头的。但是现在呢,大家我们去讨论数据一致性的时候没有必要去去考量S7内部的报文里面的这些内容,所以我们就认为是240个字节。啊,所以他一次推送的最多是240个字节。

CCP不能被中断的原因是前面我们讲的Put/Get Server。如果我300做Put/Get Server,那他确实是不能被中断的啊。但是我们现在做BSend & BReceive,我们都是编在AP里的。我也强调了我们的中断是发生在AP当中,而不是发生在CP当中。所以呢,这个BSend的在运行的过程中会有中断啊。

我跟大家去说一下啊,如果还是以300为例,也就是说我们在讨论这个问题的时候呢,是有前提的,我们还是以S7300作为一个例子,如果我们只传输240个字节,现在我们先忽略他的S7 Header这个问题,我们就是传输240个字节,那么即使你出现一些更高优先级的中断,对他的数据进行操作,也不可能去修改它的数据,也就意味着不会影响S7通讯的数据一致性。不过我们现在传输480个字节,当中断发生的时候,那么就会有可能对后面的240个字节进行操作。但是如果你有更高优先级的中断发生,但是并没有对通信的数据区的数据有任何的操作,那么就不会影响S7通讯的数据一致性。再说一遍也就是说你自己编程序的时候,你有更高优先级的中断,那么你就要看是不是对通信的数据进行了操作,如果没有对通讯的数据进行操作,那么就不会影响你这480个字节通讯的数据数据一致性。

 

 

Q2:传输480B中间,完成240后会发生中断吗

A2:我们在S7通讯的时候,我们一次传输240字节。我们所推送,他数据是一致的,就意味着我们的中断是不可能发生在这上的,也就是说就像刚才我们传输,load一个DWord是一样的,那么他不能被一个中断所中断。但是两个240字节中间会发生中断的,那么可能会导致数据不一致。但是导致数据不一致,那必须你要对数据进行操作,如果你对通信的数据没有操作那么数据依然是一致的。

 

Q3:如果没有更高优先级的中断,是不是只是依靠Done和NDR就可以保证数据一致性了呢啊?

A3:西门子通过BSend & BReceive的DONE信号和NDR信号来保证发送数据区和接收数据区是一致的。这是程序本身啊,能够尽可能的让数据保证是一致的。但是我们要想保证数据一致性,那么必须要靠人为的编程序,或者是你自己的考虑。所以我们在这边做编程的时候啊,我们一定要考虑什么,我们一定要靠Done信号和NDR信号来去保证它的数据一致性。什么意思呢,我们现在就再来说480个字节的这个问题。那如果说我们没有更高优先级的中断,那么我们去编程的时候,如果我们在做BSend发送的时候,我们发送了240个字节之后,我们在后面立刻编写了这个L0传递给DBW256,那么后面240个字节的数据就会被改变了。那这时候我们在做编程的时候,而需要的是你只有Done信号为1之后你再去操作你的数据,这时候通过DoneDAN就能保证你发送数据区是一致的。所以说我们再去考虑数据一致性的时候,尤其是在通讯的过程中,我们需要依靠的就是我们的程序的信号。比如说对于发送我们需要依靠的是DONE信号,对接收我们依靠的就是NDR信号来去保证发送和接收数据区的数据是一致的。

 

Q4:是说即使高优先级的中断来了,但是通讯没有超过240,那么中断是在通讯完成后才进入中断吗?

A4:这个网友这位网友问了说即使高级中断来了,但是通讯没有超过240,那么是在通讯完成后才进入中段的吗?是这样的,嗯,我们去讨论它的时候呢,在这一点上我们可能需要把词弄的更加的准确啊,清晰一些。不是说通讯完成后,通讯完成后再来中断的话这个中端的响应就很慢了啊。它是什么?它是前面上堂课为大家讲的啊,Shadow Buffer之后,也就是说在CPU参与结束之后,中断开始进行,所以在CPU的推送时,加上S7的报文头在这个过程中而是不能被中断的啊。

 

Q5:s7通讯单边编程的时候,怎么确定没有编程一侧的数据一致性?

A5:对于单边通讯,像刚才说的Put/Get啊,做通讯的时候,实际上手册里当时已经规定了啊。你比如说你最多能发送212个字节啊,那这个时候实际上你的数据是最大也就212个字节,你超不过212个字节。但如果说我现在想传更多的数据,比如说我想传这个560个字节的数据,那你就要自己去编程去保证了,你只能去设置一些标志位和标示符,然后我能看到我的数据都全部到了,然后对数据再进行操作来保证这560字节数据是一致的。

 

 

Q6:数据一致性的重要意义是什么啊?如果通讯传输的数据不一致会怎样?就是说我们在做通信的时候,我们什么时候要考虑数据一致性,数据一致性而对你的工程项目有什么指导意义?

A6:其实网友们的这个应用场景啊,说实在的都比我考虑的丰富啊,这个大家可以去参考一下。比如说这个很多变频器同步时候需要数据是一致的,出现报警的时候需要判断当时的数据,这时候数据是一致的。还有一个就是数据图表啊,出现的时候不一致的数据会干扰数据分析啊,这些都是很正确的啊。其实我们要考虑数据一致性是完全和我们的应用和我们的这个生产工艺,都是息息相关的。就是因为我们要保证这些数据是一致的。我给大家举一个简单的例子,比如我在做项目的时候,我要做变频器数据的传输,从PLC获取要保证这些数据是一致的,因为这些数据我要用来做科学计算的啊,也就是说我要用这些数据做加减乘除的。那如果这些数据是不一致的,按照我的算法呢,算法所做的这个运算的就会出错,就会导致这个工艺的控制精度很差,这是一个最重要的场景。那么如果传输的数据不一致,那实际上我传输的数据就是虚假的,你再去做后续的这些数据的处理,分析,计算啊,那这些都会导致你最后的控制,你的生产相关的工艺控制的不精确,不准确。

 

Q7:iso on tcp通讯有延时,plc双边通讯采用cp卡,860byte通讯延时有几秒?

A7:这个问题呢,咱们从原理上去分析啊,是不会出现的。但是如果出现这种情况啊,我希望首先要查一下这个CP卡的Firmware版本,看看他有没有相应的bug啊。如果是版本比较低呢,那我建议您去升一下Firmware。第2个呢,就考虑一下您的编程是不是有一些中断的发生啊。比如更多的中断呢,它就会使他的ISO on TCP的通讯就会慢,所以看你的编程是什么样子的啊。所以这个这是我对这个问题的两点建议。

 

Q8:一个包只能抓200byte,所以分几次才能接收完成?

A8:如果是一次只发200个字节的话,那就说明它有流量控制在频繁的发生。流量控制频繁的发生,有两点,第一点就是说我以前可能讲过啊,也就是说我发送的周期啊,就是PLC A发送的周期可能频率非常的快,而接收的PLC的周期频率非常的慢,所以这样的话呢,会导致你的这个滑动窗口在不断的缩小,而所以你的这个通信就会变得慢,取决你的这个频率的比。那第二点呢,就有可能还是Firmware的问题。所以你要去查一下你的程序啊,它的这个周期是多少。

 

Q9:414-5h双边同时与30套315cpu通过cp卡通讯,这个会不会有影响,500ms中断调用?

A9:嗯,这个还回到刚才那个问题啊,如果说因为你我一直也不知道你的详细情况,现在你说是有一套400H 和30多套这个300PLC啊,在做通信那这种虽然你是500毫秒,这个其实因为它是异步通讯,所以你的这个异步的功能块就很多啊,你占用的这个CPU的资源就会很多。所以这个需要去好好统一的看一看啊,需要好好的看程序,看报文啊。这个我觉得需要仔细考虑应该到现场去实地的去测量一下啊,这个问题很难去在这个嗯,我们这堂课当中去给给你讲清楚。

 

欢迎大家继续盖楼讨论


【专家大讲堂】20190808 PLC通信原理探秘系列之四——数据一致性的重要性——直播答疑 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

专家大讲堂课后探讨

共有137条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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