工控机vb 变频器在炼油厂的应用技术分析

小编 2024-11-24 官方维修 23 0

变频器在炼油厂的应用技术分析

一、概述

变频调速是一种高效的调速方式,而且调速精度高、调速范围宽,操作方便,并且可利用变频器上自带的RS485串行通讯口实现和控制系统的通讯,以便于随时监控系统的工作情况,有利于生产正常进行。炼油厂丙烷压缩机液化气的提取系统进行自动化改造,改造后除提高工艺操作水平外,而且节能20%左右,经济效益也十分显著。

二、森兰SB70变频器的主要特点

丙烷压缩机是该系统的关键设备,对变频器的可靠性、起动转矩和动态响应都有一定的要求。由于变频器是该自动化系统的一部分,为减少干扰,要求输出波形中有较低的谐波含量,因此,选用我公司生产的SB70矢量控制变频器。该变频器是希望森兰科技股份有限公司自主开发的新一代低噪音、高性能、可靠性高、功能强大的工程型变频器,采用转子磁场定向的矢量控制方式,实现了对电机大转矩高精度的控制。其操作面板具有编程、操作、参数复制、热拔插功能,大大方便了操作人员对参数的修改(仅对一台变频器设置参数,其它均可进行参数复制,减少调试过程中的工作量),速定给定可通过端子切换,减少了外部繁琐的连接线。瞬时掉电时,通过母线电压控制,实现不间断运行;还可根据负载特性和环境温度,自动调整载波频率。

三、工艺过程

图1 液化气提取工艺系统框图

工艺过程:

炼油产生的气体,经过压缩机加压后凝为液态进入分离塔,经过吸收等其他加工工艺,提取出石油液化气。进气口压力P1要求小于0.6MPa,压缩机出口压力P2可达到1.2MPa~1.7MPa之间,经出口阀调节后保证分离塔压力P3在1.05MPa。如果某种原因使分离塔压力升高,为安全起见则泄压阀打开,将分离塔内液体经管道回流进气口。

调节阀门的开度使P1指示压力小于0.6MPa,P3压力在1.08MPa左右。操作人员根据P1、P2、P3上的指示值进行调节。进气的压力P0一般来说不是很稳定,为使控制准确,需知道P0与P1、P2、P3的变化的关系如下表(1):

四、系统的构成

由表(1)和表(2)所反映的在P0改变时和进口阀开度改变时,P1、P2、P3和L1、L2的变化可见,进气P0的升高或降低,使P1、L1和L2发生相应的改变。如果要使流量L1和L2不变,可调节进口阀的开度往P0增加的相反方向变化,即P0增大,进口阀开度减少,或P0降低,进口阀开度增大。

为保证生产的稳定性,希望进入分离塔的丙烷流量不要有太大的波动。为此控制方式可有两种选择,一种采用流量控制方式,用流量变送器采集的流量信号回馈到控制系统上,使系统组成为一流量闭环系统,这样不论P0如何变化,都可保证流量基本不变。另一种方式是用P1信号作为反馈信号,只要使P1保持稳定流量就基本不变。因此,在进气压力P0波动时,使压缩机转速发生改变,使P1不变,即可使流量基本不变。于是以压力信号P1作为反馈信号组成压力闭环系统。这里P1信号在压缩机输入管道上,但是P1的变化是压缩机调速后的结果,作为闭环系统的反馈信号是可行的。由此可见,调节压缩机的转速和调节进口阀的开度在工艺上可达到相同的效果。本系统的压缩机电机功率为160kW,工频运行时,流量的改变靠阀门节流调节,浪费了大量的能源,机械的磨损未能减低,影响机组的使用寿命。为实现生产过程的自动化,采用一台SB70系列160kW变频器与压力变送器P1构成恒压控制。系统如图2所示:

图2 变频器控制系统

为提升整个系统的自动化水平,引入工控机进行监控,监控系统框图如图3:

图3 系统控制框图

本系统数据采集卡采集压力、流量、阀门开度等模拟量,输出模拟量调节电动阀开度;采集报警和其他开关信号,输出备用系统起动信号、停止信号等。工控机通过RS485实现对变频器进行控制,P1压力通过数据采集卡采集,经工控机处理后,由RS485将控制信号送到变频器,控制变频器的频率的升降,达到恒定P1的目的,最终使流量基本不变。当然还要控制变频器的起停,同时电机的运行参数也要送工控机进行监控。工控机为一台CPU PⅢ、内存128M、硬盘20G的研祥工控机,配置数据采集卡、温度信号处理卡、开关信号接线板、RS485通讯卡、RS485通讯模块等。

模拟量数据采集卡将压力、流量、阀门开度、电机温度和管道温度等模拟信号转换成12位的数字信号,每一路信号占用数据采集卡上一个模拟通道,互不影响,采样周期为300ms。SB70变频器支持RS485半双工串行通讯方式,通过在工控机上用IP函数或VB的MSCDMM通讯控件编制串行通讯程序,即可实现工控机与变频器之间的通讯,本系统用VB的通讯控件编制。将采集到的数据信号,经实时分析处理后,通过组态王监控画面,监测现场传输的实时数据和历史数据及设备的运行状况、历史曲线的分析、实时报表、历史报表的打印、声光报警等。

五、系统的优点

原系统是在人为观察P1压力的情况下,改变进口阀的开度来满足工艺上的要求,在P0波动比较频繁时,人工劳动强度大。控制系统投入运行后一般不需要人工干预,可在远离现场的地方进行监控。压缩机用变频器驱动后节能效果明显,据用户测算可节能18%~22%。电动机的起动电流和运行电流均在额定电流以下,减少了对电网的冲击。电机不总是工作在额定转速,延长了设备的使用寿命,系统的安全性也有提高。

