内容正文:
模块三
任务1 认识PLC数据类型
电机正反转控制的实现
1.PLC编程语言的国际标准
S7-1200使用梯形图LAD、函数块图FBD和结构化控制语言SCL。输入程序时软件在地址前自动添加%,梯形图中一个程序段可以放多个独立电路。
2.梯形图
梯形图由触点、线圈和指令框组成。可以为程序段添加标题和注释,可用按钮关闭注释。利用能流这一概念,可以借用继电器电路的术语和分析方法,来理解和分析梯形图。能流只能从左往右流动。形象、直观、简便,因此一直收到广大用户的喜爱。
S7-1200的编程语言和数据类型
S7-1200的编程语言和数据类型
S7-1200的编程语言
3.函数块图
函数块图(FBD)使用类似于数字电路的图形逻辑符号来表示控制逻辑,国内很少有人使用。
S7-1200的编程语言
4.SCL
结构化控制语言SCL是一种基于PASCAL的高级编程语言。SCL特别适用于数据管理、过程优化、配方管理、数学计算和统计任务等场合。
5.编程语言的切换
右键单击项目树中的某个代码块,选中快捷菜单中的“切换编程语言”,LAD和FDB语言可以相互切换。只能在“添加新块”对话框选择SCL语言。
S7-1200的编程语言
S7-1200的编程语言
用逻辑代数中的1和0来表示数字量控制中变量的两种相反的工作状态。
1状态时线圈通电、常开触点接通、常闭触点断开,0状态时反之。
在波形图中,用高、低电平分别表示1、0状态。
图中的“与”“或”“非”逻辑运算关系见下表。
逻辑运算关系表
与 或 非
Q0.0=I0.0.I0.1 Q0.1=I0.2+I0.3 Q0.2=I0.4
I0.0 I0.1 Q0.0 I0.2 I0.3 Q0.1 I0.4 Q0.2
0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 1 0 1
1 1 1 1 1 1
逻辑运算
逻辑代数式 中的加号表示逻辑“或”,乘号或*号表示逻辑“与”,上划线表示逻辑“非”。逻辑运算的规则为先“与”后“或”。括号优先,先执行括号中的“或”运算。
逻辑运算
数制与基本数据类型
(1)二进制数
二进制数的1位只能为0和1。用1位二进制数来表示开关量的两种不同的状态。如果该位为1,梯形图中对应的位编程元件的线圈通电、常开触点接通、常闭触点断开,称该编程元件为TRUE或1状态。该位为0则反之,称该编程元件为FALSE或0状态。二进制位的数据类型为BOOL(布尔)型。
1.数制
数制与基本数据类型
(2)多位二进制整数
用多位二进制数来表示大于1的整数。从右往左的第n位(最低位为第0位)的权值为2n。 2#1100对应的十进制数为1*23+1*22+0*21+0*20 = 8+4 = 12。
1.数制
(3)十六进制数
十六进制数用于简化二进制数的表示方法,16个数为0~9和A~F(10~15),1位十六进制数对应于4位二进制数,例如2#0001 0011 1010 1111可以转换为16#13AF或13AFH。
十六进制数“逢16进1”,第n位的权值为16n。16#2F对应的十进制数为2161+15160=47。
2.编码
(1)补码
在计算机系统中,所有的数据都是以二进制进行存储的
有符号二进制整数用补码来表示和存储,其最高位为符号位,
符号位为0时为正数,为1时为负数。并且正整数的补码为原码;负整数的补码为绝对值的反码加1。
例如1158对应的补码为2#0000 0100 1000 0110,
-1158对应的补码为2#1111 1011 0111 1010。
数制与基本数据类型
2.编码
(1)补码
整数-78(SInt)的表示方法 整数78(SInt)的表示方法
数制与基本数据类型
2.编码
(2)美国信息交换标准代码(ASCII码)
在计算机系统中,字符的存储采用ASCII编码方式。ASCII码(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646,包含了所有的大小写字母、数字0 到9及标点符号等。
ASCII码用来表示所有的英语字母、数字、标点符号和特殊控制字符。数字0~9的ASCII码为十六进制数30H~39H,英语大写字母A~Z的ASCII码为41H~5AH,英语小写字母a~z的ASCII码为61H~7AH。
数制与基本数据类型
2.编码
(2)美国信息交换标准代码(ASCII码)
7位的ASCII码表
数制与基本数据类型
数据类型用来描述数据的长度(即二进制的位数)和属性。
基本数据类型 位数 说明
布尔型BOOL 1 位范围:0,1
无符号数 字节型BYTE半个字 8 字节范围:0~255
28-1
字型WORD 16 字范围:0~65535 216-1
双字节型DOUBLE WORD 32 双字范围:0~(232-1)
有符号数 短整型 SINT 8 字节范围:-128~+127
整数INT 16 整数范围:-32768~+32767
双整数DINT 32 双整数范围:-231~(231-1)
实数型REAL 32 实数范围:IEEE浮点数
数据类型
数据类型 长度(位) 数值范围 常数示例 地址示例
Bool 1 0或 1 1 I1.0 、Q0.1 、M50.7、DB1.DBX2.3、Tag_name
Byte 8 2#0 到 2#1111_1111 2#1000_1001 IB2、MB10、DB1.DBB4、Tag_name
Word 16 2#0 到
2#1111_1111_1111_1111 2#1101_0010_1001_0
110 MW10、DB1.DBW2、Tag_name
USInt 8 0 到 255 78, 2#01001110 MB0、DB1.DBB4、Tag_name
SInt 8 -128 到 127 +50, 16#50 MB0、DB1.DBB4、Tag_name
UInt 16 0 到 65,535 65295, 0 MW2、DB1.DBW2、Tag_name
Int 16 -32768 到 32 767 -30000, +30000 MW2、DB1.DBW2、Tag_name
UDInt 32 0 到 4,294,967,295 4042322160 MD6、DB1.DBD8、Tag_name
DInt 32 -2147483648 到
2147483647 -2131754992 MD6、DB1.DBD8、Tag_name
数据类型 长度(位) 数值范围 常数示例 地址示例
Real 32 -3.402823e+38 到 -1.175495e-38、 0、
+1.175 495e-38 到
+3.402823e+38 123.456, -3.4, 1.0e-5 MD100、DB1.DBD8、Tag_name
LReal 64 -1.7976931348623158e+308到-2.2250738585072014e-308、 0、
+2.2250738585072014e-308到+1.7976931348623158e+308 12345.123456789e
40、1.2e+40 DB_name.var_name
TIME 32 T#-24d_20h_31m _23s_648ms 到
T#24d_20h_31m_23s_647ms T#5m_30s
T#1d_2h_15m_30s_45ms
TIME#10d20h30m20s630ms
DATE 16 D#1990-1-1 到 D#2168-12-31 D#2009-12-31
DATE#2009-12-31
2009-12-31
Time_of_Day 32 TOD#0:0:0.0 到 TOD#23:59:59.999 TOD#10:20:30.400
TIME_OF_DAY#10:20:30.400
Char 8 16#00 到 16#FF 'A', '@', 'ä', '∑' MB0、DB1.DBB4、Tag_name
WChar 16 16#0000 到
16#FFFF 'A', '@', 'ä', '∑', 亚洲字符、西里尔字符以及其它字符 MW2、DB1.DBW2、Tag_name
4.位
位数据的数据类型为Bool,编程软件用TRUE/FALSE表示1和0,
一位二进制数。%I3.2中的 “I”表示输入,字节地址为3,位地址为2。
5.位字符串
数据类型Byte(字节)、Word(字)、Dword(双字)统称为位字符串。分别由8位、16位和32位二进制数组成。
一个字节是8个位(8位二进制数),一个字有两个字节,一个双字是两个字。
MB0:M0.7~M0.0;
MW0:MB0~MB1;
MD0:MW0,MW2。
基本数据类型
数据类型Byte(字节)、Word(字)、Dword(双字)统称为位字符串。分别由8位、16位和32位二进制数组成。
一个字节是8个位(8位二进制数),一个字有两个字节,一个双字是两个字。
MB0:M0.7~M0.0;
MW0:MB0~MB1;
MD0:MW0,MW2。
M0.7 M0.6 M0.5 M0.4 M0.3 M0.2 M0.1 M0.0 M1.7 M1.6 M1.5 M1.4 M1.3 M1.2 M1.1 M1.0
MB0 MB1
MW0
MB0 MB1 MB2 MB3
MW0 MW2
MD0
MB4 MB5 MB6 MB7
MW4 MW6
MD4
基本数据类型
5.位字符串
用组成双字的编号最小的字节MB100的编号作为双字MD100的编号。
组成双字MD100的编号最小的字节MB100为MD100的最高位字节,编号最大的字节MB103为MD100的最低位字节。字也有类似的特点。
字节与位
基本数据类型
5.位字符串
SInt和USInt分别为8位的短整数和无符号短整数,Int和UInt分别为16位的整数和无符号整数,DInt和UDInt分别为32位的双整数和无符号的双整数。
有符号整数的最高位为符号位,最高位为0时为正数,为1时为负数。有符号整数用补码来表示,二进制正数的补码就是它的本身,将一个正整数的各位取反后加1,得到绝对值与它相同的负数的补码。
基本数据类型
6.整数
浮点数又称为实数(REAL),最高位为符号位,正数时为0,负数时为1。ANSI/IEEE标准的浮点数的尾数的整数部分总是为1,第0~22位为尾数的小数部分。8位指数加上偏移量127后(0~255),放在第23~30位。浮点数的范围为±1.175495 10 -38 ~±3.402 823 1038。
在STEP 7 中,用小数来输入或显示浮点数。
LReal为64位的长浮点数,最高位为符号位。尾数的整数部分总是为1,第0~51位为尾数的小数部分。11位的指数加上偏移量1023后(0~1023),放在第52~62位。
基本数据类型
7.浮点数
常数的数据长度可以使字节、字和双字。CPU以二进制的形式 存储常数,书写常数可以
用二进制、十进制、十六进制、ASCII码或实数等多种形式。
书写格式如下:十进制常数:1234;
十六进制:16#3AC6;
二进制常数:2#10100001;
ASCII码:“Show”;
实数(浮点数):+1.175495E-38(正数),
-1.175495E-38(负数)。
基本数据类型
7.浮点数
Time是有符号双整数,其单位为ms,能表示的最大时间为24天多。
Date(日期)为16位无符号整数,无符号双整数TOD(TIME_OF_DAY)为从指定日期的0 时算起的毫秒数。
数据类型DTL的12个字节依次为年(占2B)、月、日、星期的代码、小时、分、秒
(各占1B)和纳秒(占4B),均为BCD码。星期日、星期一~星期六的代码分别为1~7。
字符(Char)占一个字节,以ASCII格式存储。WChar(宽字符)占两个字节,可以存储汉字和中文的标点符号。字符常量用英语的单引号来表示,例如'A'。
2.3.
基本数据类型
8.表示日期和时间的数据类型
9.字符
10. 长日期时间
长日期时间(DTL)数据类型使用12个字节的结构保存日期和时间信息。可以在DB块中定义DTL数据类型。
数据类型 长度(字节) 范围 常量输入示例
DTL 12个字节 最小:DTL#1970-01-01-00:00:00.0
最大:DTL#2554-12-31-23:59:59.999999999 DTL#2008-12-16-20:30:20.250
Byte 组件 数据类型 值范围
1 年 UINT 1970 到 2554
2 月 USINT 1 到 12
3 日 USINT 1 到 31
4 工作日 USINT 1(星期日)到 7(星期六)
5 小时 USINT 0 到 23
6 分 USINT 0 到 59
7 秒 USINT 0 到 59
8 纳秒 UDINT 0 到 999 999 999
表3-3-3 日期数据类型
表3-3-4 DTL 结构的元素
基本数据类型
示例:在博途中定义日期时间。
日期时间可以在DB块、OB/FC/FB块的接口区和PLC数据类型中定义,在DB块中定义方法如图3-3-9所示。
图3-3-9 日期时间变量定义
基本数据类型
单击项目树中的“添加新块”,单击打开的对话框中的“数据块(DB)”按钮,生成一个数据块,可以修改其名称,其类型为默认的“全局DB”。
右键单击项目树中新生成的数据块,执行快捷菜单命令“属性”,选中打开的对话框左边窗口中的“属性”,如果勾选右边窗口中的复选框“优化的块访问”,只能用符号地址访问生成的块中的变量,不能使用绝对地址。这种访问方式可以提高存储器的利用率。
全局数据块与其他数据类型
1. 生成全局数据块
S7-1200 PLC有两种字符串数据类型,String和WString数据类型。
String数据类型可存储一串单字节字符。
WString数据类型可存储单字(双字节)值的较长字符串。
数据类型String(字符串)是字符组成的一维数组,每个字节存放1个字符。第一个字节是字符串的最大字符长度,第二个字节是字符串当前有效字符的个数,字符从第3个字节开始存放,一个字符串最多254个字符。
数据类型WString(宽字符串)存储多个数据类型为Wchar的16位宽字符。第一个字是最大字符个数,第二个字是当前的总字符个数。
在“数据块_1”的第2行创建名为“故障信息”的字符串“String[30]”,其启动值为‘OK’。
全局数据块与其他数据类型
2. 字符串
数据类型 长度(字节) 范围 常量输入示例
String n+ 2 字节 n =(0 到 254字节) ‘ABC’
WString n + 2 个字 n =(0 到 65534 个字) ‘ä123@XYZ.COM’
其他数据类型
2. 字符串
示例2:字符串的传送方法示例
使用MOVE指令和S_MOVE指令介绍字符串的传送方法。
图3-3-8 字符串的传送方法
其他数据类型
2. 字符串
示例1:String数据类型和WString数据类型在博途中的定义方法示例。
字符串可以在DB块、OB/FC/FB块的接口区和PLC数据类型中定义,在DB块中定义方法如图3-3-7所示。
图3-3-7 String和WString数据类型变量定义
其他数据类型
其他数据类型
2. 字符串
数组类型是由数目固定且数据类型相同的元素组成的数据结构,数组可以在DB块和OB/FC/FB块的接口编辑器中定义,但在PLC变量编辑器中无法定义数组。 允许使用除了Array之外的所有数据类型作为数组的元素,最多为6维。
在定义数组时,需要为数组命名并选择数据类型“Array [lo .. hi] of type”,
根据如下说明编辑“lo”、“hi”和“type”。
(1) lo - 数组的起始(最低)下标。
(2) hi - 数组的结束(最高)下标。
(3) type - 数据类型选择,例如 BOOL、SINT和UDINT等。
其他数据类型
3. 数组
图2-13 二维数组的元素
下图是名为“电流”的二维数组Array[1..2,1..3] of Byte的内部结构。
第一维的下标1、2是电动机的编号,第二维的下标1~3是三相电流的序号。
数组元素“电流[1,2]”是一号电动机第2相的电流。
在数据块的第3行生成名为“功率”的数组,数据类型为Array[0..23] of Int,数组元素的下标的上限值和下限值(整数)用两个小数点隔开,下限值应小于等于上限值。 单击“功率”左边的按钮可以显示或隐藏数组的元素。
其他数据类型
3. 数组
示例1:在博途中定义数组变量。
图3-3-10 数组变量定义
其他数据类型
示例2:数组元素的传送。
图3-3-11 数组的寻址方法
其他数据类型
结构(Struct)是由固定数目的多种数据类型的元素组成的数据类型。可以用数组和结构做结构的元素,结构可以嵌套8层。
结构类型的变量在程序中可以作为一个变量整体,也可以单独使用组成该结构的元素结构类型可以在DB块、OB/FC/FB块的接口区、PLC数据类型处定义使用。
在数据块_1的第4行生成一个名为“电动机”的结构,在第5~8行生成结构的4个元素。可以用“电动机”左边的按钮显示或隐藏结构的元素。
在用户程序中,可以用符号地址“数据块_1”.电动机.电流访问结构中的元素。
其他数据类型
4. 结构
示例:在数据块中定义一个电机变量的结构数据类型,它包含电机启动按钮、电机停止按钮、电机复位按钮、电机急停按钮、电机运行状态、电机故障状态、电机运行电流、电机运行频率和电机设定频率等信息。
其他数据类型
VARIANT类型的参数是一个可以指向不同数据类型变量(而不是实例)的指针。VARIANT指针可以是基本数据类型(例如,INT 或 REAL)的对象,还可以是STRING、DTL、STRUCT类型的ARRAY,或者UDT类型的ARRAY。VARIANT指针可以识别结构,并指向各个结构元素。VARIANT数据类型的操作数不占用背景数据块或工作存储器中的空间,但是占用CPU上的存储空间。
VARIANT类型的变量不是一个对象,而是对另一个对象的引用。在函数的块接口中的VAR_IN、VAR_IN_OUT和VAR_TEMP部分中,VARIANT类型的单个元素只能声明为形参。因此,不能在数据块或函数块的块接口静态部分中声明。
Variant属于参数类型,它用于为各种数据类型创建通用的标准函数块或函数。它的实参可以是任意的基本数据类型、复杂数据类型的元素或复杂数据类型。它可以作FC的Input、Output、InOut、Temp变量的数据类型,但是不能用于FB的Output和Static变量。
Variant类型的操作数不会占用任何存储器的空间。Variant除了传递变量的指针外,还会传递变量的数据类型信息。Variant的实参,可以是符号寻址或绝对地址寻址,还可以是P#DB5.DBX10.0 INT 12这种Any指针形式的寻址。
其他数据类型
5. VARIANT指针
下表列出了 VARIANT 指针的属性。
长度(字节) 表示方式 格式 示例输入
0 符号 操作数 MyTag
数据块名称.操作数名称.元素 “MyDB”.Struct1.pressure
绝对 操作数 %MW10
数据块编号.操作数 类型长度
(仅对可标准访问的块有效) P#DB10.DBX10.0 INT 12
其他数据类型
5. VARIANT指针
PLC数据类型是一种复杂的用户自定义数据类型,用于声明变量。它是一个由多个不同数据类型元素组成的数据结构。定义好以后可以在用户程序中作为数据类型使用,用得很少。
双字中的字、字节和位
其他数据类型
6. PLC 数据类型
可以用符号方式按位、按字节或按字访问PLC变量表和数据块中某个符号变量的一部分。
例如在PLC变量表中,“状态”是一个声明为双字数据类型的变量,
“状态”.x11是“状态”的第11位,
“状态”.b2是“状态”的第2号字节,
“状态”.w0是“状态”第0号字。
双字中的字、字节和位
其他数据类型
7. 使用符号方式访问非结构数据类型变量的“片段”
通过关键字“AT”,可以将一个已声明的变量覆盖为其他类型的变量,
比如通过Bool型数组访问Word变量的各个位。
生成名为“函数块1”的函数块FB1,右键单击项目树中的“函数块1”,
取消“优化的块访问”属性。
打开函数块1的接口区,生成数据类型为Word的变量“状态字”。
在下面的空行输入变量名称“状态位”,设置数据类型为“AT”,
在“状态位”右边出现AT“状态字”。
在“数据类型”列,声明变量“状态位”的数据类型为数组Array[0..15] of Bool。
单击“状态位”左边的按钮,显示出数组“状态位”的各个元素,可以在程序中 使用数组“状态位”的各个元素,即Word变量“状态字”的各位。
其他数据类型
8. 访问带有一个 AT覆盖的变量
其他数据类型
8. 访问带有一个 AT覆盖的变量
地址名变量是以存储区域名为前缀,后面紧跟代表二进制长度的B、W、D(分别代表字节、字、双字),然后是起始字节的地址;位的地址名变量是存储区域名,加上位所在的字节地址,加 “.”,加上位的序号。例如:IB0、IW2、ID0、I0.0;QB0、QW0、QD0、Q0.0;MB0、MW0、 MD0、M0.0;LB0、LW0、LD0、L0.0;DB1. DBX0.0、DB1. DBB0、DB1. DBW0、DB1.DBD0。
系统存储区
在程序中指定特定的输入或输出称为寻址。
在数字量输入模块和输出模块中,通常会将 PLC 的输入和输出按 8 个二进制位进行组合。
8 个二进制位一组的单位称为一个字节。每个字节有一个编号,称为字节地址。
字节内的单个输入或输出称为位。1个字节中位的编号为 Bit 0 至 Bit 7,称为位地址。
系统存储区
用户程序访问PLC的输入(I)和输出(Q)信号时,通常不是直接读取输入/输出模块的信号,而是通过位于PLC中一个存储区域对I/O模块进行访问,这个存储区域就是过程映像区。过程映像区分为过程映像输入区和过程映像输出区。
采用过程映像区处理输入和输出信号的好处在于在PLC一个扫描周期中,过程映像区可以向用户程序提供一个始终一致的过程信号。如果在一个扫描周期中输入模块的信号状态发生变化,过程映像区中的信号状态在当前扫描周期将保持不变,直到下一个PLC扫描周期时,过程映像区才更新,这样就保证了PLC在执行用户程序过程中过程映像区数据的一致性。
S7-1200 PLC的数字量模块和模拟量模块的过程映像区的访问方式相同,输入都是以关键字符%I开头(%表示绝对地址寻址),例如%I0.5、%IW20。输出都是以关键字符%Q开头,例如%Q0.5、%QW20。
过程映像输入( I )是PLC接收外部输入的数字量信号的窗口。在扫描循环中,用户程序将输出值存入过程映像输出区。在下一扫描循环开始时,将过程映像输出区的内容写到数字量输出点。I和Q均可以按位、字节、字和双字来访问。
1.过程映像输入/输出
系统存储区
在I/O点的地址或符号地址的后面附加“:P”,可以立即读外设输入或立即写外设输出,例如I0.3:P和Q0.4:P。写外设输入点是被禁止的,即I_:P访问是只读的。用I_:P访问外设输入不会影响过程映像输入区中的对应值。
2.外设输入
系统存储区
过程映像输入( I )是PLC接收外部输入的数字量信号的窗口。在扫描循环中,用户程序将输出值存入过程映像输出区。在下一扫描循环开始时,将过程映像输出区的内容写到数字量输出点。I和Q均可以按位、字节、字和双字来访问。
外设输入
存储区 描述 强制 保持
过程映像输入(I) 在扫描循环开始时,从物理输入复制的输入值 Yes No
物理输入(I_:P) 通过该区域立即读取物理输入 No No
过程映像输出(Q) 在扫描循环开始时,从输出值写入物理输出 Yes No
物理输出(Q_:P) 通过该区域立即写物理输出 No No
位存储器(M) 用于存储用户程序的中间运算结果或标志位 No No
临时局部存储器(L) 块的临时局部数据,只能供块内部使用 No No
数据块(DB) 数据存储器与FB的参数存储器 No No
2.3.4 系统存储区
●存储区:ID0-----IW0、IW2。 MD4-------MW4、MW6
高位字节
低位字节
●数据块DB:用户定义,必须先定义后使用,可读/写 。
DBX、DBB、DBW、DBD表示数据块的位、字节、字、双字。
DB1.DBX0.0 ,DB1.DBB2、DB2.DBW4,DB3.DBD10
系统存储区
●MD60的最高位:M60.7
最低位:M63.0
系统存储区
在使用字和双字时要注意字节地址的划分,防止出现字节重叠造成的读写错误。
如MW0和MW1不要同时使用,因为这两个元件都占用了MB1。
I和Q均可以按位、字节、字和双字来访问,例如I0.0、IB0、IW0和ID0。程序编辑器自动地在绝对操作数前面插入%,例如%I3.2。
在I/O点的地址或符号地址的后面附加“:P”,可以立即访问外设输入或外设输出I0.3:P或“Stop:P”,可以立即读取CPU、信号板和信号模块的数字量输入和模拟量输入
注:
可以立即写外设输出点,同时写给过程映像输出。读外设输出点是被禁止的,即Q_:P访问是只写的。
3.外设输出
位存储器(M存储器)用来存储运算的中间操作状态或其他控制信息。
4.位存储器
数据块用来存储代码块使用的各种类型的数据。
5.数据块
临时存储器又称为局部数据,用于存储代码块被处理时使用的临时数据。所有的代码块都可以访问M存储器和数据块中的数据。在OB、FC和FB的接口区生成的临时变量只能在生成它们的代码块内使用,不能与其他代码块共享。只能通过符号地址访问临时存储器。
可以按位、字节、字或双字读/写位存储器区、数据块和临时存储器。
6.临时存储器
系统存储区
S7-1200 CPU地址区包括过程映像输入I区、过程映像输出Q区、位存储器M区和数据块DB区等地址区,地址区的说明如表所示。
地址区 可以访问的地址单位 符号 说明
过程映像输入I区 输入(位) I CPU 在循环开始时从输入模块读取输入值并将这些值保存到过程映像输入表中。
输入字节 IB
输入字 IW
输入双字 ID
过程映像输出Q区 输出(位) Q CPU 在循环开始时将过程映像输出表中的值写入到输出模块。
输出字节 QB
输出字 QW
输出双字 QD
位存储器(M) 位存储器(位) M 此区域用于存储程序中计算出的中间结果。
存储器字节 MB
存储器字 MW
存储器双字 MD
数据块(DB) 数据位 DBX 数据块存储程序信息,可以对它们进行定义以便所有代码块都可以访问它们,也可将其分配给特定的FB函数块。
数据字节 DBB
数据字 DBW
数据双字 DBD
地址区
地址区 可以访问的地址单位 符号 说明
局部数据 局部数据位 L 此区域包含块处理过程中块的临时数据。
局部数据字节 LB
局部数据字 LW
局部数据双字 LD
I/O 输入区域 I/O输入位 <变量>:P I/O 输入和输出区域允许直接访问输入和输出模块。
I/O输入字节
I/O输入字
I/O输入双字
I/O 输出区域 I/O输出位
I/O输出字节
I/O输出字
I/O输出双字
地址区
每个存储单元都有唯一的地址。用户程序利用这些地址访问存储单元中的信息。
绝对地址由以下元素组成:
(1) 地址区助记符,如 I、Q 或 M。
(2) 要访问数据的单位,如“B”表示Byte、“W”表示Word、“D”表示DWord。
(3) 数据地址,如 Byte 3、Word 3。
如果访问地址中的位时,不需要输入要访问数据的单位,仅需输入数据的地址区助记符、字节位置和位位置(如I0.0、Q0.1 或 M3.4)。
1.寻址规则
寻址方法
M3.4寻址方式举例
寻址方式举例
寻址方法
2. 过程映像输入I区寻址方法
I区(过程映像输入区):CPU仅在每个扫描周期的循环OB块执行之前对外围(物理)输入点进行采样,并将这些值写入到输入过程映像区。可以按位、字节、字或双字访问输入过程映像。过程映像输入区通常为只读。
数据大小 表示方法 示例
位 I[字节地址].[位地址] I0.1
字节、字或双字 I[大小][起始字节地址] IB4、IW5或ID12
I区寻址方法
寻址方法
3. 过程映像输入Q区寻址方法
Q区(过程映像输出区):CPU将存储在输出过程映像区中的值复制到物理输出区。可以按位、字节、字或双字访问输出过程映像区。过程映像输出区允许读访问和写访问。
Q区寻址方法
数据大小 表示方法 示例
位 Q[字节地址].[位地址] Q0.1
字节、字或双字 Q[大小][起始字节地址] QB4、QW5或QD12
寻址方法
4. M区寻址方法
M区(位存储区):用于存储操作的中间状态或其它控制信息的。可以按位、字节、字或双字访问位存储区。M位存储区允许读访问和写访问。
M区寻址方法
数据大小 表示方法 示例
位 M[字节地址].[位地址] M0.1
字节、字或双字 M[大小][起始字节地址] MB4、MW5或MD12
寻址方法
5. DB区寻址方法
DB区(数据块):DB存储区用于存储各种类型的数据,其中包括存储操作的中间状态或FB块的背景信息参数等。可以按位、字节、字或双字访问DB存储区。数据块一般允许读访问和写访问。
DB区寻址方法
数据大小 表示方法 示例
位 DBX[字节地址].[位地址] DB1.DBX2.3
字节、字或双字 DB[大小][起始字节地址] DB1.DBB4、DB10.DBW2、DB20.DBD8
寻址方法
$$