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

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

3天内不再提示

PLC功能指令使用基础:数据类型与寻址方式

autozhineng 来源:PLC与自控设备 2023-05-12 15:12 次阅读

S7-200 SMART PLC的存储单元(即编程元件)存储的数据都是二进制数。数据的长度称为字长,字长可分为位(1位二进制数,用b表示)、字节(8位二进制数,用B表示)、字(16位二进制数,用W表示)和双字(32位二进制数,用D表示)。

数据类型

1.字长

2. 数据的类型和范围

S7-200 SMART PLC的存储单元存储的数据类型可分为布尔型、整数型和实数型(浮点数)。

1)布尔型

布尔型数据只有1位,又称位型,用来表示开关量(或称数字量)的两种不同状态。当某编程元件为1时,称该元件为1状态,或称该元件处于ON状态,该元件对应的线圈“通电”,其常开触点闭合,常闭触点断开;当该元件为0时,称该元件为0状态,或称该元件处于OFF状态,该元件对应的线圈“失电”,其常开触点断开,常闭触点闭合。例如,输出继电器Q0.0的数据为布尔型。

2)整数型

整数型数据不带小数点,它分为无符号整数和有符号整数,有符号整数需要占用1个最高位表示数据的正负,通常规定最高位为0表示数据为正数,为1表示数据为负数。表1列出了不同字长的整数表示的数值范围。

表1不同字长的整数表示的数值范围

39f4541a-f092-11ed-90ce-dac502259ad0.png

3)实数型

实数型数据也称为浮点型数据,是一种带小数点的数据,它采用32位来表示(即字长为双字),其数据范围很大,正数范围为+1.175495E-38~+3.402823E+38,负数范围为-1.175495E-38~-3.402823E+38。

3.常数的编程书写格式

常数在编程时经常要用到。常数的长度可为字节、字和双字,常数在PLC中也是以二进制数形式存储的,但编程时常数可以十进制、十六进制、二进制、ASCII码或浮点数(实数)形式编写,然后由编程软件自动编译成二进制数下载到PLC中。

常数的编程书写格式见表2。

表2常数的编程书写格式

3a0a6a5c-f092-11ed-90ce-dac502259ad0.png

寻址方式

在S7 -200 SMART PLC中,数据是存于存储器中的,为了存取方便,需要对存储器的每个存储单元进行编址。在访问数据时,只要找到某单元的地址,就能对该单元的数据进行存取。S7 -200 PLC的寻址方式主要有两种:直接寻址和间接寻址。

1.直接寻址

1)编址

要了解存储器的寻址方法,须先掌握其编址方法。S7 -200 SMART PLC的存储单元编址有一定的规律,它将存储器按功能不同划分成若干个区,如I区(输入继电器区)、Q区(输出继电器区)、M区、SM区、V区、L区等,由于每个区又有很多存储单元,因而这些单元需要进行编址。PLC存储区常采用以下方式编址。

①I、Q、M、SM、S区按位顺序编址,如I0.0~I15.7、M0.0~M1.7。

②V、L区按字节顺序编址,如VB0~VB2047、LB0~LB63。

AI、AQ区按字顺序编址,如AIW0~AIW30、AQW0~AQW30。

④T、C、HC、AC区直接按编号大小编址,如T0~T255、C0~C255、AC0~AC3。

2)直接寻址方法

直接寻址通过直接指定要访问存储单元的区域、长度和位置来查找到该单元。S7 -200 SMART PLC直接寻址方法主要有:

①位寻址。位寻址格式为:位单元寻址=存储区名(元件名)+字节地址。位地址

例如,寻址时给出I2.3,要查找的地址是I存储区第2字节的第3位,如图1所示。

3a37da64-f092-11ed-90ce-dac502259ad0.png

图1 位寻址举例

可进行位寻址的存储区有I、Q、M、SM、L、V、S。字节/字/双字寻址。

②字节/字/双字寻址是以字节、字或双字为单位进行的,寻址格式为:

字节/字/双字寻址=存储区名(元件名)+字长(字节、字或双字)+首字节地址

例如,寻址时给出VB100,要查找的地址为V存储区的第100字节;若给出VW100,则要查找的地址为V存储区的第100、101两个字节;若给出VD100,则要查找的地址为V存储区的第100~103四个字节。VB100、VW100、VD100之间的关系如图2所示,VW100即为VB100和VB101,VD100即为VB100~VB103。当VW100单元存储16位二进制数时,VB100存高字节(高8位),VB101存低字节(低8位);当VD100单元存储32位二进制数时,VB100存最高字节,VB103存最低字节。

3acee3a0-f092-11ed-90ce-dac502259ad0.png

图2 VB100、VW100、VD100之间的关系

