1.5 工控市场

在工控市场中,其硬件软件呈现一种百花齐放的状态,不仅生产诸如组态软件、工控软件、数据采集卡、卡泰仪器的厂商云集,而且产品门类齐全、功能五花八门,几乎能满足我们闭着眼睛能想出来的所有要求。正是有了竞争,才有了开发的动力,才会有一个更加丰富的市场。回想起Visual C++战胜了Borland C++之后,虽然更新的脚步依旧快,却鲜有改变,MFC数年没有本质变化,.NET进步缓慢。

现在回想起来,与Microsoft一家独大不无关系,就连Windows操作也是如此,自从开创性的Windows 95发布之后,每次所谓重大新版本的发布都没有引起之前的那种轰动效果,Windows 95太成功了,以至于后来者几乎无法逾越,奉之为神明。

但换一个思路想,在没有任何其他公司的具有巨大的市场占有量的操作系统推出来之前,Microsoft只要不断地进行无关痛痒的持续更新,钱也一定会不断地飞进腰包!

同样,AMD虽然与Intel在处理器领域竞争激烈,却也同时忽略了移动处理器市场,导致了ARM几乎占据了90%移动市场份额,而且还在进行市场的扩张行动。为什么会是这个样子?Intel早就知道其技术已经遥遥领先于对手,因此,对于每一个产品系列,只要比对手高上那么一点点就可以了,不需要跨越式进步,何愁钞票不会来呢?为什么ARM的SoC芯片已经集成了A/D、D/A、SCI、SPI、USB、GPS、Timer、GPIO等一系列的IP模块,而Intel和AMD只是一颗货真价实的CPU(APU)呢?难道是他们没有掌握这项IP集成技术?不是!是他们不想让技术进步得这么快,因为对于已经习惯了每次只要有一点点改进就会有大量钞票入账的状态,谁都想舒舒服服地赚钱,轻轻松松地工作,对不对?

说得太远了,回到原题,如国内的组态王、紫金桥软件,都是以组态的形式进行系统开发的,省时省力,与NI的虚拟仪器软件相比较,其应用场合更加具体,但通用化的程序开发能力弱,在测试测量市场能占有一席之地,但想蚕食NI的市场,却也难度重重。别的不说,就是一门G语言开发工具,就能把一批国内厂商挡在门外了。

至于数据采集卡,我最早用的就是宏拓的ISA卡,其最明显的优势就是价格便宜,对于上世纪90年代一条NI数据采集卡的排线就要1000多元的价位来说,一块8通道、8位的A/D卡才几百元,真的算是白菜价了,去一趟北京不买几块卡回来,都对不起路费。后来我也用过一块中泰工控的PCI数据采集卡,大概是PCI-8XXX(不便透露),在短时间内采集是没有任何问题的。问题是我要进行长期温室状态下的采集,需要连续采集一年以上的数据,结果是大概每隔一个月,板卡就不能正常工作了,只能是重新启动电脑,再来一次,长期测试的稳定性不佳,相对于便宜的价格来说,这也不算是什么大事了,好在我对数据的连续度及精度要求不高。

数据采集卡这种东西,有时候是一分钱一分货,当你货比三家,发现一款功能强大而价格又极具诱惑力的卡时,可能需要三思,要想清楚对参数的要求是否苛刻,运行环境是否在系统可接受的范围内,如在温差变化极大的环境中,传感器就像一个振荡器,即使被测物体没有发生任何变化,传感器也会产生大量的噪声,而且,这些噪声是很难通过常规的方法滤除的。

说到噪声,我想起了频谱分析的问题。稍微有些信号分析常识的工程师都知道要滤波,可是对于要滤除什么波,噪声从哪来却未必清楚,即使在获得频谱分析结果后,有些人仍然会问我,怎么纵坐标的数值不是想要的数值呢?为什么不是频率?大家当然需要知道,其实横坐标就是采样点数,并不是什么频率,频率其实是一个标量,或是一个无量纲量,通常情况下,我们把频率归一化到0~1范围内。

而由采样定理可知,采样频率应该是原始信号最高频率的2倍,即如果采样50Hz工频交流电,那么最低采样频率应该是100Hz,LabWindows/CVI中的傅里叶变换(FFT),将呈现出以0~99为横坐标的频谱。由于FFT的对称性,我们只要关心横坐标的0~49就可以了,50~99为0~49的镜像,然后,再经过细微变换,把横坐标值转换为1~50就可以了。

然而,FFT通常要求采样点数为2的n次方,因此,50 Hz工频交流电的最低采样频率(速率)应为每秒128个点(128Hz),在进行FFT计算后,只要将横坐标的0~63转换为1~64再显示出来就好了。如果每秒采样2次,那么能显示的最高频率也就是1Hz,无论你采集了到底是100个点还是1000个点。

事实上,FFT一般情况下在各个频率段内都会有值存在,这是由于信号在采集过程中进行了时域截断处理,而造成的频谱分布的各态历经效果。但是,波形的高低及与横轴围成的面积决定了其能量的大小,对于频谱(或称为频谱密度函数),其能量的集中程度与集中范围才是我们最关心的。滤波操作其实就是对不需要的那部分能量进行短路处理,处理的结果是使其不经过负载设备,如果是软件滤波,就是让那些不需要的能量在计算中不被处理或以零的方式进行计算。

因此,FFT的本质就是找到信号的能量分布特征波形,滤波的本质就是对不需要的那部分能量特征波形进行旁(短)路处理,使其消失。说白了就一句话,滤波是对能量分布的一种再分配,即能量处理方式。