故事作者:羲

最近创作

看看TA的故事

【专家大讲堂】20201014PLC通信原理探秘系列之七:再谈通信负荷20%——直播答疑

已锁定

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

  • 帖子

    786
  • 精华

    3
  • 被关注

    49

论坛等级:奇侠

注册时间:2011-06-09

普通 普通 如何晋级?

【专家大讲堂】20201014PLC通信原理探秘系列之七:再谈通信负荷20%——直播答疑

3111

2

2020-10-12 09:22:40

【专家大讲堂】20201014PLC通信原理探秘系列——再谈通信负荷20%——直播答疑


直播时间:2020年10月14日(周三)19:30-20:30

主讲专家:高级专家  赵欣


课程主要内容

  1. 小结PLC通信原理探秘系列的基础知识

  2. 展示时间片和CCP的通信原理

  3. 结合案例讲解如何在设置一定通信负荷的情况下,提高实际的通信负荷


课程回看链接:

http://www.ad.siemens.com.cn/service/elearning/Course/2941.html


直播答疑汇总:


Q1:在什么情况下,要调整这个通讯负荷20%?

A1:首先我们要认识到,它限制的通讯有哪些?

我们通过课程学习,实际上我们看到它是限制了所有在时间片上的通讯,比如说S7通讯,BSEND/BRECV。

那么我什么时候来调整啊?

比如说我有大量的时间片的通信的时候,而且我需要他的响应时间能够尽可能的快,那你就需要调整20%能够向上调啊,比如说向30%或者40%调整,但是我们在调整过程中啊,如果你的通讯负荷很大的情况下,他必然会延长cpu的循环周期,那就可能会影响你的现场的实时响应时间,比如说我的传感器执行器的响应时间。那么这个时候你需要去能够去了解清晰的认识:设置一个最佳的通讯负载,在现场的时候,如果是我们设置最小的扫描周期,比如说像我的例子里是15毫秒,或者是我设置20毫秒等等,那么我可以延长或者是扩大通讯负载,这时候你就不需要再去调整通讯负载,所以这是一个比较简单的方式。

 

Q2:做PLC通讯时怎么调整通讯负载参数才能得到最佳效率呢?

A2:这个问题可以先参考我前面回答的如何去调整通讯负荷20%(Q1)。什么时候是最佳的效率?这个你要看跟谁比。你是希望我的通讯效率能够尽可能地快,那么就可以调整他的通讯负载一直到最大,或者是延长我的最小的循环周期。

那如果我要想让我的cpu的这个响应时间尽可能的快,比如说跟刚才我说的这个现场执行器传感器去做这种选择时间,那么你就要控制我的这个循环负载、通讯负载。

所以在这个时候你需要去看,我要的效率到底是通讯的效率,还是我程序响应的效率。

如果我要通讯的效率的话,那你当然我们的这个通讯负荷越大就越好。

 

Q3:当有多种通信方式并存的时候,有什么方式能方便的让通信不重叠?

A3:这个问题我不是太理解,但是我也和大家说一下:通讯重叠,数据重叠,这是很正常的也很必然的。比如说我做PN IO通讯,比如说16毫秒去刷新,我在我的cpu程序里有BSEND/BRECV去做通讯,那么它们的通讯交叠很正常,除非你刻意去避免。但如果说在程序里做了TCPIP通讯,BSEND/BRECV通讯的s7通讯,那你通过程序也可以把它们分开,做完了BSEND/BRECV通信完毕后,我再做TCPIP 的通讯,这样就可以分开了,这是你人为的去设置。

 

Q4:每个时间片为什么是1ms?

A4:手册中明确说了,这是假定的是1ms,时间片为1ms是为了方便去计算与理解。

 

Q5:OB30的执行时间对周期有没影响?

