故事作者:万泉河

最近创作

看看TA的故事

【万泉河】支持WEB浏览的WINCC报表进展报告与方案探讨

已锁定

万泉河

  • 帖子

    10900
  • 精华

    132
  • 被关注

    1009

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

【万泉河】支持WEB浏览的WINCC报表进展报告与方案探讨

1632

13

2016-03-03 19:05:02

【万泉河】支持WEB浏览的WINCC报表进展报告与方案探讨


WINCC的WEB浏览实现是使用WEB Navigator 的插件,通过把原有的画面,经过WEB发布以后,可以在远端的IE浏览器中进行远程访问了。


上述描述相当简单, 因而也很容易令人产生歧义。 很多人会造成一个错觉,就是只要把WINCC画面做好, 只要做WEB发布, 一切功能就都可以发布到远程了。 我有一个朋友, 有一次拿一个远程控制的方案请教我。 具体啥内容我忘记了,但我感觉一个原本直接的问题, 他绕了好几个圈子给绕到WEB navigator的路子上来,我就问, 你是不是以 为只要WEB发布了就万事大吉了,具体的那些控制内容你就可以不关心了?答, 是啊。


我回答:错了! WINCC 的WEB Navigator 并不是想象中的远程桌面一样, 把服务器的运行窗口直接给抓到浏览器中的 WEB控件来了。 不是,远远不是!


它的内核机理把原本的所有的元素都给打碎了,或者说从来就没有聚合过,所有元素都是单独传输的, ATIVEX控件也还是控件,也仍然需 要远程的电脑安装支持这个控件。原本在WINCC脚本下需要关心的 编程,在WEB环境,还要再关心一次。经常出现很多功能WINCC中可以支持而WEB中不支持。 那么这部分功能就不能发布到WEB中。


这里面很大一部分障碍是报表。 我这些年做过的各种报表, 从来不敢答应客户,说领导也有个电脑, 也想随时随地能从自己电脑上访问WINCC上的数据报表的内容。 因为我知道, 我们做的报表功能太复杂, 中间使用了太多的自定义的脚步功能实现, 要转移到WEB上, 是有很大问题的。


关于WEB和报表的关系, 是这样的, 如果你没有报表, 只有展示的设备运行界面,即便设备可以通过WEB操作, 在我看来也就类似个过家家的玩具。 恐怕很少有公司的设备允许无人值守,而仅仅是通过网络来控制操作吧?如果都是局域网上的操作, 那WEB与WINCC客户端的差别其实很小, 无非是细节上软件成本上的差异而已。 但WEB的稳定性可比客户端差多了。


所以, 我认为客户更想要的是通过浏览器, 不光能看到运行状态, 还想能查询到报表数据, 特别是带有统计数据的报表。


我所做的报表的实现路线,一直以来都是基于数据库的查询。 就是,数据随着生产的进行, 随时记录到数据库中。完全以未经过滤和统计的原始数据存在。在需要查询报表的时候, 通过用户操作输入时间条件和其它过滤条件,画面程序整理成符合数据库查询规范的脚本, 然后调用数据库查询指令, 查询结果送到画面的表格控件显示。


这些查询语句既包含普通的SQL语句, 也包含符合连通性软件包connectivity pack 语法的 Tag:R 样式的特殊语法。前者使用的PROVIDER = MS OLEDB, 后者 则使用WINCC OLEDB, 西门子专门开发的数据库接口规范。


那么远程访问呢? 先简单些, 假设要在WINCC客户端上查询服务器的数据库数据呢? 经过近期的调试测试发现, 需要修改的地方不算多,还算比较容易实现。 分别要做的几件事:

1,原本一些配置文件模板文件, 读取路径要改为在服务器上的项目共享文件夹。或者把配置文件复制到客户机的客户端项目中来。

2,SQL定义链接符时指定服务器的电脑名, 而不是简单的.\wincc 。

3,项目中为了展示报表数据表格的控件,通常是第三方控件, 现在也要在客户端电脑上注册。为了方便注册,这些OCX文件也要复制到客户端项目的文件夹中来。


至于WEB访问, 前面提到了WEB发布之后, 所有内容都是单独的信息, 而数据库ADO查询这些并不支持HTTP接口, 所以最后发现, 实现报表的所有的功能, 需要和客户端时一模一样, 需要通过网上邻居的通道实现。


这就要求, 你在配置一个WINCC客户端时所做的前期工作, 这里都要重新再做一遍。 远程访问的计算机, 需要和服务器在同一个域中, 登录的用户需要拥有服务器上的所有的安全权限.....


而且, 因为省掉了安装WINCC软件的过程, 那么取而代之的, 是需要另外的CP CLIENT等软件的安装, IE兼容性的设置。这么一番折腾下来, 最后如果不出意外, 客户端上也可以实现开始所畅想的通过浏览器来浏览和查询WINCC服务器的内容了。


这是我目前所能做到的进展情况。


如果前面的具体的技术内容看不懂, 那看看我简单的总结就可以了:


* WINCC 客户端上面实现报表查询已经彻底实现, 没有任何遗留问题。

* 通过WEB浏览方式的WINCC报表可以实现, 但不支持广域网,客户端上需要安装的软件和配置工作也比较多。 个别电脑,操作系统或者软件版本不兼容, 也有可能导致不成功。


下面是我的看法, 也是要和广大网友们探讨的地方。 希望看懂了前面描述的情况下,有懂WWW的高手给出好的建议。


首先, 太麻烦啦!说好的打开浏览器直接浏览呢?说好的可以随便多台电脑都能浏览, 只要同时在线的浏览客户数量不超过授权数量呢?


总而言之, 最后的技术实现, 在服务端, 不管多复杂, 多折腾, 都勉强可以接受。 而到了客户端,如果工作量太大, 太复杂,就维护不起了。 总不能过几天客户那里多一台电脑, 就去给维护一次吧?电脑系统坏了, 各种原因, 浏览不到了, 就又被叫去维护。 客户习惯不好, 老上****, 电脑上乱七八糟各种插件,各类神仙打架, 都要给逐个清理,想想都头疼。


所以, 我设想的是, 报表的查询还是要在服务器的后台实现。 类似于AJAX的实现原理。 WEB 前端, 只是组织查询条件, 送给服务器, 服务器通过调用模板文件, 查询数据, 生成报表结果, 然后前端通过http读取文件流, 将结果展示到画面中。


服务器端如何实现呢?需要有持续运行的全局脚本, 一直来侦测前端有无法来查询请求,如果有, 则后台进行查询, 查询完成后, 把状态通知给前端, 前端根据状态, 知道查询已经完成,可以去下载查询结果。唉, 又回到了我讨厌的全局脚本了。


如果处理多台客户端的问题?还要给它们一个任务调度, 不可以同时查询互相干扰到查询结果。 如何实现呢?还没想好。


【万泉河】支持WEB浏览的WINCC报表进展报告与方案探讨 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3363条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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