第三章 S7-300数据类型
S7-300数据类型

名称 DB_VAR00 DB_VAR01 DB_VAR02 DB_VAR03 DB_VAR04 DB_VAR05 DB_VAR06 DB_VAR07 DB_VAR1 DB_VAR2
类型 STRUCT BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BYTEFALSE FALSE TRUE TRUE TRUE TRUE B#16#0 W#16#0
注释 1位 1位 1位 1位 1位 1位 1位 1位 1个字节8位 2个字节8位
备注 布尔 布尔 布尔 布尔 布尔 布尔 布尔 布尔 布尔 字节 字
+4.0 +8.0 +10.0 +14.0 +18.0 +20.0 +24.0 +26.0 +30.0
DT#1990-01-01-0:0:0.0到DT#2089-12-31-23:59:59.999 []内的数字代表长度
+32.0 +40.0 =296.0
DB_VAR12 DB_VAR13
T#0MS D#1990DATE 2个字节16位 IEC日期 1-1 TOD#0:0: TIME_OF_DAY 4个字节32位 IEC日期 0.0 ASCII字 CHAR ' ' 1个字节8位 符 DT#90-11DATE_AND_TIME 8个字节64位 0:0:0.00 0 STRING[254] '' END_STRUCT
DB_VAR3 DB_VAR4 DB_VAR5 DB_VAR6 DB_VAR7 DB_VAR8 DB_VAR9 DB_VAR10 DB_VAR11
S7-300PLC数据及软件安装方法

S7-300PLC数据及软件安装⽅法⼀、S7-300PLC基本数据类型1、位(bit)位数据的数据类型为BOOL型,其值为1或0。
例如I0.0这⼀位的值要么为0,要么为1。
2、字节(byte)8位⼆进制数组成⼀个字节。
例如MB0。
3、字(Word)相邻⼆个字节组成⼀个字,字只能表⽰⽆符号数。
例如MW0是由MB0和MB1⼆个字节组成。
注意⼆点:1)⽤组成字最⼩的字节MB0的编号作为字MW0的编号。
2)组成字的编号最⼩的字节MB0为字的⾼位字节,编号最⼤的字节MB1为低位字节。
字的取值范围为W#16#0000~W#16#FFFF4、双字(Double Word)⼆个字(或四个字节)组成⼀个双字,双字也只能表⽰⽆符号数。
双字MD0由MB0~MB3组成,D表⽰双字,0为双字的起始字节MB0 的编号,MB0是双字的最⾼位,MB3是双字的最低位。
双字的取值范围为DW#16#0000_0000~DW#16#FFFF FFFF5、16位整数(INT, Integer)整数是有符号数,最⾼位为符号位,最⾼位为0时为正数,为1时为负数。
16位整数的取值范围为-32768~+32767,整数⽤补码表⽰。
6、32 位整数(DINT , Doubel Integer)和16位整数⼀样,最⾼位也为符号位32位整数的取值范围为-2147483648~+214748364Z7、32位浮点数实数(REAL)⼜称为浮点数。
8、常数的表⽰⽅法1)B#16#、W#16#、D#16#分别⽤来表⽰⼗六进制字节、字和双字常数。
2)2#⽤来表⽰⼆进制常数,例如2#1001_ 00103)L#表⽰32位双整数常数,例如L#+128⼆、S7-300PLC的系统存储器1、过程映像输⼊输出(I\O)I和Q均可按位、字节、字和双字访问,例如I0.0、IB0、IW0、ID0。
2、位存储器(M)M可按位、字节、字和双字访问,例如M0.0、MB0、MW0、MD0。
西门子S7-300系列PLC数据类型

