1 引言
目前,高温蠕变、松弛、持久强度试验机已经不是传统意义上的单台试验机,而是由多台试验机和多台控制器组成的集散式控制系统。这个系统若想按照一定的规律安全稳定地运行,离不开一套功能强大的软件。因此,开发能够适应集散式系统的控制器软件是十分必须的。随着航空航天事业的不断发展,高温材料也在不断地向前发展,这就给蠕变试验机控制系统提出了更高的要求。所以,本套软件在研发之初就充分考虑了其长时性、通用性和高效性,尤其是长时性,如果程序在逻辑上和结构上设计不够合理,很可能会在内存中产生大量的垃圾碎片,甚至还可能会发生内存泄露。这些垃圾碎片不仅会影响系统运行的速度,如果长时间得不到清理,还会发生不可预知的错误,甚至可能会引起死机。因此,本套软件以visual C++6.0作为软件的开发平台,采用多线程技术来实现并发处理,通过不断地整理内存碎片、释放内存空间等操作来避免这类现象的发生。另外,控制器在集散式系统中作为一个网络节点,它还具备以太网通讯的能力,使控制器的数据吞吐能力明显增强。
2 设计背景
蠕变、持久、松弛等长时试验,其试验时间长,试验过程复杂,且一般试验结果都是由一组试样的试验数据统计出来的。因此,若一次试验用单台试验机做一根试样,一次就只能得到一个试验数据。要想得到一组试验数据,就必须反复做试验,所花的时间为单个试验时间和试样个数的乘积。这么长的时间才能获得一组统计试验结果,是生产或研发难以容忍的。所以,一般做此类长时试验时,都是一次同时做一组试验,也就是同时有一组试验机在工作,然后得出试验数据再进行统计处理,这就需要组成一个多机分散控制、上位机集中统计管理的试验系统。这样的系统,通讯是首先要解决的问题。目前,国内有些试验机厂家使用的控制器所采用的通讯方式,依然是RS232/485 协议与计算机的串行通讯方式。在做此类试验时,由于目前标准配置的工业控制计算机串行通讯接口的个数一般不会多于两个,虽然可以通过插卡扩展串行通讯口,但是在布线的时候,看上去会显得很乱,而且数据传送的流量和速度也会受到一定的限制。所以,具有网络化功能的控制器越来越受用户欢迎,它不仅使得布线简单,且大大提高了通讯效率,可作为集散式控制系统通讯的最佳选择。整个系统如图1所示。

图1 系统结构图
3 设计方案
本套控制器软件采用多线程的方式和模块化的设计思想,使模块与模块之间的耦合低、内聚高,并且具有良好的继承性和移植性。模块主要分为试验过程管理、控制算法设计、温度采集、数据传输、文件系统管理、试验条件管理以及操作界面等部分。其中,控制算法设计模块是以动态调用的。所谓动态调用就是通过windows的API包括LoadL-brary函数、GetProcAddress函数以及FreeLibrary函数动态地引入动态链接库中的例程。而静态调用就是在单位的接口部分用External关键字来指列出要从DLL中引入的例程。从表面上来看,虽然静态调用方式所需的代码量较小,但是却存在着很大的不足,一是如果所要加载的动态链接库不存在或者动态链接库中没有所要引入的例程,那么程序就会立即终止运行;二是动态链接库一旦被加载,就会一直驻留在应用程序的地址空间,即使动态链接库不需要了,其空间也不会被释放。而动态调用就不存在这个问题,它是在需要动态链接库的时候通过LoadLibrary函数引入,用完后通过FreeLibrary函数从内存中卸载,而且通过调用GetProcAddress函数制定不同的例程。最重要的是,即使指定所引入的例程不存在,至多是API调用失败,绝不会导致程序运行终止。对于内存空间有限的控制器来说,这些都是确保其长期、稳定运行的关键所在。其功能模块如图2所示。

图2 系统功能模块图
4 软件的实现
4.1 试验过程管理设计
蠕变试验机控制器与其他试验机的控制器不同。其他试验机的控制器,基本上都是与上位机一起使用,由上位机不断地给控制器发送相应的指令,控制器按其指令进行各种动作。蠕变试验机的控制器按其指令进行各种动作。蠕变试验机的控制器不仅仅要具有这种功能,而且还要具备在脱离上位机时独立完成试验过程的能力。为此,将控制器的整个试验流程归为图3所示。

