技术论坛

技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨

作者 主题
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:09:09
以下是WinCC实现报表的不同方法及其应用专题探讨之理论探讨整理内容,查看原帖请点击此处
quote:以下是引用IF THEN ELSE在2009-02-23 15:59:48的发言:
我常常采用以下方法做报表:
1、如果客户要求比较简单、单一,直接用wincc的报表功能实现,快速而方便;且能满足客户要求;
2、如果客户需要的报表数据种类不多,这里说的数据种类指的是对应WINCC里的TAG个数,比如只需要对10个wincc变量进行报表输出,那么我一般采用自己在wincc里编写脚本程序,把这些数据对应的插入到sql数据库中我自己定义的表格中,脚本的触发类型或周期可以可以报表的需要调整;比如一小时一个数据,就采用整点触发。最后在EXCEL直接采用导入外部数据库的方式把sql数据库中的表格数据导入到EXCEL中,在导入的过程中,还可以设置过滤条件,获得你想要的数据;最后在EXCEL中按照客户要求格式做报表;这里需要提的是,要把导入数据的功能用宏记录下来,可以点击某按钮运行该宏,这样,最终用户可以通过该功能更新报表;
3、如果需要做报表的数据种类比较多,采用脚本写的方式就太合理了,工作量大且给系统带来的符合大,可以让wincc把这些数据归档下来,然后在EXCEL中编写数据库程序,对归档数据进行读操作,且可以设置Where条件,以获得你需要的报表数据;
4、和方法3类似,如果不想在excel中编写程序,可以在sql中编写一个存储过程或做个触发器,把报表数据先整合到SQL定义的表格中,让后采用方法2的导入方法,直接把数据读到EXCEL中,进行报表的调整;
5、最后一种方法,是针对公司的销售比较厉害,能够让用户买比较昂贵、开发好的报表软件来作报表,比如用西门子公司的report manager来做,如果采用类似的软件来做,就简单点了,你这需要用软件组太就可以把需要的报表制作出来,有钱且想省事的,这种方法也是值得使用的;




微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=534338&b_id=5&s_id=0&num=32

至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:48:11
quote:以下是引用dcount107在2009-02-23 21:52:44的发言:
我的做法和IF THEN ELSE差不多,Excel的功能很强大,统计功能最方便不过了,更重要的是还可以减轻WinCC的负担。

另外对于数据的归档也比较重要,如果采用常规的变量归档或者是简单的定时将数据保存到数据库中,一旦WinCC不工作了,就造成了数据的不完整。
我的做法是:在PLC中编制程序以保存一定时间的数据,PLC存储一个月的历史数据,每次换月自动将本月数据(比如DB6)拷贝到上一月数据块(比如DB7)中,然后将本月数据清零!
上位采用自建数据库(Access或者项目数据库均可),由WinCC定时触发或者编写第三方软件批量读取DB块数据,如数据库无此日期之数据则将记录添加到数据库中,如果存在则跳过。


微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:52:43
quote:以下是引用eaglesky在2009-02-24 08:59:44的发言:
我这没有什么合适的文件可以传上来,但是我做过的经常是没有固定规律的格式,不少都是到现场以后,和现场商量之后才确定的。和凌波微步的那种例子的主要不同就是:不是这种只有一行一列的引导内容之后,中间的都是数据了。而是不确定性的,甚至是不固定数据采集周期的。很头疼。我都是尽量和现场商量规划成简单规则的。

另外,想起一个问题,顺便请教一下:我在WINCC里面做过2种,一种是程序写在EXCEL里面,数据从WINCC实时读取,在EXCEL中处理和保存。另一种是在WINCC中写脚本,把数据写在EXCEL中,同样也是保存EXCEL文件。但是有一次遇到一个变态的,业主要同时记录的是20来个报表,最后被我强行拒绝了,我用的2种方法都无法保证程序的稳定性。


