当前位置:文档之家› 14_高级ServletAPI

14_高级ServletAPI

14_高级ServletAPI
14_高级ServletAPI

第14章高级Servlet API

在第11章中,我们学习了构建servlet所必需的基本的接口和类,许多servlet的开发用到了前面介绍的接口和类。在Servlet API中一些接口和类还提供了构建更高级的servlet所必需的附加功能。下面就将介绍这些接口和类。

14.1 ServletInputStream类

ServletInputStream类为从客户端的请求中读取数据提供了输入流。用户可以通过ServletRequest对象的getInputStream()方法访问ServletInputStream。ServletInputStream 类继承自java.io.InputStream类,所以它支持java.io.InputStream类的所有方法,另外,ServletInputStream还提供了简单的readLine()方法,该方法可以每次从请求中读取一行文本。这个类用于从客户端的请求内容中读取二进制数据。用ServletRequest或HttpServletRequest的getReader()方法返回的BufferedReader对象可以用来读取文本数据。

ServletInputStream的readLine()方法,语法格式如下:

public int readLine(Byte[] b,int off,int len) throws java.io.IOException

该方法以偏移量off为起始位置,把由len参数所指定数目的字节读到字节数组b 中。读的时候,换行符被添加到字节数组中,读到换行符或者到达流的结尾处,读入过程结束。readLine()方法返回一个它实际读入的字节数目,如果到达了流的结尾,返回-1。

14.2 ServletOutputStream类

ServletOutputStream类提供把数据发送到客户端的输出流。可以通过ServletResponse对象的getOutputStream()方法访问ServletOutputStream。ServletOutputStream类继承自java.io.OutputStream类,所以它支持java.io.OutputStream 类的所有方法,另外,它还提供了多种print()和println()方法,它们都是用来把数据写入到输出流的。该类用来向客户端发送二进制数据,用ServletResponset或HttpServletResponse对象的getWriter()方法返回的PrintWriter对象可以用来发送文本数据。

14.2.1 print()方法

print()方法支持7种不同的参数——String、boolean、char、int、long、float和double。

语法格式如下:

print(String s)

print(boolean b)

print(char c)

print(int i)

print(long l)

print(float f)

print(double d)

该方法只是简单地把指定的数据打印到客户端的输出流。这个方法不会添加空格、回车和换行符。

14.2.2 println()方法

println()方法支持8种不同的参数——无参数、String、boolean、char、int、long、float和double。

语法格式如下:

println()

println(String s)

println(boolean b)

println(char c)

println(int i)

println(long l)

println(float f)

println(double d)

该方法把参数中指定的值打印到输出流中,并把回车、换行符添加进去。无参数的调用只是把回车和换行符发送给客户端。

14.3 ServletConfig接口

ServletConfig接口定义了向servlet提供配置信息的方法。Servlet容器实例化一个实现ServletConfig接口的类的对象,并把它传递给servlet的init(ServletConfig)方法。ServletConfig接口定义了4个方法,servlet可以用这些方法获取关于配置以及servlet 运行环境的信息。

14.3.1 getInitParameter()方法

getInitParameter()方法返回一个String 类型的数据,该数据包含指定初始化参数的值。

语法格式如下:

public String getInitParameter(String name)

初始化参数可以在启动servlet之前建立,这些值通常用servlet的init()方法读入用于执行某类初始化的类型。如果指定的参数不存在,返回null。下面这些代码定义了初始化参数,具体如何设置初始化参数,在第14章已经有详细讲解,这里不再赘述。

time

TimeServlet

format

24

timeZone

MST

verbose

true

time

/time.html

该文本存放于web.xml文件中。它定义了TimeServlet的3个初始化参数和一个映射。下面这段代码讲解servlet如何检索初始化参数:

int format;

String timeZone;

boolean verbose;

public void init() throws ServletException{

ServletConfig con = getServletConfig();

format = Integer.parseInt(con.getInitParameter("format"));

timeZone = con.getInitParameter("timeZone");

verbose = con.getInitParameter("verbose").equals("true");

}

注意,format、tomeZone和verbose都在init()方法之外声明,以便它们可以被service()、doGet()和doPost()方法使用。

14.3.2 getInitParameterNames()方法

getInitParameterNames()方法将把所有初始化参数的名字作为一个String的Enumeration对象返回。如果没有定义初始化参数,那么就返回一个空的Enumeration。

语法格式如下:

public java.util.Enumeration getInitParameterNames()

这个方法通常与getInitParameter()方法配合使用,用于检索所有初始化参数的名

字和值。下面这段代码显示了如何检索一个servlet的初始化参数的名字和值:public void init() throws ServletException{

String name,value;

ServletConfig con = getServletConfig();

Enumeration enum = con.getInitParameterNames();

while(enum.hasMoreElements()){

name = (String)enum.nextElement();

value = con.getInitParameter(name);

System.out.println("name:" + name +",vlaue :" + value);

}

}

这个init()方法从ServletConfig对象提取了所有初始化参数的名字和值,并把它们打印到标准输出设备。

14.3.3 getServletContext()方法

getServletContext()方法返回一个ServletContext对象。

语法格式如下:

public ServletContext getServletContext()

所有的servlet在一个servlet上下文环境中执行,用户可以通过ServletContext对象在servlet和它的对象之间通信,具体的方法将在14.4节讲解。