图3 试验流程
首先,进行试验条件的设置。试验条件即可由上位机发送过去,也可以在控制器上直接设置。之后,开始加预载荷,当达到预载荷以后,使其保持在预载荷,同时控制器想温控表发出指令,改变温度目标值。由于每次升温都会有不同程度的过冲,为了防止大气炉内各段温度在合理的范围内,然后再继续升温,甚至温度达到目标值。当升温结束以后,使温度保持在一定的目标值上,开始加主载荷,进入正式试验阶段。当试验时间到,或者是收到停止命令时,试验就会立即结束,同时控制器会发出信号,使大气炉停止加热。若试验没有断裂,则直接卸载到预负荷,并保持在预负荷上。
4.2 网络通讯设计
在工业控制领域,TCP协议和UDP协议是比较常用的两种实现网络数据传输的协议。UDP-用户数据报协议,是一种简单的面向数据报的传输层协议。在电子式蠕变试验机软件中,采用这种广播的方式会引起一些问题。因为这种协议的特点是每当上位机发送一次控制命令时,网络中所有的控制器都能收到一组这样的控制命令。若是这个控制命令只是想对网络中的某一台控制器有效,那么,就有可能使其他的控制器受到一定的影响。而且,如果有大量的广播数据存在于网络当中,会消耗网络带宽,严重时会引起广播风暴,造成网络瘫痪。而TCP-传输控制协议,它提供面向连接,可靠的字节流服务。控制器与上位机交换数据前,双方必须先建立一个TCP连接,才能传输数据。另外,TCP协议还提供超时重发、流量控制等功能,从而保证了数据传输的可靠性。因此,本套软件采用的TCP协议进行网络传输。通常情况下,在开始试验之前,操作人员会按照一定的试验方法在上位机软件上进行设置,然后通过以太网传输到控制器上。当控制器接到相应的指令时,会按照已经设置好的条件进行试验,同时,控制器也会将当前的试验状态和用户所关心的试验数据回传到上位机软件中进行数据分析和处理。为了让数据流不被信息流所打断,也就是使数据流和信息流互不干扰,在这里所采用的技术是同时开通两个端口,然后分别建立连接机制,一个用于数据的传输,另一个用于控制信号的传输。首先,在网络传输模块当中对已经订好的两个端口进行监听,这两个端口分别探听到已经连接信号后,控制器就会进入连机状态,也就是在操作界面模块当中,由原来的等待连机界面切换到数据显示界面。于此同时,在信息流传输的过程中,会接收到由上位机发来的读取数据的指令,然后数据流线程中的发送数据事件就会立即被触发。如果当前数据缓冲区不为空,那么就从数据缓冲区中读取数据,发送到上位机供其接收、处理,否则就直接将当前的数据发送给上位机。然后,再等待上位机发送的读取指令的到来,这样不仅使得数据传递准确无误,而且也使得上位机发来的控制命令及时准确地传送到控制器中,保证了实时性。
4.3 温度采集设计
几乎所有的蠕变、松弛、持久等试验,都要求在某一恒定的温度下进行,而目前大多数的温度控制方法都是采用独立的温度控制模块来进行温度控制的。由于大气炉内部的温度是分三段进行测量的,所以温控器需由三块温控仪表组成。而温控仪表与控制器之间的通讯是采用RS485协议进行传递的,所以不能同时对其操作,只能用异步操作的方式来进行信息交换。在本套软件当中,控制器不仅要能实现对当前温度进行采集,而且还要能够实现向
温控器发送指令,使上位机可以通过控制器转发温度控制指令,改变温控表的温度控制目标值,从而实现自动升温的过程,减少了由手动升温带来的麻烦。
本澳金工业控制器软件是目前国内试验机领域内较先进、实用的一套试验操作软件,且具有很好的扩展性和温度可靠性。与国外一些知名品牌的控制器软件相比,这套控制器软件在功能上基本没有什么差别。随着蠕变试验机的进一步推广,这套软件将会受到越来越多用户的认可和亲睐。
蠕变概述:
1)固体材料在应力保持不变的情况下,应变随着时间的延长而增加的现象;与塑性变形不同,塑性变形通常在应力超过弹性极限之后才出现,而蠕变只要应力作用时间相当长,他在应力小于弹性极限时也能出现。
2)蠕变温度:低温状态也能进行;高温一般约为0.3Tm(Tm为融化温度),碳素钢超过300-350℃,合金钢在400-450℃以上产生蠕变行为,铅、锡在室温条件下就会产生蠕变行为。
|