组态王如何实现延时功能

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

科技信息0.引言组态王软件是国内第一家较有影响的组态软件,组态王没有专用定时器及延时函数,有些初学者常常不知道如何来实现延时(定时)控制,下面通过简单的应用举例来介绍组态王实现延时的几种方法。1.利用循环计数的方式实现延时(定时)在数据词典中定义或程序中自定义一个循环计数变量(如变量a),在事件命令语言“存在时”及应用程序命令语言“运行时”,执行a=a+1,如果命令程序的执行周期设置为1000ms,则a就是1秒的累加。这样通过循环计数的方式可实现延时(定时)功能。下面通过一个简单的例子来说明上述方法。控制要求:按下开门按钮,延时5s后,开门接触器闭合,门开始打开,直到碰到开门限位开关(SQ2)时,门停止运动[1]。采用应用程序命令语言来实现控制要求。在“运行时”输入如下程序:Longa;if(\\本站点\开门按钮==1&&\\本站点\关门按钮==0){\\本站点\状态=1;//开门a=0;}if(\\本站点\状态==1)//开门状态{if(\\本站点\SQ2==1)//开门到位\\本站点\Y1=0;//开门接触器断开else{\\本站点\Y2=0;//关门继电器断开a=a+1;if(a=50)//延时5秒\\本站点\Y1=1;//开门接触器接通}}并且把“运行时”命令程序的执行周期设置为100ms,如图1所示,这样当程序循环执行50次后,就实现了5秒的延时。图1循环计数方式实现延时2.利用组态王的系统时间变量来实现延时将当前时刻的时间与事件发生时的时间相比较来实现延时控制[2]。下面仍以上述例子来进行说明。1)定义两个内存整型变量:开始时间t0及当前时间t1。2)在事件命令语言事件描述中输入“状态==1”,“发生时”页面中输入“\\本站点\t0=\\本站点\$秒”,这样得到按下开门按钮的时间t0。如图2所示。3)在应用程序命令语言中输入如下程序:Longt;if(\\本站点\开门==1&&\\本站点\关门==0){\\本站点\状态=1;//开门}\\本站点\t1=\\本站点\$秒;if(t1=t0)t=\\本站点\t1-\\本站点\t0;elset=\\本站点\t1+(60-\\本站点\t0);if(\\本站点\状态==1)//开门状态{if(\\本站点\SQ2==1)//开门到位\\本站点\Y1=0;else{\\本站点\Y2=0;//关门继电器断开if(t=5)//延时5秒{\\本站点\Y1=1;//开门接触器接通\\本站点\水平移动=\\本站点\水平移动-2;}}}其中t即为延时时间。由于系统变量秒的范围为0到60,因此只适用短延时。如果要扩大延时则要用到系统变量“分”和“时”了。图2事件命令语言程序3.利用数据改变命令语言实现延时图3数据改变命令语言程序在数据改变命令语言中用组态王定义好的内存变量“秒”,建一个整型变量,每秒钟累加一次,相当于建立了一个秒计时器了。以上面延时控制为例,在数据词典中定义整型变量i,在数据改变命令语言“变量[.域]”中输入“本站点\$秒”,程序页面中输入“i=i+1”,如图3所示,这样i就是一个秒计时器了;然后采用应用程序命令语言来实现控制要求,在“运行时”输入如下程序:if(\\本站点\开门按钮==1&&\\本站点\关门按钮==0)组态王如何实现延时功能湖北职业技术学院机电工程学院彭登峰[摘要]本文通过举例介绍了组态王软件实现延时的几种方法:利用循环计数的方式实现延时;利用组态王的系统时间变量来实现延时;利用数据改变命令语言实现延时,并对三种方法的特点及其使用方法进行了分析。[关键词]组态王延时控制循环计数系统时间变量(下转第247页)——245科技信息{\\本站点\状态=1;//开门i=0;//秒计时器清0}if(\\本站点\状态==1)//开门状态{if(\\本站点\SQ2==1)//开门到位\\本站点\Y1=0;//开门接触器断开else{\\本站点\Y2=0;//关门继电器断开if(i=5)//延时5秒\\本站点\Y1=1;//开门接触器接通}}4.结束语在实际应用中,通过循环计数的方式实现延时是较为常用的一种方法。利用数据改变命令语言(变量秒)实现延时,方法简单,且延时范围广,值得推荐。方法2只适合于较短时间的延时,如果要实现较长时间延时,计算方法较为复杂,容易出错,不宜采用。此外,组态王还可通过读取下位机的定时时间来实现延时。参考文献[1]覃贵礼,吴尚庆.组态软件控制技术[M].北京:北京理工大学出版社,2007:247-251[2]袁秀英,牛云陞,余群威.组态控制技术[M].北京:电子工业出版社,2007:249-250(上接第245页)首先,输入第一个含有歧义词的测试字符串“我们家门前的大水沟很难过”,测试结果见表1。表1分词结果1然后输入第二个测试字符串:“2月17日,张三买了一些道具和服装,另外,还有一张三角形桌子”。这个测试字符串中包含非字符数据,歧义词,人名以及标点符号。测试结果见表2。表2分词结果2对比以上两组测试结果,笔者作了以下分析:首先,可以直观的看出ChineseAnalyzer采用了一元分词方法,分词效果基本等同Lucene的默认分词器StandardAnalyzer,但和StandardAnalyzer略有不同,Chinese-Analyzer过滤掉了非字符类型的数据。CJKAnalyzer则是二元分词方法,交叉双字进行分割。其次,IKAnalyzer和庖丁解牛给出的分词结果最为详尽,切分出的词数最多,这是由于它们采用了“正向迭代最细粒度切分算法”,支持细粒度和智能分词两种切分模式。最后是mmseg4j和imdict-chinese-analyzer,这两款分词器都给出了较为合理的分词结果,并且对人名和歧义词都能够进行准确的切分,这主要是因为它们都采用了特有的分词算法。mmseg4j用的是Chih-HaoTsai的MMSeg算法[4],提供Simple和Complex两种模式,本文采用的是默认的Complex模式。imdict-chinese-analyzer是imdict智能词典的智能中文分词模块,其算法基于隐马尔科夫模型(HiddenMarkovModel,HMM),是中国科学院计算技术研究所的ictclas中文分词程序的重新实现(基于Java)[5],该分词器的最大特点是,能够综合分析句子的结构、各个词的频率以及各个词汇之间的跳转频率,从而能产生最优化的分词结果,例如:对“买了一些道具和服装”的正确切分。3.3切分速度测试由于ChineseAnalyzer和CJKAnalyzer采用的是基于机械式单字分词和二分法分词,其切分速度非常快,但正确率却非常低,为了不影响测试结果的直观性,所以在切分速度测试中我们将这两个分词器排除在外,只对IKAnalyzer、mmseg4j、imdict-chinese-analyzer和庖丁解牛这四款分词器进行测试。测试在笔者的个人电脑上进行,笔者电脑配置如下:酷睿T6000双核CPU,1G内存,160G硬盘。JDK参数设置如下:“-Xms512m-Xmx1024m”。测试数据采用文件大小为62390KB,内容长度为33477693字符的中文文本文件。分词的结果由各分词器单独写入txt文件。为了获取更加科学的数据,笔者一共对这四款分词器做了三轮测试,分别取平均时间后计算切分速度。测试结果见图2。图2切分速度对比图从测试结果可以看出,切分速度最快的是庖丁解牛,可达80多万字每秒;IKAnalyzer和mmseg4j表现也不错,分别为60多万字每秒和70多万字每秒;imdict-chinese-analyzer的切分速度最慢,速度在每秒25万字左右。4.总结与评估由于实验条件的限制,笔者没有对上述6款分词器的正确率进行精确的测试,但根据3.2的测试结果分析可知,imdict-chinese-analyzer和mmseg4j由于实现了特殊的分词算法,所以其分词的正确率比庖丁解牛和IKAnalyzer要略高一些,据官方标称数据显示,mmseg4j的正确率可达到98%以上[6]。而基于简单一元二元分词算法的ChineseAnalyz-er和CJKAnalyzer的分词正确率相对就低得多。庖丁解牛和IKAnalyzer的分词正确率则跟其定义的分词词典有密切关系,通常其分词词典所收录的词条越多,其分词的正确率越高。综合考虑切分速度和正确率两方面的因素,笔者认为庖丁解牛和mmseg4j都是不错的选择。参考文献[1]李永春,丁华福.Lucene的全文检索的研究与应用[J].计算机技术与发展,2010,(2).[2]周拴龙.Lucene.net中文分词算法分析[J].郑州大学学报(理学版),2011,(3).[3]王志嘉,薛质.一种基于Lucene的中文分词的设计与测试[J].信息技术,2010,(12).[4]GoogleProjectHosting.[5]Chih-HaoTsai.MMSEG:AWordIdentificationSystemforMandarinChineseTextBasedonTwoVariantsoftheMaximumMatch-ingAlgorithm.[6]GoogleProjectHosting.分词器ChineseAnalyzerCJKAnalyzerIKAnalyzermmseg4jimdict-chinese-analyzer庖丁解牛分词结果我/们/家/门/前/的/大/水/沟/很/难/过我们/们家/家门/门前/前的/的大/大水/水沟/沟很/很难/难过我们/家/家门/门前/的/大/大水/水沟/很/很难/难过我们/家/门前/的/大水/水沟/很难/过我们/家/门前/的/大/水沟/很难/过我们/家门/门前/前的/大/大水/水沟/很难/难过分词器ChineseAnalyzerCJKAnalyzerIKAnalyzermmseg4jimdict-chinese-analyzer庖丁解牛分词结果月/日/张/三/买/了/一/些/道/具/和/服/装/另/外/还/有/一/张/三/角/形/桌/子2/月/17/日/,/张三/三买/买了/了一/一些/些道/道具/具和/和服/服装/,/另外/,/还有/有一/一张/张三/三角/角形/形桌/桌子2/2月/17/17日/,/张三/三/买/了/一/一些/道具/和/和服/服装/,/另外/,/还有/一/一张/张三/三角/三角形/桌子2/月/17/日/,/张三/买/了/一些/道具/和/服装/,/另外/,/还有/一/张/三角/三角形/桌子2/月/17/日/,/张三/买/了/一些/道具/和/服装/,/另外/,/还有/一/张/三角形/桌子2/月/17/日/,/张三/买/了/一些/道具/和/和服/服装/,/另外/,/还有/一/张/三角/三角形/桌子——247

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功