SIEMENS_PLC间接寻址及地址寄存器指令

合集下载

西门子S7-300系列PLC基本指令系统

西门子S7-300系列PLC基本指令系统

标识符
I IB IW ID
Q QB QW QD
M MB MW MD
PIB PIW PID PQB PQW PQD
最大范围
0~65 535.7 0~65 535 0~65 534 0~65 532
0~65 535.7 0~65 535 0~65 534 0~65 532
0~255.7 0~255 0~254 0~252
西门子s7300系列plc基本指令系统图图419419五种类型定时器总览五种类型定时器总览西门子s7300系列plc基本指令系统图420脉冲定时器指令spulset5tvbcdbiq40s5t2si00i01s5t2sspt5西门子s7300系列plc基本指令系统图421脉冲定时器时序西门子s7300系列plc基本指令系统图422接通延时定时器指令sodtt5tvbcdbiq40s5t2si00i01s5t2ssdt5西门子s7300系列plc基本指令系统图423延时接通定时器时序定时器线圈指令表412定时器线圈指令lad西门子s7300系列plc基本指令系统图424扩展脉冲定时器线圈指令s5t2sset5西门子s7300系列plc基本指令系统432计数器指令s7中有三种计数器加计数器加计数器scuscu减计数器减计数器scdscd可逆计数器可逆计数器scudscud图425累加器1低字的内容计数值127计数器组成在cpu中保留一块存储区作为计数器计数值存储区每个计数器占用两个字节计数器字中的第011位表示计数值二进制格式计数范围是0999
字节单元。位地址参数用一个点与字节地址分开。如:
M 10.1 当操作数长度是字或双字时,标识符后给出的标识参数是字 或双字内的最低字节单元号。图4.1给出了字节、字、双字的相 互关系及表示方法。当使用宽度为字或双字的地址时,应保证 没有生成任何重叠的字节分配,以免造成数据读写错误。

西门子PLC指令寻址方式

西门子PLC指令寻址方式

西门子PLC指令寻址方式西门子S7-200编程语言的基本单位是语句,而语句的构成是指令,每条指令有两部分:一部分是操作码,另一部分是操作数。

操作码指出这条指令的功能是什么,操作数则指明操作码所需要的数据所在。

所谓寻址,就是寻找操作数的过程。

S7-200 CPU的寻址分为三种:立即寻址、直接寻址和间接寻址。

1)立即寻址在一条指令中,如果操作码后面的操作数就是操作码所需要的具体数据,这种指令的寻址方式就叫立即寻址。

例如,在传送指令MOV IN OUT中,操作码“MOV”指出该指令的功能是把IN中的数据传送到OUT中,其中IN 为源操作数,OUT为目标操作数。

若该指令为MOVD 2505 VD500,则其功能为:将十进制数2505传送到VD500中,这里2505就是源操作数。

因这个操作数的数值已经在指令中,不用再去寻找,这个操作数即为立即数。

这个寻址方式就是立即寻址方式。

而目标操作数的数值在指令中并未给出,只给出了要传送到的地址VD500,这个操作数的寻址方式就是直接寻址。

2)直接寻址在一条指令中,如果操作码后面的操作数是以操作数所在地址的形式出现的,这种指令的寻址方式就叫直接寻址。

例如:MOVD VD400 VD500功能:将VD400中的双字数据传给VD500。

3)间接寻址在一条指令中,如果操作码后面的操作数是以操作数所在地址的地址形式出现的,这种指令的寻址方式就叫间接寻址。

例如:MOVD 2505 *VD500*VD500是指存放2505地址的地址。

若VD500中存放的是VDO,则VDO是存放2505的地址。

该指令的功能:将十进制数2505传送给VDO地址中。

西门子Splc指令系统

西门子Splc指令系统

用接通延时定时器设计周期和占空比可调的振荡电路。
振荡电路的高、低电平时间分别由两个定时器的PT值确定。
I1.1 M2.7
一个扫描周期
Q0.7
2s
3s
保持型接通延迟定时器及其时序图
关断延迟定时器及其时序图
脉冲定时器及其时序图
例:用脉冲定时器实现一个周期振荡电路
复位定时器指令
两条运输带顺序相连,为避免运送的物料在1号运输带上堆积, 按下起动按钮I0.3,1号带开始运行,8s后2号带自动起动。停机 的顺序与起动的顺序相反,按了停止按钮I0.2后,先停2号带,8s 后停1号带。Q1.1和Q0.6控制两台电动机M1和M2。
加计数器及其时序图
计数器的背景数据块结构
CTD: 参数 CD 的值从 0 变为 1 时,CTD 使计数值减 1。如果参 数 CV (当前计数值)的值等于或小于 0,则计数器输出参数 Q = 1 如果参数 LOAD 的值从 0 变为 1,则参数PV (预设值)的值将作为 新的 CV (当前计数值)装载到计数器。
每个定时器都使用一个存储在数据块中的结构来保存定时器数 据。 在编辑器中放置定时器指令时可分配该数据块。
接通延迟定时器及其时序图
定时器的背景数据块结构
练习
按下瞬时启动按钮I0.0,5秒后电动机启动, 按下瞬时停止按钮I0.1,10秒后电动机停止。
例 用接通延时定时器设计一个周期振荡电路。
I0.3
M2.3
Q0.6
8s
Q1.1
I0.2 8s
参数 IN从0变为1将启动TP、TON 和 TONR,从1变0 将启动 TOF。
ET 为定时开始后经过的时间,或称为已耗时间值(可以不为ET 指定地址),它们的数值类型为32位的Time,单位为ms,最大定 时时间为T#24D_20H_31M_23S_647MS。