可进行字节寻址的存储区有I、Q、M、SM、L、V、AC(仅低8位)、常数;可进行字寻址的存储区有I、Q、M、SM、L、V、T、C、AC(仅低16位)、常数;可进行双字寻址的存储区有I、Q、M、SM、L、V、AC(32位)、常数。

2.间接寻址

间接寻址是指不直接给出要访问单元的地址,而是将该单元的地址存在某些特殊存储单元中,这个用来存储地址的特殊存储单元称为指针,指针只能由V、L或AC(累加器)来承担。采用间接寻址方式在访问连续地址中的数据时很方便,使编程非常灵活。

间接寻址存取数据一般有三个过程:建立指针、用指针存取数据和修改指针。

1)建立指针

建立指针必须用双字传送指令(MOVD),利用该指令将要访问单元的地址存入指针(用来存储地址的特殊存储单元)中。指针建立举例如下。

MOVD &VB200, AC1 //将存储单元VB200的地址存入累加器AC1中指令中操作数前的“&”为地址符号,“&VB200”表示VB200的地址(而不是VB200中存储的数据),“//”为注释符号,它后面的文字用来对指令进行注释说明,软件不会对其后面的内容进行编译。在建立指针时,指令中的第2个操作数的字长必必须是双字存储单元,如AC、VD、LD。

2)用指针存取数据

指针建立后,就可以利用指针来存取数据。举例如下。

MOVD &VB200,AC0 //建立指针,将存储单元VB200的地址存入累加器AC0中

MOVW *AC0, AC1 //以AC0中的地址(VB200的地址)作为首地址,将连续两个字节(一个字,即VB200、VB201)单元中的数据存入AC1中

MOVD*AC0, AC1 //以AC0中的地址(VB200的地址)作为首地址,将连续四个字节(双字,即VB200~VB203)单元中的数据存入AC1中

指令中操作数前的“*”表示该操作数是一个指针(存有地址的存储单元)。下面通过图3来说明上述指令的执行过程。

3ae18d34-f092-11ed-90ce-dac502259ad0.png

图3 间接寻址说明图

“MOVD &VB200, AC0”指令执行的结果是AC0中存入存储单元VB200的地址;“MOVW *AC0, AC1”指令执行的结果是以AC0中的VB200地址作为首地址,将连续两个字节单元(VB200、VB201)中的数据存入AC1中,如果VB200、VB201单元中的数据分别为12、34,则该指令执行后,AC1的低16位就存入了“1234”;“MOVD *AC0, AC1”指令执行的结果是以AC0中的VB200地址作为首地址,将连续四个字节单元(VB200~VB203)中的数据存入AC1中,该指令执行后,AC1中就存入了“12345678”。

3)修改指针

指针(用来存储地址的特殊存储单元)的字长为双字(32位),修改指针值需要用双字指令。常用的双字指令有双字加法指令(ADDD)和双字加1指令(INCD)。在修改指针值、存取字节时,指针值加1;存取字时,指针值加2;存取双字时,指针值加4。修改指针值举例如下。

MOVD &VB200, AC0//建立指针

INCD AC0//将AC0中的值加1(即地址值增1)

INCD AC0//将AC0中的地址值再增1

MOVW *AC0, AC1 //读指针,以AC0中的新地址作为首地址,将它所对应连续两个字节单元中的数据存入AC1中

以图6-3为例,上述程序执行的结果是以AC0中的VB202单元地址为首地址,将VB202、VB203单元中的数据56、78存入AC1的低16位。

审核编辑:汤梓红

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

    关注

    5019

    文章

    13401

    浏览量

    466000
  • SMART
    +关注

    关注

    3

    文章

    228

    浏览量

    44785
  • 指令
    +关注

    关注

    1

    文章

    613

    浏览量

    35851
  • S7-200
    +关注

    关注

    13

    文章

    409

    浏览量

    50601
  • 数据类型
    +关注

    关注

    0

    文章

    236

    浏览量

    13669

原文标题:PLC功能指令使用基础:数据类型与寻址方式