一、基本数据类型
基本数据类型的长度不超过32位。
位(BOOL),字节(BYTE),字(WORD),双字(DOUBLE WORD),整数(INT),
双整数(DOUBLE INT),浮点数(REAL),S5TIME(SIMATIC时间),IEC时间(TIME),IEC日期(date),日计时(TIME_OF_DAY),字符(CHAR),
重点:S5TIME和IEC时间数据类型结构,二者区别
二、复杂数据类型
复杂数据类型是由其他基本数据类型组合而成的,长度超过32位的数据类型。
1.日期时间数据类型(Data_And_Time ):
2.字符串类型(String):
3.数组类型Array
4.结构(STRUCT):
5.用户定义类型(UDT):
三、参数数据类型
用于功能FC或功能块FB的数据类型
1. Pointe指针类型,6字节指针类型,传递数据块号和数据地址
2. Any指针类型,10字节指针类型,传递数据块号、数据地址、数据数量以及数据类型
艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保
用品等一系列自动化的工控产品。
如需进一步了解台达PLC、西门子PLC、施耐德plc、欧姆龙PLC的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城/。
西门子S7-300全教程第三章

第三章西门子PLC的指令系统3.1 S7-300/400的编程语言3.1.1 PLC编程语言的国际标准IEC 61131是PLC的国际标准,1992~1995年发布了IEC 61131标准中的1~4部分,我国在1995年11月发布了GB/T 15969-1/2/3/4(等同于IEC 61131-1/2/3/4)。
IEC 61131-3广泛地应用PLC、DCS和工控机、―软件PLC‖、数控系统、RTU等产品。
定义了5种编程语言1) 指令表IL(Instruction list):西门子称为语句表STL。
2) 结构文本ST(Structured text):西门子称为结构化控制语言(SCL)。
3) 梯形图LD(Ladder diagram):西门子简称为LAD。
4) 功能块图FBD (Function block diagram):标准中称为功能方框图语言。
5) 顺序功能图SFC(Sequential function chart):对应于西门子的S7 Graph。
3.1.2 STEP 7中的编程语言梯形图、语句表和功能块图是3种基本编程语言,可以相互转换。
1.顺序功能图(SFC) :STEP 7中的S7 Graph2.梯形图(LAD):直观易懂,适合于数字量逻辑控制。
―能流‖(Power flow)与程序执行的方向。
3. 语句表(STL):功能比梯形图或功能块图强。
4.功能块图(FBD):―LOGO!‖系列微型PLC使用功能块图编程。
5.结构文本(ST):STEP 7的S7 SCL(结构化控制语言)符合EN 61131-3标准。
SCL适合于复杂的公式计算、复杂的计算任务和最优化算法,或管理大量的数据等。
6.S7 HiGraph 编程语言图形编程语言S7 HiGraph 属于可选软件包,它用状态图(state graphs)来描述异步、非顺序过程的编程语言。
7.S7 CFC 编程语言可选软件包CFC(Continuous Function Chart,连续功能图)用图形方式连接程序库中以块的形式提供的各种功能。
S7数据类型说明

S7-300/400系列PLC的数据类型2013-04-01 03:09:03 来源:朗特威自动化商城用户程序中所有的数据必须通过数据类型来识别,只有相同数据类型的变量才能进行计算,数据类型主要分为三类:•STEP7中提供的基本数据类型;•复合数据类型,编程人员可以将基本数据类型组合为复合的数据类型;•参数类型,适合函数或函数块中形参的数据类型。
梯形图、语句表和功能块图的指令系统也是与数据类型相对应的,位逻辑指令只能对位信号进行操作.语句表中的装载(L)与传送(T)指令与梯形图、功能块图中的移动 (MOVE)指令只能对字节、字和双字进行操作。
一个位是一个二进制的数字,通过“0”或“1”表示,一个字节由8个位组成,一个字由16个位组成,一个双字由32个位组成。
数学运算指令对字节、字和双字进行操作,这些字节.字和双字经过不同的编码可以转换为整数和浮点数。
一、基本数据类型基本数据类型共包含12种,每一个数据类型都具备关键字、数据长度、取值范围和常数表达格式等属性。
以字符型数据为例,该类型的关键字是Char,数据长度8bit,取值范围是ASCII字符集,常数表达格式为两个单引号包含的字符,如‘A’。
STEP7基本数据类型的关键字、长度、取值范围和以常数为例子的表示方法见表5-1。
下面简单介绍不同数据类型数据的表示方法:(1)WORD (字)一个WORD包含16个位,以二进制编码表示一个数值时,将16个位分为4个组,每个组4个位,组合表示数值中的一个数字或符号位,例如以十六进制表示数值W#16#1234 的方法如图5-2所示,使用十六进制表示数值时没有符号位,所以十六进制表示的数值不可能有负值。
以BCD码表示+123方法如图5-3所示,BCD码通常表示时间格式数值,与十六进制表示方法相比较,BCD码带有符号位,数值中不能含有A、B、C、D、E、F等十六进制数字。
计数器C同样使用BCD码表示,但是不识别符号位,例如+123和-123表示计数器的值相同,都是C#123。
西门子S7-300 数据资料