微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:53:08
quote:以下是引用万泉河在2009-02-24 14:41:42的发言:
quote:以下是引用xiaofan在2009-02-24 13:25:40的发言:
请问版主,在wincc中怎么做才能把报表生成按日期的Excel文件?


这个问题其实要分成两段:
1,如何从报表到xls。
2, 如何使用日期做文件名。

然后还要分成两层来看:
1,为什么要选择xls。
2,报表的数据源来自哪里?

这么一层一层地拨开来分析,就有意思了。



微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:53:23
quote:以下是引用月雨在2009-02-25 09:05:58的发言:
我做的报表是定时采S7-300的读数,基本上是每2分钟3次,累计记下来,我想让他们都记录下来,可是打印的时候任何时候打印都是全部打印,我怎么样才能想打印哪天的就打印哪天的呢,我现在是强制的每天记录完了,第二天就删除掉,但这样会流失一些记录,所以我想请诸位高手指点一下

微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:53:36
quote:以下是引用eaglesky在2009-02-25 11:16:30的发言:
个人观点,单纯的用WINCC脚本或者EXCEL的方法都不可取,问题较多,虽然最后生成的是xls文件,只是对用户来说似乎是更习惯了而已,因为excel很多人都熟悉。
所以我觉得较好的方法还是通过数据库,通过WINCC的采集,保存数据到数据库中,报表通过对数据库的查询来实现,统计部分最好也做在报表查询的部分中。其实wincc自己有数据库,遗憾的是WINCC没有提供的简单的查询控件之类的东西,自己写就要编程,不过这个编程难度相对来说偏高了些。
希望吧,在后续的主题中可以在这方面注重一些,我觉得这种方法是目前的现实状态中可行性较高又较稳定的方法。


微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:53:49
quote:以下是引用四书五经在2009-02-25 15:55:01的发言:
累计量计算为什么要放到WINCC中去做呢?放在PLC中去做不是很好,累计计算放到PLC中,你以上的这些问题都可以解决。
用存储过程去解决一些复杂报表的问题,包括简单的计算,条件判断,循环等,有点类似于高级语言中,当然标准的T-SQL语句都是支持的,功能还是蛮强大的。而且存储过程是存在数据库中的,它的执行是在数据库端直接执行。不需要通过ODBC API交换数据,执行速度非常快
我们用存储过程解决了一些复杂报表的问题,感觉还是蛮实用的。



微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:54:16
quote:以下是引用callyu在2009-02-25 16:40:02的发言:
我只会用wincc的vbs,定时写excel表,实现简单,不过麻烦比较多。平均值比较容易计算,不过我感觉只能做简单的报表。wincc自带的报表,我觉得只能做日报,定时打印。不过做出来的效果和excel差距比较大,不过编程量很小,方法也很简单。不过我们公司接的工程对报表要求都不是很高。基本能做成日报就可以了。

微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:54:27
quote:以下是引用万泉河在2009-03-01 21:48:21的发言:
使用用户归档的最大的一个好处是可以尽量减少直接对数据库的编程。
比如在写入数据的时候不使用ADO,而是直接使用UA绑定的控制变量实现,通过修改控制变量,实现了对数据的存储和读出。

班次可以直接通过用户名来实现,那么也就是把@currentuser作为一个域存在表格中即可。其实UA原本就支持。(最后修改者)



