网站大量收购闲置独家精品文档,联系QQ:2885784924

自动化控制系统软件:Allen-Bradley MicroLogix二次开发_(5).高级指令与编程技巧.docx

自动化控制系统软件:Allen-Bradley MicroLogix二次开发_(5).高级指令与编程技巧.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

高级指令与编程技巧

在上一节中,我们讨论了Allen-BradleyMicroLogix的基本指令和编程方法。现在,我们将进一步探讨一些高级指令和编程技巧,这些内容将帮助你更高效地编写控制逻辑,优化程序性能,并解决复杂的应用问题。

1.高级定时器和计数器指令

1.1定时器指令

1.1.1TONR(计时器保持累积)

TONR(TimerOnwithRetentive)指令是一种保持型定时器,即使定时器的使能条件(EN)为0,计时器的累积值也会保持不变。这对于需要在多个周期内保持计时状态的应用非常有用。

原理:

当使能条件为1时,TONR开始计时。

当使能条件为0时,TONR停止计时,但累积值保持不变。

可以通过复位指令(RES)清零累积值。

语法:

TONRT4,1000

T4:定时器的地址。

1000:定时时间(以毫秒为单位)。

示例:

假设我们需要在设备启动后累积计时10秒,即使设备在中间停止,计时器的累积值仍然保持不变,直到设备再次启动并达到10秒。

//定时器T4,累积计时10秒

TONRT4,10000

//检查定时器是否完成

IFT4.DNTHEN

//定时器完成,执行相应操作

SETB3:0/1

REST4//清零定时器

END

1.2计数器指令

1.2.1CTD(计数器减计数)

CTD(CounterDown)指令是一种减计数器,用于在每次触发时减少计数器的值,直到达到0。

原理:

当计数器的使能条件为1时,每次触发时计数器的值减1。

当计数器值达到0时,计数器的完成位(DN)置1。

可以通过复位指令(RES)清零计数器值。

语法:

CTDC1,10

C1:计数器的地址。

10:初始值。

示例:

假设我们需要在设备运行10次后执行某个操作。

//计数器C1,初始值为10

CTDC1,10

//检查计数器是否完成

IFC1.DNTHEN

//计数器完成,执行相应操作

SETB3:0/1

RESC1//清零计数器

END

2.高级逻辑控制指令

2.1XIC和XIO的组合使用

XIC(ExamineIfClosed)和XIO(ExamineIfOpen)是两个常用的逻辑控制指令,通过它们的组合可以实现更复杂的逻辑控制。

原理:

XIC:当输入位为1时,逻辑为真。

XIO:当输入位为0时,逻辑为真。

示例:

假设我们需要在设备启动(B3:0/0)且没有故障(B3:0/1)时执行某个操作。

//检查设备启动且没有故障

XICB3:0/0

XIOB3:0/1

OTEB3:0/2//设备启动且没有故障时,输出位B3:0/2为1

2.2序列控制指令

2.2.1JSR(JumptoSubroutine)

JSR(JumptoSubroutine)指令用于调用子程序。子程序可以帮助你组织代码,使其更模块化和易于维护。

原理:

JSR指令将程序跳转到指定的子程序地址。

子程序执行完毕后,程序会返回到调用点。

语法:

JSRSBR1

SBR1:子程序的地址。

示例:

假设我们需要在主程序中调用一个初始化子程序(SBR1),该子程序用于设置初始状态。

//主程序

JSRSBR1//调用初始化子程序

//初始化子程序SBR1

SBRSBR1

//设置初始状态

SETB3:0/0

CLRB3:0/1

RET//返回主程序

3.高级数据处理指令

3.1数据移动指令

3.1.1MOV(Move)

MOV指令用于将一个数据值从一个地址移动到另一个地址。

原理:

MOV指令将源地址的数据值复制到目标地址。

语法:

MOVN7:0,N7:1

N7:0:源地址。

N7:1:目标地址。

示例:

假设我们需要将一个传感器的读数(N7:0)移动到一个中间寄存器(N7:1)。

//将传感器读数移动到中间寄存器

MOVN7:0,N7:1

3.2数据比较指令

3.2.1CMP(Compare)

CMP指令用于比较两个数据值,并根据比较结果设置相应的状态位。

原理:

CMP指令比较源地址1和源地址2的数据值。

根据比较结果设置状态位:等于(EQ)、大于(GT)、小于(LT)、大于等于(GE)、小于等于(LE)。

语法:

CMPN7:0,N7:1,B3:0/0

N7:0:源地址1。

N7:1:源地址2。

B3:0/0:比较结果的状态位地址。

示例:

假设我们需要比较两个寄存器的值,并根据比较结果执行不同的操作。

文档评论(0)

找工业软件教程找老陈 + 关注
实名认证
服务提供商

寻找教程;翻译教程;题库提供;教程发布;计算机技术答疑;行业分析报告提供;

1亿VIP精品文档

相关文档