14.3.4 getServletName()方法

getServletName()方法返回该servlet实例注册的名字。

语法格式如下:

public String getServletName()

servlet实例注册的名字由元素在web.xml文件中定义。例如在14.3.1节中time是TimeServlet实例的注册名字。注意,一个servlet类可以被多次注册;另外,如果调用没有注册名字的servlet实例的该方法,将返回这个servlet的类名。

14.4 ServletContext接口

Servlet上下文是servlet运行于其中的逻辑容器,同一个容器中的servlet共享其中的会话信息和属性。ServletContext接口把有关servlet容器的信息提供给servlet。它还为servlet提供了将事件写入日志文件的标准方法。用户可以通过ServletConfig对象(传递给servlet对象init(ServletConfig)方法的参数)的getServletContext()方法来得到,方便起见,GenericServlet类也支持getServletContext()方法。

14.4.1 getMimeType()方法

getMimeType()方法为指定文件返回MIME类型,如果MIME类型未知,返回null。

语法格式如下:

public String getMimeType()

MIME类型由servlet容器确定,并且可以在web.xml文件中被指定。例如下面的代码定义了一个MIME类型集:

mime

MimeServlet

mime

/mime.html

class

application/java

pdf

application/pdf

这个实例用XML元素定义了两种MIME类型。下面这段代码用getMimeType()方法获取这些类型:

public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

response.setContextType("text/palin");//为HTTP头设置MIME类型

PrintWriter out = response.getWriter();

out.println(getServletContext().getMimeType("Mime.class"));

out.close();

}

当执行这个service()方法的servlet被调用时,会输出下面的结果:

application/java

注意,当servlet把Mime.class传递给getMimeType()方法的时候,会返回由web.xml 文件指定给class扩展名的MIME类型。

14.4.2 getRealPath()方法

getRealPath()方法对作为变元的虚拟路径求值,并返回资源的实际路径。如果不能转换,返回null。

语法格式如下:

public String getRealPath(String path)

下面这段代码展示了如何使用该方法:

public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

response.setContextType("text/palin");//为HTTP头设置MIME类型

PrintWriter out = response.getWriter();

out.println(getServletContext().getRealPath("/public/html"));//显示一个指定的相对路径的绝对路径

out.println(getServletContext().getRealPath(request.getPathInfo()));//显示用户请求的资源的绝对路径

out.close();

}

如果上面的service()方法由一个GetPathServlet的servlet来实现,那么可以用下面这个URL调用该GetPathServlet:

http://localhost:8080/servlet/GetServletPathServlet/index.html

输出结果如下:

D:\Tomcat 5.0\webapps\public\html

D:\Tomcat 5.0\webapps\index.html

14.4.3 getResource()方法

getResource()方法返回一个https://www.doczj.com/doc/eb14599758.html,.URL对象,该对象可以对那些已经被映射到指定路径上的资源进行访问。指定的这条路径信息以“/”开始,并相对于环境的根目录被解释。对于Tomcat,Web应用程序的环境根目录通常位于/Tomcat/webapps/ServletName,这里ServletName是Web应用程序的名字。相对于Tomcat主目录的该Web应用程序的确切位置由/tomcat/conf/server.xml文件中的元素的docBase属性指定。

语法格式如下:

public https://www.doczj.com/doc/eb14599758.html,.URL getResource(String path) throws https://www.doczj.com/doc/eb14599758.html,.MalformedURLException getResource()方法对于把servlet同资源所处的物理位置的隔离开来是有用的,即资源抽象。由于没有指定物理文件路径,使用资源抽象能够使servlet在具有不同目录结构的服务器之间移动。另外,通过简单地改变资源映射而不用更新访问这些资源的servlet就可以移动资源。如果不能访问存放文件的文件系统,getResource()允许远程servlet通过URL映射来访问文件。下面的示例说明了该方法如何使用,代码如下:public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

PrintWriter out = response.getWrite();

URL url = getServletContext().getResource("/index.html");

URLConnection conn = url.openConnection();

String contentType = conn.getContentType();

if(contentType.startsWith("text")){

response.setContextType(contentType);

InputStream in = conn.getInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(in));

String line = br.readLine();

while(line != null){

out.println(line) ;

line = br.readLine();

}

}

else{

response.setContextType("text/palin");

out.println("Resource is not text!");

}

out.close();

}

这个service()方法从上下文根目录中读取/index.html文件,并把它返回给客户端。上下文根目录可以被移动,并且只要更新了URL映射,无需修改servlet,它依然能够访问这些资源。

14.4.4 getResourceAsStream()方法

getResourceAsStream()方法返回一个java.io.InputStream对象,这个对象可以访问被映射到特定路径上的资源。指定的这条路径信息以“/”开始,并相对于环境的根目录被解释。

语法格式如下:

public java.io.InputStream getResourceAsStream(String path)

它的功能相当于以下两行代码:

URL url = getServletContext().getResource(String path);

InputStream in = url.openStream();

与getResource()方法的区别是:如果需要访问指定资源的属性(如长度等),要用getResource()方法,因为这些信息不能从getResourceAsStream()返回的InputStream中获取。

下面这段代码直接用getResourceAsStream()方法来获取InputStream对象,而不是先获取URL再得到InputStream,如下所示:

public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

response.setContextType("/index.html");

