基于三菱PLC间接寻址的循环结构与排序算法实现

来源 :无线互联科技 | 被引量 : 0次 | 上传用户:yifengwuyang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘   要:三菱PLC中利用变址寄存器与其他的软元件编号组合在一起可以方便地实现对多个数据的寻址操作,也称间接寻址。在三菱PLC中结合间接寻址和其他指令可以实现类似C语言中的循环结构和排序算法,这种编程方式更为简便和灵活,通用性强,能帮助PLC编程人员掌握一些高级语言的基础知识。文章基于三菱PLC间接寻址,对实现循环结构与排序算法进行了分析。
  关键词:间接寻址;循环结构;排序算法
  在实际的项目应用当中,在对多个数据进行操作时,经常需要间接指定地址。所谓间接指定地址,就是区别于D0,D100等直接指定地址,而利用一个基准地址和间接指定数来指向一个新的地址的操作。间接指定地址相比直接指定地址来说,指定的地址是可以变的,所以间接指定地址的操作又称作变址操作[1]。变址寄存器结合其他的软元件可以很方便地对一串数据进行操作,类似于高级语言中的指针。
  在高级语言中循环结构是结构化程序设计的基本结构之一,主要用到GOTO,DO while,FOR 3种语句[2]。在工控行业的可编程逻辑控制器(Programmable Logic Controller,PLC)控制中,很多问题都要用到循环语句,比如物流系统在一套产品入库时,需要产品按照指定要求实现自动、循环入库。三菱PLC中有FOR NEXT指令,但是在一些执行机构动作的顺序控制时,FOR NEXT指令不能很好地实现,此条指令更适合做简单的算法。利用判断指令和变址寄存器可以很方便地嵌套到顺序控制中去,实现对执行机构一些循环动作的控制,这种编程思路借鉴了高级语言中的FOR语句。
  排序也是PLC控制中经常遇到的难题,比如智能制造生产管理系统下单后,设备按照订单的编号大小进行生产,或者按照随机的要求生产,都要用到排序算法。三菱PLC中SORT指令是专门解决排序问题的,但是也有局限性,只能在程序中使用一次,不可重复使用。
  本文以某智能制造生产系统中两种典型的控制要求为模型,结合高级语言的知识,以MES下单、订单生产为例子,利用三菱PLC中的变址寄存器和其他指令实现循环和排序算法。
  1    MES系统介绍
  图1为某智能制造生产系统的结构。MES系统分配了固定地址的数据寄存器给PLC,用以存放订单和产品的相关信息。图2中给出了用户下载订单后,3个订单的信息存入到PLC中的数据寄存器,上层为订单的基本信息,下层为该订单的产品信息,每个订单的产品信息存入的是不同的数据寄存器,例如订单10000的产品1编号存入D406,订单10001的产品1编号存入的是D436,以此类推,下层界面会随订单的变化而变化。
  2    循环结构的实现
  2.1  循环语句
  C语言中有4种循环语句:goto,while,do while,for语句。
  For语句最简单的理解形式如下:for(循环变量赋初值,循环条件,循环变量增值),例如:FOR(i=1, i<100, i++)[3]。
  利用三菱PLC中的条件判断指令和变址寄存器再结合顺控指令的跳转即可以实现类似C语言中的for循环。所用到的指令为[Ld< z0 k100], incp z0,类似于C语言中的循环条件和循环变量增值。
  2.2  按照订单编号循环生产的实现
  订单由MES系统下单到用户的客户端,用户下载订单后根据订单编号依次进行生产,但由于产品种类及数量过多,在编写系统的PLC程序时,编程人员要反复大量地使用不同数据寄存器,十分繁琐而导致容易出错。三菱PLC在处理此类问题时用顺控指令结合变址寄存器能很快地实现条件的判断和循环。
  3    排序的实现
  3.1  排序算法
  C语言中排序算法大致分为比较算法和非比较算法。比较算法使用较多,基本上都是通过比较两个数的大小来实现,比如冒泡排序、快速排序和插入排序。冒泡排序是最经典的排序算法,很适合初学者。
  在MES下单系统中,订单除了按照顺序循环生产外,还存在优先级的概念,即先生产哪一个订单。在编写此类问题的PLC程序时,就要对多个数据进行优先级别的排序,可采用类似于高级语言的冒泡排序。用变址寄存器结合查询指令SER排序可以很灵活地解决该问题。
  3.2  按照订单优先级进行排序的实现
  将3个订单的优先级存入D200~D203中。利用SER指令查找出3个数据中最小值的位置,以Z1分辨3个订单的状态(在MES系统中,订单状态寄存器为1时代表订单等待生产,2为正在生产,3为取消订单,4为生产完成);以Z2分辨当前最小的是哪个数据并将其存入D211~D213中。
  单个数据存入完毕后,将其值改变为K101(MES系统中优先级的最大值默认为K100)并利用MES留有空余的D404,D434,D464判别该数据是否已经被排序,当所有数据被排序完成后停止程序的运作。
  该程序只是范例,在完整的程序中,还有更多的条件需要考虑,仅提供了大概的框架。
  4    结语
  本文详细地介绍了利用三菱PLC的变址寄存器实现某智能制造生产系统中对多个订单的处理方法,包括订单的自动循环生产以及有订单优先级时该如何处理。
  本文所提供的梯形圖参考程序借鉴了高级语言的循环结构和排序算法,而目前工控行业对PLC编程人员掌握高级语言知识的能力要求越来越高,西门子TIA PROTAL中的SCL编程语言是根据C语言封装的,在数据处理算法方面有很大优势。将三菱PLC间接寻址的编程思路灵活运用,可以优化程序,解决数据处理逻辑和算法时的一些难点。
  [参考文献]
  [1]霍海波,范江波.基于三菱FX2N系列PLC软元件数据实时改变与显示设计[J].烟台师范学院学报(自然科学版),2006(1):31-36.
  [2]马学敏.计算机C语言循环语句的应用研究[J].中国新通信,2016(17):87-88.
  [3]王韬睿.三种简单排序算法及实现[J].通讯世界,2019(1):284-285.