详解西门子间接寻址 (2)

详解西门子间接寻址 (2)

详解西门子间接寻址【地址的概念】完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT 等)。

其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。

我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。

当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。

由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域2、这个区域中具体的位置比如:A其中的A是指令符,是A的操作数,也就是地址。

这个地址由两部分组成:Q:指的是映像输出区:就是这个映像输出区第二个字节的第0位。

由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:。

DB X 200 . 0其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。

这样,一个确切的地址组成,又可以写成:地址标识符+ 确切的数值单元【间接寻址的概念】寻址,就是指定指令要进行操作的地址。

给定指令操作的地址方法,就是寻址方法。

在谈间接寻址之前,我们简单的了解一下直接寻址。

所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A ,就是直接寻址,对于A这个指令来说,就是它要进行操作的地址。

这样看来,间接寻址就是间接的给出指令的确切操作数。

对,就是这个概念。

比如:A Q[MD100] ,A T[DBW100]。

程序语句中用方刮号[ ] 标明的内容,间接的指明了指令要进行的地址,这两个语句中的MD100和DBW100称为指针Pointer,它指向它们其中包含的数值,才是指令真正要执行的地址区域的确切位置。

间接由此得名。

西门子的间接寻址方式计有两大类型:存储器间接寻址和寄存器间接寻址。

西门子S7-200PLC指令系统手册

西门子S7-200PLC指令系统手册

(二)输出指令 梯形图(LAD)中,“()”表示线圈,“能 流”到线圈端,则线圈被激励,其Q寄存器的相 应位为1,反之为0; 语句表(STL)中,输出指令为“=”,把栈 顶值复制到操作数地址指定的存储器位(bit), 堆栈各级栈值不变。 (三)置位和复位指令-把从操作数(bit)指定 的地址开始的N个点都被置位或复位,其中N=1 -255
3. 修改指针:用自增或自减指令修改指针,则可 连续存取存储单元中的数据
五、用户程序的结构 用户程序可分为三个区:主程序、子程序和 中断程序; 主程序(OB1):是用户程序的主体,CPU 在每一个扫描周期都要执行一次主程序指令; 子程序:可选部分,只有主程序调用时才执 行; 中断程序:可选部分,只有当发生中断事件 时,才执行中断程序,可在扫描周期的任意点执 行。
(二)直接寻址-指令中直接给出操作数的地址 的寻址方式 例: 位寻址 AND Q5.5
字节寻址 ORB VB33 , LB21 字寻址 双字寻址 MOVW MOVD AC0 , AQW200 AC1 , VD200
(三)间接寻址-指令中给出了存放操作数地 址的存储单元的地址的寻址方式 1. 建立指针
S7-200 PLC 的SIMATIC指令集不支持完全 数据类型检查; 使用局部变量时,执行简单数据类型检查; 使用全局变量时,指令操作数为地址而不是 可选的数据类型时,执行无数据类型检查。 (二)数据长度和数值范围 数据长度:用字节型(B)、字型(W)、 双字型(D)分别表示8位、16位、32位数据; 不同的数据长度对应的数据范围如表5-4所示
在语句表(STL)中,没有EN允许输入端, 但允许执行指令的条件是栈顶的值必须为1。 功能框的ENO端是允许输出端,即允许功能 框的布尔量输出,用于指令的级联 ; 语句表(STL)中,用AENO(ANDENO)指 令产生允许输出。 (四)条件输入、无条件输入 条件输入:在梯形图(LAD)、功能块图 (FBD)中,与“能流”有关的功能框或线圈不直 接与左母线连接;

西门子plc指针的概念及应用资料

西门子plc指针的概念及应用资料

plc地址的概念完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。

其中的操作数是指令要执行的目标,也就是指令要进行操作的地址。

我们知道,在PLC中划有各种用途的存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,或者说来指定确切的大小。

当然定时器T、计数器C不存在这种衡量体制,它们仅用位来衡量。

由此我们可以得到,要描述一个地址,至少应该包含两个要素:1、存储的区域2、这个区域中具体的位置比如:A Q2.0其中的A是指令符,Q2.0是A的操作数,也就是地址。

