0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于如何妙用PLC内部掉电保持寄存器

电子设计 来源:曾12345 作者:曾12345 2020-03-02 09:45 次阅读

我们在设计小型的PLC控制系统时,常常会需要在外部改变PLC内部的数据,譬如Counter, Timer或者Data的值,以适应生产过程的需要。而且要求系统关机以后,这些数据还能够保存在PLC内部,当下次开机后,这些数据可以被调出继续使用。

现在许多小型的PLC都或多或少地提供了掉电保持寄存器,以便在PLC断电的时候,保存用户想要保存的数据。但大多数时候,PLC制造厂商为了节约成本,不可能提供足够数量的掉电保持寄存器供系统设计人员使用,所以当被调整的数据项目超过PLC内部的掉电保持寄存器的数目的时候,我们不得不减少被调整的数据项目(固定或不用)或者购买具有更多掉电保持寄存器数目的PLC,这样的话,就使得生产机械缺乏灵活性和适应性,从而降低产品档次或增加成本。

本人在设计服装厂用热风缝合机时就遇到了这种情况,下面就介绍解决这种问题的一种方法,以便大家设计时参考。

所用PLC:松下FP0-C16T,被调整数据:16个,PLC内部掉电保持寄存器数目:10个『8个数据寄存器(DT1652-DT1659:8个各16Bit)和2个字的内部继电器(WR61、WR62:2个各16Bit)』。如果按常规的一个被调整数据占用一个数据寄存器的方法,这显然不能调整16个被调整数据,而只能调整10个被调整数据。为此,本人专门分析了16个被调整数据的数据调整范围,发现多数数据的调整范围只需要从0~255,即0~28-1;而掉电保持数据寄存器DT1652等内部的数据大小为216-1,即256×256-1;所以我们可以将一个被调整的数据只用到数据寄存器的低8位,那么该数据寄存器的高8位就可以来存储另一个被调整数据。

下面就列出该部分的程序:

1、开机时,分开掉电保持寄存器中高8位和低8位至另外两个数据寄存器:

其中,R9013是松下FP0系列PLC内部所规定的、在PLC从program状态到run状态时只动作一个PLC扫描周期的脉冲继电器。

指令F65是一个字与指令,它的作用就是将掉电保持数据寄存器DT1655内的数据与十六进制数FF进行字与,然后将结果送到一般数据寄存器DT0,这样就可以分离出掉电保持数据寄存器DT1655内数据的低8位;

同样第二行的字与指令可以分离出掉电保持数据寄存器DT1655内数据的高8位。

指令F120是一个不带进位右移指令,即:对数据字进行右移时,对高位进行补零。K8表示右移8位。

指令F0是一个字传送指令,就是将一般数据寄存器DT10内的数据传送到一般数据寄存器DT1。

上述程序段的目的就是在开机时将掉电保持数据寄存器DT1655内的数据分成两个被调整数据。

2、开机之后,将另外两个数据寄存器的数据合并至掉电保持寄存器的高8位和低8位:

R9014是松下FP0系列PLC内部所规定的、在PLC从program状态到run状态时、第二个PLC扫描周期开始动作的脉冲继电器。

指令F121是一个不带进位左移指令,K8即左移8位。

指令F66是一个字或指令,将一般数据寄存器DT20内的数据与一般数据寄存器DT0内的数据进行字或,结果送掉电保持寄存器DT1655。

由上可以看出,在PLC运行的时候,可以任意改变一般数据寄存器DT0和DT1中的数据,而这些改变也同时送到了掉电保持寄存器DT1655,这样,当PLC掉电时,所被调整的数据也就被保存了。

通过同样的方法,我们可以视被调整数据的大小,灵活的使用掉电保持寄存器的每一个Bit位,从而使我们在不增加成本的情况下,提高小型PLC控制系统的性能。



:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5114

    浏览量

    118012
  • plc
    plc
    +关注

    关注

    4981

    文章

    12333

    浏览量

    455650
