iFIX在半导体设备中应用的一次尝试

大约2017年我开始做一套新设备研发,设备有些复杂,电气部分的图纸大约在八九百张之间,PLC采用的是倍福的产品,程序是多个人写的,庞大复杂,程序语言中有梯形图,结构化文本,功能块图。

领导让我们负责两台实验设备的电气控制系统的研发设计工作,并找一款合适的的组态软件,看看能不能取代C#开发的上位机系统,如果能行后续可以用在实际的产品上。我们这个小组只有三个人,当时感觉压力还是蛮大的。

我们开始做方案,两台设备的控制系统的硬件预算大概在七八百万左右。重中之重是组态软件用谁家的比较合适,如果一开始就选错了,后续基本上也没戏了。保险起见,我先去知网上搜索相关的论文,看看谁家在和我们做类似的产品,结果发现基本上只有几家科研单位在做,可能发表论文的就他们几家,包括西安电子科技大学,中国电子科技集团,南昌大学等,还有一些零散的公司发表的论文,基本上都是西门子的Wincc居多,也有用罗克韦尔的RsView的。实验室做的东西要商品化还有很长一段路要走,参考意义不大,我们得根据自己的需求来选了,然后我们把国内外的主要组态软件都找了出来,逐个比较性能。

最后可用的有四家产品:易控组态,LabVIEW,倍福上位机系统,iFIX这四款软件。

我刚开始比较倾向于易控组态,易控组态是国产软件主要编程语言是C#,基于.net平台开发的,估计应该扩展性比较好,但是感觉产品较新,没有典型项目的应用,,实际了解了之后感觉扩展性不是很理想,他们的技术人员对我们也不是很在意,很多问题没有给解答,最终放弃了。

LabVIEW是通用的图形化编程语言,主要用在测控领域,通讯这一块不是问题,有DCS模块,支持很多协议,对我来说难点在于设计模式这一块,有时候感觉几个语句就能写完的程序放到LabVIEW很难转换成图形,这个编程需要思路的转换,时间不允许。前期我们也试用了一下,感觉界面布局之类的都是很麻烦的事情,相关控件也少,最终选择了放弃。

倍福的上位机系统应该是最合适的,毕竟下位机也是倍福的,自己最懂自己,但是在国内倍福的上位机属于刚刚推出的,前端使用HTML5,CSS,JavaScript等,后台使用C#。相应的控件很少,而且帮助系统也很少,倍福专门从上海派过来工程师给我们培训了两天,我们发现这东西太新了,很多功能还不完善,最终还是放弃了,我们没有这么多精力搞定这么多东西。

iFIX支持VBA脚本,扩展性很好,基本上能用在VB6.0的控件都可以用在iFIX上,而且行业应用也广,当然iFIX也存在一些问题,微软对VBA的支持开始变少,自从2013年推出最后一个版本的VBA之后就没动静了,种种迹象表明微软是在放弃VBA,转向支持C#在办公自动化领域的应用。

最终权衡各种利弊,我们选择了iFIX,联系软件的供货商,我们很看重技术支持这一块,主要是和技术谈,商务的能把软件吹上天去,联系了三四家,最终选择了一家技术比较踏实的代理商,然后买了功能比较强的开发版和运行版。

版本有300点,600点,900点,无限点等,感觉这样分真没多大意义。

下面说说具体在使用过程中的感受和问题。

通讯的驱动程序,建立连接比较方便,我们使用的是倍福的ADS协议,自动生成标签,查看数据比较方便,存在的问题是如枚举类型的数据,默认是不识别的类型,不过可以解决,本质上还是整数类型,我们在PDB数据库建立整型变量即可。还有一些数组和结构体类型都是分开读取的,使用起来不是很方便,我不确定是不是应为按点数收费才做成这样的。

PDB数据各种数据类型只能建立32678个变量,也就是所谓的无限点是相对的,当然对大部分工程来说是足够了的。不过有些变量缺少保存原始值和设定值的能力,能保存设定值的比如说AO类型,里面的属性cold可以保存设定值,我们有较多的初始化参数,只能保存到数据库里或者Excel表格中,启动软件的时候读取,然后赋值给变量。二级块有些鸡肋,很多数据我们都在PLC中做了处理,基本上放弃了二级块的使用。我们使用的是5.8的版本,PDB的变量名只支持30个字符串,而且还全是大写字母,我们的变量有点多,查找变量特别不方便,我们程序中都是小驼峰的命名方式,30个字符不足以表达我们变量的实际意义。

iFIX的画面后缀名是grf,画面色彩支持的比较好,但是图形边缘的锯齿特别明显,另外画面的位置定位效果特别差,想精确定位有点难,理论上讲,它是可以支持ocx控件的,但是实际上很多第三方控件它是不支持的。

上面的部分是三四个月之前写的东西了,现在没有再使用ifix,很多事情都忘记了,我们自己搞定了大量数据下发的问题,配方编辑的问题,权限管理也是自己做的。

记录2017至2019年那段值得怀念的时光。

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注