微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:54:40
quote:以下是引用bcap在2009-03-02 22:10:33的发言:
其实WinCC的普通归档很难建立关系的。这也是不足之处。但是在非周期归档方面个人觉得可能的需求都能满足的。启动、停止、事件触发都可以实现的。定时启动周期归档也可以实现。就归档来讲基本上满足需求。
关键就是咱们的报表涉及到关系的比较多。这样只能从外围想办法了。
另外涉及到表格的灵活组态问题。其实在复杂的报表也需要一个一个的连接变量。
对于第二张报表涉及到数据的汇总。可能很多的班报表、日报表、月报表都比较类似。我是用这样的方法实现的。
1、使用用户归档。无须写脚本通过变量就能添加数据。而出报表使用用户归档的控件就可以。格式基本能满足需求。
2、汇总方面,取个巧。可以通过ODBC连接用户归档的数据表名称。在这里需要一点基本的SQL知识。
求和:select sum(column) from UA#table where 条件
求平均:slect avg(column) from UA#table where 条件
条件无非是时间范围的设定。
这样第二张表就能实现了(这个报表基本实现了统计和汇总的功能)。
之所以选择用户归档,是因为,它涉及的一部分功能,就是用来存储现场的工艺数据。频率不高的情况下(一小时一条记录),基本满足需求!
补充:如果是班报表、天报表采用压缩归档也可以实现。
那么在一个布局中 添加两个在线表格控件,一个连接过程值归档,一个连接压缩归档。就基本能实现班报表、日报表等统计功能。对于月报表有点困难,主要是无法设定一个月触发归档的频率。这样只要在界面设定查询的起始和结束时间,就能得到相应的报表!




微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:54:50
quote:以下是引用万泉河在2009-03-03 09:48:50的发言:
n次看你的背影的方法,我相信是大部分人的成熟的技术方法。包括好多的技术专家。

这种方法,等于是完全架空了WINCC自己的功能,只是利用了它的通讯接口和编程能力,只是当作一个编程工具来使用了。

这种非模块化的设计,优点是会编程的,掌握起来比较自由,因为WINCC已经什么都不是了。

我们这次讨论的结果,决不能仅仅到此为止。而是要找到一个更高效,更简洁的处理方法。
可能好多迷恋于EXCEL外挂实现的高手会觉得你自己的方案模式已经足够成熟,任何项目,可以反复使用,决无问题。但我相信,如果大家愿意倾心下来从整个思路上了解一下这个过程,这个讨论下来,你一定会大有收获。
包括西门子内部的工程师们:说实话,据我了解,你们对实际的报表的工程应用理解还远远不够。否则的话,早就该对WINCC不足的地方整理成文,报给你们的德国研发总部来改进了。





微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:55:05
quote:以下是引用西门子HMI工程师在2009-03-03 16:37:10的发言:
归根结底,WinCC是个欧洲产的中端工业控制软件。
国内对报表的需求与国外不同:国内注重归档,国外注重分析。
国内报表更多沿袭手工抄表的习惯,与软件归档的实际数据结构(或者说“科学”的数据结构)有距离。我们在这里谈的大多是如何弥补这个距离。
注重分析的报表要求更高的灵活性,比如各种数据的组合,棒图、饼图的展示,甚至是随机抽取数据,立刻呈现报表。对于这些需求,更强大一些的工业软件或数据分析软件会做的更好,例如Simatic IT的Universal强大而且灵活,但是人家是专业的,贵。
而WinCC通过推出工业数据桥、Connectivity Pack、VBS的也都提供了更灵活的数据接口,方便各种专业软件各司其职。
Dat@monitor 这种类选件某种程度上是分析型报表的体现,组态简单,发布快,格式通用,获取方便。
如果要跟本地HMI软件比本地化,WinCC和本地软件各有优势,报表恰好在WinCC劣势范围之内。
同时,WinCC在基本打印功能方面一直也在改进,比如趋势和表格控件上的实时分析和打印按钮,报表控件的过滤条件,ODBC表格和I/O域的引入,等等。
西门子本地工程师也一直致力于WinCC的本地化水平的提高。但是这些本地化需求是否都能被满足,受到需求优先级、成本控制、全球市场策略等等的限制。
这次的讨论会帮助西门子对本地报表的需求做分析和整理,如果大家能把报表需求的原因和必要性和普遍性谈的更透彻,有利于我们说服总部实现这些功能。



微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:55:20
quote:以下是引用万泉河在2009-03-03 18:46:36的发言:
我认为对报表的认识不要仅仅局限于纸面上。
上述贴出的众多的例子,除了需要打印出来之外,其实显示在画面上也有很大的用处的。

