7
西门子6ES7341-1BH02-0AE0功能介绍
PLC的数据显示功能一直是困扰PLC使用的难题。在PLC的应用中,经常要监测一些重要数据,但PLC的数据显示通常是使用外部显示设备,如显示屏或触摸屏,而这些显示设备的价格一般比较昂贵,对一些小型系统来说浪费。因此,如何显示PLC的数据,并尽可能做到率、高稳定性、抗干扰能力强、硬件投资少,是许多设计中需要考虑的问题。笔者使用的西门子S7-200PLC中有专门的指令控制LED数码管显示,SEGIN,OUT指令就是将IN端输入字节的低4位确定的16进制数自动转换为相对应的7段LED数码管各段的代码,并送到输出字节OUT端显示。若采用静态LED数码显示,PLC显示一位十进制数据需要7个输出点予以控制,如果要显示n位数据,则需要7n个输出点。所以,使用这种方式对于显示数据的位数较多时,需要大量的输出点,而PLC的价格是以输入输出点数来计算的,这直接导致硬件成本的上升,鉴于此种原因,寻找一种廉价的显示技术就显得尤为必要。提出借鉴单片机的LED数码管动态扫捕显示原理,结合PLC周期性扫捕的特点,采用PLC直接输出数字量驱动数码管,将PLC开关量输出分为两部分,一部分用作数据输出,另一部分用作控制数码管公共端信号的输出。利用人眼的余辉效应,循环点亮每个数码管,本方法操作简单、廉。
1 设计实现
所谓动态扫描就是利用PLC周期性扫描的特点,在编程时要做到每个周期只有一个数码管能够形成通电回路,从而得电点亮,因为一个扫描周期的时间过短,只有几十ms,所以人眼感觉每个数码管都是均匀通电亮着的,同时没有拖尾现象。
1.1 硬件设计
设计方法的硬件电路实现是一个起动按钮SB1和一个停止按钮SB2,两个数码管的a、b、c、d、e、f、g段分别连在一起,再与PLC的输出端Q0.0~Q0.7通过限流电阻连接,两个数码管的公共端com1和com2分别通过三管由PLC的输出端Q1.0和Q1.1控制,其接线原理如图1所示。
由PLC输出端Q1.0和Q1.1的高低电平控制处于开关工作状态的三管,使数码管com1和com2端循环与PLC公共端M导通输出,分时选中不同的数码管,由PLC输出端Q0.0~Q0.7输出相应的数据再根据公共端信号使相应的数码管a、b、c、d、e、f、g段显示。通过软件编程可实现用一组起停按钮控制两组数码管显示相应的数据。
1.2 软件设计
通过两个软件设计实现同一硬件电路不同功能的实例来阐述设汁的软件实现。
1.2.1 软件设计实例1
此程序实现0~99s反复计数功能,按动SB1起动计数,按动SB2使计数停在计数所停位置,再按动启动按钮重新从0开始计数,计数到99后重新从0开始计数。
以上软件对特殊存储器位SM0.5产生的1s的时钟脉冲计数,使用PLC数据运算、传送、转换的功能指令传送、处理变化的计数数据,然后用段译码SEG指令驱动7段数码管,由两个定时器分别产生周期为200ms、相互反相的时钟脉冲控制显示变化的计数数据。
1.2.2软件设计实例2
此程序实现50s功能,按动SB1起动计时,按动SB2停止计时,同时数码管熄灭,再按动启动按钮重新50s,计时到0s时,数码管自动熄灭。
2 结束语
设计主要是将一个两位数分成两组数据分别在十位和个位数码管上显示,程序采用循环控制方式,则一个扫描周期显示一组数据,即两组数据循环显示。设程序扫描周期为100ms,定时器定时100ms,那么每组数据的新周期为100×2=200ms,这样的显示频率足可以达到一般的工业控制要求,可以用作实时显示。同样,若显示多组数据,其数据线接法是一样的,只需增加控制数码管公共端信号的PLC输出点,PLC输出点数为7+n,n为数码管个数;软件稍加动即可。笔者介绍的方法软、硬件设计均在实验室调试成功,满足设计要求,并且降低了硬件成本,了较好的效果。
一、选择合适的网络
对于一个自动化工程(特别是中大规模控制系统)来讲,选择网络是很重要的,甚至有人提出了“网络就是控制器”的概念。,网络是开放的,以方便不同设备的集成及未来系统规模的扩展;其次,针对不同网络层次的传输性能要求来选择网络的形式,这在较深入地了解该网络标准的协议、机制的前提下进行;另外,综合考虑系统成本、设备兼容性、现场环境适用性等具体问题,确定不同层次所使用的网络标准。一个实时系统的性能可从时间、性和应用对象三个方面来衡量。
二、掌握PLC扫描原理
与其它控制设备比较,PLC重要的特征是“扫描”。PLC上电后,自动重复执行程序扫描和I/O扫描,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O 映象区中相应的单元内,输入采样结束后,转入用户程序执行和输出刷新阶段,即使输入状态和数据发生变化,I/O 映象区中的相应单元的状态和数据也不会改变。在用户程序执行阶段,PLC按由上而下、先左后右的顺序依次地扫描程序(梯形图),根据逻辑运算的结果,刷新RAM存储区或I/O映象区对应单元的状态。在输出刷新阶段,根据I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设,这时,才是PLC 的真正输出。可见,采用PLC程序控制的过程和结果与继电器逻辑回路是有区别的,特别是涉及到梯级的次序、脉冲信号的捕捉等,与PLC的扫描原理是密切相关的。实践中,大量的程序问题均源于此,常常会出现不可思议的。因此,设计PLC程序,精通PLC的基本原理。
三、力求结构化程序设计
提高程序的质量,提高编程效率,使程序具有良好的可读性、性、可维护性以及良好的结构,是每位程序设计者的目标。IEC61131-3是电工(IEC)于1999年推出的用于工业控制领域的标准化编程语言,具有开放性、可移植性、结构化编程和结构化数据、检错和纠错能力强等特点,适用于PLC编程。采用结构化程序设计,便于构造程序(尤其是复杂的程序)、多人设计,调试以及软件管理。虽然软件工程的思想已被绝大部分程序员所接受,但要将这种思想转化为软件开发过程中的自觉行为却不是一件很容易的事。
四、重视抗干扰措施
自动化系统应用于恶劣的工业现场,抗干扰措施尤为重要。实践中,经常出现由于干扰导致调试失败甚至设备损坏的事例。自动化系统的干扰,有以下3类来源:
1)空间辐射干扰;
2)系统外部线路,包括电源线、信号线、接地系统等引入的干扰;
3)系统内部电磁辐射及线路干扰。
五、针对这些干扰,在工程实施中要考虑以下措施:
1)在系统结构设计与设备选型时,充分考虑环境适应性和电磁兼容性;
2) 采用性能优良的电源,抑制电网引入的干扰;
3)合理选择和敷设电缆、电线;
4)硬件上采取隔离装置或滤波装置;
5)软件上采取提高性的措施,如数字滤波、定时校正参考点电位、信息冗余等;
6)正确选择接地方式,一般采用一点接地和串联一点接地。
所有PLC加密者都有两个冠冕堂皇的理由。
一是保护知识产权,一是讨要工程款。
保护知识产权者说自己辛辛苦苦做的程序,一下子让人家了,心里不甘,可是反过来想想,你编的程序真的是那么高明吗,真的是无懈可击吗,你的售后服务做的那么到位吗,能随时为客户做修改吗。如果不行,客户遇到问题怎么办,找谁来修,难道只能停机,八抬大轿请你这个编程高手悠悠哉哉来处理。再说了那点程序能编程的人多着呢,我有个朋友做机械设备的,要做人家已开发的设备,他就是做的同时,要加入自己的好的东西,不可能一模一样的,让我给他编程,我说算了,我把别人程序读出来直接用,他说不要,那是没有技术的,故障了都不懂得怎么查,再去分析别人的程序,就看象天书。我忍不住还是解密看看,哎,那程序编的多烂就有多烂。少保护,缺联锁,还真不敢用,只用自己编的用的放心。
讨要工程款者说,买元件,做柜子,辛辛苦苦安装接线,调试,只拿个30%订金,剩下还要分期付,多不容易啊,有时是设备厂商遇到这样,也要求编程序的这样做,在程序里加了个计数或定时停机,时间一到,或工作产量一到,一手交钱,一手交开通密码,这是明说的,也有不明说的,停机后,就索取款项再去装捣古两下,修好了,我就听说有个设备停机停的蹊跷,生产线生产好好的,一过晚上12点就全部停机,全部没有输出,问了编程的,还一付无辜的样子。有甚者,工程款全部给了,设备还会一年蹊跷故障那么一两次,设备厂家人来了,捣古两下好了。旅差费工钱没的说,这当中设备停机的损失怎么估算呢。
以上说的情况,那种全部设备的是可恨,但你用加密是解决不了问题的,要你,加密也没用,照不误,你只有用加强你的技术水平加速升级换代,提高附加值,好地进行售后服务,价格优势等等方法来市场。
讨要工程款的方法用这种是不可行,你有法律的渠道,事先调查这个买家的方法,有合同约束,用了加密故意设置障碍、故障如果引起大的损失是不是有负法律责任的风险。
剩下的就是那种为了摆显的、为私利故意破坏的编程加密者,这种PLC不破解它,待何时。
我在想动车电控系统用不用PLC控制,加不加密。扶梯电控系统用不用PLC控制,加不加密。解密PLC查一下里面有没有故意停机的程序段。