这个地址由两部分组成:Q:指的是映像输出区2.0:就是这个映像输出区第二个字节的第0位。

由此,我们得出,一个确切的地址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:DBX200.0。

DB X 200 .其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:地址标识符。

这样,一个确切的地址组成,又可以写成:地址标识符 + 确切的数值单【间接寻址的概念】寻址,就是指定指令要进行操作的地址。

给定指令操作的地址方法,就是寻址方法。

在谈间接寻址之前,我们简单的了解一下直接寻址。

所谓直接寻址,简单的说,就是直接给出指令的确切操作数,象上面所说的,A Q2.0,就是直接寻址,对于A这个指令来说,Q2.0就是它要进行操作的地址。

这样看来,间接寻址就是间接的给出指令的确切操作数。

对,就是这个概念。

比如:A Q[MD100] ,A T[DBW100]。

程序语句中用方刮号 [ ] 标明的内容,间接的指明了指令要进行的地址,这两个语句中的MD100和DBW100称为指针Pointer,它指向它们其中包含的数值,才是指令真正要执行的地址区域的确切位置。

间接由此得名。

寄存器PLC地址与寄存器modbus协议地址

寄存器PLC地址与寄存器modbus协议地址

寄存器PLC地址与寄存器modbus协议地址寄存器PLC地址指存放于控制器中的地址,这些控制器可以是PLC,也可以使触摸屏,或是⽂本显⽰器。

PLC地址⼀般采⽤10进制描述,共有5位,其中第⼀位代码寄存器类型。

第⼀位数字和寄存器类型的对应关系如表1所⽰。

PLC地址例如40001、30002等。

寄存器modbus协议地址指通信时使⽤的寄存器地址,在实际编程中,由于寄存器PLC地址前缀的区分作⽤,所以只需说明后4位数,⽽且需转换为4位⼗六进制地址。

例如PLC地址40001对应寻址地址0x0000,40002对应寻址地址0x0001,寄存器寻址地址⼀般使⽤16进制描述。

再如,PLC寄存器地址40003对应协议地址0002,PLC寄存器地址30003对应协议地址0002。

在实际编程中,由于前缀的区分作⽤,所以只需说明后4位数,⽽且需转换为4位⼗六进制地址。

⽀持 Modbus 协议的设备或软件,使⽤时⽤户直接设置或看到的应 当是 Modbus 数据地址。

Modbus 地址所访问的数据,是通过各种 “功能”读写⽽来。

功能码是 Modbus 地址的底层。

如果 Modbus 通 信的⼀⽅提供的所谓 Modbus 协议只有功能码,则需要注意了解此 功能号与 Modbus 地址间的对应关系。

使⽤ modbus 地址时应注意下述问题:1)40001~4xxxx 是美国 modicon 公司和 ge 公司 plc 使⽤的 modbus 地址,它是基于1的地址,即同类元件的⾸地址为1。

西门⼦plc 的 modbus 地址是基于0的地址。

2)美国的 modbus 地址左起第2位⽤来表⽰元件的类型,例如 i0.0的 modbus 地址为010001。

