工控领域的组态软件概念

中国语言太丰富,搞得隔行就象隔山一样,Java作为大型计算平台,不但在服务器市场拥有巨大市场,这个趋势也扩展到嵌入式工控系统,嵌入式工控必须依赖上位机强大的计算能力才能对大量工控信号进行监控 报警 计算,这些大量工控信号对服务器的冲击能力以及数据量一点不亚于网站的并发访问量。

因为嵌入式工控领域属于螺丝壳里做道场,性能至上,思维属于向下,而java属于大型可扩展的领域,模式架构可扩展至上,思维方式属于向上,因此,嵌入式领域的专业人才进入Java世界要头晕,就拿组态软件这个概念来说,实际上就是我们通常所的组件、构件。

组态软件的最大特点就是可配置,在Java中,组件之间协同工作就是靠XML配置,如Spring /EJB/Jdon等等。这个概念两个领域是一致的。

有文说:“组态”的概念是伴随着集散型控制系统(Distributed Control System简称DCS)的出现才开始被广大的生产过程自动化技术人员所熟知的。
DCS和我们提的Distributed Computing System非常类似,这是与集中式系统相反的概念,怎么到了工控领域被翻译成集散型,其中带了一个集中式的“集”。真是奇怪。

现在国内大部分产品和资料都是基于windows的,这也是一个不太正常的现象,其实随着Linux迅速普及,比如goole最近开放其手机Linu操作系统,必然对嵌入式软件带来冲击。

Liunx嵌入操作系统有其独特优点,其组态可配置性更加特出,特别是优异性能,在其上再跑Java,通过OO思想和方法将组态软件优点发挥极致,相信随着ARM芯片不断升级,Java/J2ME蔓延嵌入工控时代已经来临。

本人将不断关注这方面的发展,打破国内传统工控人员圈于微软windows平台的工控软件开发思维。

在下面这份组态软件资料中,有一段话:
http://www.gkong.com/gkong_bbs/dispbbs.asp?id=73199

“未来的组态软件将是提供更加强大的分布式环境下的组态功能、全面支持ActiveX、扩展能力强、支持OPC等工业标准、控制功能强、并能通过Internet进行访问的开放式系统”

其中ActiveX OPC等都是微软概念(除了ActiveX COM就没有其他组态技术,如Javascript和EJB等),这种将技术原理术语和商业公司技术挂钩的说辞该受到极力批判。真正的是误导初学者啊。


工控领域很多软件都是偏重功能算法为主,将功能完成就是软件完成的标志,这个现象和企业管理软件领域是一样的,由于这种只注重性能忽视扩展的设计理念存在,导致大量的工控嵌入式软件无法升级换代,或者说根本就不可能升级换代,工控软件从帮助生产提高效率变为阻碍生产发展降低效率,这个现象与企业管理软件领域是完全一致的,很多人没有认真研究其中的原因。

说白了,就是OO得不够。。

opc 的跨平台开发?
http://bbs.gongkong.com/detail.asp?id=111778

Java 分布式控制组态软件jddac
https://jddac.dev.java.net/
包含记录 图形监控等功能,可以在J2ME J2SE J2EE下运行,真正的跨平台,不但可以通过运行J2ME实现现场监控,还可以运行在J2EE平台在后台统一分级监控,一套软件到处运行,这就是Java的魅力。
[该贴被banq于2007-11-07 23:23修改过]

Jddac是安捷伦实验室的一个开源产品,曾经获得2005年Java大奖,该系统服务器端使用struts架构,可以对多个探测点probe进行实时监测,并且实时显示图形。

使用步骤:
1. 启动jetty和jddac.war服务器。
2. java –jar lib/JddacClient.jar 启动客户端,
3. 可以从服务器的probe中实时观测到客户端发出的数据。

这个应用展示了Java在工业控制和企业管理领域的贯通交互,说明Java在企业信息化中成熟性和先进性。


网上演示:
http://jddac.labs.agilent.com