PrintWriter out = response.getWriter();

InputStream in = getServletContext().getResourceAsStream("/index.html");

BufferedReader br = new BufferedReader(new InputStreamReader(in));

String line = br.readLine();

while(line != null){

out.println(line) ;

line = br.readLine();

}

out.close();

}

该示例与14.4.3节中示例基本一样,可以看出,

InputStream in = getServletContext().getResourceAsStream("/index.html");

是对下面语句功能的合并:

URL url = getServletContext().getResource("/index.html");

URLConnection conn = url.openConnection();

InputStream in = conn.getInputStream();

14.4.5 getServerInfo()方法

getServerInfo()方法返回一个String类型的数据,这个字符串描述正在运行的servlet容器的名字和版本信息。

语法格式如下:

public String getServerInfo()

14.4.6 attributes相关方法

运行于同一个servlet上下文中的所有servlet可以共享attributes对象。通过运行在上下文中的任何servlet,可以把这些属性对象保存在servlet上下文中,也可以从上下文中检索这些对象。对于同一个上下文内的所有servlet和所有会话,上下文属性用作一种“全局变量”。

(1)setAttributes()方法

setAttributes()方法可以把一个对象保存到servlet上下文中,并把它与指定的名字绑定在一起。可以用getAttributes()方法检索这个对象,如果重名,将会删除原来的属性,并保存新的属性。

语法格式如下:

public void setAttributes(String name,Object obj)

下面给出一个示例,代码如下:

HashTable adminData = new HashTable();

adminData.put("name","zlw");

adminData.put("pwd","850815");

adminData.put("email","liflong@https://www.doczj.com/doc/eb14599758.html,");

getServletContext().setAttribute("com.Admin",adminData);

这个例子把管理员的信息保存到servlet上下文中了。

(2)getAttributes()方法

getAttributes()方法从servlet上下文中返回指定名字的属性对象。

语法格式如下:

public Object getAttributes(String name)

这个方法返回Object类型对象,通常将它转化为本来的类型。如果指定的属性不存在,返回null。除了servlet存储的是性对象外,服务器本身也可以由上下文属性产生对servlet有用的附加信息。例如,所有的servlet容器都需要为每一个servlet上下文提供专用的临时目录,这个目录由java.io.File对象指定。

下面给出一个示例,该示例从servlet上下文检索一个HashTable对象。

HashTable admin = (HashTable)getServletContext().getAttributes(“com.Admin”);

(3)getAttributeNames()方法

getAttributeNames()方法返回一个String的Enumeration对象,包含用于这个servlet 上下文中的所有属性的名字。

语法格式如下:

public java.util.Enumeration getAttributeNames()

getAttributeNames()方法可以用来检索任何已经命名的属性。下面给出一个示例,返回servlet上下文的所有属性名字。代码如下:

public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

response.setContextType("/index.html");

PrintWriter out = response.getWriter();

Enumeration enum = getServletContext().getAttributeNames();

while(enum.hasMoreElements()){

out.println("name:" + enum.nextElement());

}

out.close();

}

(4)removeAttribute()方法

removeAttribute()方法把已经注册的属性从servlet上下文中删掉。

语法格式如下:

public void removeAttribute(String name)

以后想用getAttribute()检索此对象时,将返回null。

14.5 ServletException类

ServletException是由servlet抛出,用以响应某种类型的异常。如果ServletException没有被捕捉到,或者被servlet明确抛出,那么该异常将由serevlet容器来处理。一个编写优秀的servlet应该能够捕捉活大多数的异常,并以合理的方式处理它们。下面代码显示了如何定义典型的service()方法:

public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException

如果一个ServletException或IOException被捕获,servlet将记录该事件,并明确对服务器抛出异常。如果所有异常都由servlet捕获,异常将被正确记录。

ServletException定义了4个构造函数,如下:

z public ServletException():默认构造函数,不接受任何参数。

z public ServletException(String msg):接受有关异常的描述信息。

z public ServletException(String msg,Throwable rootCause):除了异常描述信息,还有对导致该异常的根本原因的描述(比如NullPointerException)。

z public ServletException(Throwable rootCause):对导致该异常的根本原因的描述(比如NullPointerException)信息。

下面示例给出了一个抛出SerevletException的典型情况:

public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

try{

int x = 6/0;

}catch(Exception e){

log("error:" +e.toString(),e);

throw new ServletException(e.toString,e);

}

}

该示例中出现的异常是“除数为0”,当方法service()捕获到该异常后,对它的处理是抛出一个新的SerevletException异常。

14.6 UnavailableException类

UnavailableException是从ServletException扩展来的一个异常,而且它是由servlet 抛出,以表明它不可用。Servlet可能由于网络问题和servlet配置中出现的错误或者缺少系统资源等诸多原因而不可用。一个比较好的servlet在出现了使它无法被访问的任何情况时,都应该抛出UnavailableException异常。

UnavailableException有以下两个构造函数:

z public UnavailableException(String msg):参数接受出错描述信息。

z public UnavailableException(String msg,int seconds):参数除了出错描述信息,还有代表该servlet预计不可用时间的参数seconds。

如果servlet是永不可用的,应该用第一个构造函数,直到采取行动纠正了这个问题。例如,在管理员解决服务器或网络上出现的问题之前,servlet将是不可用的。当servlet临时不可用或者可以估计出该servlet什么时间将可用的时候,用第二个构造函数。