因为数据类型已经包含在功能码中了,西门⼦的 i0.0的 modbus 地址实际上为000000, i2.0的 modbus 地址为 000016(或⼗六进制数16#0010) ,⽽不是010017。

7-西门子S7-200系列PLC应用指令解析

7-西门子S7-200系列PLC应用指令解析
2018/10/14
电气控制与PLC
6
高速计数器指令
2018/10/14
电气控制与PLC
7
时钟指令
读实时时钟指令(TODR):从硬件时钟中读取当前日期,并把它装载到一个8字节、 起始地址为T的时间缓冲区。 写实时时钟指令(TODW):将当前时间和日期写入硬件时钟,当前时钟存储在以地 址T开始的8字节时间缓冲区中。时钟指令见表。 使ENO=0的错误条件:间接寻址(代码:0006)、TOD数据错误(代码:0007,只对 写实时时钟指令有效)、时钟模块不存在(代码:000C)。 时钟指令所有日期和时间值必须按照BCD码的格式编码,如图所示。 时间和日期(TOD)时钟在电源掉电或内存丢失后,初始化日期和时间为:日期01Jan-90、时间00:00:00、星期日。
LAD BGN-ITIME EN ENO OUT FBD BGN-ITIME EN ENO OUT BITIM OUT IN: ID、QD、VD、MD、SMD、SD、 LD、HC、AC、*VD、*LD、*AC OUT: ID、QD、VD、MD、SMD、SD、 LD、AC、*VD、*LD、*AC CITIM IN,OUT STL
时间间隔定时器指令
时间间隔定时器指令:触发时间间隔指令(BITIM)和计算时间间隔指令(CITIM)。 BITIM指令:读内臵的1ms计数器的当前值,并将此值存储到OUT中,双字ms值的最 大定时间隔是2的32次幂或49.7天。 CITIM指令:计算当前时间和IN提供的值之间的时间差,时间差被存储到OUT中,双 字ms值的最大定时间隔是2的32次幂或49.7天。依据BITIM指令执行的时间,CITIM自动 处理在最大间隔内发生的1ms定时器翻转。
2018/10/14

西门子plc的4种寻址方式

西门子plc的4种寻址方式

西门子plc的4种寻址方式立即寻址是对操作数是常数或常量的寻址方式,其特点是操作数值直接表示在指令中,出现在指令中的操作数称为立即数。

有些指令的操作数是唯一的,为简化起见,并不在指令中写出。

立即寻址方式可用来提供常数、设置初值等。

常数值可分为字节、字、双字型等数据。

CPU以二进制方式存储所有常数。

在指令中可用十进制、十六进制、ASCII码或浮点数形式来表示操作数。

立即寻址示例:SET 说明:把RLO置1OW W#16#320 将常量W#16#320与ACCU1“或”运算L 1352 把整数1352装入ACCU1L‘ABCD’把ASCII码字符ABCD装入ACCU1L C#100 把BCD码常数100(计数值)装入ACCU1AW W#16#3A12 常数W316#3 A12与ACCU1的低位相“与”,运算结果在ACCU1的低字中。

存储器直接寻址包括对寄存器和存储器的直接寻址。

在直接寻址的指令中,直接给出操作数的存储单元地址,包括寄存器或存储器的区域、长度和位置,根据这个地址就可以立即找到该数据。

例如,用MW200指定位存储区中的字,地址为200;MB100表示以字节方式存取,MW100表示存取MB100、MB101组成的字,MD100表示存取MB100~ MB103组成的双字。

在指令中,数据类型应与指令标识符相匹配。

直接寻址编程示例:A IO.0 说明:对输入位10.0进行“与”逻辑操作S L20.0 把本地数据位I20.0置“l”= M115.4 使存储区位M115.4的内容等于RLO的内容L IB10 把输入字节IB10的内容装入ACCU1T DBD12 把ACCU1中的内容传送给数据双字DBD12中。

存储器间接寻址简称间接寻址。

该寻址方式在指令中以存储器的形式给出操作数所在存储器单元的地址,也就是说该存储器的内容是操作数所在存储器单元的地址。

该存储器一般称为地址指针,在指令中需写在方括号“[]”内。

西门子讲义2PLC基础

西门子讲义2PLC基础
3)接口信号DB(PLC→NCK和NCK→PLC)
信号接口就是可编程控制器与数控系统进行信息交互的媒体。信号接口中的信号内容是由CNC系统明确定义的。接口信号分为两类:PLC输入到NCK的信号和NCK输入给PLC的信号。
1PLC→NCK表示NCK(数控核心)接收PLC发出请求的输入信号。如控制方式(DB11.DBX0.2)、X轴控制使能(DB31.DBX2.1)等信号。这些信号对PLC而是输出信号,是可读可写的。其输出线圈地址不能重复。否则该信号地址状会出现不确定(除置位/复位输出线圈的地址可以重复之外)。
FC功能块:
FCO-FC255 西门子采用FCO-FC35
用户FC36-255
FB功能块:
FB0-FB255 西门子采用FBO-FB35
用户FB36-255
DB数据块:
DB1-DB399 西门子采用DBO-DB89
用户DB90-399
Systemblock要看S7-300/400系统功能说明书
数据类型
DB 数据块
OB组织块:西门子按需要定义好的,功能固化的。
OB1:主程序循环
OB10:时间中断,特定时间中断
OB35:循环中断,以固定间隔循环运行
OB40:硬件中断,来自不同模块(I/O模块、CPU 、FM模块)中断
OB100:启动块,CPU上电或热启动(Warm Restart)执行一次,
里面有初始化,清零或加使能等内容。
双字: DWORD ,32位。 如ID0 QD0 MD10 DB10. DBD10
双字数据:间隔4个字符,不能重叠,否则数据重复,赋值错误。
S7-300的块
OBorganizationblock 组织块(主程序块)
FC Function 功能(子程序)

西门子PLC指针编程