收藏 人收藏

    评论

    相关推荐

    干货满满:ARM的内核寄存器讲解

    内核寄存器与外设寄存器: 内核寄存器与外设寄存器是完全不同的概念。内核寄存器是指 CPU 内部
    发表于 04-17 11:47 369次阅读
    干货满满:ARM的内核<b class='flag-5'>寄存器</b>讲解

    CPU的6个主要寄存器

    CPU寄存器是中央处理器内的组成部分,是有限存贮容量的高速存贮部件。寄存器是CPU内部的元件,包括通用寄存器、专用寄存器和控制
    的头像 发表于 02-03 15:15 1305次阅读

    S7-1200如何实现内部数据的掉电保持

    S7-1200 PLC 可以通过多种方式实现内部数据的掉电保持,以确保在断电或重启后数据不会丢失。
    的头像 发表于 01-29 16:11 3083次阅读

    labview读取三菱plc寄存器内容

    如何使用LabVIEW读取三菱PLC寄存器内容,并提供一些实例代码和注意事项。 首先,我们需要了解PLC寄存器的基本概念。PLC
    的头像 发表于 12-27 16:31 947次阅读

    请问ADE9078用户电能寄存器掉电以后会复位吗?

    ADE9078在计算电能的时候,通过内部电能寄存器累加到用户电能寄存器中,如果设置内部电能寄存器累加时间为10S,当累加时间当达到3S时,A
    发表于 12-26 06:34

    AD7763 datasheet内部增益寄存器可以改变吗?

    AD7763 datasheet中对于内部增益寄存器介绍的不够详细,只是说明了默认值为1.25,我想问下内部增益寄存器的值是否可以改变?如果可以改变那么改变的范围是多少,或者这个改变值
    发表于 12-22 06:54

    关于PLC的15个基础,你知道多少?

    西门子 系列 PLC 内部软继电器有哪几种?  输入继电器、输出继电器、辅助继电器、状态寄存器、定时器、计数器、 数据 寄存器
    发表于 11-29 11:13 231次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>PLC</b>的15个基础,你知道多少?

    关于CS1237内部参考电压和寄存器问题

    您好!最近有测试了贵司CS1237的芯片,也看了网上的程序例程,对这个芯片的寄存器REFO_OFF不是很清楚,能否帮忙解释下这关闭REF输出和正常输出的区别?然后这个寄存器的选择是跟内部参考电压有关
    发表于 11-21 16:23

    关于CS1237内部参考电压和寄存器问题

    您好!最近有测试了贵司CS1237的芯片,也看了网上的程序例程,对这个芯片的寄存器REFO_OFF不是很清楚,能否帮忙解释下这关闭REF输出和正常输出的区别?然后这个寄存器的选择是跟内部参考电压有关
    发表于 11-17 15:33

    CPSR寄存器和APSR寄存器的组成

    程序状态寄存器的作用就是反映处理器的状态信息。在程序运行期间我们可以通过查看程序状态寄存器的状态位来进行程序的分支跳转处理,或者我们可以设置程序状态寄存器的模式位来改变处理器的运行模式,或者我们可以设置程序状态
    的头像 发表于 10-20 11:38 2021次阅读
    CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的组成

    modbus中的保持寄存器是可以读写的吗?

    对主栈来说是不是可以读写保持寄存器
    发表于 10-12 07:58

    直接修改寄存器来输出内部时钟的方法

    电子发烧友网站提供《直接修改寄存器来输出内部时钟的方法.pdf》资料免费下载
    发表于 09-19 15:43 0次下载
    直接修改<b class='flag-5'>寄存器</b>来输出<b class='flag-5'>内部</b>时钟的方法

    寄存器是什么?怎么操作寄存器点亮LED灯?

    寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两
    的头像 发表于 07-21 16:59 3093次阅读
    <b class='flag-5'>寄存器</b>是什么?怎么操作<b class='flag-5'>寄存器</b>点亮LED灯?

    寄存器是什么 掌握使用寄存器做设计需要注意的事项

    既然RTL是以寄存器行为为基础,那么就必须先了解寄存器是什么,并且掌握使用寄存器做设计需要注意的事项。
    的头像 发表于 07-13 15:38 941次阅读
    <b class='flag-5'>寄存器</b>是什么 掌握使用<b class='flag-5'>寄存器</b>做设计需要注意的事项

    基于DUT内部寄存器值的镜像

    寄存器模型保持着DUT内部寄存器值的 镜像(mirror) 。 镜像值不能保证是正确的,因为寄存器模型只能感知到对这些寄存器的外部读写操作。
    的头像 发表于 06-24 12:02 594次阅读