本章小结

这一章介绍了用于构建功能更加强大的servlet的几个类和接口。主要包括类:ServletInputStream、ServletOutputStream、ServletException和UnavailableException;接口:ServletConfig和ServletException。很好的理解这些对象可以让用户写出功能更强大的servlet。

A3000高级过程控制系统实验指导书V

HUATEC A3000过程控制实验系统 实验指导书 V3.0 华晟高科教学仪器编制

目录 第一章安全注意事项与设备使用 ................................................ - 1 - 1.1防止触电 ................................................................................. - 1 - 1.2防止烫伤 ................................................................................. - 2 - 1.3防止损坏 ................................................................................. - 2 - 1.4现场系统组成............................................................................ - 2 - 1.5控制系统组成............................................................................ - 2 - 第二章计算机测控系统实验 ..................................................... - 5 -实验1 实验系统认知 ....................................................................... - 5 - 实验2 ADAM4000模块的通讯和使用 ....................................................- 10 - 实验3 组态软件编程和数据获取.........................................................- 18 - 实验4 PLC系统通讯和使用...............................................................- 21 - 实验5 PLC Step7编程...................................................................- 28 - 实验6 现场总线技术与DCS实验 ........................................................- 33 - 第三章工艺设备和仪器仪表实验 .............................................. - 41 -实验1 温度、压力、液位和流量测量实验..............................................- 41 - 实验2 水泵负载特性测量实验 ...........................................................- 46 - 实验3 管道压力和流量耦合特性测量实验..............................................- 48 - 实验4 电动调节阀特性测量实验.........................................................- 51 - 实验5 调压器特性测量实验 ..............................................................- 53 - 实验6 变频器水泵控制特性测量实验 ...................................................- 55 - 第四章工业系统对象特性的测定研究......................................... - 59 -实验1 单容水箱液位数学模型的测定实验..............................................- 59 - 实验2 双容水箱液位数学模型的测定实验..............................................- 62 - 实验3 非线性容积水箱液位数学模型的测定实验 .....................................- 65 - 实验4 测定不同阻力下单容水箱液位数学模型实验...................................- 67 - 实验5 锅炉与加热器对象数学模型实验 ................................................- 70 - 实验6 滞后管数学模型实验 ..............................................................- 73 - 实验7 换热机组数学模型实验 ...........................................................- 76 - 第五章简单设计型控制实验 ................................................... - 80 -实验1 单闭环流量控制实验 ..............................................................- 80 - 实验2 单容水箱液位定值控制实验......................................................- 83 - 实验3 双容水箱液位定值控制实验......................................................- 89 - 实验4 三容水箱液位定值控制实验......................................................- 93 - 实验5 锅炉水温定值位式控制实验......................................................- 95 - 实验6 锅炉水温定值控制实验 ...........................................................- 99 - 实验7 换热器水温单回路控制实验.................................................... - 102 - 实验8 联锁控制系统实验............................................................... - 105 - 实验9 单闭环压力控制实验 ............................................................ - 109 - 第六章复杂设计型控制系统 .................................................. - 111 -实验1下水箱液位和进口流量串级控制实验.......................................... - 111 - 实验2 闭环双水箱液位串级控制实验 ................................................. - 120 - 实验3 换热器热水出口温度和冷水流量串级控制实验.............................. - 125 - 实验4 单闭环流量比值控制系统实验 ................................................. - 128 - 实验5 下水箱液位前馈反馈控制系统实验............................................ - 131 - 实验6 锅炉温度和换热器前馈反馈控制系统实验 ................................... - 135 - 实验7 管道压力和流量解耦控制系统实验............................................ - 138 -

A3000高级过程控制实验系统的操作规程

A3000高级过程控制系统的操作规程 本室A3000高级过程控制系统为大型精密仪器设备。 一、设备使用简介 1、电投入使用 (1)设备已经过调试。或者经过专业人员的试运行。 (2)对于电力控制部分,请在调整好,连接好之后再上电。严格禁止带电操作变频器切换所要控制水泵的开关。不得带电接触、检查、连接任 何电力线。 (3)机柜上电方法:首先合上全部空气开关。打开钥匙开关。此时各个相的指示灯亮起,检查各个电压表指示是否正确。 (4)如果一切正常,则按下启动按钮,此时绿色灯亮起。可以开始实验。 如果异常,则立即按下停止按钮,或关闭空气开关,报告专业人员进行 检查。 维护:每个月按动漏电保护测试按钮,检查漏电保护器是否动作。 2、仪表简介 每个学年开始作实验时,放空储水箱的水,清洗各个水箱。拆下涡轮流量计滤网,进行清洗。 在做变容或非线性容积水箱实验时,由于浮力特别大,需要一个人压着三角柱体,尽量不要尝试使用其他重物压,以避免事故发生。 (1)变频器 在运行状态,绝对禁止操作变频器开关或切换旋钮,否则可能损坏变频器。在变频器关闭状态。两个水泵都是220V控制。尽量不要使用变频器控制,因为变频器的干扰非常大。可能导致测量误差大,或者通讯速率大大降低。 三菱变频器: 为了方便控制,我们已经把变频器设定为电流控制状态,即工作模式3。把RM端定义为AU,并连接到SD端。启动变频器后,打开变频器STF开关,变频器就开始按照给定的电流输出,而不是等待按RUN键,关闭变频器STF开关可以关闭输出。按STOP键也可以关闭输出,但此时只能关闭变频器,断开后再启动才能继续工作。 如果要学习变频器其他各种设定。或者使用手动给定的方法进行控制,则打开变频器外盖,断开STF端与SD端的连接。强烈提醒非专业人员不要这样操作。