其他文献
高血压病是一种常见病,系心脑血管病发病的最重要的危险因素,以动脉血压增高为主的临床综合征。世界卫生组织(WHO)的标准:舒张压在12.0kPa或收缩压在21.3kPa以上为高血压。在心脑血管病中,高血压不仅
“一元复始,万象更新”,在这辞旧迎新的美好时刻,我谨代表山西省建筑业协会向一年来给予协会工作大力关心、支持、帮助的各单位领导和同仁,表示衷心的感谢!并向大家致以新春的问
采用地优64与威优64按不同比例混栽试验示范结果,1:1混播控瘟效果达55.81%~66.01%,亩增稻谷14.6%以上,为最佳混栽配比。混栽控瘟机理测知,混栽区以ZC群小种为主,占69.76%;对照单栽区以28群小种为主占64.70%。初步认为混栽对稻
党的十八届三中全会在新的起点上吹响了全面深化改革的号角。大会刚闭幕,省委就召开常委(扩大)会议,对我省贯彻落实会议精神作出部署。我们要按照中央和省委的要求,把学习宣传贯彻
共生营销是指两个或两个以上的企业通过分享市场营销资源,达到降低成本、提高效率、增强市场竞争力的一种营销策略。
针对科技体制改革的新形势 ,提出要增加“三感”意识 ,借鉴各省专业研究所改革的经验 ,以现代企业管理模式进行科技体制改革的实践。强调研究所应以市场为导向 ,使科技为农业
每个中国人的梦想,汇集起来就是中国梦。在诸多人的梦想中,安居梦应是一个极具代表性、也非常实在的梦。安居,才有家;有家,才有根。安居,才能乐业。从一个侧面来看,或许可以说中国梦
二月二十八日,全省住房城乡建设暨党风廉政精神文明建设工作会议在太原隆重召开。会议提出,城市扩容提质是转型的根本所在,从今年开始到“十二五”末,我省将实施住房城建“十大工
在1989~1993年研究农田害鼠生物特性和发生规律的基础上,总结出一套农田害鼠“诱,杀,避”防治配套技术。提出冬季鼠密度在7%以下,春秋二次灭鼠控制鼠害的防策略,农田害鼠数量高峰期以仔鼠进入