几个用VB开发工业控制程序的常见问题

随着新的软件开发工具的不断涌现,应用软件设计人员面临的可使用的工具越来越多,令人眼花眼花缭乱,其中,Visual Basic是最为人们所容易接受的软件开发工具之一。但是大多数使用VB进行软件应用程序开发的人员都认为,VB不能进行工业控制程序的开发。其实不然,我们曾多次使用VB成功地实现了工业控制程序的开发,所开发出的产品业已投入实际使用。下面就其开发过程中的经验介绍给大家。

几个用VB开发工业控制程序的常见问题

一、平台的选择

使用VB开发工业控制程序,首先面临的一个问题是平台的选择。目前,一般应用软件的开发大多数都是在Windows 9x平台上进行的。但是,我们认为在选择平台时,应考虑到客观实际情况来决定。如果我们的用户是一般的操作工人,并且在微机主板上安装了我们自己开发的控制硬件板(如I/O板等),那么其平台应选择Windows 3.x。因为一般的操作工人接触计算机较少,那么对于操作,而且在实际使用过程中,一般都可能会出现紧急事件或突然停电而非正常关机,此后再启动时,Windows 9x将首先执行Scandisk.exe程序,或由此破坏了Windows 9x的注册表,这将造成操作工人不知所措;如果在微机主板上安装了我们自己开发的控制硬件板,那么Windows 9x还将要求安装其驱动程序,综合这些因素,我们建议使用Windows 3.x。否则,我们可以选择Windows 9x。我们在开发“盆腔治疗仪”时,考虑到用户为医护人员,并且通过平行口进行I/O控制,因此我们选择了Windows 95;而在开发用于自动粘贴防伪标志的“复卷贴标机”时,其用户系工厂工人,并且在工控机的主板插槽上我们安装了自行开发的I/O控制板,为此我们选择了Windows 32。根据实际使用情况看,我们的考虑、选择是正确的。

二、编写并生成对端口操作的动态链接库

动态连接库是Windows应用程序共享资源、节省内存空间、提高使用效率的一个重要技术手段。动态连接库是包含数据和函数的模块,可以被Windows的其他可执行文件调用。它包含输出函数和内部函数两种函数。输出函数可以被其他模块所调用,而内部函数则只能在动态连接库内部使用。一般,动态连接库以DLL作为其文件扩展名。

当前,可用于编写动态连接库的工具很多,如Turbo PASCAL for Windows、Delphi、Borland C++、Visual C++等等。下面介绍我们使用Turbo PASCAL for Windows Version 1.5所编写的一个动态连接库,其功能是实现对端口的I/O操作。

启动PASCAL for Windows后,在程序编辑窗口中输入如下程序MYDLL.PAS:

Library IOLIB; {库名为IOLIB,将编译生成MYDLL.DLL}

function read_port(port_address:integer):integer;export; {函数被说明为export,port_address为端口地址}

Begin

read_port:=port[port_address]; {使用预定义数组读端口数据}

End;

procedure write_port(port_address,write_value:integer);export; {过程被说明为export,port_address为端口地址,write_value为输出值}

Begin

port[port_address]:=write_value; {使用预定义数组向端口写入数据write_value}

End;

Exports {Exports语句}

read_port index 1, {定义read_port的索引号为1}

write_port index 2; {定义write_port的索引号为2}

Begin {初始化部分,本部分为空}

End.

在其菜单栏中选择Compile/Make(或Build),即可生成动态连接库MYDLL.DLL。

三、在VB中调用动态链接库实现端口的I/O操作

生成动态连接库MYDLL.DLL后,这样就可以在VB程序中调用该动态连接库了。具体调用方法是:

1、将该动态连接库拷贝到windows\system目录下;

2、在VB程序中创建模块(Module1),并在通用声明(General_Declarations)中用下列语句说明该动态连接库:

Declare Function read_port% Lib "MYDLL.DLL" (ByVal port_address As Integer)

Declare Sub write_port Lib "MYDLL.DLL" (ByVal port_address As Integer, ByVal write_value As Integer)

3、在需要对端口进行I/O操作的事件中,如同调用VB的标准函数一样调用该动态连接库实现对端口的输入输出操作。如:

Private Sub Command1_Click()

‘若单击命令按钮Command1,则从端口378H输出02H

write_port &H378,&H2

End Sub

Private Sub Command2_Click()

‘若单击命令按钮Command2,则读端口330H

Dim Port_Value As Byte

Port_Value=read_port(&H330)

End Sub

四、控制程序中的几个特点

1、启动Windows时启动控制程序

为了在启动Windows时自动启动控制程序,我们可以将控制程序放到Windows 3.x的“启动”程序组中或Windows 9x的“启动”菜单中;或者在autoexec.bat中的合适位置加入如下命令:win 控制程序的文件名

2、取消标题栏

为了防止控制程序被用户多次加载,因此应使每个窗体均为最大化,并取消最大化、最小化和控制按钮,取消窗体的标题栏,即如下设置窗体的四个属性:

WindowState=2 (即Maximized)

MaxButton=False

MinButton=False

ControlBox=False

Caption=””

3、热键问题

为了使功能键F1~F10及光标移动键(←、→、↑、↓)等实现DOS环境下的热键功能,应使用对象的KeyUp或KeyDown事件,对所键入键的KeyCode进行判别,而不要使用KeyPress事件中KeyAscii进行判别。因为KeyPress事件中KeyAscii并不能给出这些键的值。

相关问答

西门子plc用什么组态软件?

step7是PLC逻辑软件,并不是组态软件。组态软件通常指运行在工控机上的监测软件,便于运行操作和维护。支持西门子PLC的组态软件最好的当然是wincc,因为他...