西门子PLC指针编程
dcs2fa崔坚simatictechnicalconsultingpage820078月寻址方式直接寻址存储区地址指针存储区地址指针寄存器间接寻址pointer数据类型指针any数据类型指针fb块形参的编程32位地址指针32位地址指针32位地址指针用于iqml数据块等存储器中位字节字及双字的寻址32位的地址指针可以使用一个双字表示第0位第2位作为寻址操作的位地址第3位第18位作为寻址操作的字节地址第19位第31位没有定义32位指针的格式如下
寄存器间接寻址
POINTER数据 类型指针
ANY数据类型 指针
FB块形参的 编程
//////////////////////////////////////////////////////////////////////// ///L///1//2/////////////////////
T LW 20 UC FC [LW 20] //无条件调用FC12 L 13 T MW 20 A I 2.3 CC FB [MW 20] //如果I2.3为1,调用FB13。
TAR2 <D> : 将AR1存储的地址指针传输给指明的变量中。
CAR
: 交换AR1和AR2的内容。
A&D CS2 FA 崔坚
SIMATIC Technical Consulting 2007 8月
Page 14
A&D AS CS2 FA Systems Support
寻址方式 直接寻址
存储区地址指针
POINTER数据 类型指针
ANY数据类型 指针
FB块形参的 编程
32位地址指针
地址寻址表示格式为: 地址存储器标识符[32位地址指针],例如指针存储于LD20中, 装载M存储器一个字节表示

西门子S7-300系列PLC基本指令系统

西门子S7-300系列PLC基本指令系统
//2#0000 0000 0000 0000 0000 0000 0101 0110 则是对I 10.6进行“与”操作。
第4章 西门子S7-300系列PLC基本指令系统
15
87
× Ö Ö¸ Õë ¸ñ ʽ N n n n n n n n n n n n
0 nnnn
λ 0 ÖÁ 15(· ¶ Χ 0 ÖÁ 65535)£º Óà ÓÚ ¶¨Ê±Æ÷(T)¡¢ ¼Æ Êý Æ÷(C)¡¢ Êý ¾Ý ¿é (DB)¡¢ ¹¦ ÄÜ ¿é (FB Óë FC)µÄ ± à ºÅ
第4章 西门子S7-300系列PLC基本指令系统
2. 操作数的表示法
在STEP7中,操作数有两种表示方法:一是物理地址(绝对 地址)表示法;二是符号地址表示法。
用物理地址表示操作数时,要明确指出操作数的所在存储区, 该操作数的位数具体位置。例如:Q 4.0。
STEP7 允许用符号地址表示操作数,如Q 4.0可用符号名 MOTOR_ON替代表示,符号名必须先定义后使用,而且符号名 必须是惟一的,不能重名。
ÔÚ Ñ­ »·É¨Ãè ÆÚ ¼ä ¡¢ ³Ì Ðò ÔË Ë㠵à µ½ µÄ Êä ³ö Öµ ´æ Èë ± ¾ Çø Óò ¡£ ÔÚ Ñ­ »·É¨Ãè µÄ Ä© β ´« ËÍ ÖÁ Êä ³ö Ä£ ° å
λ ´æ ´¢ Æ÷ (M)
± ¾ Çø Óò ´æ · Å ³Ì Ðò µÄ ÖÐ ¼ä ½á ¹û
Q 4.0 ——( ) 该指令中:——( )可认为是操作码,表示一个二进制赋值操作。 Q 4.0是操作数,表示赋值的对象。
梯形逻辑指令也可不带操作数。如:
——|NOT|—— 是对逻辑操作结果取反的操作。

S7-300间接寻址及地址寄存器指令3

S7-300间接寻址及地址寄存器指令3

"Motor_1".speed AUTOMATE Technology (Shanghai) Co., Ltd.© 2014
ANY数据类型的结构 ANY数据类型指针
Byte n Byte n+2
16#10 复制系数
Data type
Byte n+4
DB号
Byte n+6 1 O O O _ O R R R _ O O O O _ O B B B Byte n+8 B B B B _ B B B B _ B B B B _ B X X X
参数类型
BLOCK_FB BLOCK_FC BLOCK_DB BLOCK_SDB COUNTER TIMER
标识符
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0E 13
标识符
17 18 19 1A 1C 1D
AUTOMATE Technology (Shanghai) Co., Ltd.© 2014
间接寻址及地址寄存器指令
上海冠致工业自动化有限公司
AUTOMATE Technology (Shanghai) Co., Ltd.© 2014
1
在STEP7软件中,使用变量地址的方式有很多种 ,有最直接的直接寻址方式,有间接寻址方式;每 种都有自己的使用范围,一下来讲讲比较难掌握的
间接寻址方式。
AUTOMATE Technology (Shanghai) Co., Ltd.© 2014
P#DB43.DBX0.0 REAL 8
EN FC 43 ENO Measured_values Sum
Mean_value
AUTOMATE Technology (Shanghai) Co., Ltd.© 2014

plc寻址方式

plc寻址方式

举个例子比较容易理解。

比如MOV DM0010 DM0020,这句就是直接寻址,意思是把DM0010的数据放入DM0020中。

再比如MOV @DM0010 DM0020,这句就是间接寻址,意思是把DM0010中所指的数据放入DM0020中,如果这时DM0010中的数据为&50(&代表的是十进制数),那么这句话的含义就是把DM0050的数据放入DM0020,这时DM0010就是起的指针作用,指向的是DM0050中的数据。

以上举例是以OMRON的PLC程序为例,其他PLC可能程序写法不同,但是理解是一样的。