基本数据类型(1)基本数据类型;(2)用户通过组合基本数据类型生成的复合数据类型; (3)可用来定义传送FB(功能块)和FC(功能)参数的参数类型.下面介绍STEP7的基本数据类型:1)位(bit) 位数据的数据类型为BOOL(布尔)型,在编程软件中BOOL 变量的值1和0常用英语单词TURE(真)和FALSE(假)来表示. 位存储单元的地址由字节地址和位地址组成,例如I3.2中的区域标示符"I"表示输入(Input),字节地址为3,位地址为2,如图所示.这种存取方式称为"字节.位"寻址方式.输入字节IB3(B是Byte的缩写)由I3.0~I3.7这8位组成2)字节(Byte) 8位二进制数组成1个字节(Byte,如下图,其中的第0位为最低位(LSB),第7位为最高位(MSB).3)字(Word) 相邻两个字节组成一个字,字用来表示无符号数.MWl00是由MB1OO和MB1O1组成的1个字,如图5.4.3,MB00为高位字节.MW100中的M为区域标示符,W表示字,100为字的起始字节MB1O0的地址.字的取值范围为W#16#0000~W#16#FFFF. 4) 双字(Double Word) 两个字组成1个双字,双字用来表示无符号数.MD100是由MB100~MB103组成的1个双字,(见上图),MB100为高位宇节, D表示双字,100为双字的起始字节MB100的地址.双字的取值范围为DW#16#0000_0000~DW#16#FFFF_FFFF.常数的表示方法常数值可以是字节,字或双字,CPU以二进制方式存储常数,常数也可以用十进制,十六进制,ASCII码或浮点数形式来表示.B#16#,W#16#,DW#16#分别用来表示十六进制字节,字和双字常数.2#用来表示二进制常数,例如2#1101_1010. L#为32位双整数常数,例如L# +5. P#为地址指针常数,例如P#M2.O是M2.0的地址. S5T#是16位S5时间常数,格式为S5T# aD_bH_cM_dS_eMS.其中a,b,c,d,e分别是日, 小时,分,秒和毫秒的数值.输入时可以省掉下划线, 例如S5T#4S30MS=4s30ms,S5T#2H15M30S=2小时15分30秒. C#为计数器常数(BCD码),例如C#250.状态字状态字用于表示CPU执行指令时所具有的状态.某些指令可否执行或以何种方式执行可能取决于状态字中的某些位,指令执行时也可能改变状态字中的某些位,可以用位逻辑指令或字逻辑指令访问并检测状态字.状态字的结构如图所示.逻辑操作结果(RLO) 状态字的第1位称为逻辑操作结果(Result of LogicOperation, RLO).该位存储逻辑操作指令或比较指令的结果.在逻辑串中,RLO位的状态表示有关信号流的信息,RLO的状态为1, 表明有信号流(通),RLO的状态为0,表明无信号流(断).可用RLO触发跳转指令. 溢出位(OV) 状态字的第4位称为溢出位.当算术运算或浮点数比较指被置1,如果执行结果正常,该位被清0. 令执行时出现错误(溢出,非法操作,不规范格式)时,OV位条件码l(CCl)和条件码0(CC0) 状态字的第7位和第6位称为条件码1和条件码0.这两位结合起来用于表示在累加器1中产生的算术运算结果与0的大小关系, 基本指令及其编程1,位逻辑指令状态寄存器触点在S7-300/400PLC中,CPU中有一个专门用于存储指令执行状态的16位状态寄存器,状态寄存器以二进制位的形式保存指令的执行结果与中间状态等,在梯形图编程时,这些标志可以用触点的形式在梯形图中使用与编程,S7300/400PLC可以使用的状态寄存器触点如下表所示.状态寄存器触点1,"与"(A),"与非"(AN)A:"与"指令适用于单个常开触点串联,完成逻辑"与"运算. AN:"与非"指令适用于单个常闭触点串联,完成逻辑"与非" 运算."与"(A),"与非"(AN)指令由图可知,触点串联指令也用于串联逻辑行的开始.CPU对逻辑行开始第1条语句如I1.0的扫描称为首次扫描.首次扫描的结果(I1.0的状态)被直接保存在RLO(逻辑操作结果位)中; 在下一条语句,扫描触点Q5.3的状态,并将这次扫描的结果和RLO中保存的上一次结果相"与"产生的结果,再存入RLO中,如此依次进行.在逻辑串结束处的RLO可作进一步处理. 如赋值给Q4.2(=Q4.2).2 ,"或"(O),"或非"(ON) )," ), 或非" )O:"或"指令适用于单个常开触点并联,完成逻辑"或"的运算. ON:"或非"指令适用于单个常闭触点并联,完成逻辑"或非"运算."或"(O),"或非"(ON)指令由图可知,触点并联指令也用于一个并联逻辑行的开始.CPU对逻辑行开始第1条语句如I4.0的扫描称为首次扫描.首次扫描的结果(I4.0的状态)被直接保存在RLO(逻辑操作结果位)中,并和下一条语句的扫描结果相"或",产生新的结果再存入RLO中,如此一次进行.在逻辑串结束处的RLO可用作进一步处理,如赋值给Q8.0(=Q8.0). 此外,还有"异或"(X),"异或非" (XN),嵌套指令等等.3,输出线圈,输出线圈指令即逻辑串输出指令,又称赋值指令,该指令把RLO中的置赋给指定的位地址,当RLO变化时,相应位地址信号状态也变化,在LAD中,只能将输出指令放在触点电路的最右端,不能将输出指令单独放在一个空网络中.下图是两个应用举例.4,中间输出如图所示,中间输出指令被安置在逻辑串中间,用于将其前面的位逻辑操作结果(即本位置的RLO值)保存到指定地址,所以有时也称为"连接器"或"中间赋值元件".它和其他元件串联时, "连接器"指令和触点一样插入.连接器不能直接连接母线,也不能放在逻辑串的结尾或分支结尾处.5 置位指令,复位指令置位指令,置位/复位指令也是一种输出指令.使用置位指令时,如果RLO =1,则指定的地址被置为1,而且一直保持,直到被复位为0.使用复位指令时,如果RLO=1,则指定的地址被复位为0,而且一直保持,直到被置位为1,如图所示.6 触发器指令触发器有置位复位触发器(SR触发器)和复位置位触发器(RS 触发器)两种,这两种触发器指令均可实现对指定位地址的置位或复位.触发器可以用在逻辑串最右端,结束一个逻辑串;也可用在逻辑串中,当作一个特殊触点,影响右边的逻辑操作结果.置位优先型RS触发器如下图所示.7 边沿检测指令当信号状态变化时就产生跳变沿:从0变到1时,产生一个上升沿(也称正跳沿);从1变到0时,产生一个下降沿(也称负跳变). 跳变沿检测的方法是:在每个扫描周期(OB1循环扫描一周),把当前信号状态和它在前一个扫描周期的状态相比较,若不同,则表明有一个跳变沿.因此,前一个周期里的信号状态必须被存储,以便能和新的信号状态相比较. S7-300/400PLC有两种边沿检测指令:一种是对逻辑串操作结果RLO的跳变沿检测的指令;另一种是对单个触点跳变沿检测的指令. (1) RLO跳变沿检测指令RLO跳变沿检测可分别检测正跳沿和负跳沿.①当RLO从0到1时,正跳沿检测指令在当前扫描周期以RLO=0表示其变化,而在其他扫描周期均为0.在执行RLO正跳沿检测指令前,RLO的状态存储在位地址中. ②当RLO从1到0时,负跳沿检测指令在当前扫描周期以RLO=1表示其变化,而在其他扫描周期均为0.在执行RLO负跳沿检测指令前,RLO的状态存储在位地址中. RLO跳变沿检测指令和操作数见下表.RLO跳变沿检测指令和操作数(2) 触点跳变沿检测指令触点跳变沿检测可分别检测正跳沿和负跳沿. ①触点正跳沿检测指令FP:在LAD中以功能框表示,它有两个输入端,一个直接连接要检测的触点,另一个输入端M_BIT所接的位存储器上存储上一个扫描周期触点的状态.有一个输出端Q,当触点状态从0到1时,输出端Q接通一个扫描周期. ②触点负跳沿检测指令FN:在LAD 中以功能框表示,它有两个输入端,一个直接连接要检测的触点,另一个输入端M_BIT所接的位存储器上存储上一个扫描周期触点的状态.有一个输出端Q,当触点状态从1到0时,输出端Q接通一个扫描周期.触点跳变沿检测指令和操作数LAD(a)程序行要检测的是逻辑串I1.0,I1.1的运算结果的跳变边沿,即图中①点处的RLO的边沿变化情况,同时用M1.0来存储RLO①的状态.程序的工作过程如时序图:当程序运行到图中a点时,当前RLO值是1,而上次RLO值(存放在M1.0中)是0, 于是FP指令判断到一个RLO的正跳沿,就将②点处的M1.0置1, 并且输出给M8.0;当程序经过1个扫描周期,运行到波形图中b点时,当前RLO值和前一个RLO值均为1,相同(RLO在相邻两个扫描周期中相同,可全为1或0),那么FP指令将②点处M1.0置0, 并输出给M8.0.这样M8.0为1的时间仅一个周期.图中虚线箭头指的是两个相邻扫描周期RLO的比较. 对RLO下降沿的检测,读者可自行分析c点,d点时的情况,FN 指令检测到一个RLO①的负跳沿时将M8.1置1,M8.1为1的时间也是一个周期.位逻辑指令的应用举例机床的工作台运动示意图工作台由交流电动机驱动,改变电动机的旋转方向就可以改变工作台的运动方向.按下启动按钮SBl后,电动机驱动工作台运动,如果工作台运动到极限位置时,由行程开关SQl或SQ2检测并发出停止前进指令,同时自动发出返回指令.只要不按停止按钮SB2,工作台将继续这种自动往复运动.工作台驱动电动机通过热继电器做过载保护.。
S7-300_PID参数说明

