前几天热线上遇见一个问题,客户使用MP277对变量做周期为1S的循环记录,在查看生成的csv记录文件时发现归档数据丢失的情况。
听完客户描述,马上想到关于WinCC 帮助信息中系统限制里的一段描述:
有关 CE 设备 (TP 270、OP 270、MP 270B 和 MP 370) 的信息: HMI 设备并非主要用于记录周期性数据,而是用于记录非周期性错误状态 (例如,故障和运行报警)。 HMI 设备也不适合那些数据量较大或性能要求较高的复杂记录任务。
第一反应,会不会是客户归档的变量数量太多造成的呢?建议客户只对一个变量做归档进行测试,但仍然会出现该问题。我使用MP277做了一下测试,发现可以复现客户的现象:
真是奇怪了,怎么会是这样呢?难道一个变量的周期归档性能也无法保证?经同事讨论做以下猜测:可能由于性能问题,导致每次归档时间都往后推迟,积累到一定的时间,出现了丢失1秒记录值的情况。可是时间列的时间值只精确到秒,没有毫秒值怎么判断呢?
天无绝人之路,经查找,在WinCCflexilbe帮助中发现以下描述:
原来记录的准确时间值放在了不起眼的Time_ms列中啊,赶紧按照帮助中提供的计算方式计算一下准确归档时间吧。
分析Time_ms分解后的具体时间可以得出以下结论:
(1) TimeString中显示的秒值是真实值四舍五入后得来的;
(2) 确实会存在某时刻的归档值丢失的情况。
最终结论:如果对周期归档有严格要求的场合,不应选用面板甚至WinCCflexible runtime设备,而应采用WinCC等高性能软件。