A5:我们看手册或者今天这堂课,大家可以看到CPU的循环周期是由PII、PIQ应用程序以及最后的CCP来组成的。那么任何的在这些区域上的操作都会影响cpu的循环周期,如说我PII/PIQ,我们在S7-300/400里设置过程应用区的大小,设置的越大我的cpu的循环周期会越长,因为我的PII和PIQ的扫描刷新周期就会越长。那对于应用程序来说,大家肯定可以知道,我编的程序越多,我cpu循环周期越长,那对于OB30来说是你加入的程序即实际上你在OB30里去编写程序,那么它会影响CPU循环周期,对于CCP同样地,因为CCP我们无法对它做任何控制,而且它像一个黑匣子,但是肯定的是,我们在CCP的通讯很多(量大),同样会影响CPU的循环周期。

 

Q6:问一个关于位操作时间的问题,CPU对一个UDlnt数据从0进行循环+1,那么一个循环中执行2^32-1次,对于此数据,占用时间可否量化,当数据取自M点,和取自全局DB块中有无差异?

A6:从理论上对于位的操作,时间很短,最终的的处理时间对于CPU的循环周期影响区别不大。DB要比M操作时间少,如果程序都是这样的操作,那么区别就会非常的明显,整个扫描周期可能加倍,例如DB是10ms,M可能就是40ms。大家可以去1500移植的大讲堂中有详细的介绍

 

Q7:1200做modbus通讯时,异步通讯发生在ccp吗?通讯负载设置对其有影响吗?

A7:发生在时间片,调整20%会影响其通信速度

 

Q8:通讯收来一个real数据,但格式顺序和siemens plc不一样,如何调整?S7-1500,优化寻址

A8:理论上西门子PLC不需要转换。如果是第三方的需要转换,在PLC调用SWAP

 

Q9:您刚才提到400的cp卡进行tcp影响其他通信,那s7通信为什么不影响?我记得在哪本手册好像提到ouc的负载高于s7,具体忘了哪本手册了,您是怎么理解的

A9:影响,所以HMI的通信才会变慢,HMI通信本质是S7通信

 

Q10:前几天,有个项目,1214cpu通过PN下带了魏德米勒的接口模块,刚开始偶尔断线,换了2根网线还是如此。后来将更新时间改为8倍(默认3倍),就好了未发生掉站现象。过了两天后,将更新周期又改为3倍,同样也没发生过掉站现象。现象很奇怪,不知道什么问题导致的偶尔掉站?

A10:对于PN通讯,这个肯定一点呢,就是在看门狗时间之内,IO设备没有收到来自IO控制器的IO数据,在连续三次没有收到IO数据就会丢站报警,但是您调整了这个八倍然后又回到三倍又不丢站了,这个现象我很难说,但如果去检测现场到底是什么问题,因为您使用的是魏德米勒第三方的这个模块儿,所以我没有办法给您提供像step7,通过在线的方式能够去看比如分布式io的这个端口的统计信息,如果显示有故障包、错误包的统计 ,那这里肯定有一点问题,就是可能就是这个网线有问题,但是您换网线,还有类似的故障,那么就是EMC的干扰。

但是您使用的是魏德米勒第三方的接口模块,如果用博途的话,我也无法通过程序的方式能够去看读取端口的统计信息,使用第三方设备最好的方法是使用Wireshark去看现场的错误包、故障的现象。


Q11:OB1的循环时间是不确定的,那么在不同OB1的循环时间下,通讯时间是怎么变化的

A11:通信时间实际上有两种,一种是通信数据的间隔时间,另一种通信的执行时间。然而这两个还和与你使用什么协议还有关系,因为情况很多,我们假设发送方的OB1的循环周期是100ms,接收方的OB1的循环周期是10ms,当S7的BSEND/BRECV通信,此时的数据的发送时间间隔是200ms,执行时间(如果发送8k,使用1500CPU)大约10ms以内。200ms是因为需要两个OB1的周期。同样使用TCPIP通信,时间与S7相同,然而,TCP/IP的200ms是因为上升沿的问题,而不是像S7的Done信号的问题。然而如果TCP发送16K的数据,那么不考虑使能上升沿的问题,单纯的16k的发送需要2个OB1的周期,因为这取决于数据一致性。

 

欢迎大家继续盖楼,探讨本话题


【专家大讲堂】20201014PLC通信原理探秘系列之七:再谈通信负荷20%——直播答疑 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

专家大讲堂课后探讨

共有137条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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