逻辑数据层(精选3篇)
逻辑数据层 篇1
PLC, 即可编程逻辑控制器, 是一种专用于工业控制的编程存储器, 通过人为编写程序, 向操作设备发送逻辑运算、定时与计数控制等一系列指令, 从而完成各种机械操作或生产过程。将PLC与数控机床进行有机结合, 能够建立起一个全面的、系统的、立体化的操作平台, 使数控机床的加工制造效率得到显著提升。随着我国工业生产逐步向自动化、智能化方向发展, PLC应用于数控机床的自动化控制技术也日臻成熟。
1 PLC的基本组成结构
1.1 电源。
电源是保证可编程逻辑控制器各项操作和指令正常进行的关键, 因此保证PLC工作过程中电源的稳定、可靠是极其重要的。正是考虑到电源对整个控制器性能的影响, 制造厂商在设计电源时要严格控制交流电压的波动范围, 通常情况下要控制在额定电压+10%左右, 在这种情况下, 可以不采用其他保护措施而直接把PLC连入交流电网中。
1.2 中央处理单元。
中央处理单元相当于整个可编程逻辑控制器的“大脑”, 它不仅负责对该控制系统中的各个操作单元进行指令下达和控制, 而且能够接受并储存用户编写的程序。当可编程逻辑控制器工作时, 首先以扫描的方式, 将用户编写的各种程序语言录入到内置存储器中, 然后从存储器中逐条读取程序指令, 并将指令与数据库进行一一比对, 最后将配对成功的指令下达到各个操作单元中, 完成数据的输出。各个基础操作系统接到中央处理单元发出的信号后, 进行相应的动作, 直到程序停止。
1.3 存储器。
顾名思义, 存储器就是对各种信息、程序和指令进行暂存和保管, 当存储器受到程序调用指令后, 将保存的各种信息、指令直接传递出去。根据存储内容的不同, 可以将PLC存储器分为两大类。一类是用于存放系统本身程序的系统程序存储器。可编程逻辑控制器在设计之初, 为了完成各种程序动作, 需要事先设置系统控制语言, 其目的是为了保证整个系统中各个协调动作的平稳运行。另一类是在系统使用过程中, 用于存储户编写程序的用户程序存储器。
1.4 功能模块。
可编程逻辑控制器要想完成各种操作, 必须依赖不同的功能控制模块。例如当数控机厂自动加工完成后, 需要提醒相关的管理人员将加工完毕的工件取走, 此时可以设置报警模块, 当检测到加工程序执行完毕后, 进行自动报警。除此之外, 常见的功能模块还有延时模块、计数模块和定位模块等。
2 PLC逻辑层的特点
由于PLC技术不断发展, 数控机床改造实现了技术多元化, 成为现代机械制造行业的先进术。数控机床控制是CPU和I/O设备之间交换信息的中转点, PLC数控机床控制出现问题则会大大影响数据处理效率。若PLC服务平台运转达不到预定要求, 用户处理数据时必然会出现多种问题, 约束了数控机床控制层次的应用型。设定逻辑层具有多样式特点, 可体现出数控机床自动化改造优势。
2.1 一体性。
一体化控制技术适用于PLC数据调配, 这类技术可根据控制系统运行标准, 实时转变原始数据处理模式。“一体化控制”是对数据的多样式调整, 并非固定为某一种数据形式, 而是要结合PLC具体作业状态拟定的调控模式。与常规数控机床控制模式不同, 逻辑层应用具有专项性特点, 针对数据库模式设定相应的传输方案, 把原始数据用于接口控制与筛分处理, 向用户给予更加全面的数据服务。
2.2 转换性。
对于大容量数据库而言, 利用一体化控制技术更体现出了PLC运行的专业性水平。数据兼容是转换的基本前提, 只有在相互融通的数据平台中, 才能实现彼此之间的相互融通, 建立符合数据传输要求的控制平台。PLC数控机床控制不仅具备基本的控制功能, 也能根据不同数据的格式、内容、存量等进行转换处理, 实现两种PLC语言的相互融通, 提高了数据一体化控制处理效率。
2.3 安全性。
近年来, 基于PLC的数控机床自动化控制在机械加工制造应用中体现出来巨大优势, 因此使用PLC的用户数量也呈现出激增现象, 为了优化用户操作体验, 提升PLC自动化控制水平, 许多企业都采用了一体化控制技术。该技术的优点在于改变了传统的用户服务机制, 将分散用户进行集中和统一管理, 对于保障系统稳定性有积极帮助。除此之外, 一体化控制技术还设置了数据备份功能, 即便是用户使用过程中出现文件损坏、丢失等问题, 也能够通过查找找回原始数据。
3 数控机床中PLC技术应用
3.1 数控端口。
当PLC接口长期处于不匹配状态下, 数据库自动收录信号能力将会减弱, 用户所接受到的数据也会出现误差。针对PLC数控机床控制应用存在的问题, 除了改变PLC软硬件系统外, 还要通过一体化控制器建立可靠的转换平台, 对外来数据及时收录与处理。基于数控机床控制转换中遇到的问题, 选定一体化控制技术作为操控模式, 能从根本上提高接口数据的智能化处理水平。
3.2 数控中心。
现代信息科技快速发展促进了端口技术革新, PLC在传输数据过程中也要注重一体化控制利用, 通过对原始数据优化筛选、智能调配、一体化控制等处理之后, 不断提高了数据资源的有效利用率。数控查询、中断处理、智能存储等是一体化控制技术不可缺少的应用方式, 用户要根据数控机床控制组合状态执行科学的程序命令, 为不同寄存器及控制器提供更加安全的的操控流程, 避免人工操作失误造成电路故障或数据丢失等问题。
3.3 数控传输。
由于互联网走向移动化方向转变, 传统PLC也开始转变为数控机床一体化, 软硬件设备同时升级而创造了更加优越的工作环境。基于移动网时代背景下, 要针对数控机床一体化拟定可行的智能控制方案, 进一步优化智能系统的可操作性能, 维持服务器内部数据处理流程的有序进行。因此, 移动网具有兼容性、广泛性、功能性等特点, 为网络数据传输处理提供了虚拟化平台, 提高了网络用户的实际操作服务水平。
结束语
PLC逻辑层从软件、硬件等两方面对控制系统进行规划, 设计更加先进的数控机床体系。数控机床数字化操控要设定专业平台, 建立更加完整的数字调度方案;结合PLC逻辑层选择可行的数字技术作为支撑点, 为数控机床控制提供智能化方案。
摘要:数控机床作为现代机械加工的主要设备, 具有加工效率快、加工精度高、自动化操作等优点, 在大多数机械加工、制造企业都得到了广泛的应用。将PLC作为数控机床的控制中心, 根据数控机床的实际工作特点制定与之相对应的操作系统, 利用编程语言实现对机床的程序化控制, 保证了机床加工、制造的精确度。文章首先介绍了现阶段PLC应用现状, 随后叙述了PLC逻辑层的特点, 并对PLC技术在数控机床中的自动机控制进行了分析。
关键词:PLC,逻辑层,数控机床,自动机控制
参考文献
[1]罗华丽, 李斌, 汤志斌.开放式数控系统中的软件PLC技术研究[J].组合机床与自动化加工技术, 2013 (2) .
[2]张汉兵, 叶伯生, 杨道善.数控系统中内嵌式PLC梯形图编程的软件实现[J].组合机床与自动化加工技术.
逻辑数据层 篇2
死马当活马医,热插拨大法
找一块相同型号的硬盘,将没有问题的硬盘接在ide1上,有问题的硬盘接在ide2上,然后开机,在自检完成后,迅速按下pause键,小心拨下有问题的硬盘,按任意键继续引导,完全启动win9x后,再接上有问题的硬盘,切换到ms-dos方式,使用fdisk或其它工具软件将其重新分区,重新启动并格式化后,便可以顺利格式化、安装win9x了。
最好的方法,使用win起生回生
由于硬盘热插拨具有一定的危险性和难操作性,不到万不得已的时候,最好不要使用此方法。经过笔者实验证明,用win2000同样可以修复被逻辑炸弹损坏的硬盘,
由于win2000是nt5.0的核心,与win9x的系统文件不同,引导的方式和过程也均不同,所以将被损坏的硬盘挂在装有win2000系统的机器上的ide2上。启动结束后,被损坏的硬盘在我的电脑中显示为一个未被格式化的盘符,无法对其进行格式化。此时,可以找来一些for win2000可以重新分区的软件,如bootstart、pqmagic等,上述软件的使用方法,相信各位大虾肯定比笔者用的好,笔者在此不做详细介绍了,只要将其重写主引导记录,被逻辑炸弹损坏的硬盘,又可以正常使用了。
逻辑数据层 篇3
关键词:规则引擎,Web应用框架,业务逻辑,Rete算法
0 引言
在现今的Web系统架构中,大多数企业级应用一般均采用B/S/D三层Web架构。企业级Java应用也相应地分为三层:表现层、业务逻辑层和数据持久层。通常使用某种框架来开发和部署企业级应用,表现层常用的框架有Struts,JSF和Spring等,持久层常用的框架有Hibernate和EJB等。而在业务逻辑层中往往是大量随外部条件不断变化的业务规则。但到目前为止,对于业务逻辑层却没有一个标准的构建方法。像EJB和Spring等只能在高端实现业务逻辑的构建,但却不能组织代码。因此,商业决策者和应用开发者就非常迫切地需要能将商业决策逻辑和技术决策分离出来。这样,就可以在运行时动态地管理和修改业务规则,并且使用在可配置性、可读性和重用性等方面能够带给我们极大利益的框架来代替那些繁杂的条件判断语句,从而可提高系统的柔韧性和适应性。
另外,随着商业以及市场的迅猛发展,企业级应用的更新和升级变得越来越频繁。因为对业务逻辑层没有标准的框架和统一的开发方式,使得系统的维护和升级将花费更大的代价。这就更加迫切需要一个框架或统一的方法来开发业务逻辑层。很多的系统架构师已经注意到了这一点并且正在进一步研究与探讨。针对目前Web应用开发现状及存在的问题,本文通过对规则引擎及模式匹配算法的研究,给出一种较好的业务逻辑层的构建方案,以降低系统开发、升级与维护时花费的巨大代价。
1 Drools规则引擎
Drools是完全遵守JSR-94标准的规则引擎。而且是A-pache模式许可下的完全开源框架。它利用XML文件格式定义规则,大大简化了规则引擎的解析和执行过程[1]。Drools分为两个主要部分:构建和运行时[2,3]两个过程。
构建的过程涉及到.drl或.xml规则文件的创建。规则文件被读入规则文件解析器,并使用ANTLR 3语法进行解析。解析器对规则的语法进行正确性检查,然后产生一种中间结构“descr”,descr用AST来描述规则。然后,AST被传到包生成器,由包生成器来产生包对象。包生成器还承担着一些代码产生和编译的工作,这些对于产生包对象都是必需的。包对象是一个可以配置的、可序列化的,是由一个或多个规则组成的对象;运行时过程是指规则引擎在运行时,规则库(RuleBase是一个运行时组件,它包含了一个或多个包对象)可以在任何时刻将一个包对象加入或移出规则库。一个规则库对象可以在任意时刻实例化一个或多个工作记忆对象,并在它的内部保持对这些工作记忆的弱引用。当应用程序中的对象被断言(这里采用了Java的assert的概念,是指对象是否满足规则的LHS。如果满足则将该对象利用Java的assert函数添加到工作记忆中,否则继续检查下面的对象)进工作记忆后,可能会导致一个或多个激活过程的产生,然后由议程负责安排这些激活过程的执行。
2 Rete算法简介
规则引擎采用的规则匹配算法决定它的效率是否能满足需求[4],而Rete算法是目前效率最高的一个前向链推理算法[5],其核心思想是将分离的匹配项,根据内容动态构造匹配树,以达到显著降低计算量的效果。Rete模式匹配算法是在模式匹配中利用推理机的时间冗余性和规则结构的相似性,通过保存中间过程及模式共享来提高推理效率的一种模式匹配算法。在模式匹配过程中,规则的前提(LHS)中可能会有很多相同的模块,因此在匹配规则的前提时,将进行大量的重复运算,这样就带来时间冗余性问题。Rete模式匹配算法很好地解决了基于规则的系统所具有的时间冗余性。它的实现是通过存储不断循环中匹配过程的状态。并仅考虑在事实列表中发生了的且又反映到本次状态中的变化。也就是说,如果在一个执行周期中,一组模式找到三个所需事实中的两个,则在下一个执行周期中,就无需对已经找到的这两个事实进行检查。此时,只有第三个事实才是需要关注的。另外,许多规则通常包含了相似的模式或模式群。利用这一特性,Rete算法通过将公共部分放在一起来提高效率,因为公共部分不必多次计算。这便是模式共享的基本思想,推理引擎的推理步骤如下:
1)将初始事实输入工作记忆;
2)使用模式匹配器比较规则库中的规则和事实;
3)执行的规则存在冲突,即同时激活了多个规则,将冲突的规则放入冲突集合;
4)冲突,将激活的规则按顺序放入议程;
5)执行引擎执行议程中的规则,重复步骤2)-5),直到执行完毕所有议程中的规则。
3 Web应用框架设计
3.1 总体框架设计
如前所述,大多企业级Java应用一般分为:表现层、业务逻辑层和数据持久层三层结构。其中,业务逻辑层无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求相关的系统设计。业务逻辑层在体系架构中处于数据访问层与表示层中间,起到了数据交换中承上启下的作用[6]。在传统的开发模式中,是将这些业务逻辑和代码逻辑混杂在一起。一旦业务规则发生变化,就得修改每个类中相应的代码,亦即业务规则的不断变化,就得不停地修改程序代码。特别是当越接近系统实现的后期时,这种修改就越加困难。因此,当系统越大、开发周期越长、成为“遗憾工程”的可能性也就越大。
为解决上述问题,本文在业务逻辑层中使用Web Service这种分布式计算技术,将这些复杂的业务逻辑单独部署到一个独立的服务器上,对系统中的业务规则进行单独的管理与维护,Web应用的总体框架结构如图1所示。这种框架结构可在极大的程度上降低了规则引擎服务同系统其它部分的耦合性,降低业务规则的变更对系统的影响,从而可极大地提高系统适应性和灵活性,减少系统的开发和维护成本。
3.2 业务逻辑层的设计
1) Web服务概念模型设计
如前所述,业务逻辑层采用Web Service分布式实现,该层定义了Web服务接口,这些接口用来描述Web服务。Web服务描述语言(WSDL)采用了xml语法,用于描述Web服务及其函数、参数和返回值,而服务的具体实现部分在规则引擎服务端。为了测试采用规则引擎后对系统性能的影响,系统中定义了两套Web服务的接口,分别是:IorderFormService (不采用规则引擎)和IOrderFormRulesService(采用规则引擎)。该Web服务的概念模型如图2所示。
其中:IOrderFormService和IOrderFormRulesService这两个接口的参数是相同的,但这两个接口并不是同时使用,在服务运行时,可以通过配置文件的配置来选择采用哪一个接口。系统两端还定义了两个视图对象ItemVO和DoSumVO,这两个视图对象主要是定义了传输数据时的数据格式,可以看作是通信的协议。相应地,系统中还定义了两个业务对象ItemBO和DoSumBO,这两个业务对象的具体实现和其对应的视图对象的实现是完全相同的,只是为了强调业务逻辑执行时操作的参数是业务逻辑相关的。这里只列出视图对象的具体实现:
2) Web服务的描述
根据视图对象的定义,在WSDL中需要对这些数据类型进行描述。同时,在WSDL中还要对Web服务进行描述,即描述服务端提供什么样的服务,以及调用该服务的URL信息等。Web服务描述如下所示:
4 订单系统的实现
4.1 订单系统概述
该系统框架结构采用Struts+Drools+Hibernate来实现。前端表现层采用Struts框架,后台数据持久层采用Hibernate框架,业务逻辑层应用开源的规则引擎一Drools框架。同时,利用传统方式再构建该系统的业务逻辑层,其目的是为了分析采用规则引擎与不采用规则引擎开发模式对系统性能的影响。系统的开发环境是:Eclipse+MyEclipse+Tomcat+DroolsIDE+MySQL,Web总体架构见图1。由于本文研究的核心是业务逻辑层,因此只给出业务逻辑层部分的实现。
4.2 规则引擎服务的实现
IOrderFormService接口调用服务的方法为doSum;IOrderFormRulesService接口调用服务的方法为doRulesSum。其中,函数doSum是不采用规则引擎时的Web服务函数;函数doRulesSum是采用规则引擎时的Web服务函数。下面分别给出doSum和doRulesSum的具体实现:
其中,doVipSum得到的是vip客户的订单核算结果;doSum1得到的是普通客户的订单核算结果。这个函数是由纯Java代码实现的。
4.3 规则库的定义
在程序清单7中可以看到,首先需要创建一个规则库,然后利用该规则库生成一个工作记忆,并将对象断言进该工作记忆,最后激发规则并得到规则匹配的结果,也就是订单的核算结果。下面针对该系统的客户,定义了如下的订单核算规则:
程序清单8订单核算规则
(1)如果客户不是VIP
1)所有item先按折扣分别计算单个item的花费之和;
2)如果单个item数量超过10个,在其花费基础上乘以95%:
3)求出所有单个item的花费和;
4)如果item种类超过5个,在总花费基础上乘以95%
;5)如果最终花费大于10000,在总花费基础上乘以85%。
(2)如果客户是VIP
1)所有item先按折扣分别计算单个item的花费之和;
2)如果单个item数量超过8个,在其花费基础上乘以90%;
3)求出所有单个item的花费和;
4)如果item种类超过3个,在总花费基础上乘以90%;
5)如果最终花费大于8000,在总花费基础上乘以80%。
要满足上述所有的规则,根据排列组合的规律,应该需要23×2=16种规则组合。但由于最后两条规则不需要任何计算,所以至少应该有14种规则组合。下面给出规则文件中客户是VIP时规则2)的规则语言描述(其它规则的描述略):
5 性能测试及结果分析
性能测试是任何分布式或Web应用程序测试计划的重要组成部分。本文中所说的性能测试主要是对两种方式(使用规则引擎和不使用规则引擎)实现的系统之间的性能比较。该测试主要采用Apache的JMeter[7]进行。在JMeter的性能测试中,主要的测试内容有:平均值、偏离值、吞吐量和中值。该测试的核心内容就是系统平均响应时间(平均值)。测试分为两组,第一组测试采用100个样本,每个样本循环发送8次请求,一共800次请求。第二组测试采用10000个样本,即10000个请求同时并发。其测试结果如表1所示(曲线图略)。
通过上面两组实际测试的结果可知,采用规则引擎实现方式的响应时间比不采用规则引擎实现方式的响应时间略长,第一组测试平均响应时间相差0.181秒,第二组测试平均响应时间相差0.351秒,且这个时间差是在人们的忍受范围之内。因此,采用规则引擎框架来实现业务逻辑层是完全行之有效的。
6 结论
规则引擎技术为管理复杂、多变的业务逻辑提供了一种有效的解决方案,使用规则引擎开发的应用系统,虽然使系统的性能略有降低,但是却极大地降低了开发和维护的难度和代价。由于规则是写入到规则文件的,而规则文件又是满足规则语言要求的,所以可读性要远比将逻辑写入代码中的可读性要好得多。现今,规则引擎的框架及工作越来越多,正说明了规则引擎的应用越来越广泛。同时,在企业级Web应用中,越来越多的应用规则引擎也是企业级Web应用的一个发展趋势。
参考文献
[1]闫欢,张宜生,李德群.规则引擎在制造企业MES中的研究与应用[J].计算机工程,2007,33(7):210-224.
[2]Ricardo Olivieri.Implement business logic with the Drools rules engine [EB/OL].http://www-128.ibm.com/developerworks/cn/java/j- drools/.2006,06,19.
[3]张彪.基于Rete算法的数据库通知引擎技术研究[D].上海海事大学硕士学位论文,2004.
[4]尤俊欣,饶若楠,詹晓峰.基于规则引擎的Web框架[J].计算机应用与软件,2007,24(2):2-22.
[5]JBoss Rules User Guide[EB/OL].http://labs.jboss.com/file-ac- cess/default/members/jbossrules/freezone/docs/3.0.5/html/index. html.
[6]PetShop之业务逻辑层设计[EB/OL].http://www.cnblogs.com/ wayfarer/archive/2006/11/05/550723.html.