现代软件的最大问题应该就是扩展性灵活性不够,生命周期太短,对客户的需求适应性太差。其实客户的需求变化在很大一个范围内是可以预测的,但是前提是我们要了解它的历史发展过程,抓住它的本质。面向对象的建模正是通过对原型的抽象建模,揭示它的本质,预见它的发展。客户提一个需求就牵一发而动全身,绝对是没了解对象的本质,对它的静态结构有理解错误的地方。

java已经提供了实现面向对象思想的成熟的技术,可惜,术为道用,我们现在缺的不是术,而是道。

不管是嵌入式软件还是企业应用管理软件,都急需对需求趋势的预见和适应功能,否则都很快就要被淘汰。对我们自己不能控制的业务需求,只能是在它的运动过程中顺势去掌握它的规律并运用它,想静态地占为己有是不可能的。这方面我们有太多的失败的经验了。

工控领域的组态软件概念其实也正是引入面向对象的思想去解决软件的扩展性问题,嵌入式软件说到底也是用软件去协调各个硬件共同来完成特定的整体功能而已,和企业管理软件是相通的,管理的实质其实就是协调,管理软件就是协调各个软件对象共同来完成对外的功能。

安捷伦HP分出来,在高频仪器方面很出色,做RF的没一个不认识。
但被捷伦也搞JAVA还是头一次听说...

我觉得java还会继续扩大领域的^_^

>现代软件的最大问题应该就是扩展性灵活性不够,生命周期太短,对客户的需求适应性太差

同意这个观点,过去工控软件因为资源问题,程序都比较简单,纯粹的功能实现,强调少而精,就象SQL思维一样,然后直接固化在硬件中。

随着市场竞争激烈,工厂会不断更新产品结构,那么生产设备不断调整升级,但是由于固化在设备中软件不能方便升级换代,甚至由于当初软件没有考虑扩展性,就难于维护和升级,所以,设备本身就阻碍了产品变化的需求,这个道理和企业信息系统道理一样。

如今,随着ARM芯片升级(ARM11相当于奔5了),以及OO思维的普及,工控领域软件也开始重视软件的扩展性了,以及一次编译到处运行,跨越平台的重要性,最近google推出的基于LINUX的JAVA框架Android:
http://news.google.cn/news?q=Android&complete=1&hl=zh-CN&newwindow=1&um=1&ie=UTF-8&sa=X&oi=news_result&resnum=4&ct=title

不过,由于工控软件都是商业化,很少开源,因此这些变化没有引起我们的重视,我在本站google广告中也发现一家Java组态软件厂商,他的白皮书理念都很先进:

http://www.netmodule.com/en/products/netmodule_jopcbridge/?gclid=CJyzl4rm7Y8CFQsNewodejODMg

risc构架和cisc构架的理念越来越相互靠拢了,变化真的太快

DCS和我们提的Distributed Computing System非常类似,这是与集中式系统相反的概念,怎么到了工控领域被翻译成集散型,其中带了一个集中式的“集”。真是奇怪。
我是工控工程师,“集”是集中监视,“散“是分散控制。

生命周期短,其实很多不是技术原因。和钱啊,时间啊都有关。
钱少就不可能投入太多精力,没时间,规划的少,都影响软件质量

楼主可能对应用层做的东西比较多,对于底层的东西接触的比较少。
工控的定义本身就很模糊,比如很多国内防火墙厂家就采用基于X86的工控机,在Linux上的iptable进行界面封装。只是Linux不适合做高端网络设备的操作系统,效率太低。
至于实现语言,估计和Java没什么关系,你看过哪个网卡驱动是基于Java开发的

呵呵,Java本来就是为嵌入式而生的啊。

>>>DCS和我们提的Distributed Computing System非常类似,这是与集中式系统相反的概念,怎么到了工控领域被翻译成集散型,其中带了一个集中式的“集”。真是奇怪。
>>>我是工控工程师,“集”是集中监视,“散“是分散控制。
工控里的Distributed,和通常说的分布式确实不是一回事。翻译成“集散型”是确切的。就是[“集”是集中监视,“散“是分散控制]的意思。