iFIX使用经验之谈

2017年我开始做一套新设备研发,前期大约用了一个多月的时间主要用来了解设备,设备有些复杂,电气部分的图纸大约在八九百张之间,PLC程序也是多个人写的,程序庞大复杂,程序语言有梯形图,结构化文本,还有块状图,程序没有完成最终版,还在调试中,我边看边学大体上把设备理清了,上位机系统是另外一个部门在用C#做。

一个月后,领导让我们负责两台实验设备的电气控制系统的研发设计工作,这里的我们只有两个人,一个是我,另外一个女同事。领导的意思是控制系统的硬件部分就和目前产品的一致,主要是上位机软件看看能不能用组态软件来开发,如果能行后续就用在实际的产品上。

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

我比较倾向于易控组态,LabVIEW,倍福上位机系统,iFIX这四款软件,这里需要说明一下,我们的控制系统是用得倍福TwinCAT3,基于PC的控制系统。

易控组态是国产软件主要编程语言是C#,基于.net平台开发的,但是感觉产品较新,没有典型项目的应用,最终放弃了,不过以后要是选择国产组态软件的话,我还是优先推荐这款,毕竟控件超多,对电气工程师不友好的是C#语言稍显复杂。

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,很多事情都忘记了,我们自己搞定了大量数据下发的问题,配方编辑的问题,权限管理也是自己做的。

就这么多吧。


发表回复

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