国内外著名自动仪表与过程控制系统主要厂家技术及设备简介----其中三家详述

国内外著名自动仪表与过程控制系统主要厂家技术及设备简介----其中三家详述 梁翔鸾 20105656 自动1001 关键词:自动化仪表过程控制系统西门子公司ABB公司浙大中控 正文:20世纪40年代以后,工业生产过程自动化技术发展迅速:50年代实现了仪表化和局部自动化,60年代开始大量使用气动和电动单元组合仪表,计算机控制系统开始应用于过程控制领域,70年代以来,实现了以微处理器为核心的智能单元组合仪表的开发和广泛应用,过程控制大量应用计算机,80年代至今,现代控制理论的运用和过程控制结构的集成化大大加快了过程控制的发展。 在这期间涌现了大量的自动化仪表和过程控制系统的知名厂家,如国外的西门子、ABB公司、欧姆龙公司、松下公司、HONEYWELL公司、日本横河、罗斯蒙特公司、德州仪器等,国内的浙大中控、上海新华、珠海思特自动化工程公司、上海桂伦、自动化设备有限公司、连云港德赛自动化设备销售有限公司、青岛海格自动化仪表有限公司等。 下面就西门子公司、ABB公司、浙大中控的主要产品及一项产品作介绍。一:西门子公司的产品有工业自动化系统SIMATIC、运动控制系统SIMOTION、CNC系统和CNC控制器SINUMERIK、过程控制系统SIMATIC PC S 7,过程自动化仪表有压力测量SITRANS P系列、温度测量SITRANS T系列、流量测量SITRANS F系列、物位测量SITRANS L系列、智能电气阀门定位器SITRANS VP 系列、过程保护SITRANS DA系列、过程控制器SIPART DR系列、过程显示器SITRANS系列、过程记录仪SIREC系列等。 下面就SIMATIC PCS 7做简介,它是西门子公司在TELEPERM系列集散系统和 S5,S7系列可编程控制器的基础上,结合最先进的电子制造技术、网络通讯技术、图形及图像处理技术、现场总线技术、计算机技术和先进自动化控制理论,面向所有过程控制应用场合的先进过程控制系统。传统的DCS系统已经不能满足现在过程自动化控制的设计标准和要求,SIMATIC PCS 7 过程控制系统就是在这种形势下开发的迎会需求的新一代过程控制系统。 SIMATIC PCS 7的突出特点 基于全集成自动化思想 与PROFIBUS现场总线行机地结合在一体 吸收了各种先进技术,面向工艺 更分散的系统配置,特别适用于分散的过程控制应用场合 系统配置灵活,易于扩展 模块化结构,通用的硬件模块 强大的系统软件,组态与编程轻松简单 丰富的人机界面产品提高了监控与管理的水平 监视与操作 SIMATIC PCS7过程控制系统的操作员站是过程控制的窗口,所有的操作与管理人

A3000高级过程控制系统使用说明和维护手册20120504

A3000高级过程控制系统使用说明和维护手册 (版本4.0) 用户文件编号:A3000DH017 北京华晟经世信息技术有限公司编制

非常感谢您选择A3000高级过程控制系统。 初次使用A3000系列产品时,请仔细阅读本使用手册,安全使用设备。 为了进一步使用的情况,我们还推出另一本实验使用手册《A3000高级过程控制系统实验指导书》,请与你的产品销售商联系。 安全注意事项 (1) 1系统安装 (3) 1.1系统规格 (3) 1.2布局方式 (5) 1.3配电连接和接地 (6) 1.4信号线和通讯线连接 (7) 2操作和控制 (8) 2.1现场系统 (8) 2.2过程和电气设备结构和操作 (16) 2.3基本控制系统 (32) 2.4开始实验 (39) 3系统功能 (40) 3.1对象数学模型的测定与建立 (40) 3.2单回路控制实验 (41) 3.3位式控制 (41) 3.4计算机控制一般性实验 (42) 3.5复杂控制实验 (42) 3.6高等控制 (42) 3.7自动化网络实验 (43) 4报警和保护 (43) 5常规维护 (43)

本使用手册包括有使用时的操作说明和注意事项。本使用手册请交给最终用户。 安全注意事项 安全注意事项: 在安装、操作、维护或检查本系统之前.一定仔细阅读以下安全注意事项,并且要在熟悉设备的知识、安全信息及全部有关注意事项以后使用。在本使用说明书中,将安全注意事项等级分为“危险”和“注意”。 不正确的操作造成的危险情况,将导致死亡或重伤 不正确的操作造成的危险情况,将导致一般或轻微的伤 害或造成物体的硬件损坏。 注意:根据情况的不同,“注意”等级的事项也可能造成严重后果。请遵循两个等级的注意事项,因为它们对于个人安全都是重要的。 1、防止触电 测试系统的控制系统供电一般为DC24V ,漏电保护器和开关电源的端子上带有220V电压。正常漏电保护30毫安。 物理受控系统分别引入三相电和单相电,整个现场系统没有任何可以接触到的端子。正常漏电保护30毫安。 尽管系统经过多层保护,还是请用户注意以下安全事项。 危险 当通电或正在运行时,非专业人员不要进行任何维护、维修操作,不要打开机柜后门,接线箱盖子,变频器前盖板,否则会发生触电的危险。 要求现场系统可靠接地。每隔一定时间,对漏电保护器进行漏电测试试验,即按下测试按钮。

