技术论坛

 [PLC通信原理探秘] - C/S结构应用引发的问题

返回主题列表
作者 主题

侠圣

经验值: 2348
发帖数: 4
精华帖: 0
楼主    2020-10-12 23:25:31
主题:[PLC通信原理探秘] - C/S结构应用引发的问题

1.应用的基本信息

我在项目中主要是系统方案设计工程师,项目中采用的是2套412-5H+CP443-1+ET200 SP分布式I/O和2台戴尔R730机架式冗余服务器以及8台戴尔Optiplex 3020操作站。

冗余服务器运行Windwos Server 2008 R2操作系统和WinCC V7.2 ASIA监控软件,操作站运行Windwos 7 Ultimate操作系统和WinCC V7.2 ASIA监控软件。

服务器及客户机采用普通网卡用SIMAITC NET V8.2组S7容错通讯连接。

2.问题描述

系统投运初期按照下图中所示的C/S结构方式运行,但在运行一段时间后服务器发生数据同步问题并出现历史数据无故丢失的情况,且该现象每过一段时间就会再次出现。鉴于C/S结构应用经验少,且通过多次尝试也未能解决问题,索性将C/S结构改为简单的OS单站结构。  

                                           

改为OS单站运行的系统构成原理如下图所示。改为OS单站方式运行后,之前在C/S结构中存在的2台冗余服务之间的历史数据同步和丢失问题得到解决,但是新的问题出现了。

由于总共多达8台上位机,每台上位机与2个AS控制站间的通讯变量达到20000个,直接影响到上位机画面的变量刷新周期。与C/S方式时的对比表现为:C/S方式时,操作员站画面上通过单击鼠标修改调节回路的输出给定值,即点即变,操作体验非常好;而改为OS单站方式时,同样的鼠标点击操作,但是输出给定值的变化不再即点即变,而是明显有个等待的响应过程;这样以来,操作工就非常不乐意了,要求我们必须恢复到之前的操作体验。


3.问题的分解和解决 

3.1 故障或问题分析(根据故障或问题,进行分析,从而提出潜在的一些解决方案用于解决该问题)

鼠标点击响应变慢的原因肯定是由于OS操作站与AS控制站之间的通讯负荷过重导致,通过断开一部分上位机的网线进行验证,实际测试表明通讯接入超过5台上位机时鼠标点击事件的响应就会出现等待的情况;但是又不能减少上位机的数量,更不可能重做上位机WinCC工程减少通讯变量数量。

3.2故障或问题处理(根据分析各种导致问题的可能性,逐步排查和测试,描述您解决此问题的操作步骤、想法,最终确认原因,排查和测试过程有条理,思路清晰)

最后想了一个折中的C/S结构(带5台客户机)+OS单站(3台)并行运行的办法,这样既解决了通讯负荷过重导致的鼠标点击事件变慢的问题,又解决了纯C/S结构方式运行不定期会发生数据同步和历史数据丢失的问题。

4.经验总结

在控制系统的AS/OS通讯容量较大时,需要合理规划以采用最佳的系统构成方案。既要能够满足项目实际需求,同时又要做到成本最小化,并且还不能以简化上位机功能为代价(比如:通过大幅减少通讯变量数量也是能够实现8台上位机同时与AS通讯还不会影响鼠标点击事件响应速度的,但是由于通讯变量数量的大幅减少,势必带来上位机功能的简化,这样就本末倒置了)。

 

4.1遗留的问题(问题排查后,是否对解决问题的方式仍然有些疑问或者不理解的地方)

为什么在AS/OS通讯变量达到20000的情况下,超过5台上位机同时通讯时鼠标点击事件的响应就会变慢,而不是超过3台或者是7台上位机出现这样的现象?

如果保证8台上位机同时与AS通讯且能够做到鼠标点击事件的响应不会变慢,那么将通讯变量数量控制在多少以内时又同样能够做到?

这个项目中采用的是AS412-5H,如果换成AS414-5H,是不是在不改变系统构成方案的同时也能够解决问题?抑或是将普通网卡换成CP1623专用通讯网卡可以解决问题?

以上所有解决办法最终都无法与成本脱离关系,到底什么方案才是最优解?

 

4.2改进方法(解决问题后,根据后期的理解,可以提出更好的解决方式或建议)

目前为止,该项目还维持着前述的折中办法在运行,希望以后能够从原理上彻底弄清楚硬件(CPU、CP)性能、通讯网络(S7、TCP/IP)、通讯设备(商用交换机、西门子工业交换机)、通讯容量(通讯字节数)等与通讯负荷(响应时间)的关系。


------------------------------------------更多案例集锦汇总在活动帖中-------------------

PLC 通信原理探秘活动汇总帖


imycat
侠士

经验值: 1321
发帖数: 276
精华帖: 0
1楼    2020-10-14 16:28:13
主题:回复:[PROFINET通信探秘] - C/S结构应用引发的问题

CP1623 肯定有帮助,我们的SERVER带了30万TAG,跑起来都没问题


你用的TCP CONNECTION还是 S7 RED CONNECT? 看起来是TCP。。。这个是最大的问题


数据不能同步就拿掉一个SERVER?这个操作太强,正规行业没见过这样改设计的,让我去找下宇宙尽头...

T-C4
侠士

经验值: 1014
发帖数: 7
精华帖: 1
2楼    2020-10-21 14:50:49
精华帖  主题:回复:[PLC通信原理探秘] - C/S结构应用引发的问题

楼主的问题涉及到WinCC和PLC的通信原理和性能:

1. WinCC运行系统和PLC的通信与画面对象显示、脚本运行、变量归档和报警记录相关


其中大部分组件基本都是基于变量的循环读取,这体现在WinCC的S7 Protocol Suite中以太网通道下系统参数中的默认设置


PS:S7-400支持循环读取服务,而S7-300不支持

2. 循环读取服务的核心是PDU(Protocol Data Unit),即在每一个循环读取服务中,所能处理的数据大小。对于以太网下的S7-400的CPU,PDU是480个字节。S7-414以下的CPU,提供16个循环读取服务;S7-416以下的CPU,提供32个循环读取服务。在上图中的设置下,当WinCC中的S7-400的变量发生变化,会自动上传到WinCC的变量管理缓冲区,这是优化的通信过程;而超出循环读取服务的变量只能在非循环读取服务中处理,采用一问一答的同步方式,性能相对较差


3. 楼主的WinCC变量比较多,估计关联的画面对象、变量归档和报警记录的数量也都比较多,可以根据上述的解释估算PDU和循环读取服务的占用情况,并通过Channel Diagnosis查看与S7-400的通信状态和性能


    其中,Own Cycles为非循环读取服务,AS Cycles为循环读取服务,Max. PLC Cycles为PLC性能范围,Cycles Xs为基于X秒的循环读取服务

4. 一般来说,可以通过以下几种方式来减少循环读取服务的占用:

  • 采用相同的周期读取相同的变量

  • 变量地址在DB或M区连续存放

  • 精简单一画面的对象规模,复杂结构使用画面窗口(结构变量前缀)或面板(Faceplate)

  • 合理使用大批量数据读写的全局脚本


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