文章出处:【微信号:PLC与自控设备,微信公众号:PLC与自控设备】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    详解PLC的工作原理和数据类型

    PLC数据类型&&寻址方式 (这个地方要分清楚,PLC的存储空间大小(位字节字双字BIT BYTE WORD DWORD)、储存器
    发表于 10-26 11:38 2962次阅读

    数据处理指令寻址方式解析

    4.1 数据处理指令寻址方式 4.1.1 数据处理指令
    发表于 10-18 14:45 2次下载
    <b class='flag-5'>数据</b>处理<b class='flag-5'>指令</b>的<b class='flag-5'>寻址</b><b class='flag-5'>方式</b>解析

    ARM指令寻址方式之内存访问指令寻址

    4.2 内存访问指令寻址 根据内存访问指令的分类,内存访问指令寻址方式可以分为以下几种。 ①
    发表于 10-18 16:32 1次下载
    ARM<b class='flag-5'>指令</b><b class='flag-5'>寻址</b><b class='flag-5'>方式</b>之内存访问<b class='flag-5'>指令</b><b class='flag-5'>寻址</b>

    标准PLC数据类型 (UDT)之间的差别

    要创建 F 型 PLC 数据类型 (UDT) ,请启用“添加新 PLC 数据类型”(Add new PLC data t ype) 对
    的头像 发表于 06-23 11:09 2749次阅读

    西门子博途F型PLC数据类型与标准PLC数据类型的差别

    可以像使用标准 PLC 数据类型 (UDT) 那样,声明和使用 F 型 PLC 数据类型 (UDT) 。可以在安全程序中以及标准用户程序中使用 F 型
    的头像 发表于 07-08 10:15 3630次阅读

    结构数据类型(Struct)及应用案例

    Struct数据类型使用非常灵活,随时可以使用,但是相对于PLC数据类型 (UDT) 有以下缺点,所以建议需要使用Struct类型时,可以使用PLC
    的头像 发表于 07-27 16:10 1936次阅读

    关于三菱寻址方式的介绍

    直接寻址:直接给出地址,基本逻辑指令都是直接寻址方式功能指令中,大部分也都是直接寻址。比如下面
    发表于 11-29 11:00 1676次阅读

    PLC数据类型的种类 常见的转换方法

      PLC数据类型是指编程软件中用来表示变量、常量、对象等数据类型。不同的PLC软件可能会支持不同的
    发表于 03-17 17:41 3.6w次阅读

    图文讲解PLC功能指令,教你如何正确使用功能指令

    功能指令表达的表示形式:PLC的发展多用于顺序控制,利用定时器,计数器等的的组合取代一般的控制系统,带有功能指令PLC,在使用价值,使用范围都会更广。所以本章为大家介绍
    的头像 发表于 05-05 14:44 7150次阅读
    图文讲解<b class='flag-5'>PLC</b>的<b class='flag-5'>功能指令</b>,教你如何正确使用<b class='flag-5'>功能指令</b>

    西门子博途:使用PLC数据类型 (UDT)

    PLC 数据类型 (UDT) 是可自行定义且在程序中可以多次使用的数据结构。 此结构可包含不同数据类型的多个元素。 声明 PLC
    的头像 发表于 07-12 17:36 8565次阅读
    西门子博途:使用<b class='flag-5'>PLC</b><b class='flag-5'>数据类型</b> (UDT)

    浅谈PLC定义数据类型的应用

    PLC定义数据类型以下用一个例子介绍PLC定义数据类型的应用,以便进一步理解PLC定义数据类型
    的头像 发表于 07-24 16:07 1449次阅读
    浅谈<b class='flag-5'>PLC</b>定义<b class='flag-5'>数据类型</b>的应用

    F型PLC数据类型与标准PLC数据类型(UDT)之间的差别在哪?

    可以像使用标准 PLC 数据类型 (UDT) 那样,声明和使用 F 型 PLC 数据类型 (UDT) 。可以在安全程序中以及标准用户程序中使用 F 型
    的头像 发表于 08-27 09:54 1261次阅读
    F型<b class='flag-5'>PLC</b><b class='flag-5'>数据类型</b>与标准<b class='flag-5'>PLC</b><b class='flag-5'>数据类型</b>(UDT)之间的差别在哪?

    PLC 数据类型 (UDT) 的基本知识

    说明 PLC 数据类型 (UDT) 是一种复杂的用户自定义数据类型,用于声明一个变量。这种数据类型是一个由多个不同数据类型元素组成的
    的头像 发表于 09-10 09:46 5064次阅读
    <b class='flag-5'>PLC</b> <b class='flag-5'>数据类型</b> (UDT) 的基本知识

    PLC功能指令数据类型寻址方式

    要了解存储器的寻址方法,须先掌握其编址方法。S7 -200 SMART PLC的存储单元编址有一定的规律,它将存储器按功能不同划分成若干个区,如I区(输入继电器区)、Q区(输出继电器区)、M区、SM
    发表于 12-07 09:43 2487次阅读
    <b class='flag-5'>PLC</b><b class='flag-5'>功能指令</b>:<b class='flag-5'>数据类型</b>和<b class='flag-5'>寻址</b><b class='flag-5'>方式</b>

    plc数据类型怎么理解和应用

    PLC(可编程逻辑控制器)是一种工业自动化设备,用于控制机械和工业过程。在PLC编程中,数据类型是非常重要的概念,因为它决定了程序中数据的存储和处理
    的头像 发表于 12-19 11:39 4623次阅读