最平常不过的是手机的话费清单,我们查询的时候需要查询出来结果,浏览一下。如果需要可以想办法导出、整理或者打印。
这些都是报表设计时需要考虑的功能。

当然,针对是否有打印需求,可选择的技术路线就有了差异性了。比如如果用EXCEL,可以调用它自身的所见即所得的打印功能,包括打印预览。
而在WINCC内部集成实现上,则又有两种:一种是WINCC自身的控件,都具备打印的功能,6.0之后,可以直接调用“当前控件内容”的打印模板,非常方便了。UA控件当然也具备此按钮。
第二种是利用第三方的Grid控件,这个时候控件是否支持打印非常重要了。从我来说,还没有发现能直接支持打印的GRID控件(免费的)。
我用过的grid控件,一般是使用MSHFGD,主要因为它和ADO的衔接非常方便。但它没有打印功能,我的处理方法是,单独一套打印模板,报表模板使用WINCC的,但查询的SQL条件和表格控件中的完全相同,这样,用户在挑选、过滤完成查询结果之后,按打印时,grid上同样的内容就被输出到打印机了。





微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:55:36
quote:以下是引用万泉河在2009-03-06 08:46:16的发言:
粒子大侠:
以上是根据实际工程需要才这么做的,因为工程的实际情况和客户的要求注定了有时候报表的形式不是唯一的,或局限在一个范围呢,因为客户会根据自己想的要求你来做。这个工程现场控制器在一期的项目里就达到二十多,并且各个地方是分散在一个城市里的,客户要求所有的站要根据某一时刻的查询显示在一张EXCEL表里,这样的要求最终促成了,以上的解决办法。

你的这段描述我其实看得不是很明白。是不是说一台WINCC带了多个PLC? 至于分布式系统与报表关系不大。SINAUT负责实现。

另外我有如下几点建议:
1,复杂的数据结构,不明确的报表格式,其实正应对了关系数据库的概念。在数据写入时,不考虑将来的报表格式。只需要把数据写入到具有关系链接的各个表中即可。可以根据需要,建立视图view,把各表之间的关系描述用VIEW做概括。查询的时候直接从VIEW来取即可。数据库中表的数据变化到VIEW的结果更新是实时可用的。
2,工业数据桥是比较官方的方案,其实它对应的是SQL SERVER里面的DTS功能。只不过工业数据桥更专注于针对WINCC,封装比较好,所以更专业,更方便。而如果对于非压缩数据等的简单表,我们可以直接使用DTS功能,无非是你需要亲自从中挑选表。众多WINCC系统专用的表会让我们感觉混乱。不过你自己单建立数据库的实例,则没有这个麻烦了。
3,说到单建立数据库,我还有个疑问,就是你的数据库文件的位置、建立的过程是怎样的,手动?因为我考虑到了项目的移植以及系统崩溃时的恢复,是否仍要手动的一步一步来恢复,那么除了你以外,其他人能否做到。非专业人士或者不懂工控的IT人士能否承担。你如何实现这个传承。
4,你回复的代码,与SIEMENS支持工程师BCAP上传的代码,道理上如出一辙。都存在一个大隐患,就是数据写入频繁的情况下,对数据库链接的频繁打开和关闭,会产生意想不到的后果。特别是你多PLC,多数据表异步写入的情况下。如何能避免cn重复建立,我们还没有好的处理方法。而事实上我还从来没有用过这个方法。主要是担心这个隐患。我一直都是用用户归档来做,数据写入利用用户归档的控制变量的功能,代码小多了。其实很多时候在WINCC中根本没有代码。控制变量直接定义在PLC中,PLC就操控了自定义数据的写入。