1 引言
随着无线通讯技术的不断发展和应用,与架设电缆(或光缆)、租用电信专线等方式相比,无线通讯以其造价低、施工快、运行、维护简单等优点正逐渐被人们所重视,并逐步应用于数据采集与监控系统中。
plc是工业控制中常用的控制器之一,它运行、集成度高、可扩展性强。通过标准接口与无线数据通讯模块结合在一起,组成无线远程监控系统。可以不拘泥于特定行业的具体要求,实现形式多样的i/o信号采集和设备的控制。实现远程诊断、测试、监管等功能,满足各行业调度或控制与众多远方站之间的数据采集和控制。这无疑是一种全新的控制系统模式。
本文描述的应用正是采用了无线通讯技术和plc相结合的系统模式来实现对温室系统的无线远程监控。
2 系统功能
本系统的功能主要是根据现场设备的具体情况和客户的需求,实现温室的温度自动/手动调节、储水箱的液位自动/手动控制,以及灌溉、照明、通风、给水、排水等功能的远程监视和本地/远程控制。
3 系统设计
3.1 系统构成
3.2 系统说明
本系统(如图1所示)采用传统的上位机、下位机组合控制模式,不同之处在于上、下位机之间的通讯采用无线通讯(gprs)和万维网(internet)实现。其中上位机采用具有上网功能的pc(也可以采用pda等具有上网功能的终端),下位机采用西门子s7-200 plc。
(1) 上位机功能
上位机系统平台采用市场占有率较高、资源相对丰富的bbbbbbs 2000系统。应用软件的开发采用基于bbbbbbs平台的软件技术,根据客户需求生成个性化的人机界面,实现人性化的信息交换。在人机画面上,可以实现自动/手动控制功能的切换,不仅可以显示现场设备的运行状态,而且可以通过画面控制设备。在画面上,还可以显示各种仪表的数据,对现场参数(温度、水位等)实现远程实时监测,以及设定报警值等功能。
(2) 下位机功能
根据监控对象的不同,现场i/o存在着不同的信号形式。具体形式上有各种具有标准接口或非标准接口的传感器、变送器和各种执行装置(诸如电机、电磁阀等)。在本系统中的数字量i/o有控制照明装置打开/关闭的继电器、控制给水泵/排水泵电机启动/停止的继电器和接触器、控制通风设备的继电器和控制灌溉的电磁阀等。模拟量i/o有温度信号、液位信号(本系统中是4-20ma信号)。
现场i/o通过siemens s7-200plc接入系统,实现数据的采集和预处理,并根据上位机的指令对现场的工况进行判断、处理。利用plc控制能力强、实时性好的特点来实现对现场设备时间的保护。实时对异常、故障等进行处理,并将设备的状态定时传送到上位机进行远程监视和控制。
4 系统功能实现
4.1 控制方式
本系统可以实现本地、远程两种操作方式。该功能通过现场操作台的本地/远程选择开关实现。
l 在本地方式下:系统通过现场操作台的按钮实现对现场设备的本地手动操作。
l在远程方式下:现场操作台的按钮对现场设备的操作无效。操作者可以通过画面实现对现场设备的远程手动控制。并可以设定系统处于手动还是自动运行模式。
4.2 人机界面
(1) 界面的设计原则
l 采用与实物形式相近的三维图形;
l 采用动画形式表现设备的状态;
l 故障、报警信息要显著、明显;
l 操作方便。
(2) 界面的内容
l 设备的状态信息(运行、停止、正常、故障等);
l 现场数据(现场传感器的反馈值等);
l 控制功能(实现控制功能的按钮等);
l 设定信息(报警值、保存等)。
人机界面采用基于bbbbbbs平台的组态软件技术,可根据不同客户需求,方便、快速的生成个性化的人机界面,实现人性化的信息交换。
4.3 温度控制
温度(模拟量输入)信号直接传送到监控画面监视。画面可以根据具体条件对温度的报警值进行设定,并存储在plc中。当系统在远程控制模式下自动运行时,如果现场温度达到高报警值时,plc向监控终端发送报警信息,并自动启动通风装置;当系统处于远程手动模式下时,通风装置由画面手动控制。
4.4 液位控制
液位(模拟量输入)信号直接传送到监控画面监视。画面可以根据具体情况对液位的报警值进行设定,并存储在plc中。当系统在远程控制模式下自动运行时,如果现场液位高报警值时,plc向监控终端发送报警信息,并自动启动给水装置;如果现场液位低报警值时,plc向监控终端发送报警信息,并自动启动排水装置。当系统处于远程手动模式下时,给、排水装置由画面手动控制。
4.5 灌溉和照明控制
通过人机界面手动控制各个设备的打开/关闭。
5 通讯功能实现
5.1 gprs简介
上位机和下位机之间可以根据具体情况采用gprs、蓝牙、w-lan等多种形式进行无线数据传送。本系统由于监控距离远,通讯数据量相对较小,因此采用gprs进行数据传送。
gprs 是通用分组无线业务(general packet radio service)的英文简称,是在现有gsm系统上发展出来的一种新的承载业务,目的是为gsm用户提供分组形式的数据业务。作为一种新的移动数据通信业务,在移动用户和数据网络之间提供一种连接,给移动用户提供高速无线ip。gprs采用分组交换技术,资源被有效的利用,速率高。gprs移动系统有很大的应用范围,几乎所有中低速率的业务都可以应用,如城市配电网络自动化、自来水、煤气管道自动化、商业、internet接入、个人、信息、金融、交通、等。
将gprs通讯模块通过rs232/485等接口连接至plc。通过gprs通讯模块,plc将所需要的信息发送至gprs gateway。gprs gateway将所接收到的数据通过internet网络发送至各客户监控终端。客户通过各自终端,进行远程数据采集、控制、指令发送等操作。通过客户应用界面程序,客户可以在任何地方接入internet,访问的web控制页面,通过web直接进行实时的远程监控。
5.2 plc通讯功能实现
西门子s7-200
plc的编程通讯接口通过修改系统参数,可以实现自由通讯功能。由于该通讯接口采用的是半双工通讯模式,所以plc程序采用了中断触发方式来实现plc和gprs通讯模块的通讯。具体程序如下:
(1) 主程序
ld sm0.1 //plc 个扫描周期执行
movb 2#1001, smb30 //初始化自由端口
//波特率9600
//8位数据位
//无奇偶校验位
movb 2#11100000, smb87 //接收数据参数设置
//rcv使能
//检测起始字符
//检测结束字符
movb 16#02, smb88 //起始字符
movb 16#03, smb89 //结束字符
movb 100, smb89 //大字符数100
atch int_1, 23 //连接中断程序1到接收结束事件
atch int_2, 9 //连接中断程序2到发送结束事件
eni //允许用户中断
rcv vb150, 0 //执行接收指令
//接收缓冲区指向vb150
(2) 中断0
//100ms 定时器中断
ld sm0.0
dtch 10 //断开中断
xmt vb200, 0 //在端口0发送数据
(3) 中断1
//接收完成中断
lbd smb88, 16#20
move 100 smb34
atch int_0, 10 //如果接受到结束字符,连接一个100ms的定时器,返回
creti
not
rcv vb150, 0 //如果因为其他原因结束,
//启动一个新的接收
(4) 中断2
//发送完成中断
ld sm0.0
rcv vb150, 0 //允许另一个接收
6 结束语
该系统可以用于组建油田/气、水处理、电力、煤气、铁路、地震/气象/环保、gps、金融、/交通/安防、化工、工业控制自动化等数据采集与控制系统。这无疑为自动化控制提供了一种新颖、实用的解决方案。本文中的系统已应用于生产实践中。
1 引言
目前,plc作为一种成熟稳定的控制器,已经在工业控制中得到了广泛的应用。在实际应用中通常采用以工业控制计算机和plc构成计算机监控系统。在这里,plc完成对系统的底层控制,即直接控制执行机构,实现数据采集,处理与控制;上位计算机则完成数据处理、信息管理等复杂的监控管理任务。通讯的实现就成为这种系统中的关键技术之一。本文以电厂输煤监控系统为例,介绍了串行通信技术在分布式监控系统中的应用。
2 监控系统硬件构成
某电厂输煤系统共有储煤圆筒仓6个,每个仓下面各对应着环式给煤机,犁煤机,变频器和皮带等设备,每个仓距离几十米。我们使用可编程控制器(omron c200h型plc)作为下位机负责对每台圆筒仓下的设备信号采集和控制命令的发送。由程序实现对设备启停的连锁控制,出现异常情况,如设备电流越限,给煤车挡板卡死等情况,能快速作出反应并报警。
采用工业控制计算机(ipc)作为操作员站,实现对整个的监控和管理功能。plc之间以rs422方式组成网络,并和上位机之间采用hostbbbb方式连接。系统结构图如图1所示。
每个圆筒仓下的设备使用一个c200h型plc对其进行控制,并配置一个com06通信模块。它能够为plc提供rs422/485方式的通讯。这样可以方便的将其联网。rs422采用平行发送接收方式,具有传输距离长,抗干扰能力强和多点通信能力,多可以连接32台plc。在plc和上位机之间使用一个rs422/232转换模块,将rs422信号转换为rs232信号,这里使用的是研华adam4520。这种网络通信方式经济实用,能满足生产运行的需要。
3 系统软件开发及串行通信的实现
上位机监控系统开发c++ builder6.0编程软件。c++builder是borland公司的产品,它采用面向对象的c++语言,实时性好,运算速度快,编程,人机界面功能强大。近年来越来越多地应用于工业控制。
plc与上位机的串行通信程序的编制是监控系统开发的关键部分。使用c++builder开发系统人机界面的部分较为容易,不是本文讨论的主要内容,在此不作详细叙述。
3.1 plc的通信协议简介
上位计算机和plc通讯使用的是上位链接通讯方式,所以我们要开发c++ builder与omron plc的串行通信,使用omron plc的上位机链接通信协议。
上位机链接通信是通过在上位机和plc之间交换命令(command)和应答(response)帧实现的。在一次交换中从上位机传输至plc的命令称为命令帧,plc对命令帧的应答数据称为应答帧。每个帧以设备号和标题开始,以检验码fcs及结束符结束。一个命令帧多可以包含131个数据字符,多于131个数据字符的数据要分成若干帧发送。
@符号置于每个命令的开头。节点号用来辨识接收命令的plc,节点号在数据寄存区dm6558地址中设定。识别码是2个字符的命令代码,用来设置通信的功能。正文设置命令参数,包括要读写的plc寄存器单元的起始地址和字数。fcs是2个字符的帧检查顺序码,是检查数据的校验码,终止符以“*”和回车(chr$(13))两字符,表示命令结束。一些常用命令代码如rr表示读ir/sr区的值,rd表示读dm区的值,wd表示向dm区写数据。具体情况可参照相关操作手册。
响应帧的格式与命令帧类似,在标志码后多了两位的结束代码。不同结束代码的值代表不同含义。查看结束码可以得知是否有错误发生以及发生错误的类型。正常情况下的结束码为00。表1为常见的结束代码及其含义。
帧顺序检查fcs在终止符之前,以检查传送时是否存在数据错误。fcs是一个转换成2个ascⅱ字符的8位数据。这8位数据为从帧开始到帧正文结束所有字符ascⅱ码执行“异或”操作的结果。每次接收到一帧,先要计算fcs,与帧中所包含的fcs作比较,就能检查的正确与否。例如:要读出01号plc的ir200里的数据,通过上位机可以发送格式为“@01rr0100000141*”的命令帧。其中“41”即为计算所得的fcs。每一帧的fcs的可由上位机程序计算得到。
3.2 c++ builder中串行通信的实现
使用c++ builder开发串行通信程序有两种方法:一种是利用activex控件,c++builder本身并不提供单的串行通信控件,可以使用visual basic自带的mscomm32控件,在c++builder中注册它,c++ builder就可以调用了。另一种方法是利用bbbbbbs api函数创建串行通信。
利用activex控件开发串行通信程序较为容易,很多文章都进行论述过,但是这种方法实时性较差。使用bbbbbbs api函数开发串行通信程序虽然比较复杂,但是采用多线程技术,其准确性高,实时性好,适用于连续生产过程中通讯要求严格,实时性强,数据量大的场合。在本次系统开发中,经过综合考虑,我们选择了使用bbbbbbs api函数开发串行通信程序。
在开发过程中,我们使用了多线程,事件驱动的方式。通信程序主要由两个线程组成,主线程负责接收用户输入,相应键盘鼠标,接收bbbbbbs消息,以及向串口发送数据。另一个监视线程监视串口接收消息,并向主线程发送bbbbbbs消息。通信过程如图3所示。
使用过程中,使用一系列api函数初始化通信端口。这部分程序如下:
char *comno;
dcb dcb;
bbbbbb sendtemp;
file://要打开的通信端口
sendtemp=“com” + inttostr(radiogroup1-》itemindex +1);
comno=sendtemp.c_str(); file://字符串转换
hcomm=createfile(comno,generic_read|generic_write,0,null,open_existing,0,0);
file://使用createfile函数打开一个通信端口,打开的
file://端口视窗体上选择的而定。
if (hcomm==invalid_handle_value)
file://如果串口未打开,报警消息。
{
messagebox(0,“打开通信端口错误!!”,“comm error”,mb_ok);
return;
}
getcommstate(hcomm,&dcb); file://取目前串口状态
file://设置通信端口的状态
dcb.baudrate =cbr_9600; file://波特率设为9600
dcb.bytesize =7; file://数据位7位
dcb.parity =evenparity;//奇偶校验设为偶校验
dcb.stopbits =twostopbits;//停止位设为2位 if
(!setcommstate(hcomm,&dcb))
{
messagebox(0,“通信端口设置错误!!
”,“set error”,mb_ok);
return;
}
通信端口初始化成功后,主线程开始接收用户消息,监测用户输入,然后开始发送命令帧,发送完毕后将发送事件标记设为false,接收事件标记设为true。接收标记为true时,监视线程启动,使用readfile函数读取从plc返回的应答帧。如果没有错误而且校验帧fcs正确,则使用一段翻译程序将应答帧中的plc信息翻译出来,例如某个dm区的值,存入内存变量中,即可以在监控画面上作出显示。然后主线程发送下一个命令帧,开始下一个循环。
如果plc返回的应答帧错误,或者fcs不正确,那么监视线程将根据错误的类型,发送消息至主线程,通知主线程重发命令帧或者改变设置。主线程经过多次重发仍然出现错误,则发出相关报警信息,通知操作员进行处理。由于监视线程在接收消息状态下立即启动,且与主线程采用同步处理方式,只需要向主线程发送消息,因此循环时间短,提高了控制系统的实时性。
在本系统中,例如要使用上位计算机控制plc关闭某个设备。主线程监测到鼠标点击开关事件,然后将这个操作事件翻译成相应的命令帧,通过串口发送此命令到对应的plc中,改变plc内存区的某个对应的值,进而改变plc的输出,关闭这个设备。同时监控画面可以显示出改变后的设备状态。
4 结束语
使用本文介绍的方法编制通信程序,在火电厂输媒监控系统中得到了实际应用。目前这一方案已经应用到现场,一段时间的试运行表明此方案是可行的。通信稳定,实时性强,满足现场设备通信的需要。同时,由c++builder开发的监控画面,采用了面向对象的编程技术,缩短了此系统的开发周期,在上位机上再现生产过程,人机界面友好。相信此方案对同类系统的设计与开发有一定借鉴作用。