S7-200间接寻址解析
S7-200指令详解
S7-200指令详解PLC在运行时需要处理的数据一般都根据数据的类型不同、数据的功能不同而把数据分成几类。
这些不同类型的数据被存放在不同的存储空间,从而形成不同的数据区。
S7-200的数据区可以分为数字量输入和输出映像区、模拟量输入和输出映像区、变量存储器区、顺序控制继电器区、位存储器区、特殊存储器区、定时器存储器区、计数器存储器区、局部存储器区、高速计数器区和累加器区。
3.1 S7-200的数据区1. 数字量输入和输出映象区(1) 数字量输入映像区(I区)数字量输入映像区是S7-200 CPU为输入端信号状态开辟的一个存贮区,用I表示。
在每次扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像区寄存器中。
该区的数据可以是位(1bit)、字节(8bit)、字(16bit)或者双字(32bit)。
其表示形式如下。
·用位表示I0.0、I0.1、…I0.7I1.0、I1.1、…I1.7…I15.0、I15.1、…I15.7共l28点。
输入映像区每个位地址包括存储器标识符、字节地址及位号三部分。
存储器标识符为“I”,字节地址为整数部分,位号为小数部分。
比如Il.0表明这个输入点是第1个字节的第0位。
·用字节表示IB0、IB1、…IB15共l6个字节。
输入映像区每个字节地址包括存储器字节标识符、字节地址两部分。
字节标识符为“IB”,字节地址为整数部分。
比如IB1表明这个输入字节是第1个字节,共8位,其中第0位是最低位,第7位是最高位。
·用字表示IW0、IW2、…IW14共8个字。
输入映像区每个字地址包括存储器字标识符、字地址两部分。
字标识符为“IW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,IW0中的IB0应该是高8位,IB1应该是低8位。
·用双字表示ID0、ID4、…ID12共4个双字。
S7-200操作数所在的存储单元地址表示及寻址方法表1
S7-200操作数所在的存储单元地址表示及寻址方法
区域名称
寻址方法
操作数类型
标识符
指令举例
输入映象寄存器I
在每次扫描周期开始,CPU对输入点进行采样,并将采样值存于输入映像寄存器中,供程序使用.
(输入)位
(输入)字节
(输入)字
(输入)双字
I
IB
IW
ID
AI 0.0
输入映象寄存器Q
在扫描周期的结尾,CPU将输出映象寄存器的内容输出到输出端点上.
SM0。0
该位绐终为1
SM1。0
操作结果= 0
SM0。1
首次扫描时为1
SM1。1
结果溢出或非法数值
SM0。2
保持数据丢失时为1
SM1。2
结果为负数
SM0。3
开机进入RUN时为1
一个扫描周期
SM1。3
被0除
SM0。4
时钟脉冲:30s闭/30s断开
SM1。4
超出表范围
SM0。5
时钟脉冲:0.5s闭合/0.5s断开
(存储器)字
(存储器)双字
V
VB
VW
VD
BMB VB 20,
VB 100,4
定时器T
带位操作的指令,存取定时器位,带字操作数的指令,存取当前值.
定时器号
T
TON T33,3
计数器C
带位操作的指令,存取计数器位,带字操作数的指令,存取当前值.
计时器号
C
CTD C50,3
局部存储器L
局部存储器与变量存储器很相拟,主要区别是:变量存储器是全局有效的,而局部存储器是局部有效的,S7-200 PLC有64个字节的局部存储器用于做暂存器或给子程序传递参数.
S7-200 SMART PLC指令系统
S7-200 SMART指令中的立即数(常数)可以为字节、字或双字。CPU
可以以二进制方式、十进制方式、十六进制方式、ASCII方式、浮点数方
式来存储。
•十进制格式 [十进制数],
取值范围为 字节0~255、字0~65535、双字0~4294967295。
例如
255
•十六进制格式 16#[十六进制数],
取值范围为 字节0~FF、字0~FFFF、双字0~FFFF FFFF。
例如
16#100F
•实数或浮点格式 [浮点数],
例如:
2.05
+1.175495Eห้องสมุดไป่ตู้3
•ASCII码格式 “[ASCII码文本]”。
例如
“ABCDEF”
•二进制格式 2#[二进制数]。
例如
2#1010-0101-1010-0101
表5-2 标准触点指令语句表的表示方法
•输出操作 输出操作由输出线圈和位地址bit构成。输出操作由输出操作码“=” 和线圈位地址bit构成。输出操作用梯形图、语句表的表示如图5-9所 示。 输出操作是把前面各逻辑运算的结果复制到输出线圈,从而使输出线 圈驱动的输出常开触点闭合,常闭触点断开。输出操作时,CPU是通 过输入/输出映像区来读/写输出的状态的。输出操作的操作数范围:I、 Q、M、SM、T、C、V、S、L(位)。
机电一体化
1)S7-200 SMART PLC寻址方式 S7-200 SMART PLC编程语言的基本单位是语句,而语句的构成是指令。
CPU将信息存储在不同存储单元,每个位置均具有唯一的地址。每条指令有两 部分组成,一部分是操作码,另一部分是操作数。操作码是指出这条指令的功 能是什么,操作数则指明了操作码所需要的数据所在。所谓寻址,就是寻找操 作数的过程。寻址时,数据地址以代表存储区类型的字母开始,随后是表示数 据长度的标记,然后是存储单元编号;对于二进制位寻址,还需要在一个小数 点分隔符后指定位编号。S7-200 SMART CPU的寻址方式可以分为三种,即 立即寻址、直接寻址和间接寻址。 (1)立即寻址 在一条指令中,如果操作码后面的操作数就是操作码所需要的具体数据,这种 指令的寻址方式就叫做立即寻址。
S7-200SMART间接寻址
S7-200 SMART 间接寻址一、间接寻址概念:1、间接寻址是指用指针来访问存储区的数据。
指针以双字的形式存储其它存储区的地址,只能将V 存储单元、L 存储单元或累加器寄存器(AC1、AC2、AC3)用作指针。
注意:S7-200 SMART CPU 允许指针访问下列存储区:I、Q、V、M、S、AI、AQ、SM、T(仅限当前值)和C(仅限当前值)。
不能使用间接寻址访问单个位或访问HC、L 或累加器存储区。
2、指针存储的就是存储器的内存地址或编号,如下所示,VB0表示的是一个存储器,而内存地址:16#08000000则就是VB0这个存储区所对应的内存地址,通过对这个内存地址的改变就可以实现对不同的存储区的访问,这就是间接寻址的过程。
3、间接寻址的使用过程主要分为建立指针,改变指针,通过指针实现存储器三步骤。
二、建立指针:要创建指针,用“&”符号加上要访问的存储区地址可建立一个指针,必须使用“移动双字”指令,将间接寻址的存储单元地址移至指针位置。
注意:修改指针的值时,请记住调整所访问数据的大小:访问字节时,指针值加1;访问定时器或计数器的字或当前值时,指针值加2;访问双字时,指针值加4。
三、修改指针:对指针中的数据进行修改,可以实现对存储地址的改变,如图所示通过对指针进行加法操作来改变指针中的所存的数据,该数据指向的是PLC中存储器的内存地址。
四、通过指针对数据进行存取:当指针的内容修改完后,需要根据修改后的指针的内容访问对应的存储区的数据,此时指令中的操作数是指针是,应该在操作数前面加上“*”号。
例程1.通过指针访问数据表所实现的功能:索引号VW1008=0时,将指定的配方0(VB100~VB104) 数据传送到(VB1500~VB1504) 索引号VW1008=1时,将指定的配方1(VB105~VB109) 数据传送到(VB1500~VB1504) 索引号VW1008=2时,将指定的配方2(VB110~VB114) 数据传送到(VB1500~VB1504) 索引号VW1008=3时,将指定的配方3(VB115~VB119) 数据传送到(VB1500~VB1504)例程2.通过指针存储数据表所实现的功能:索引号VW1008=0时,将(VB1500~VB1504)数据传送到指定的配方0(VB100~VB104) 索引号VW1008=1时,将(VB1500~VB1504)数据传送到指定的配方1(VB105~VB109) 索引号VW1008=2时,将(VB1500~VB1504)数据传送到指定的配方2(VB110~VB114) 索引号VW1008=3时,将(VB1500~VB1504)数据传送到指定的配方3(VB115~VB119)例程3.通过地址偏移量来访问V存储区数据所实现的功能:本例程可以实现对区任意字节数据的访问。
S7-200模拟量数据格式与寻址
S7-200模拟量数据格式与寻址
S7-200模拟量数据格式与寻址:
模拟量输入/输出数据是有符号整数,占用一个字长(两个字节),所以地址必须从偶数字节开始。
模拟量的转换精度为12位。
格式:
输入:AIW[起始字节地址]如AIW6
输出:AQW[起始字节地址]如AQW0
.每个模拟量输入模块,按模块的先后顺序和输入通道数目,以固定的递增顺序向后排地址。
例如:AIW0、AIW2、AIW4、AIW6、AIW8等。
对于EM231RTD(热电阻)两通道输入模块,不再占用空的通道,后面的模拟量输入点是紧接着排地址的。
.每个有模拟量输出的模块占两个输出通道。
即使第一个模块只有一个输出AQW0,第二个模块的输出地址也应从AQW4开始寻址(AQW2被第一个模块占用),依此类推。
.温度模拟量输入模块(EM231TC、EM231RTD)也按照上述规律寻址,但是所读取的数据是温度测量值的10倍(摄氏或华氏温度)。
如520相当于52.0度。
注意:每一模块的起始地址都可在STEP7-Micro/WIN中的菜单PLCInformation里在线读到。
图文详解S7-200SMART间接寻址方法
图文详解S7-200SMART间接寻址方法PLC寻址分为直接和间接两种,前面已经介绍了直接寻址使用方法,本文介绍间接寻址如何使用,间接寻址类似于地球上经纬度定位方式,地球上任意一个地方都有一个与之相对于的经度和纬度值,这样定位不再分区域,可以延伸到全球。
间接寻址也是如此,PLC中只有一个存储数据的硬件(硬盘),所谓的I,Q,M,V等区只是西门子开发人员定义出来的逻辑分区,类似电脑C,D,E,F盘,其实都处在一个硬盘中,并且都有相对应得一个编号,如果能找到地址的编号,同样可以对其进行寻址,并且不再受存储区的限制,能够大批量的访问连续或有一定规律的地址,这就是间接寻址。
间接寻址分三步:1.建立指针,即获取需要访问存储区起始地址对应编号。
&为地址符号,是S7-200SMART中特殊的编程写法,&VB0代表VB0处在整个存储区的地址编号(指针),可以理解成我们的身份证号码,是一个很大的数值,必须存储在32位存储器中,如VD100,LD0,AC1(AC0不能做指针)等。
2. 间接访问。
通过访问指针指向地址来进行寻址。
间接寻址支持字节,字,双字方式访问,如下图所示:*为访问指针符号,*AC1代表AC1所指向地址的数值,以字节访问则代表一个字节,字访问代表一个字,双字访问代表一个双字。
3.指针偏移。
访问完一个地址后可以以该地址为起始,通过加/减方式对指针进行偏移,从而实现其它地址的访问。
通常字节偏移1,字偏移2,双字偏移4(位不支持间接寻址)总结:间接寻址与直接寻址各有千秋,直接寻址直观简单,适合单个或少量的寻址,不管有没有规律都可以使用,可以满足大部分寻址要求。
间接寻址适合批量且连续或有一定规律的地址,当寻址量较大时,可以将数据设计成有规律,用间接方式寻址可以少写很多步程序,使编程更加简单。
S7-200 PLC寻址指令
✓(2)各元件介绍 ✓输入继电器(I) ✓输出继电器(Q) ✓通用辅助继电器(M) ✓特殊标志继电器(SM) ✓变量存储器(V) ✓局部变量存储器(L) ✓顺序控制继电器(S)
✓定时器(T) ✓计数器(C) ✓模拟量输入映像寄存器(AI)、模拟量
输出映像寄存器(AQ) ✓高速计数器(HC) ✓累加器(AC)
1.直接寻址 (1)编址 要了解存储器的寻址方法,必须先掌握其编址方法。S7-
200系列PLC的存储单元编址有一定的规律,它将存储器按 功能不同划分成若干个区,如I区(输入继电器区)、Q区 (输出继电器区)、M区、SM区、V区、L区等,由于每个 区又有很多存储单元,这些单元需要进行编址。
PLC存储区常采用以下方式编址: 1)I、Q、M、SM、S区按位顺序编址,如I0.0~I15.7、M0.0~M31.7。 2)V、L区按字节顺序编址,如VB0~ VB2047、LB0~ LB63。 3) AI、AQ区按字顺序编址,如AIW0~AIW30、AQW0~ AQW30。 4)T、C、HC、AC区直接按编号大小编址,如T0~ T255、C0~C255、
S7-200数据存储区及元件(内部资源)的 功能
外部输入点
输入端子
• 1. 输入/输出映像寄存器:S7-200 PLC编址范围(I0.0~I15.7) 输入映像寄存器(该区域可以按位操作又称输入继电器) 输入继电器线圈由外部信号驱动,常开触点和常闭触点供用
户编程使用。
输入继电器用来接收外部输入的开关量信号。它 和对应的输入端子相连,同时提供无数的常开和常闭 触点用于编程
双字来存取存储区的数据。
• 4. 顺序控制继电器(S)存储区 S又称状态元件,以实现顺序控制和步进控制。 S7-200 PLC编址范围S0.0~S31.7,可以按位、字节、字或双
S7-200SMART系列PLC的间接寻址功能
S7-200SMART系列PLC的间接寻址功能在PLC中使用的寻址方式分为直接寻址和间接寻址两种方式,所谓的直接寻址,就是直接使用存储区或寄存器的元件名称和地址编号,根据这个地址去找到该数据,而间接寻址,不直接给处存储区或寄存器的地址,而是通过对地址的地址进行访问来实习对存储区的数据读取,通俗的来讲,这个地址的地址就是一个编号或一个代号,这好比读书时每同学会有一个学号,老师在点名的时候,可以叫名字,也可以叫学号,叫名字就好比直接寻址,叫学号就好比间接寻址。
不管是叫名字还是叫学号,其实对应的都是同一个人。
如下图所示:VB0:就好比一个人的名字,而地址的地址16#08000000就相当于学号。
CPU会为每一个存储区分配一个32位大小的数值作为存储器地址的地址。
所有不管是通过间接寻址的方式还是直接寻址的方式其实是访问同一个存储器或是寄存器。
不同的PLC有不同的寻址方式,这里给大家介绍下西门子系列PLC的间接寻址的方式。
这里先给大家介绍下西门子S7-200系列的PLC的间接寻址的过程。
在S7-200系列PLC中,可以用间接寻址访问的存储有:输入过程映像区(I)、输出过程映像区(Q)、位存储器(M)、全局变量存储区(V)、顺控状态继电器(S)以及定时器(T)和计数器(C)。
在S7-200系列PLC中间接寻址的使用主要分为三步骤:(1)建立指针使用间接寻址对某个存储单元读写时,首先需要建立地址指针,指针为双字的长度,可作为指针的存储区有全局变量存储区V,局部变量存储区L和累加器(AC1\AC2\AC3),建立指针时,必须使用双字的传送指令(MOVD),将存储区中所要访问单元的地址装入用来作为指针的存储器单元或寄存器中。
如前面图中所示,若需要提取VB0地址的地址出来,则需要在VB0前面加上符号“&”即&VB0,&VB0所表示的就不是VB0的值了,而是VB0地址的地址即16#08000000.如下图所示:VD100表示指针,用于存储VB0这个存储器地址的地址。
S7-200硬件介绍及寻址
外插日期/时钟 作为CPU 221和CPU222的可选部件,同时集成 备份电池可保护您的数据长达200天
时钟精度: 2 分钟/月 25 摄氏度 7分钟/月 55 摄氏度
强大CPU功能
高速处理能力(每条二进制指令执行速度0.22µS) 强大灵活的通讯功能(PPI,MPI,自由口,以太网, Modem,
分钟月25摄氏度7分钟月55摄氏度外插存储器全面备份您的程序用户数据和组态信息外插电池当内部保持电容耗尽时可保持您的数据和内置时钟长达200天外插日期时钟作为cpu221和cpu222的可选部件同时集成备份电池可保护您的数据长达200天s7200强大灵活的通讯功能ppimpi自由口以太网modemprofibusdp和asicpu224xpcn高达100khzcpu内置两路高速脉冲输出20khzcpu224xpcn高达100khzpid回路控制ppi协议ppi是主从协议s722x既可作主站又可作从站通讯速率为96k192k和1875k波特率mpi协议用于s7300和s7400与s7200之间的通讯通讯速率为192和1875k波特率自由口通讯通讯速率从12kbps96k192k1152kbps用户可使用自定义的通讯协议与所用的智能设备通讯profibusdp协议asi接口协议ethernets7200的通讯能力
✓ 上面的逻辑运算其运算结果会对下面的逻辑运算起作用;相反, 下面的逻辑运算其运算结果只能到下一个扫描周期才能对上面的 逻辑运算起作用。
输出刷新阶段
✓ 当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间, CPU按照存在I/O映象区的运算结果,刷新所有对应的输出锁存电路, 再经输出电路驱动相应的外设。这时,才是PLC的真正输出。
S7-200 PLC寻址
识别绝对和符号地址用户可以用绝对或符号方式识别程序中的指令操作数。
绝对参考使用内存区和位或字节位置识别地址。
符号参考使用字母数字字符组合识别某地址(符号地址)或数值(符号常数)。
程序编辑器如何显示地址举例I0.0 绝对地址由内存区和地址数目指定(SIMATIC程序编辑器)%I0.0 在IEC中,百分比符号位于绝对地址之前(IEC程序编辑器)#INPUT1 #符号位于局部变量之前(SIMATIC或IEC程序编辑器)INPUT1 全局符号名(SIMATIC或IEC程序编辑器)??.? or ????红色问号表示未定义的地址(必须在程序编译之前定义)全局范围与局部范围在符号表中指定的符号值(全局变量表)具有全局范围,在局部变量表中指定的符号值具有局部范围。
全局符号全局符号可在SIMATIC和IEC程序编辑器中使用。
在SIMATIC程序中,用户使用符号表进行全局符号赋值。
在IEC程序中。
用户使用全局变量表进行全局符号赋值。
在程序程序中使用符号之前,不必执行符号赋值;用户可以在任何时间进行符号赋值。
局部变量局部变量可在SIMATIC和IEC程序编辑器中使用。
局部变量在各自的POU的局部变量表中赋值,其范围局限于建立局部变量的POU。
每个POU都有单独的局部变量表。
举例:用户在称作SBR1的子程序局部变量表中定义一个称作INPUT1的变量。
当用户从SBR1内参考INPUT1时,程序编辑器将其识别为SBR1的一个局部变量。
然而,如果用户从程序中的其他位置(例如,从OB1或第二个子程序)参考INPUT1,程序编辑器不将其视作局部变量(因为它位于SBR1之外),而将INPUT1视作未定义的全局符号。
局部变量表的硬件支持STEP 7-Micro/WIN的局部变量表功能要求硬件支持。
用户必须有一台CPU 221、CPU 222、CPU 224或CPU 226才能使用局部变量表。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++。
s7-200PLC的寻址
S7-200 CPU存储器区域的寻址方式
S7-200 CPU存储器区域的寻址方式
• 一、 CPU存储区域的立即数寻址 数据在指令中已常数形式出现,取出指令的同时也就取
出了操作数,这种寻址方式称为立即数寻址方式。CPU以二 进制方式存储常数,常数可分为字节、字双字数据,指令中 还可用十进制、十六进制、ASCII码或浮点数来表示。
S7-200 CPU存储器区域的寻址方式
• 二、CPU存储区域的直接寻址 在指令中直接使用存储器或寄存器的元件名称、地址编号来
查找数据,这种寻址方式称为直接寻址
元件符号(名称) I(输入继电器) Q(输出继电器) M(位存储器)
SM(特殊存储器) S(顺序控制继电器)
V(变量存储器) L(局部变量存储器)
T (定时器) C(计数器) AI(模拟量输入映像寄存器) AQ(模拟量输出映像寄存器) AC(累加器) H在数据区域
位寻址格式
数字量输入映像位区 数字量输出映像位区
位存储器标志位区 特殊存储器标志位区 顺序控制继电器存储器区
变量存储器区 局部存储器区 定时器存储器区 计数器存储器区 模拟量输入存储器区
S7-200 CPU存储器区域的寻址方式
3.特殊元器件的寻址方式
存储区内另有一些元件是有一定功能的器件,由于元件数量 很少,所以不用指出它们的字节,而是直接写出其编号。这类元 件包括:定时器(T)、计数器(C)、高速计数器(HC)和累 加器(AC)。其中T、C和HC的地址编号中各包含两个相关变量 信息,如T1,既表示T1定时器位状态,又表示此定时器的当前值。
Ax .y Ax .y Ax .y Ax .y Ax .y Ax .y Ax .y Ay Ay 无
在S7-200中如何对于一个项目实例进行间接域寻址
说明:
以下描述了在STEP 7 MicroWIN中可能的一种间接寻址使用.
例子中包含了OB1,一个数据块和一个状态表.
OB1包含4段程序。
500)this.width=500" border=0>
图1:在SFC功能块中的4段程序
注意第2段程序:
*AC1 中的(*)星号意味着正使用AC1所指向的地址内容,而并非AC1本身的值另一部分是数据块.
500)this.width=500" border=0>
图2:需要一个状态表用于测试和监控.
500)this.width=500" border=0>
图3:下载程序到控制器中,然后打开状态表,点击"Table Status" 观察变化.
首先保持监控当前的状态,可以看到VB200 到VB210 的值为1-10.而VB 220 之后全为空白.
当I0.0 为1时,这两点将被创建.
当I0.1为1时,从VB200 开始的连续前4个字节将被传送到VB220-VB223 中.
在第3段程序中将I0.0 置0可以分别增加1个地址字节,通过触发I0.2的上升沿可以增加多个地址字节.
在第4段程序中将I0.0 置0可以分别减少1个地址字节,通过触发I0.3的上升沿可以减少多个地址字节.
从入口条目为1109582.的"S7-200自动化系统" 手册中可以找到关于该主题的进一步信息,另外通过在线帮助输入"直接和间接寻址"也是非常有用的.。
S7-200数据存储与寻址方式
S7-200数据存储与寻址方式1.I/O 点数扩展和编址S7-200 CPU22X 系列的每种主机所提供的本机I/O点的I/O地址是固定的,进行扩展时,可以在CPU右边连接多个扩展模块。
每个扩展模块的组态地址编号取决于各模块的类型和该模块在I/O链中所处的位置。
输入与输出模块的地址不会冲突,模拟量控制模块地址也不会影响数字量。
编址方法是同样类型输入或输出点的模块在链中按所处的位置而递增,这种递增是按字节进行的,如果CPU或模块在为物理I/0点分配地址时未用完一个字节,那些未用的位也不能分配给I/O链中的后续模块。
例如,某一控制系统选用CPU224,系统所需的输入/输出点数为:数字量输入24点、数字量输出20点、模拟量输入6点和模拟量输出2点。
本系统可有多种不同模块的选取组合,并且各模块在I/O链中的位置排列方式也可能有多种,表1-1所示为其对应的各模块的编址情况。
表1-1A.同类型输入或输出的模块按顺序进行编制。
B. 数字量模块总是保留以8位(1个字节)递增的过程映象寄存器空间。
如果模块没有给保留字节中每一位提供相应的物理点,那些未用位不能分配给I/O链中的后续模块。
对于输入模块,这些保留字节中未使用的位会在每个输入刷新周期中被清零。
C. 模拟量I/O点总是以两点递增的方式来分配空间。
如果模块没有给每个点分配相应的物理点,则这些I/O点会消失并且不能够分配给I/O链中的后续模块。
2. S7-200 PLC的寻址方式及内部数据存储区S7-200 CPU将信息存储在不同的存储单元,每个单元都有惟一的地址。
S7-200CPU使用数据地址访问所有的数据,称为寻址。
输入/输出点、中间运算数据等各种数据类型具有各自的地址定义,大部分指令都需要指定数据地址。
本节将从S7-200的数据长度、寻址、寻址方式和内部数据存储区几个方面进行介绍。
2.1 数据长度S7-200 寻址时,可以使用不同的数据长度。
不同的数据长度表示的数值范围不同。
第3章 S7-200系列PLC硬件资源及编址方式
位:I[字节地址].[位地址];如I0.1
字节、字、双字:I[长度][起始字节地址],如 IB4,IW5,ID10 取值范围为:I0.0~I15.7
15
2.输出映像寄存器(Q)
在每次扫描周期的结尾,CPU将输出映像寄存器的数值反 映到物理输出点上。可以按位、字节、字或双字来存取输 出映像寄存器。格式为 位:Q[字节地址].[位地址],如Q1.1
3
1.CPU模块外形结构 S7-200 PLC外型如图所示,其输入、输出、CPU、电源 模块均装设在一个基本单元的机壳内,是典型的整体 式结构。当系统需要扩展时,选用需要的扩展模块与
基本单元连接。
S7-200外型
4
CPU224型PLC端子及其功能为: (1)基本输入端子:CPU224的主机共有14个输入点 (I0.0~I0.7、I1.0~I1.5)和10个输出点(Q0.0~ Q0.7,Q1.0~Q1.1),在编写端子代码时采用八进制,
(2)RUN(运行)。CPU在RUN工作方式下,PLC按照自己
的工作方式运行用户程序。
8
3.CPU200系列模块型号描述 电源类型: DC-直流输入(24VDC);
CPU22X / /
输出类型 输入类型 电源类型 CPU型号
AC-交流输入(120-240VAC)。
输入类型:指输入端子的输入
类型,一般为直流,用DC表示。
第3章 S7-200系列PLC硬件资源及编址方式
3.1 S7-200系列PLC的系统组成 • SIMATIC S7系列可编程控制器是德国西门子公司于20世 纪末推出的,有三个子系列,即S7-200、S7-300和S7400,分别属于小型、中型和大型系列PLC。 • S7-200系列PLC的硬件系统配置灵活,既可用单独的CPU 模块构成简单的开关量控制系统,也可通过I/O扩展或 通信联网功能构成中等规模的控制系统。S7-200系列 PLC系统的基本构成主要包括:
S7-200模拟量寻址
S7-200模拟量寻址S7-200模拟量问题的解答问题1:S7-200模拟量输入模块(EM231,EM235)如何寻址?回答: 模拟量输入和输出为一个字长,所以地址必须从偶数字节开始, 精度为12位,模拟量值为0-32000的数值。
格式: AIW[起始字节地址] AIW6 ;AQW[起始字节地址] AQW0每个模拟量输入模块,按模块的先后顺序地址为固定的,顺序向后排。
例: AIW0 AI W2 AIW4 AIW6每个模拟量输出模块占两个通道,即使第一个模块只有一个输出AQW0 (EM235只有一个模拟量输出), 第二个模块模拟量输出地址也应从AQW4开始寻址,依此类推。
(注: 每一模块的起始地址都可在step7 micro/win 中Plc/Information里在线读到)。
问题2:如何将传感器连接到S7-200 模拟量输入模块(EM231,EM235)以及有哪些注意事项?回答:模拟量输入模块可以通过拨码开关设置为不同的测量方法。
开关的设置应用于整个模块,一个模块只能设置为一种测量范围。
(注:开关设置只有在重新上电后才能生效) 输入阻抗与连接有关:电压测量时,输入是高阻抗为10 MOhm ;电流测量时,需要将Rx 和x 短接,阻抗降到250 Ohm 。
注意:为避免共模电压,须将M端与所有信号负端连接, 未连接传感器的通道要短接, 如下列各图。
下列各图是各种传感器连接到S7-200 模拟量输入模块的示例图1: 4线制-外供电-测量图2: 2线制-测量为了防止模拟量模块短路,可以串入传感器一个750 Ohm电阻。
它将串接在内部2 50 Ohm电阻上并保证电流在32 m A以下。
图3: 电压测量注意:如果你使用一个4-20mA 传感器, 测量值必须通过编程进行相应的转换.输入转换: X=32000 *(AIWx – 6400) /(32000 – 6400)输出转换: Y=计算值*(32000 – 6400)/32000 + 6400问题3:为什么使用S7-200 模拟量输入模块时接收到一个变动很大的不稳定的值?回答:1.你可能使用了一个自供电或隔离的传感器电源,两个电源没有彼此连接。
(完整版)S7-200间接寻址解析
(完整版)S7-200间接寻址解析对指令的操作数的指定方式,我将其理解为“寻址”。
下面将以我个人的理解对西门子S7-200的寻址方式进行描述,如有不当之处,还请广大读者指正。
在程序中绝大部分的指令都带有操作数,所谓的操作数,是执行这一指令时被这一指令加以操作、处理的数值。
对指令的操作数的指令方式大致的总结一下,可以概括为如下几个类型:1:指令的操作数为“立即数”,(如:15、16#F、2#1111等、、、、、、)。
LD M0.0MOVW +255, VW0+I +45, VW0这是一条加法指令,被加数为:255、加数为45执行这条指令后计算出来的“和”存放在VW0这一存储器内。
LD M0.0MOVB 15, VB0这是一条传指令,译为:将15传送至存储器VB0内。
2:指令的操作数没有直接的给出,而是给出它所在的地址。
LD M0.0MOVW VW0, VW4-I VW2, VW4这是一条减法指令,译为:将存储器VW0内的数值减去存储器VW2内的数值,将“差”存放在存储器VW4内。
3:指令的操作数没有直接的给出,而是给出它所在的地址的“地址”,在S7-200中,将这种寻址方式称之为“指针寻址”。
下面,我们一起来学习一下关于指针的使用方法:在使用指针进行间接寻址的过程中,会涉及到的两个符号:&:建立指针(进行间接访问的区域)*:读取指针(读取指针间接指定的地址)下面是使用指针的一般步骤:1:建立指针建立指针需要使用双字传送指令,如下所示:LD M0.0MOVD &MB0, VD10译为:在VD10建立指针,指针指向被间接访问的首地址MB0。
在建立指针时需要注意如下几个问题:①可以进行间接访问的区域,包括如下几个区域:I、Q、M、S、V、T(当前值)、C(当前值)。
在S7-200中位状态是不能进行间接指定的,所以这里特别强调只是访问定时器及计数器的当前值,而不是其位状态。
②可以作为建立指针的区域,包括如下几个区域:V、L、及累加器AC1至AC3。
S7—200smartPLC间接寻址的应用
S7—200smartPLC间接寻址的应用作者:赵青来源:《现代职业教育·职业培训》2018年第08期[摘要] 对S7-200smartPLC来说,寻址分为直接寻址和间接寻址,其中间接寻址主要用于需要在程序中修改地址的场合,特别是处理数据内容比较多的情况,使用间接寻址编程灵活,节省程序空间。
大多教材关于间接寻址的概念和应用介绍得不够通俗易懂,很多学生,甚至工程技术人员对间接寻址的使用存在概念不清,应用不明的情况。
通过三个例子循序渐进地说明间接寻址的概念和应用,经过教学实践,学生反馈较好。
[关键词] 间接寻址;操作数;地址;指针[中图分类号] TP273 [文献标志码] A [文章编号] 2096-0603(2018)24-0018-02PLC将信息存于不同的存储器单元,每个单元都有唯一的地址。
地址也是我们访问所有数据的依据,那么我们访问数据的过程就是寻址。
在s7-200smartPLC中通过地址访问数据,地址是访问数据的依据,访问数据的过程称为“寻址”。
几乎所有的指令和功能都与各种形式的寻址有关。
直接寻址指定了存储器的长度和位置,例如VW90是V存储区中16位的字,其地址为90。
而间接寻址在指令中给出的不是操作数的值或操作数的地址,而是给出一个被称为指针的双字存储单元的地址,指针里存放的是真正的操作数的地址。
一、如何进行间接寻址使用间接寻址的方式存取数据主要分为以下三个步骤来实现:(一)建立指针使用间接寻址之前,应创建一个指针。
指针以双字的形式存储要访问的存储器的地址,只能用V存储器、L存储器或者累加器AC作为指针。
建立指针时,用双字传送指令MOVD将需要间接寻址的存储器起始地址送到指针中。
指针的输入数应该以“&”符号开头来表明存储区的地址,注意不是其内容将移动到指令的输出操作数中。
S7-200smartPLC中允许使用指针对下述存储区进行间接寻址:I、Q、V、M、S、AI、AQ、SM、T(仅当前值)和C(仅当前值)。
s7-200寻址
1.S7-200模拟量输入模块(EM231,EM235)寻址●每个模拟量扩展模块,按扩展模块的先后顺序进行排序,其中,模拟量根据输入、输出不同分别排序。
模拟量的数据格式为一个字长,所以地址必须从偶数字节开始,精度为12位;模拟量值为0-32000的数值。
输入格式: AIW[起始字节地址] 如AIW0 输出格式: AQW[起始字节地址] AQW0 每个模拟量输入模块,按模块的先后顺序地址为固定的,顺序向后排。
例::AIW0,AIW2,AIW4……、AQW0,AQW2……。
●每个模拟量扩展模块至少占两个通道,即使第一个模块只有一个输出AQW0(EM235只有一个模拟量输出),第二个模块模拟量输出地址也应从AQW4开始寻址,以此类推。
2.传感器连接到S7-200 模拟量输入模块(EM231,EM235)有哪些注意事项?●模拟量输入模块可以通过拨码开关设置为不同的测量方式(电流电压)。
模块开关的设置应用于整个模块,一个模块只能设置为一种测量范围;而且开关设置只有在重新上电后才能生效。
只能将输入端同时设置为一种量程和格式,即相同的输入量程和分辨率。
● EM235是最常用的模拟量扩展模块,它实现了4路模拟量输入和1路模拟量输出功能。
EM235模拟量扩展模块的接线方法,对于电压信号,按正、负极直接接入X+和X-;对于电流信号,将RX和X+短接后接入电流输入信号的“+”端;未连接传感器的通道要将X+和X-短接。
●注意:为避免共模电压,须将M端与所有信号负端连接,未连接传感器的通道要短接。
当模拟量输入PLC接收到一个变动很大的不稳定的值时,原因之一:你可能使用了一个自供电或隔离的传感器电源,两个电源没有彼此连接,所以由此产生了一个很高的上下振动的共模电压,影响模拟量输入值。
原因之二:可能是模拟量输入模块接线太长或绝缘不好。
所以解决方法:1.连接传感器输入的1。
S7-200 第3章 可编程序控制器的数据类型及寻址方式
10.模拟量输入(AI) 10.模拟量输入(AI)寻址 将实际系统中的模拟量输入值( S7-200将实际系统中的模拟量输入值(如温度或电压)转换成1 200将实际系统中的模拟量输入值 如温度或电压)转换成1 个字长(16位 的数字量。可以用区域标识符(AI) 个字长(16位)的数字量。可以用区域标识符(AI) )、及数 据长度( 据长度(W)及字节的起始地址来存取这些值。 及字节的起始地址来存取这些值。 由于模拟输入量位1个字长,且从偶数位字节( 由于模拟输入量位 1 个字长 , 且从偶数位字节 ( 如 0 , 2 或 4 ) 开 所以必须用偶数字节地址( AIW0 AIW2 AIW4 始 , 所以必须用偶数字节地址 ( 如 AIW0 , AIW2 , AIW4 ) 来存取 这些值,模拟量输入值为只读数据。 这些值,模拟量输入值为只读数据。 格式: 格式: AIW[起始字节地址] AIW[起始字节地址] 起始字节地址 AIW8 AIW8
储器;子程序不能访问分配给主程序、中断程序或其他子程序 储器;子程序不能访问分配给主程序、 的局部存储器;同样地, 的局部存储器;同样地,中断程序也不能访问分配给主程序或 子程序的局部存储器。 子程序的局部存储器。 S7根据需要分配局部存储器。即当执行主程序时, S7-200 PLC 根据需要分配局部存储器。即当执行主程序时, 分配给子程序或中断程序的局部存储器是不存在的。 分配给子程序或中断程序的局部存储器是不存在的。当出现中 断或调用一个子程序时,需要分配局部存储器。新的局部存储 断或调用一个子程序时,需要分配局部存储器。 器可以重新使用分配给不同子程序或中断程序的相同局部存储 器。
特殊存储器(SM) 特殊存储器(SM)标志位的具体含义
特殊存储器(SM) 特殊存储器(SM)标志位的具体含义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络1:
LD M0.0
MOVD &VB0, VD10
MOVB *VD10, VB100
+D 1, VD10
网络2:
LD M0.1
MOVB *VD10, VB100
第一次读指针时,读取的是VB0。
第二次读指针时,读取的是VB1。
②读取下一个字:
网络1:
LD M0.0
MOVD &VB0, VD10
网络4:
NEXTS7-200cpu允许使用指针对下述存储区进行间接寻址:I, Q, V, M, S, T和C。但不能对独立的位或模拟量进行间接寻址。指针为双字值,用来存放另一个存储器的地址,只能用V, L或累加器AC1,AC2和AC3作指针。为了生成指针,必须用双字传送指令(MOVD)将某个位置的地址移入另一个位置或累加器作为指针。
LD M0.0
MOVD &VB0, VD10
MOVD *VD10, VD40
译为:在VD10建立指针,指针指向以VB0为首的地址,读取在指针VD10所指向的首地址开始的一个双字(即以VB0开始的一个双字,很明显就是VD0),所以,读取指针时将VD0放到VD40。
3:修改指针
修改指针是在使用指针寻址中关健的一部分,修改指针是将指针指向的首地址进行适当的偏移,使之指向我们需要访问的地址,这样我们可以比较方便的使用在这一存储区的某一具体地址,使程序的灵活性有所增加。
网络4:
NEXT
网络5:
LDW>= VW1000,1:
LD M0.0
MOVD &VB300, VD131
MOVW 0, VW129
网络2:
LD M0.0
FOR VW125, 1, 6
网络3:
LD SM0.0
MOVB *VD131, AC0
+I AC0, VW129
+D 1, VD131
2:指令的操作数没有直接的给出,而是给出它所在的地址。
LD M0.0
MOVW VW0, VW4
-I VW2, VW4
这是一条减法指令,译为:将存储器VW0内的数值减去存储器VW2内的数值,将“差”存放在存储器VW4内。
3:指令的操作数没有直接的给出,而是给出它所在的地址的“地址”,在S7-200中,将这种寻址方式称之为“指针寻址”。
MOVW *VD10, VW100
+D 2, VD10
网络2:
LD M0.1
MOVW *VD10, VW100
第一次读指针时,读取的是VW0。
第二次读指针时,读取的是VW2。
③读取下一个双字:
网络1:
LD M0.0
MOVD &VB0, VD10
MOVD *VD10, VD100
+D 4, VD10
网络2:
1:指令的操作数为“立即数”,(如:15、16#F、2#1111等、、、、、、)。
LD M0.0
MOVW +255, VW0
+I +45, VW0
这是一条加法指令,被加数为:255、加数为45执行这条指令后计算出来的“和”存放在VW0这一存储器内。
LD M0.0
MOVB 15, VB0
这是一条传指令,译为:将15传送至存储器VB0内。
③在建立指针时在存储器前加“&”这个符号的表示进行间接访问的区域的首地址,所以除定时器T及计数器C外都必须是以字节的形式出现的。
2:读取指针
在读取指针时,有如下几种不同的情况出现:
①以字节的形式读取指针:
LD M0.0
MOVD &MB0, VD10
MOVB *VD10, VB30
译为:在VD10建立指针,指针指向以MB0为首地址的地址,读取在指针VD10所指向的首地址开始的一个字节(即以MB0开始的一个字节,很明显就是MB0本身),所以,读取指针时将MB0放到VB30。
修改指针的方法大致的可以概括为如下几种:
①使用加法或减法指令,对指针进行指定常数作为偏移量的修改指针。
②使用加“1”或减“1”指令,对指针进行1个单位(字节)的偏移。
下面将以实际情况为例来说明修改批指针的方法:
例1:
网络1:
LD M0.0
MOVD &VB0, VD10
MOVD *VD10, VD40
+D 4, VD10
网络2:
LD M0.1
MOVD *VD10, VD44
译为:在VD10建立指针,指针指向以VB0为首的地址,读取在指针VD10所指向的首地址开始的一个双字(即以VB0开始的一个双字,很明显就是VD0),所以,读取指针时将VD0放到VD40。然后对指针进行修改,对其指定4个单位的偏移量,即指针此时指向的首地址为VB4。
②以字的形式读取指针:
LD M0.0
MOVD &MB0, VD10
MOVW *VD10, MW20
译为:在VD10建立指针,指针指向以MB0为首的地址,读取在指针VD10所指向的首地址开始的一个字(即以MB0开始的一个字,很明显就是MW0),所以,读取指针时将MW0放到MW20。
③以双字的形式读取指针:
在下一网络中又以双字的形式读取指针。所以,此时读取指针是将以VB4为首的一个双字传送至VD44(即VD4传送至VD44)。
例2:
网络1:
LD M0.0
MOVD &VB0, VD10
MOVB *VD10, MB0
INCD VD10
网络2:
LD M0.1
MOVB *VD10, MB1
译为:在VD10建立指针,指针指向以VB0为首的地址,读取在指针VD10所指向的首地址开始的一个字节(即以VB0开始的一个字节,很明显就是VB0),所以,读取指针时将VB0放到MB0。然后对指针进行修改,对其进行一个单位(字节)的偏移,即指针此时指向的首地址为VB1。
下面,我们一起来学习一下关于指针的使用方法:
在使用指针进行间接寻址的过程中,会涉及到的两个符号:
&:建立指针(进行间接访问的区域)
*:读取指针(读取指针间接指定的地址)
下面是使用指针的一般步骤:
1:建立指针
建立指针需要使用双字传送指令,如下所示:
LD M0.0
MOVD &MB0, VD10
译为:在VD10建立指针,指针指向被间接访问的首地址MB0。
LD M0.1
MOVD *VD10, VD100
第一次读指针时,读取的是VD0。
第二次读指针时,读取的是VD4。
综上所述,在以连续方式读取指针时:
⑴读取下一个字节,修改指针时“加1”。
⑵读取下一个字,修改指针时“加2”。
⑶读取下一个双字,修改指针时“加4”。
下面,给出两个应用实例,读者可自行分析其工作原理。
例1:
网络1:
LD I1.0
EU
MOVD &VB0, VD100
S M0.0, 1
网络2:
LD M0.0
FOR VW1000, 1, 10
网络3:
LD Always_On:SM0.0
MOVW VW1000, VW1002
+I VW1000, VW1002
MOVW VW1002, *VD100
+D 2, VD100
MOVD &VB200,AC1
MOVW *AC1,AC0
在下一网络中又以字节的形式读取指针。所以,此时读取指针是将以VB1为首的一个字节传送至MB1(即VB1传送至MB1)。
在程序中,如果希望以连续的形式去间接访问地址(即:读取VB0后希望下一次读取的是VB1、读取VW0后希望下一次读取的是VW2、读取VD0后希望下一次读取的是VD4),修改指针时,需要注意以下问题:
对指令的操作数的指定方式,我将其理解为“寻址”。
下面将以我个人的理解对西门子S7-200的寻址方式进行描述,如有不当之处,还请广大读者指正。
在程序中绝大部分的指令都带有操作数,所谓的操作数,是执行这一指令时被这一指令加以操作、处理的数值。对指令的操作数的指令方式大致的总结一下,可以概括为如下几个类型:
在建立指针时需要注意如下几个问题:
①可以进行间接访问的区域,包括如下几个区域:I、Q、M、S、V、T(当前值)、C(当前值)。在S7-200中位状态是不能进行间接指定的,所以这里特别强调只是访问定时器及计数器的当前值,而不是其位状态。
②可以作为建立指针的区域,包括如下几个区域:V、L、及累加器AC1至AC3。且只能是双字(32bit)类型的地址。