微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:55:46
quote:以下是引用凌波微步在2009-03-06 09:35:26的发言:
各位大侠的方案真的都很好,讨论的也挺热闹!但对于我不会代码编程的来说,简直都是天书!深感自身的能力匮乏!
但我有个想法:目前讨论的较多的都是通过外挂编程软件的方式实现报表的功能的。难道利用WINCC本身的资源无法实现这些功能吗?
万版主:你说的用户归档的方法有没有实例?能否提供一下?


微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:56:03
quote:以下是引用西门子HMI工程师在2009-03-06 15:52:19的发言:
对于常规的数据统计建议使用WinCC变量记录系统的归档实现。
一、变量记录系统的过程值归档
下面是使用者经常忽略的归档方式,可以有效解决历史数据相关报表的数据存储问题:
1、变量记录中的过程值归档可以实现对数据的平均、最大值、最小值 以及求和汇总。
2、涉及到对已有归档数据统计分析的,可以结合过程值归档和压缩归档实现。
这两种方式可以实现的数据归档方式:
1、周期性归档
2、根据数据变化归档
3、通过事件(变量)触发归档、通过事件(变量)触发循环归档的开始和结束。
基本上常见的报表数据存储需求使用这些归档方法都能实现。
虽说外挂或者VBS也是对数据库的操作,但是成型的产品比用户自己写的脚本考虑更全面,更加稳定和高效。

二、用户归档
用户归档可以实现对于采集频率不高,归档数据量不大的工艺数据的统计。
简单介绍一下用户归档:它是用于满足配方需求的一个WinCC选件。这个选件提供了类似数据库“增删改查”的接口和界面,即可以使用简单组态完成这些工作,也可以通过C或VBS脚本使用更灵活的控制逻辑。这些特性可以方便的应用于报表需求。相对过程值归档来讲,用户归档更接近数据库的概念。因为我们可以通过SQLServer浏览器看到数据的表结构。同时它也提供了视图的功能,可以创建一些关系。从而为出报表做一些前期准备。
用户归档的每一个归档(其实对应的就是数据库的表),都提供了一组控制变量。我们可以通过这些控制变量实现对归档的操作。说白了就是wincc后台做好了读写数据库的脚本。通过这些变量触发实现操作的。不熟悉编程,不了解数据库结构的的工程师也可以实现对数据库的操作。

总之:以上两种方法实现对数据的存储和操作,都比自己写代码要高效稳定。这也是WinCC建议使用的数据存储方法。
同时使用以上的方法开发的项目,通过WinCC提供的项目复制器可以很好地实现项目的移植和备份。

题外话:
关于数据库的操作的性能问题。
实际上对数据库操作占用时间的并不是打开和关闭数据库链接,而是后面的读写和查询操作。
一般大家常用两种方式实现数据库连接:
1、自己写脚本建立连接,在本地完成数据操作后然后释放连接。
2、通过数据库的存储过程实现。
两者主要的区别是:方法一 每次都需要在本地内存重新生成相应对象和执行代码,然后释放连接;方法二是编译后对象和代码长期驻留服务器内存,效率更高一些。但这个效率主要是针对后面的读写和查询操作来讲的。
其实一般的数据库对链接的要求还是有限制的,如果长期占用链接不释放的情况下,会影响数据库的运行性能和接入。所以从数据库的角度不建议长期占用链接(除非特殊情况)。 针对高速的数据存储,一般不会用于报表系统。对于WinCC来说,还是对报表需要的数据另行归档,或对高速归档使用“压缩归档”抽出所需数据,比较合理。
另:关于此次讨论的结果,我们最后会做整理。请大家继续关注!踊跃发言!




微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:56:14
quote:以下是引用城外之人在2009-03-11 08:36:15的发言:
用户归档与自建数据表其实是两种不同的思路。
前者就像很多大侠所说的,是个成熟产品,不会数据库编程的人也能上手。
而后者,纯粹是编程。建表、增加记录、查询等等都需要写代码。当然建表工作有的也可以事先手工来做。但这些代码对老手来讲也是容易实现的。特别是可以随心所欲地用WinCC OLEDB Provider查询变量归档。
代码更便于移植!
不同的人会采取最适合自己的方法。