一、直接寻址方式指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。

在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。

如MOV BX, [1234H]二、寄存器间接寻址方式操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。

在不使用段超越前缀的情况下,有下列规定:若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS;若有效地址用BP来指定,则其缺省的段寄存器为SS(即:堆栈段)。

如MOV BX,[DI]1. MOV AX, ES:[1000H]源操作数的寻址方式是?直接寻址2. MOV AX, BAH[DI]源操作数的寻址方式是?寄存器相对寻址3. MOV AX, COUNT[BX]源操作数的寻址方式是?寄存器相对寻址4. MOV AX, COUNT[AX]源操作数的寻址方式是?MOV AX, COUNT[BX]寄存器相对寻址,MOV AX, COUNT[AX]是错的5. MOV [AX], COUNT[BX][DI]源操作数的寻址方式是?相对基址变址寻址6. MOV [BX], COUNT[BX][DI]源操作数的寻址方式是?相对基址变址寻址7. MOV AX, COUNT[BX][BP]源操作数的寻址方式是?错的8. MOV AX, COUNT[BX][SI]源操作数的寻址方式是?相对基址变址寻址。

西门子PLC高级编程3_间接寻址及地址寄存器指令

西门子PLC高级编程3_间接寻址及地址寄存器指令

A DBX 0.0
从0字节的第0位开始扫描
L DB19.DBW4 从DB 19中装载数据字4
L “Values”.Number_1 符号访问变量
Number_1. DB19 具有变量名“Values”
A DB10.DBX4.7 从DB 10 的第4个字节的第7位开始扫描
SIMATIC S7
Siemens AG 2001. All rights reserved.
地址标识符
Bit 31=0: 内部区域 Bit 31=1: 交叉区域
字节地址(无符号整数)
位地址
地址标识符:
000 I/O
010 输出(PIQ) 100 DB寄存器中的数据 110 自有本地数据
001 输入(PII) 011 位(Bit)存储器 101 DB寄存器2中的数据(DI) 111 调用块的LD(本地数据)
Date: File:
2018/7/13 PRO2_04E.2
SITRAIN Training for
Automation and Drives
地址
I Q PIB PQB M T C DBX DIX L
变量直接寻址
存储单元位置 (示例)
37.4 27.7 655 653 55.0 114 13 2001.6 406.1 88.5
循环删除
// 将终端地址(DBW18)作为指针 // 传送到MD 40; // 将循环计数器值设置为10 // 传到MB 50中; // 装载初始值 // 传到DB50中; // 装载指针 // 并减去2个字节 // 然后再传回 // 到MD 40; // 装载循环计数器 // 减去2个字节,条件满足则跳转;
L 11 T MW 60

西门子S7-300寻址方式

西门子S7-300寻址方式

1.直接地址:例如I0.0,Q1.7,PIW256,PQW512,MD20,T15,C16,DB1.DBB10,L10.0等2.符号寻址:例如qq,ww.aa等二者的详细描述参见下文:1.1间接寻址1.存储器间接寻址:16位指针,例如OPN DB[MW2]32位指针,例如A I[MD0]2.寄存器间接寻址:32位指针,例如A I[AR1,P#0.0],A [AR1,P#0.0]1.2S7-300/400寻址方式图解2如何使用指针指针用来指向一个地址。

使用这种寻址方式的优点在于可以在程序运行过程中实现变址。

指针用于存储器间接寻址程序中用于存储器间接寻址的语句包含一个指令、一个地址标识符、以及一个偏移量(偏移量必须在方括号内给出)。

下面给出一个双字格式的指针的例子:L P#8.7 把指针值装载到累加器1T I[MD2] 把指针值传送到MD2A I[MD2] 查询I8.7的信号状态= Q[MD2] 给输出位Q8.7赋值存储区域内部寻址及交叉寻址程序中采用这些寻址方式的语句包含一个指令以及下列内容:地址标识符、地址寄存器标识符、偏移量。

地址寄存器(AR1、AR2)及偏移量必须写在方括号内。

存储区域内部寻址例程指针不包含指示存储区域的信息:L P#8.7 把指针值装载到累加器1LAR1 把指针从累加器1装载到AR1A I[AR1,P#0.0] 查询I8.7的信号状态= Q[AR1,P#1.1] 给输出位Q10.0赋值偏移量0.0不起作用。

输出Q10.0 等于8.7 (AR1) 加偏移量1.1。

结果是10.0 ,而不是9.8,参见指针格式。

存储区域交叉寻址例程在存储区域交叉寻址中,指针中包含指示存储区域的信息(例子中为 I 和 Q)。

L P#I8.7 把指针值及存储区域标识装载到累加器1LAR1 把存储区域I 和地址8.7装载到AR1L P#Q8.7 把指针值和地址标识符装载到累加器1LAR2 把存储区域Q和地址8.7装载到AR2A [AR1,P#0.0] 查询输入位I8.7的信号状态= [AR2,P#1.1] 给输出位Q10.0赋值偏移量0.0不起作用。

西门子PLC指针编程

西门子PLC指针编程
ANY数据类型 指针
FB块形参的 编程
A&D CS2 FA 崔坚
SIMATIC Technical Consulting 2007 8月
Page 1
Automation and Drives
A&D AS CS2 FA Systems Support
寻址方式 直接寻址
存储区地址指针
寄存器间接寻址
POINTER数据 类型指针
FB块形参的 编程
L MD 4
//将地址指针加2(每个相邻的字地址相差2)。
L P#2.0
+D
T MD 4
L MW 100 //次数减1,跳回next,如果MW100等于0,跳
出循环操作LOOP指令,LOOP指令固定格式。
LOOP next
m1: FP M 10.0 //如果数值相当,记录MD4指针的数据,将转
ANY数据类型 指针
FB块形参的 编程
A&D CS2 FA 崔坚
SIMATIC Technical Consulting 2007 8月
Page 3
A&D AS CS2 FA Systems Support
寻址方式 直接寻址
存储区地址指针
寄存器间接寻址
POINTER数据 类型指针
ANY数据类型 指针
寻址方式 直接寻址
存存储储区区地地址址指指针针
寄存器间接寻址
POINTER数据 类型指针
ANY数据类型 指针
FB块形参的 编程
使用32位地址指针的注意事项:
OPN DB 1 L 20 T MD 20 L 11 T DBB [MD 20]
//MD20装载的地址指针为P#2.4。

间接寻址及地址寄存器指令

间接寻址及地址寄存器指令

间接寻址及地址寄存器指令详解西门子间接寻址【址概念】完整一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如NOT等)。