BOOL BOOL BOOL BOOL
FALSE / TRUE FALSE / TRUE FALSE / TRUE FALSE / TRUE FALSE / TRUE >=1ms -100.0 to +100.0(%) or phys.value 1 -100.0 to +100.0(%) or phys.value 1
MAN GAIN TI TD TM_LAG DEADB_W
in in in in in in
手动值 增益 积分时间 微分时间 微分延时 死区
REAL REAL TIME TIME TIME REAL
0.0 2
DB*.DBD16.0 DB*.DBD20.0 DB*.DBD24.0 DB*.DBD28.0 DB*.DBD32.0 DB*.DB0.1
PVPER_ON
in
过程变量输入开关 BOOL
FALSE / TRUE
FALSE
DB*.DBD0.2
P_SEL I_SEL INT_HOLD I_ITL_ON D_SEL CYCLE SP_INT
in in in in in in in
比例作用开关 积分作用开关
TRUE TRUE FALSE FALSE FALSE T#1S 0.0
DB*.DBD0.3 DB*.DBD0.4 DB*.DBD0.5 DB*.DBD0.6
微分作用开关 循环时间 设定值
BOOL TIME REAL
D_SEL=1微分作用启动。 D_SEL=0微分作用停止。
DB*.DBD0.7 DB*.DBD2.0 DB*.DBD6.0
DB*.DBD44.0 DB*.DBD48.0 DB*.DBD52.0 DB*.DBD56.0 DB*.DBD60.0 DB*.DBD64.0 DB*.DBD68.0 DB*.DBD72.0 DB*.DBD76.0 DB*.DBD78.0 DB*.DBD78.1 DB*.DBD80.0 DB*.DBD84.0 DB*.DBD88.0 DB*.DBD92.0 DB*.DBD96.0
S7-300软件基础