微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 16:56:27
quote]以下是引用eaglesky在2009-03-17 21:44:58的发言:
这个专题是到3月18日结束? 还有这个专题的后续么?今天从头到尾又看了一遍,感触很多,可是又觉得没有很实质性的收获,不知道是不是我的理解能力较差导致。
从接触WINCC时就听说WINCC的报表不好用,所以我自己做的时候,几乎直接就将wincc的自带报表功能pass了,可从这个专题看,wincc自带报表还不是一无是处!回头要找机会好好看看了。我自己完整的做过2个项目的报表,主观上的分别采用了2种途径:1种是在wincc中写VBS脚本,生成EXCEL文件,1种是直接在EXCEL中写VBS脚本。但是这2种方法都有比较明显的缺陷。具体脚本内容就不写了,由于项目内容涉密,一时间也找不到项目文件,并且前面已经有这2种方法的例子帖出来了。简单说一下我感觉的这2种方法的缺陷吧:第一种,在wincc中写报表,由于操作人员会在操作过程中操作excel,所以为了避免干扰,每次写完EXCEL并保存后,我会用VBS关闭excel文件。但是会遇到一个问题:有时EXCEL文件虽然被关闭了,但是EXCEL进程会留在系统内并形成一个死掉的进程,操作越频繁,出现的概率越大!同时,这个方法不适合同时处理2个以上的EXCEL文件。 第二种方法,在EXCEL中写VBS,首先的问题就是EXCEL要始终处于运行状态,其次,这种方法很容易受到EXCEL文件本身的干扰,比如操作员打开其它的EXCEL文件,又或者操作员在本机上查看以前的报表文件等。最明显的现象,就是当前报表文件某个单元格处于被编辑状态时,VBS脚本无法执行!并且,从后一个现场的反馈情况,这种报表文件不间断24小时运行的话,很容易出现问题。
当然,某些现象是无法实际执行的,比如不允许操作员操作员操作EXCEL,不允许在本机查看报表等,这在实际中无法避免的。
过段时间就要调试下一个项目了,在这个专题中受到了一些启发,但是还有很多困惑,我还是偏向与先将数据存入数据库,然后提供给用户一个查询界面程序,这样我觉得更可靠些。至少数据已经正确的保存了,查询界面程序可以完善。先保证数据的存在才是基础。
希望这个专题还有后续,也希望我也可以借助这个专题,这次的项目调试,找到一个更好的方法。

微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 17:03:02
quote:以下是引用城外之人在2009-03-18 08:10:45的发言:
楼上的困惑其实是普遍存在的。
不直接将数据写到打开的Excel中,而是先存储到数据库中,正像楼上所说,先保证数据的存在才是基础。
然后,再将数据库中的数据写到Excel或其它载体中。

说来说去,还是回到了如何操作数据库的问题。
自己建表,自己插入数据记录,这需要自己写代码。
用WinCC的用户归档,省事,省心。

这也从另一侧面反映了一个事实:用户归档其实就是与配方、报表挂钩的。



微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨


只看楼主 2009-03-19 17:03:16
quote:以下是引用bcap在2009-02-25 19:40:14的发言:
个人觉得报表反映了业务的需求和用户最终关心的内容。所以会很认真对待。一般会根据报表的要求,来确定怎么存储数据。我把报表一般分为:
简单存储和统计的报表,日、月、年统计报表,这些报表往往会有平均 汇总项。
包含一定关系的报表,比如说数据和班组的关系,产品批次和原料等之间的关系。
还有就是复杂的报表,自定义项很多。既有实时数据又有累计数据,还会涉及到一定的统计分析。这是比较麻烦的。
不知道各位怎么看?


微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
收起
技术专题探讨-WinCC实现报表的不同方法及其应用-发帖整理之理论探讨
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。