文档介绍:第六章 S7-300/400指令系统
S7-300/400的数据类型
S7-300/400中数的表示方法
基本数据类型
复合数据类型
CPU的存储区分布
系统存储器
CPU中的寄存器
STEP7指令系统简介
S7-300/400中数的表示方法
在S7-300/400系列的PLC中,可以用二进制数、十六进制数和BCD码来表示数。
基本数据类型
STEP7的基本数据类型有以下几种:
位(bit)
字节(Byte)
字(Word)
双字(Double Word)
整数(INT,Integer)
32位浮点数
常数(表示方法如下表)
符号
B#16# W#16# DW#16#
D#
L#
P#
S5T#
T#
TOD#
C#
2#
说明
十六进制字节、字和双字常数
IEC日期常数
32位整数常数
地址指针常数
S5时间常数(16位)
IEC时间常数
实时时间常数(16位/32位)
计数器常数(BCD编码)
二进制常数
表6-1 常数
复合数据类型
1、复合数据类型
在PLC中,可以将基本数据类型或复合数据类型组合在一起生成以下的数据类型:
(1)数组(ARRAY)是将一组同类型的数据组合在一起,形成一个单元;
(2)结构(STRUCT)是将一组不同类型的数据组合在一起,形成一个单元;
(3)字符串(STRING)是包含了最多254个字符(CHAR)的一维数组;
(4)时间和日期(DATE_AND_TIME)用于存储年、月、日、小时、分钟、秒钟、毫秒和星期,占用8个字节,用BCD格式保存,星期天的代码为1,星期一到星期六的代码为2~7;
(5)用户定义的数据类型UDT(User-Defind Data Types):由用户将基本数据类型和复合数据类型组合在一起,形成新的数据类型。
参数类型
参数类型是为在逻辑块(子程序)之间传递参数的形参定义的数据类型。
CPU的存储区分布
装载存储器
装载存储器采用了RAM或FlashROM,用来保存不包含符号表和注释的用户程序和系统数据(组态参数、模块参数等)。
工作存储器
工作存储器是集成的高速存取的RAM,用于存放运行时的用户程序和数据。为了保证程序执行的效率和不过多地占据工作存储器的空间,在执行时只把与程序执行有关的块装入工作存储器。
系统存储器
系统存储器是CPU提供给用户程序使用的存储器组件,被划分为若干地址区域。使用指令可以在各地址区域内进行直接寻址。系统存储器为不可扩展的RAM,用于存放用户程序的操作数据(如输入过程映像、输出过程映像、位存储器、定时/记数器、块堆栈、中断堆栈和诊断缓冲等)。
系统存储器
存储区
说明
存储区
说明
输入过程映像(I)
每次循环扫描,将输入状态复制到输入过程映像表
外设输出(PQ)
用户直接访问输出模块
输出过程映像(Q)
每次循环扫描,将输出过程映像表的内容写入输出模块
外设输入(PI)
用户直接访问输入模块
位存储器(M)
保存程序处理的中间结果
共享数据块(DB)
所有逻辑块可以使用的共享数据
定时器(T)
定时器的存储区
背景数据块(DIB)
提供给FB(功能块)的背景数据
计数器(C)
计数器的存储区
局部数据(L)
在处理逻辑块过程中的临时数据
表6-2 系统存储区
CPU中的寄存器
1、累加器(ACCUx)
32位的累加器是用来处理字节、字和双字的寄存器。S7-300有两个累加器(U2),S7-400有四个累加器(ACCU1、ACCU2、U4)。可以把操作数装入累加器并进行运算和处理,U1中的运算结果可以传送到系统存储器。
2、16位状态字寄存器
状态字是一个16位的寄存器,用于存储CPU在执行指令的过程中产生的状态。状态字中的某些位用于决定某些指令是否执行以及如何执行,另外一些位则用于反映在执行指令时产生的一些状态,用位逻辑指令和字逻辑指令可以对其进行访问和检测。