表示被寻址的字节编号,MD 0 的 20 位表示被寻址的位号。当 MD 0=W#16#0 时, MD 0 的 313 位表示被寻 址的字节编号为 0,即把 IB0 的数据传送到 QB0, 当 MD 0=W#16#8 时, MD 0 的 313 位表示被寻址的字节编 号为 1,即把 IB1 的数据传送到 QB0, 当 MD 0=W#16#10 时, MD 0 的 313 位表示被寻址的字节编号为 2, 即把 IB2 的数据传送到 QB0。 L IB [MD 0] //把 IB 由 MD 0 的 313 位指定的字节装入累加器 1 T QB 0 //把累加器 1 的低 8 位传送给 QB 0 S7-300 的另一种间接寻址方式是利用两个地址寄存器 AR1 和 AR2 对各存储区进行间接寻址, 地址寄存 器的内容加上偏移量形成地址指针,其表示形式为“[地址寄存器,P#偏移量]” 。这种寻址方式叫寄存器 间接寻址。 下面是寄存器间接寻址的例子。 A I 0.1 //启动电平 L P#1.0 //将间接寻址的地址指针装入累加器 1 LAR1 //将累加器 1 的内容送到地址寄存器 1 A M [AR1,P#1.3] //AR1 的 P#1.0 加偏移量 P#1.3,实际是对 M2.3 操作 = Q [AR1,P#1.0] //把运算结果赋给 Q 的 AR1 的 P#1.0 加偏移量 P#1.0 位,即 Q2.0 L DBW [AR1,P#6.0] //把当前数据快 DBW7 的数据装入累加器 1 T MW 4 //把累加器 1 的低 16 位传送给 MW 4 8.2 S7-300 的基本指令 1 位逻辑指令 S7-300 的位逻辑指令可以分为与操作﹑或操作﹑取反操作﹑中间输出操作﹑置位操作﹑复位操作﹑ RS 触发器﹑SR 触发器﹑逻辑正边沿检测﹑逻辑负边沿检测﹑信号正边沿检测和信号负边沿检测。具体操 作及功能如表 8-5 所示。表 8-5 表 操作 语句表 梯形图 功能描述 参数说明 I 0.1 和 I 0.2 的非 触点与线圈均 与操作 A I 0.1 进行“与”操作, 为位数据。 (A/AN AN I 0.2 其结果赋予 Q 0.1 ) = Q 0.1 输出。 或操作 O I 0.2 I 0.2 和 I 0.3 的非, 触点与线圈均 (O/ON ON I 0.3 进行“或”操作, 为位数据。 ) = Q 0.2 其结果赋予 Q 0.2 输出。 取反操 A( 作 O (NOT) ON ) NOT = 中间输 A( 出操作 O (#) ON ) = A A = 置位操 A 作(S) S I 0.1 和 M 0.0 的非 进行“或”操作, 其结果“取反”再 赋予 Q 0.3 输出。 触点与线圈均 为位数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
十六进制数:十六进制的16 个数字是0~9 和A~F, 每个
占二进制数的4 位。B#16#,W#16#,DW#16#, W#16#13AF (13AFH)。逢16 进1,例如B#16#3C=3×16+12=60。
BCD码: BCD 码用4 位二进制数表示一位十进制数,十进
制数9 对应的二进制数为1001。最高4 位用来表示符号。16 位BCD 码的范围:-999~+999。32 位BCD 码的范围:-9999~ +9999。
Sugar
Sugar
输入UDT块
根据数据类型建立数据块
举例:UDT中矩阵
声明查看
数据查看
1 数制 2 基本数据类型 3 复杂数据类型 4 参数类型
回本部分
1 数制
二进制数:二进制数的1 位(bit)只能取0 和1 这两个不
同的值,用来表示开关量的两种不同的状态。该位的值与线圈、 触点的关系:ON/OFF,TURE/FALSE。二进制常数: 2#1111_0110_1001_0001。
0000 0bbb
0000 0bbbbbbb bbbb bbbb bb bb bbbb bxxx
(0~655 35)
16
15
7
bbbb
说明:位0~2(xxx )为被寻址 地址中位的编号(0~7) 说明:位0~2(xx x)为被寻 址地址中位 的编号(0~7)
位3~8为被寻 址地址的字 节的编号(0~655 35) 位3~8为被寻址 地址的字节的编号
返回上级
2.存储器直接寻址
存储器直接寻址,简称直接寻址。该寻址方式在指令中 直接给出操作数的存储单元地址。存储单元地址可用符号地 址(如SB1、KM等)或绝对地址(如I0.0、Q4.1等)。下面各 条指令操作数均采用了直接寻址方式。
返回上级
3.存储器间接寻址(1/3)
存储器间接寻址,简称间接寻址。该寻址方式在指令中 以存储器的形式给出操作数所在存储器单元的地址,也就是 说该存储器的内容是操作数所在存储器单元的地址。该存储 器一般称为地址指针,在指令中需写在方括号“[]”内。地址 指针可以是字或双字,对于地址范围小于65535的存储器可以
回本段
指令操作数
指令操作数(又称编程元件)一般在用户存储区中,操 作数由操作标识符和参数组成。操作标识符由主标识符和辅 助标识符组成,主标识符用来指定操作数所使用的存储区类 型,辅助标识符则用来指定操作数的单位(如:位、字节、 字、双字等)。 主标识符有:I(输入过程映像寄存器、Q(输出过程映 像寄存器)、M(位存储器)、PI(外部输入寄存器)、PQ (外部输出寄存器)、T(定时器)、C(计数器)、DB(数 据块寄存器)和L(本地数据寄存器); 辅助标识符有:X(位)、B(字节)、W(字或2B)、D (2DW或4B)。
位序 位序
31 31
24
24 23
23
16
15
16
15 8
7
80
7
x000 0 r rrr x000 0r r
0000 0bbb bbbb bbbb 0000 0bbb
bbbb bxxx bbb b bb bb
bbb b bxxx
说明:位0~2(xx x)为被寻 址地址中位 的编号(0~7)
说明:位0~2(xxx )为被寻址地 址中位的编号(0~7) 位3~8为被寻 址地址的字 节的编号 (0~655 35)
输出 模块
PLC的扫描过程
输
输
I0.0 Q4.1 M10.0 Q4.2 I0.1 I0.1 Q4.1 M10.0 Q4.2
输
入 映 像 寄 存 器
出 映 像 寄 存 器
输 出 锁 存 器
输 出 端 子信号入 Nhomakorabea端 子驱动
输入刷新 输入刷新阶段
程序执行
输出刷新 输出刷新阶段
扫描周期
返回本节
过程映象
PII
返回上级
2.结构(STRUCT)
结构是由一组不同类型(结构的元素可以是基本的或 复杂的数据类型)的数据组合在一起而形成的复杂数据类 型。结构通常用来定义一组相关的数据,例如电机的一组 数据可以按如下方式定义:
返回上级
3.字符串(STRING)
字符串是最多有254个字符(CHAR)的一维数组,最 大长度为256个字节(其中前两个字节用来存储字符串的 长度信息)。字符串常量用单引号括起来,例如:
循环程序执行
启动块 (OB 100) 上电后执行一次 输入 模块 循环监视时间的开始
从模块读信号状态,并保存到过程映象区 (PII)
CPU 循环
执行OB1中的程序 (循环执行) 事件 (日期时间中断、硬件中断等) 调用其他 OB,FB,FC
块OB 1
A I 0.1 A I 0.2 = Q8.0
把过程映象输出表(PIQ) 写到输出模块
回本段
寻址方式
所谓寻址方式就是指令执行时获取操作数的方式,可以 直接或间接方式给出操作数。S7-300有4种寻址方式:
立即寻址 存储器直接寻址 存储器间接寻址 寄存器间接寻址
回本段
1.立即寻址
立即寻址是对常数或常量的寻址方式,其特点是操作数 直接表示在指令中,或以惟一形式隐含在指令中。下面各条 指令操作数均采用了立即寻址方式,其中“//”后面的内容为 指令的注释部分,对指令没有任何影响。
返回上级
5.寄存器间接寻址(2/4)
第一种地址指针格式适用于在确定的存储区内寻址,即 区内寄存器间接寻址。 【例3-3】 区内寄存器间接寻址。
返回上级
5.寄存器间接寻址(3/4)
第二种地址指针格式适用于区域间寄存器间接寻址。 【例3-4】 区域间寄存器间接寻址。
返回上级
5.寄存器间接寻址(4/4)
返回上级
寻址数据单元
8位 7 数据字节 0 数据字节 1 数据字节 2 数据字节 3 0 DBB 0 DBW 0 DBD 0 DBX 4.1
DBD 8188 DBW 8190 数据字节 8191 DBB 8191
访问数据单元
传统访问方法 完全表示访问 绝对寻址
1) OPN DB19 A DBX 0.0 OPN DB19 L DBW2 OPN DB19 L DBB5 或 A DB19.DBX0.0 或
2 基本数据类型
回本段
3 复杂数据类型
数组(ARRAY) 结构(STRUCT) 字符串(STRING) 日期和时间(DATE_AND_TIME) 用户定义的数据类型(UDT) 功能块类型(FB、SFB)
回本段
1.数组(ARRAY)
数组是由一组同一类型的数据组合在一起而形成的复 杂数据类型。数组的维数最大可以到6维;数组中的元素 可以是基本数据类型或者复杂数据类型中的任一数据类型 (Array类型除外,即数组类型不可以嵌套);数组中每 一维的下标取值范围是-32768~32767,要求下标的下限 必须小于下标的上限。
返回上级
4.日期和时间(DATE_AND_TIME)
用于存储年、月、日、时、分、秒、毫秒和星期,占 用 8 个字节,用 BCD 格式保存。星期天的代码为 1, 1~ 6 的 代码为2~7。例如:
返回上级
5.用户定义的数据类型(UDT)
用户定义数据类型表示自定义的结构,存放在UDT块 中(UDT1~UDT65535),在另一个数据类型中作为一个数 据类型“模板”。当输入数据块时,如果需要输入几个相 同的结构,利用UDT可以节省输入时间。
用字指针;对于其他存储器则要使用双字指针。
返回上级
4.存储器间接寻址(2/3)
【例3-1】 存储器间接寻址的单字格式的指针寻址。
返回上级
4.存储器间接寻址(3/3)
位序
位序
存储器间接寻址的双字指针的格式如图所示。
31 24 23 16 15
8 31
8
0
7
0000 0000
0000 0000
24
23
DB 19 (符号名: Values)
0 1 2 3 4 5 6 7 8 9
符号寻址
A “Values”.Start
Number
或
L DB19.DBW2
或
L “Values”.Number
Loop
或
L DB19.DBB5
或
L “Values”.Loop
1) 带有元素名字 “Start” 的 数据位 0.0
位24~26( rr r)为被寻 址地址的区 域标识号 位3~8为被寻址地 址的字节的编号(0~655 位31的x= 0为区域 内的间接寻 址,x= 1为区域 间的间接寻 址
35)
位24~26( rrr )为被寻址地 址的区域标识号 位31的x=0 为区域内的 间接寻址,x=1 为区域间的 间接寻址
第一种地址指针格式包括被寻址数据所在存储单元地址 的字节编号和位编号,至于对哪个存储区寻址,则必须在指 令中明确给出。这种格式适用于在确定的存储区内寻址,即 区内寄存器间接寻址。 第二种地址指针格式包含了数据所在存储区的说明位
(存储区域标识位),可通过改变标识位实现跨区域寻址,
区域标识由位26~24确定。这种指针格式适用于区域间寄存 器间接寻址。
字节 0 字节 1 字节 2 : : :
PIQ
用户程序
1 : : I Q : : : : 字节 0 字节 1 字节 2 : : :
1
A =
2.0 4.3
CPU 存储器区
CPU 存储器区
PLC用户存储区的分类及功能(1/2)
回本段
PLC用户存储区的分类及功能(2/2)
返回上级
数据类型
数据类型决定数据的属性,在STEP 7中,数据类 型分为三大类:
【例3-2】 存储器间接寻址的双字格式的指针寻址。