引 言 根据国际电工委员会的定义,PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、定时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。PLC及其有关的外围设备都应按照易于与工业控制系统形成一个整体,易于扩展其功能的原则而设计 [1] 。它具有体积小、重量轻、能耗低、可靠性高、抗干扰能力强、配套齐全、功能完善、易学易用等优点,目前广泛应用钢铁、石化、电力、交通、环保等行业。PLC是一种控制器,主要实现直接对对象的控制,可作为下位机。要实现对生产过程的监控,还必须配以计算机或触摸屏等人机接口界面作为上位机,对于大型复杂的对象,可以使用各种组态软件,如:iFix、MCGS、组态王等;而对于小型的装置,为了节约成本,可以使用VB、VC等可视化编程软件来实现。本文就是基于这点考虑,运用VB编制操作界面和通信功能,实现实现对某一新型水处理工艺中生物陶粒预处理反应器的反冲洗以及絮凝—沉淀池加药的监控。控制器采用FX2N—48MR—001,模拟量模块为FX2N—4AD和FX2N—2DA,通讯采用FX2N—232—BD型通信模板。1 部分工艺简介 整个水处理的监控,除了总体界面外,还有5个放大的分界面。其中生物陶粒预处理反应器及沉淀池的工艺过程简图如图1所示:
图1 反应器及沉淀池工艺流程框图 在正常生产过程中,生物陶粒预处理反应器内源水水面能保持恒定,但由于其中存在大量泥沙和杂质,在过滤过程中会堵塞过滤层间隙,影响过滤的效果。实践中发现,其影响程度和反应器底部的压力有关系,堵塞越严重,底部压力越小,即所谓的压头损失。当压头损失到一定的程度,就会影响水处理的效果和净化效率,此时必须对反应器实施反冲洗。在反冲洗过程中,要先关闭进水泵和出水阀,打开排空阀进行排空,排空后立即关闭排空阀,打开反冲洗阀和反冲洗泵,根据预先设定的反冲洗时间进行反冲,将过滤层中的泥沙和杂质从反应器上部的溢流孔排出,到设定的时间后,关闭反冲洗泵和反冲洗阀,再打开进水泵和出水阀,恢复正常生产。 对于絮凝—沉淀池加药,是检测池内的浊度自动控制加药量的流量大小。由于这是一个过程滞后时间比较大的过程,要采用特殊的控制算法。在这一段工艺中要检测2个模拟量,输出1个模拟量,外加进水泵、反冲洗泵的启停,反冲洗、排空、出水电磁阀的通断等开关量。除此之外还有砂滤池、GAC—石英砂生物滤池、BAC反应器和GAC吸附池也需要进行反冲洗自动操作。整个水处理工段需要6个模拟量输入,1个模拟量输出,20个开关量输出。这是一个小规模的控制,要实现计算机的监控,必须要实现FX2NPLC与PC机之间的通讯。2 通讯方法 可编程控制器与计算机的通讯近年来发展很快,在PLC与计算机连接构成的控制系统中,计算机主要完成数据处理、修改参数、图像显示、打印报表、文字处理、系统管理、编制PLC程序、工作状态监视等任务。可编程控制器仍然直接面向现场、面向设备,进行实时控制。两者的连接,可以更有效地发挥各自的优势,互补应用上的不足,扩大PLC的处理能力。 为了适应PLC网络化的要求,扩大联网功能,几乎所有PLC厂家都为PLC开发了与上位计算机通信的接口或专用通讯模块。一般在小型PLC上都设有专用的通信模块。PLC与计算机之间的通信正是通过PLC上的RS422或RS—232C接口和计算机上的RS—232接口进行的。PLC与计算机之间的信息交换方式,一般采用字符串、全双工或半双工、异步、串行通信方式。因此,可以说,凡具有RS—232C接口并能输入输出字符串的计算机都可以和PLC通信。 利用PLC基本单元上的RS422或RS—232C通信接口,可以配置一个PLC与外部计算机进行通讯的系统。该系统中PLC接受控制系统中的各种控制信息,分析处理后转化为PLC中软元件的状态和数据;PLC又将所有软元件的数据和状态送入计算机,由计算机采集这些数据,进行分析及运行状态监测,用计算机改变PLC的初始值和设定值,从而实现计算机对PLC的直接控制。 本系统是采用FX2N—232—BD型通信模板实现通讯功能,通讯软件用VB编程,PLC内部不需要编写任何的通讯程序,只要把需要通讯的数据放在相应的数据寄存器中即可。
3 通讯协议 FX2N系列PLC与计算机之间的通信是建立在以RS232标准为基础的异步双向通信上的,它有其特定的通信格式,整个通信系统采用上位机主动的通信方式,计算机直接对物理通信地址进行操作。通信过程中,传输字符和命令字以ASCⅡ码为准,常用的字符及ASCⅡ码对应关系如表1所示。[2] 表1 常用的字符及ASCⅡ码对应关系 在进行通讯时,计算机和PLC之间是以帧为单位交换信息的,其中控制字符ENQ、ACK、NAK是按单字符帧发送和接收的,其余的信息都是由字符STX、命令字、数据、字符ETX、和校验五部分组成。命令字可以为“0”、“1”、“7”、“8”等,分别代表对PLC相关单元的读、写、置位和复位操作,相关单元为X、Y、M、S、T、C,而读写还可对D数据寄存器进行操作。校验是在信息帧的最后,用来判别传输是否正确。由于计算机和PLC一般都在控制室内部,点对点传输距离较短,出错的概率较小,所以一般采用和校验法,基本能满足要求。将命令字到ETX之间的所有字符的ASCⅡ码相加,所得和的最低2位数作为和校验码。4 通讯实现 FX2N—232—BD型通信模板 该摸板可以无序地和计算机、打印机等具有RS—232C接口设备进行连接通信,它的传输距离为15m,通信方式为全双工双向方式,最大传输速率为19200bit/s。 MSComm控件 Visuai Basic的版本分为普及版、专业版和企业版,每个版本都是为了适应不同的使用群体,串行通信的控件包含在专业版和企业版中,而普及版不具有此功能。 VB6.0把与串行通信有关的操作都封装在Mscomm控件里,它是一种事件驱动的对象。VB同时也为这个控制提供了标准的事件处理函数、过程,并通过属性的方法提供了通信接口的参数设置,从而解决了串行通信的问题。[3] MSComm控件的属性众多,下列介绍涉及到的主要几种: CommPort属性用于设置或返回通信连接端口号码。程序必须指定所要使用的串行端口的号码。Windows系统会使用所设置的通信端口与外界进行通信,程序也可以借助此属性返回所使用的连接端口号。端口号的最大值为16,默认为COM1。 Settings属性用于设置初始化参数,以字符串的形式设置或返回传输速率、校验位、数据位、停止位等4个参数。其默认值是:“9600,N,8,1”,表示所使用的通信端口是以每秒9600位的速度作传输,不作校验位检查,每个数据单元是8个位,而停止位是1个位,需要注意的是:这4项必须按照上述顺序,不可前后对调,字母“N”可以大小写,而且使用RS-232通信的双方,Settings必须完全一样,彼此才能顺利的沟通。 PortOpen属性用于设置或返回通信连接端口的状态。使用前必须将要使用的串行接口先行打开,而在使用完毕后,也必须执行关闭操作。串行通信端口各项功能都是在PortOpen的True与Fause之间完成的。 Input属性用于从输入缓存区返回并删除字符,程序靠这个命令将对方传到输入缓存区中的字符读出来,并清除缓存区中已被读取的字符。 Output属性用于将一个字符串写入输出缓存区,当程序向对方传输字符串时,可使用此命令将字符串写入输出缓存区中。 InputMode属性用于设置或返回Input属性取回的数据形态。可以是以字符串的形式接收,也可以是以字节数组中的二进制数据来接收。 使用MSComm控件的方式表面上看来要比使用直接调用API函数来得复杂,但实际上使用MSComm控件可以省去不少底层程序的编写,因此实际上要比API函数简单多了。[4] 4.3 通讯的请求与确认 要进行通讯,上位计算机首先要对通道等进行测试,它要向下位PLC发送ENQ(05H)查询命令,PLC得到请求后要返回一个命令,如果返回的是NAK(15H),表示通讯有错,不能进行通讯,如果是ACK(06H),表示可以进行通讯操作。这也是程序调试过程中,判断通讯是否成功的一个标志。
5 通讯应用 该技术已经运用到某单位水处理中试生产工艺中,运行已经有半年多,运行情况良好,大大地减少了人工的操作强度。虽然这只是一个中试加科研的装置,控制的点不是很多,但已能很好地验证了FX2N系列PLC与计算机之间的通信的可行性与可靠性。
图2 反冲洗及沉淀池工段监控界面6 结束语 随着计算机及自动化技术的不断发展,自动控制手段也不断的更新,控制的可靠性也在断提高,自控的成本也就在不断的上升。在一些小型的装置上采用一些自编软件很有使用价值。虽然在开始阶段增加了一部分的开发工作量,但只要做到功能可靠,其操作简单,添加功能也比较方便的优点就比较突出,很有推广价值和使用前途。