高级过程控制系统实验装置分析说明

高级过程控制系统实验装置分析说明 1、系统组成 “高级过程控制系统实验装置”由过程控制实验对象系统、智能仪表控制台及上位监控PC 机(用户自备)三部分组成。 1.1 过程控制实验对象系统 实验对象系统包含有:不锈钢储水箱;上、中、下三个串接有机玻璃圆筒型水箱;三相4.5KW 电加热锅炉(由不锈钢锅炉内胆加温筒和封闭式外循环不锈钢冷却锅炉夹套构成)和铝塑盘管组成。 系统动力系统有两套:一套由三相(380V交流)不锈钢磁力驱动泵、电动调节阀、直流电磁阀、涡轮流量计等组成;另一套由日本三菱变频器、三相不锈钢磁力驱动泵(220V变频)、涡轮流量计等组成。 1.2 对象系统中的各类检测变送及执行装置扩散硅压力变送器三只:分别检测上水箱、中水箱、下水箱液位;涡轮流量计三只:分别检测两条动力支路及盘管出水口的流量;Pt100热电阻温度传感器六只:分别用来检测锅炉内胆、锅炉夹套、盘管(三只)及上水箱出水口水温;控制模块:包含三相可控硅移相调压装置、电磁阀、电动调节阀、三菱变频器各一个;接触器位式控制装置、三相380V不锈钢磁力驱动泵、三相220V不锈钢磁力驱动泵。1.3 仪表控制台的组成部分 1)电源控制屏面板:提供实验所需的三相四线~380V、三路单相~220V 电源,总电源由三相钥匙开关控制,电网电压由三只指针式交流电压表监示,三相带灯熔断器作为断相指示。设有漏电保护空气开关、电压型漏电保护器、电流型漏电保护器。另外,还设有定时器兼报警记录仪,为学生实验技能的考核提供一个统一的标准。

2)仪表控制面板:由变频调速器面板,AI/818A智能调节仪面板,AI/7O8A智能位式调节仪面板,解耦装置,比值器/前馈一反馈装置组成,各装置接线端子通过面板上的插座引出。还可根据用户需要配置远程数据采集智能模块、S7—200西门子可编程控制器及模块等。 3)I/O信号接口面板:将各传感器检测及执行器控制信号同面板上的插座相连,便于学生自己连线组成不同的控制系统。 学生通过对对象系统进行不同的组合,结合不同的实验目的,可进行几十种过程控制实验。1.4 上位监控PC机(用户自备) “高级过程控制系统实验装置”配置一台上位监控PC机,PC机安装有正版MCGS监控组态软件,通过RS232/485转换装置、仪表控制台侧面的RS485串行接口与所有的仪表进行通讯。学生可对下位仪表各参数进行设定、修改PID控制参数,并能观察被控参数的实时曲线、历史曲线,SV设定值、PV测量值、OP输出值,各实验都设有动态变化棒图显示和实验指导。 2、AI/818A智能调节仪、AI/708A智能位式调节仪的主要特点 1)AI系列仪表操作方便、通俗易学,且不同功能档次相互兼容。 2)具有国际上同类仪表的几乎所有功能,通用性强、技术成熟可靠。 3)全球通用的85~246VAC范围开关电源或者24DC电源供电,并具备多种外形尺寸。 4)输入采用数字校正系统.内置常用热电偶和热电阻非线性校正表格,测量精确稳定。 5)采用先进的A1人工智能调节算法,无超调,具备自整定功能。 6)采用先进的模块化结构,提供丰富的输出规格,能满足各种应用场合的需要。 7)通过IS09002质量认证,品质可靠。具备符合要求的抗干扰性能。 8)先进的与计算机通讯功能,采用AIBUs通讯协议,同AI系列仪表通讯协议兼容。

过程控制系统基础知识

