第三讲CompactLogix的编程介绍.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三讲CompactLogix的编程介绍

第三讲??CompactLogix的编程介绍 通过前一讲我们已经初步知道了如何使用RSLinx和RSLogix5000,这一讲我们将介绍CompactLogix的程序结构、编程语言、自定义数据结构、Add-on自定义指令、模拟量模块以及一些指令的使用。 ?????一. 程序结构和编程语言 ???????CompactLogix的程序结构分为任务-程序-子程序三级结构,每个CompactLogix控制器可以有多个任务,不同控制器类型的任务数是不同的,比如CompactLogix 1768系列有16个任务,而1769-L35E有8个任务。任务是CompactLogix 的第一级程序结构,任务分成三种类型,包括连续型任务、周期型任务和事件型任务。当控制器的CPU没有执行其它操作时,CPU执行连续型任务,连续型任务执行完毕后,又从头开始执行。连续型任务的执行是周而复始的过程,它的执行周期是不定的优先级比周期性任务和事件型任务都低。一个CompactLogix工程项目可以没有连续型任务,最多也只能有一个连续型任务。用于工厂自动化的顺序控制系统通常都有连续型任务,而对于过程控制的系统,则可能没有连续型任务。 ????????周期型任务就如它的名字一样是按照预先设定的时间间隔执行的任务。CompactLogix控制器是个多任务的系统,但是在某一时刻只能执行一个任务。如果某一个任务正在执行,此时另一个任务要被触发执行,这时控制器就要看看这两个任务的优先级,以决定是否中断正在执行的任务,转而去执行其它任务。CompactLogix具有15个优先级,数值从1-15,数值小的优先级高。优先级高的任务可以中断优先级低的任务,执行完优先级高的任务后再回头从低优先级任务中断处继续执行,连续型任务的优先级最低,它可被其它任务所中断。 ????????第三种任务类型是事件型任务,当一个指定的触发事件发生时才去执行事件型任务。在创建事件型任务时可以指定这种触发事件,触发事件有多种,比如有数字量信号发生变化时,运动控制执行某种操作时,消费者标签接收到数据时或是通过事件指令来触发等。但是,CompactLogix只支持通过事件指令来触发事件任务的执行。与周期性任务一样,事件型任务也有优先级。 ????????RSLogix5000编辑软件包括四种编程语言,除了常用的梯形图编程以外,还有功能块、结构化文本和顺序流程图。一般来说,原来是做顺序控制的更习惯使用梯形图编程,用于过程控制则更适合使用功能块编程,而如果是批次控制,使用顺序功能图则更有优势,如果需要编写一些数学算法可以使用结构化文本。 ??????? ? 二.延时开指令TON和计算指令CPT介绍 ????现在我们来看看CompactLogix控制器的指令。CompactLogix指令系统非常丰富,有常用的位指令、定时器和计时器指令、比较指令、数学运算指令和传输指令等,还有运动控制指令、串口通讯指令和ASCII指令等。我们这里只介绍两个指令:延时开指令TON和计算指令CPT。现在编写一段小程序,当输入模块的第2点动作0.5秒后,计算a1=(b1+c1)*d1的值,其中b1和c1为双整数,a1和d1为实数。 ?????(以下部分需要屏幕抓图,视频文件:)我们首先创建程序使用的标签再编写程序。在上面项目test1中,双击左边窗口Controller Tag,打开标签编辑窗口,在最后一行的第一列即name列上输入b1,这就创建了一个类型为双整形,名称为b1的标签,按照同样的方法创建c1标签,再按照同样的方法创建a1标签,由于创建标签的默认类型为双整数DINT,我们要创建的是实数,所以在a1行Data type列上将数据类型由DINT该为REAL。按照创建a1同样的方法创建d1。我们还要创建两个标签:一个是Compute,它是一个布尔量,是一个别名标签。创建后将其数据类型由DINT该为BOOL,同时由于是个别名标签,它代表的是输入模块的第2个输入点,所以在这一行的Alias for列上选择为Local:2:I.Data.2。最后一个标签是定时器标签ComputeDelay,将数据类型改为TIMER。 ???????双击连续任务下的mainroute,在梯形图编辑器中打开了test1,右键点击梯形图编辑器上的End,选择Add Rung 添加一条程序,添加一个常开点Examine On和一个延时开指令TON,常开点指令使用的标签为Compute。TON指令使用的定时器标签为ComputeDelay,设定值为500,定时器指令中使用的时间单位为1ms,设定值为500,即这个定时器为Compute动作后延时500毫秒动作。上面我们创建了ComputeDelay这个定时器数据类型,定时器数据类型是个预先定义的数据结构,它包含

文档评论(0)

yd327298 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档