其中操作数是指令要执行目标,也就是指令要进行操作址。

我们知道,PLC中划有各种用途存储区,比如物理输入输出区P、映像输入区I、映像输出区Q、位存储区M、定时器T、计数器C、数据区DB和L等,同时我们还知道,每个区域可以用位(BIT)、字节(BYTE)、字(WORD)、双字(DWORD)来衡量,说来指定确切大小。

当然定时器T、计数器C不存这种衡量体制,它们仅用位来衡量。

由此我们可以到,要描述一个址,至少应该包含两个要素:1、存储区域2、这个区域中具体位置比如:A Q2.0其中A是指令符,Q2.0是A操作数,也就是址。

这个址由两部分组成:Q:指是映像输出区2.0:就是这个映像输出区第二个字节第0位。

由此,我们出,一个确切址组成应该是:〖存储区符〗〖存储区尺寸符〗〖尺寸数值〗.〖位数值〗,例如:DBX200.0。

DB X 200 . 0其中,我们又把〖存储区符〗〖存储区尺寸符〗这两个部分合称为:址标识符。

这样,一个确切址组成,又可以写成:址标识符+ 确切数值单元【间接寻址概念】寻址,就是指定指令要进行操作址。

给定指令操作址方法,就是寻址方法。

谈间接寻址之前,我们简单了解一下直接寻址。

所谓直接寻址,简单说,就是直接给出指令确切操作数,象上面所说,A Q2.0,就是直接寻址,A这个指令来说,Q2.0就是它要进行操作址。

这样看来,间接寻址就是间接给出指令确切操作数。

对,就是这个概念。

比如:A Q[MD100] ,A T[DBW100]。

程序语句中用方刮号[ ] 标明内容,间接指明了指令要进行址,这两个语句中MD100和DBW100称为指针Pointer,它指向它们其中包含数值,才是指令真正要执行址区域确切位置。

间接由此名。