第一节过程控制发展概况 过程控制通常是指石油、化工、电力、冶金、轻工、纺织、建材、原子能等工业部门生产过程的自动化。 40年代以后,工业生产过程自动化技术发展很快。尤其是近些年来,过程控制技术发展更为迅猛。纵观过程控制的发展历史,大致经历了如下几个阶段: 50年代前后,一些工厂企业的生产过程实现了仪表化和局部自动化。这是过程控制发展的第一个阶段。这个阶段的主要特点是:过程检测控制仪表普遍采用基地式仪表和部分单元组合式仪表(多数是气动仪表),过程控制系统结构大多数是单输入、单输出系统;被控参效主要是温度、压力、流量和液位四种参数。控制的目的是保持这些过程参数的稳定,消除或减小主要扰动对生产过程的影响;过程控制理论是以频率法和根轨迹法为主体的经典控制理论.主要解决单输人、单输出的定位控制系统约分析和综合问题。 自60年代来,随着工业生产酌不断发展,对过程控制提出了新的要求:随着电子技术的迅速发展,也为自动化技术工具的完善创造了条件.从此开始丁过程控制的第二个阶段。在仪表方面,开始大量采用气动和电动单元组合仪表。在过程控制理论方面,除了仍然采用经典控制理论解决实际工业生产过程中遇到的问题外.现代控制理论得到应用,为实现高水平的过程控制奠定了理论基础.从而过程控制由单变量系统转向多变量系统。但是。由于过程机理复杂,过程建模困难等等原因,现代控制理论一时还难以应用于实际工业生产过程。 70年代以来.过程控制得到很大发展。随着现代工业生产的迅猛发展.随着大规模集成电路制造成功与微处理器的相继问世.使功能丰富的计算机的可靠性大大提高、性能价格比又大大提高、尤其是工业控制机采用了冗余技术和软硬件的自诊断措施.使其满足工业控制的应用要求。随着微型计算机的开发、应用和普及.使生产过程自动化的发展达到了一个新的水平。过程控制发展到现代过程控制的新阶段:计算机时代。这是过程控制发展的第三个阶段。这一阶段纳主要特点是:对全工厂或整个工艺流程的集中控制、应用计算机系统进行多参数综合控制,或者由多台计算机对生产过程进行控制和经营管理。在自动化技术工具方面有了新的发展,诸如以微处理器为核心的智能单元组合仪表(包括可编程调节器和系列智能仪表)的开发和广泛应用;在线成分检测和数据处理的测量变送器的应用,在智能仪表方面,不仅产品品种增加,而且可靠性有了很大提高.适应了各种复杂控制系统的要求。 80年代以后,工业过程控制得到了一个飞跃的发展。一方面现代控制理论(与主要解决单回路系统控制的经典控制理论相比较)从本质上解决了一般多变量系统的控制问题、包括线性系统、时变系统、非线性系统、微分—差分系统等,从而大大促进了过程控制的发展。另一方面.过程控制的结构已从包括许多手动控制的分散局部控制站改变为具有高度自动化的集中、远动控制中心,使得过程控制的概念有了很大的发展,它不仅包括数据采集与管理、基本过程控制,而且包括先进的管理系统、调度和优化等。柔性化、分散化和集成化的综合自动化系统,已被应用于实际工业过程。专家系统、神经网络、模糊控制、过程监督和在线诊断等理论已经大大地促进了过程控制的发展。 自从进入20世纪90年代以来,自动化技术发展很快.并获得了惊人的成就.已成为国家高科技的重要分支。过程控制技术是自动化技术的重要组成部分。在现代工业生产过程自动化中,过程控制技术正在为实现各种最优技术经济指标、提高经济效益和社会效益、提高劳动生产率、节约能源、改善劳动条件、保护环境卫生、提高市场竞争能力等方面起着越来越巨大的作用。 目前,世界各工业发达国家.正集中全力进行工厂综合自动化技术的研究。所谓综合自动化,就是在自动化技术、信息技术、计算机控制和各种生产加工技术的基础上,从生产过程的全局出发,通过生产活动所需的各种信息的集成,把控制、优化、调度、管理、经营、决策融为一体,形成一个能适应各种生产环境和市场需求、多变性的、总体最优的高质量、高效益、高柔性的管理生产系统。 在我国以最大的社会效益和经济效益为目标.研究和开发综合自动化技术是国民经济快速发展的需要.是参加国际市场剧烈竞争的需要。在世纪交替之际,新技术的研究和开发将大大推动工业过程自动化的发展,并带来巨大的社会效益和经济效益。

高级过程控制系统方案

项目名称:东北石油大学验室设备及用品采购项目编号:DZC100913 来文编号:ZCB101015、ZCB101016 技术协议 哈尔滨君威科技有限公司 2011年3月

高级过程控制系统方案 高级自动控制技术在工业、农业、国防和科学技术现代化中起着十分重要的作用,自动控制水平的高低也是衡量一个国家科学技术先进与否的重要标志之一。随着国民经济和国防建设的发展,自动控制技术的应用日益广泛,其重要作用也越来越显著。 方案概述 网络架构 方案特色 高级过程控制实训设备具有如下特点:

(1) 过程控制实训设备结构:实训控制对象装置、实训控制系统。实训设备总体具结构开放性、设备真实性,实训活动能突出工程性、实践性、现场情景化、操作实际化。 (2) 实训控制对象:实训控制对象仿工业设备结构。具有较强现场设备感;具有较丰富的设备种类,包括加热炉、液位容器、换热器、阀门与管道等;利用现场阀门与管路实现对象间的组合与分隔,单套实训对象装置至少能形成两个可同时运行的独立控制系统;通过阀门与管路切换,能构造多种控制系统所需环节组合。现场检测与控制类设备、信号管线便于实训装拆训练。 (3) 现场仪表:具有多种流量检测仪表;能通过电动调节法、变频调速两种典型方式实现控制任务;现场设备及管路上用于组建联锁保护系统的检测与控制点不少于5点;突出现场仪表,能体现现场仪表、信号管线的工业安装。 (4) 控制信号管线 控制信号管线敷设为可拆装式,与现场装置、控制台(柜)接点为接线端子连接;现场桥架引线,控制台(站)地沟引线方式。所有引线均应便于学生进行线路连接、敷设实训。 (5) 实训系统功能要求:能完成过程控制系统结构认识、系统连接与组态、仪表及系统投运、系统调试与控制参数整定、系统运行维护与故障处理。 (6) 控制系统类型要求:能实现四大热工量的检测与简单控制实训;能实现温度、流量、压力间串级控制实训;能实现流量、液位间均匀控制实训;能实现两种流量间的比值控制实训;能实现选择性控制实训;能实现联锁保护控制实训。 (7) 系统控制方式要求:具有智能仪表控制、PLC控制、DCS控制方式,并能进行灵活的切换。 (8) 实训设备物料:冷水、热水(为了安全,尽量不要出现蒸汽)、空气三种介质。 (9) 可以很方便的实现以多变量预测控制技术为基础的先进控制实验。 (10) 能够实现压力报警、连锁及自动停车等实验。 对象系统 工艺流程

过程控制综述

过程控制工程课程综述 课程名称:过程控制工程 系别:电子信息与电气工程系 年级专业: 08自动化(2)班 姓名:

一、过程控制简介 1.1 过程控制特点与分类 过程控制通常是指石油、化工、电力、冶金、轻工、纺织、建材、原子能等工业生产部门生产过程的自动化。 自进入20世纪90年代以来,自动化技术发展很快,并获得了惊人的成就,已成为国家高科技的重要分支。过程控制技术是自动化技术的重要组成部分。在现代工业生产过程自动化中,过程控制技术正在为实现各种最优技术经济指标、提高经济效益和社会效益、提高劳动生产率、节约能源、改善劳动条件、保护环境卫生、提高市场竞争力等方面起着越来越巨大的作用。 过程控制的特点是与其他自动化控制系统相比较而言的,大致可归纳如下: 1.连续生产过程的自动控制。 2.过程控制系统由过程检测、控制仪表组成。 3.被控过程是多种多样的、非电量的。 4.过程控制的控制过程多属慢过程,而且多半为参量控制。 5.过程控制方案十分丰富。 6.定值控制是过程控制的一种常用形式。 过程控制系统的分类方法很多,若按被控参数的名称来分,有温度、压力、流量、液位、pH等控制系统;按控制系统完成的功能来分,有比值、均匀、分程和选择性控制系统;按调节器的控制规律来分,有比例、比例积分、比例微分、比例积分微分控制系统;按被控量的多少来分,有单变量和多变量控制系统;按采用常规仪表和计算机来分,有仪表过程控制系统和计算机过程控制系统等。但最基本的分类方法有以下两种: (1)按过程控制系统的结构特点来分类: 1.反馈控制系统。 2.前馈控制系统。 3.复合控制系统(前馈-反馈控制系统)。 (2)按给定值信号特点来分类: 1.定值控制系统。 2.程序控制系统。 3.随动控制系统。

《过程控制系统》实验报告(最新版)

实验一、单容水箱特性的测试 一、实验目的 1. 掌握单容水箱的阶跃响应的测试方法,并记录相应液位的响应曲线。 2. 根据实验得到的液位阶跃响应曲线,用相关的方法确定被测对象的特征参数T和传递函数。 二、实验设备 1. THJ-2型高级过程控制系统实验装置 2. 计算机及相关软件 3. 万用电表一只 三、实验原理 图2-1单容水箱特性测试结构图

由图2-1可知,对象的被控制量为水箱的液位H,控制量(输入量)是流入水箱中的流量Q1,手动阀V1和V2的开度都为定值,Q2为水箱中流出的流量。根据物料平衡关系,在平衡状态时 Q1-Q2=0 (1) 动态时,则有 Q1-Q2=dv/dt (2) 式中V 为水箱的贮水容积,dV/dt为水贮存量的变化率,它与H 的关系为 dV=Adh ,即dV/dt=Adh/dt (3) A 为水箱的底面积。把式(3)代入式(2)得 Q1-Q2=Adh/dt (4) 基于Q2=h/RS,RS为阀V2的液阻,则上式可改写为 Q1-h/RS=Adh/dt 即 ARsdh/dt+h=KQ1 或写作 H(s)K/Q1(s)=K/(TS+1) (5) 式中T=ARs,它与水箱的底积A和V2的Rs有关:K=Rs。 式(5)就是单容水箱的传递函数。 对上式取拉氏反变换得

(6) 当t—>∞时,h(∞)=KR0 ,因而有K=h(∞)/R0=输出稳态值/阶跃输入当t=T 时,则有 h(T)=KR0(1-e-1)=0.632KR0=0.632h(∞) 式(6)表示一阶惯性环节的响应曲线是一单调上升的指数函数,如图2-2 所示。当由实验求得图2-2所示的阶跃响应曲线后,该曲线上升到稳态值的63%所对应的时间,就是水箱的时间常数T。该时间常数 T也可以通过坐标原点对响应曲线作切线,切线与稳态值交点所对应的时间就是时间常数T,由响应曲线求得K和T后,就能求得单容水箱的传递函数。如果对象的阶跃响应曲线为图2-3,则在此曲线的拐点D处作一切线,它与时间轴交于B点,与响应稳态值的渐近线交于A 点。图中OB即为对象的滞后时间τ,BC为对象的时间常数T,所得的传 递函数为:

相关主题
文本预览
相关文档 最新文档