西门子间接寻址方式计有两大类型:存储器间接寻址和寄存器间接寻址。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
间接寻址及地址寄存器指令
?
?
?
1 2
#Ini_Value
9 10 #Counter
L
W
[AR1,
P#200.0]
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.1
SITRAIN Training for
4
2.0
#Ini_Value
-
32 #Counter 36 40
9.0 10.0
11.0 . . .
Meas_Value[9] Meas_Value[10] Meas_Value[11] 等等。
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
Automation and Drives
交叉区域,寄存器间接寻址

AR 1或AR 2中的交叉区域指针:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 0 0 0 0 R R R 0 0 0 0 0 B B B B B B B B B B B B B B B B X X X 地址标识符 Bit 31=0: 内部区域 Bit 31=1: 交叉区域 字节地址(无符号整数) 位地址
Automation and Drives
STEP 7 中可能的寻址方式
寻址方式
直接寻址
间接寻址
绝对寻址
符号寻址
存储器间接寻址
寄存器间接寻址
16位指针 (DB, T, C)
示例: A I 4.0 L IW10 A "Mot_on" L #Num OPN DB[MW10] SP T["runtime"]
组合指令 (包含OPN D DB..)
L DB19.DBW4
L “Values”.Number_1
A DB10.DBX4.7
从DB 10 的第4个字节的第7位开始扫描
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.4
32位指针 内部区域
32位指针 内部区域
32位指针 交叉区域
A I[MD30] L IW["Number"]
A I[AR1,P#0.0] L ID[AR1,P#5.0]
A [AR1,P#0.0] T W[AR1,P#0.0]
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.6
SITRAIN Training for
Automation and Drives
用于存储器间接寻址ห้องสมุดไป่ตู้指针结构

16位指针的结构:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
215 20 22 20
未定义
字节地址(无符号整数)
位地址
装载32位指针常量(内部区域): L P#25.3 (P = 指针,字节地址= 25,位地址:3)
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.7

SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.5
SITRAIN Training for
Automation and Drives
存储器间接寻址

字格式的16位指针(用于对DB、T、C进行寻址)
SITRAIN Training for
Automation and Drives
在程序中分析数据块DB相关信息
用于DB寄存器的指令:

CDB:交换DB寄存器内容
DB寄存器 123 24
DI寄存器
24 指令执行前:
CDB
123 指令执行后:

将DB寄存器内容装载到ACCU1中 L DBNO (将打开的DB号装载到ACCU1中) L DINO (将打开的DI号装载到ACCU1中) 装载数据块长度 L DBLG (将打开的DB的长度/字节装载到ACCU1中) L DILG (将打开的DI的长度/字节装载到ACCU1中)
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.9
SITRAIN Training for
Automation and Drives
练习4.1:用间接寻址的方法进行循环编程
字节地址 0
DB41 1.0 Meas_Value[1] Meas_Value[2]
SITRAIN Training for
Automation and Drives
存储器间接寻址的特性
用于存储16位和32位指针的地址区域:
位(Bit)存储区(绝对寻址或符号寻址) 例如: OPN DB[MW30],OPN DI[“Motor_1”] 等。 A I[MD30],T QD["Speed_1"],等) 本地数据堆栈(绝对寻址或符号寻址, 例如: OPN DB[LW10],OPN DI[#DB_NO]等。 A I[LD10],T QD[#Par_Pointer],等。) 全局(共享) 数据块(只能进行绝对寻址,DB必须预先打开, 例如: OPN DB[DBW0] (覆盖掉DB寄存器内容!!!),OPN DI[DBW22]等。 A I[DBD10],T QD[DBD22],等。) 背景数据块(只能进行绝对寻址,DI必须预先打开, 例如: OPN DB[DIW20],OPN DI[DIW0] (覆盖掉DI寄存器内容!!!),等 。 A I[DID10], T QD[DID22]等。)
L
W
访问 宽度
[AR1,
地址 寄存器
P#200.0]
偏移 常量 扩展指令: L
IW 210
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2013-5-2 PRO2_04E.12
SITRAIN Training for
Automation and Drives
用于装载地址寄存器的指令
装载地址寄存器
LARn (n =1 or 2): LARn <地址> LARn P#<地址>

将ACCU1中的内容装载到ARn 将<地址>中的内容装载到ARn 将<地址>中的地址装载到ARn AR1,AR2 (比如: LAR1 AR2 及LAR2 AR1) MD,LD, DBD,DID (比如: L DBD5等) 32位全局变量(比如: LAR1 “索引”,等) 以及OB,FB及FC的TEMP(临时)变量 (比如: LAR1 #Address,等)
215 27 20
146
为0 ... 65 535 之间的无符号整数

32位指针的结构(内部区域):
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 B B B B B B B B B B B B B B B B X X X
L T L next: T L T L L -D T L LOOP P#18.0 MD 40 10 MB 50 0 DBW[MD 40] MD 40 P#2.0 MD 40 MB 50 next
循环删除
// // // // // // // // // // // // 将终端地址(DBW18)作为指针 传送到MD 40; 将循环计数器值设置为10 传到MB 50中; 装载初始值 传到DB50中; 装载指针 并减去2个字节 然后再传回 到MD 40; 装载循环计数器 减去2个字节,条件满足则跳转;

地址标识符:
000 010 100 110
I/O 输出(PIQ) DB寄存器中的数据 自有本地数据
001 011 101 111
输入(PII) 位(Bit)存储器 DB寄存器2中的数据(DI) 调用块的LD(本地数据)

指令语法规则:
LAR1 P#I10.0 //设置AR1
AR1: 10000001 0000 0000 0000 0000 0101 0000 + 200
SITRAIN Training for
Automation and Drives
间接寻址示例
FC30:间接寻址示例
Network(段) 1:使用间接寻址方式打开DB
L #dbnumber T MW 100 OPN DB[MW 100] // 将DB号拷贝到MW100 // // 打开DB
Network (段) 2:
+ 200
L
M
W
[AR1,
P#200.0]
存储区域 访问 宽度
地址 寄存器
相关文档
最新文档