plc数据处理指令与数学运算指令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 状态字与累加器1之间的装入和传送指令 L STW(将状态字装入累加器1) 将状态字装入累加器1中,指令的执行与状态位无关,而且对状态 字没有任何影响。指令格式如下: L STW T STW(将累加器1的内容传送到状态字) 使用T STW指令可以将累加器1的0~8位传送到状态字的相应位,指 令的执行与状态位无关,指令格式如下: T STW
第六章 S7-300 和S7-400 PLC编程基础 第二节 S7-300 和S7-400的指令系统
位逻辑指令 定时器指令 计数器指令 数据处理指令 数学运算指令 逻辑控控制指令 程序控制指令
一、数据处理指令 数据处理指令包括 装入和传送指令 比较指令 数据类型转换指令 特点: 数据的传送与变换一般通过累加器进行,而不是直接在存储区进行。 累加器是CPU中专用寄存器,S7-300的CPU有两个32位的累加器,即 累加器1和累加器2, S7-400的CPU有四个32位的累加器,即累加器1、 累加器2、累加器3、累加器4,累加器1是主累加器,其余的辅助累加器。 与累加器1进行运算的数据存储在累加器2中。
1 整数比较指令 整数比较指令的指令格式见下表
比较累加器2与累加器1中的数据大 小
例2:整数比较指令的使用
方框比较指令在梯形图中相 当于一个常开触点,可以与 其他触点串连和并联
2 长整数比较指令 长整数比较指令的指令格式见下表
比较累加器2与累加 器1中的数据大小
例3:长整数比较指令的使用
A1=MW0 A2=MW4 A2>=A1
(2)LAR2(将操作数的内容装入地址寄存器2) 使用LAR2指令可以将操作数的内容(32位指针)装入地址寄存 器AR2,指令格式同LAR1,其中的操作数可以是累加器1、指针型 常数(P#)、存储双字(MD)、本地数据双字(LD)、数据双字 (DBD)或背景数据双字(DID),但不能用AR1。
(3)TAR1(将地址寄存器1的内容传送到操作数) 使用TAR1指令可以将地址寄存器AR1的内容(32位指针)传送给 被寻址的操作数,指令的执行与状态位无关,而且对状态字没有任何 影响。指令的格式如下: TAR1 操作数 其中的操作数可以是累加器1、存储双字(MD)、本地数据双字 (LD)、数据双字(DBD)、背景数据双字(DID)或地址寄存器 AR2。指令的使用如下表所示:
字逻辑运算指令格式
例13:下面是逻辑“或”的一个STL指令形式例子: L QW10 //QW10的内容装入累加器1的低字 L W#16#000F //累加器1的内容装入累加器2, W#16#000F装 入累加器1的低字 OW //累加器2低字与W#16#000F逐位相或,结果在 累加器1的低字中 T QW10 //累加器1低字中的运算结果传送到QW10中
基本算术运算指令 扩展算术运算指令
1.基本算术运算指令 指令形式也有STL、LAD和FBD三种形式. 对于STL指令形式,参与算术运算的第1操作数由累加器2提供,第2 操作数由累加器1提供,结果保存在累加器1中,运算结果影响状态字, 运算过程下图
A CCU 2 A CCU 1
操作数1
操作数2
6. MOVE指令 MOVE指令为功能框形式的传送指令,能够复制字节、字或双字数据对象,指令 格式见表下表。其中:IN为传送数据输入端,OUT为数据接收端,EN为使能端,只 有当EN信号的RLO为“1”时,才允许执行数据传送操作,将IN端的数据传送到 OUT 端所指的存储器;ENO为使能输出,其状态跟随EN信号而变化。应用中IN和OUT 端操作数可以是常数、I、Q、M、D、L等类型,但必须在宽度上匹配。
CM P < = I I N1 I N2
I 0.3
Q 4.1 S
图 3-51
比 较指 令
例6:一个简单的压力检测控制系统,当压力达到10MPa时,启动气 泵(Q4.0)工作,如果压力低于5MPa时,启动压缩机(Q4.1)工作。 压力检测数据值存放在DBW16中,对应10MPa的数据值为100,对应 5MPa的数据值为50。
数学运算 运算结果
图 3-56
数 学运 算中 的累 加器
对于LAD和FBD形式的基本算数运算指令,参与运算的第1操作数和 第2操作数分别由IN1和IN2提供,运算结果保存在OUT指定的存储区中, 运算结果也影响状态字。
(1)基本算术运算指令(整数运算)
(2)基本算术运算指令(长整数运算)
(3)基本算术运算指令(实数运算)
返回目录
(三) 数据转换指令 转换指令是将累加器1中的数据进行数据类型转换,转换结果存在 累加器1中。在STEP7中,可以实现BCD码与整数、整数与长整数、长 整数与实数、整数的反码、整数的补码、实数求反等数据转换操作。
BCD码和整数到其他类型转换指令 整数和实数的码型变换指令 实数取整指令 累加器1调整指令
例8: 16位整数的算术运算指令应用。
例9:求输入双字ID10的内容与常数32相除的余数,结果保存到MD20中。
2.扩展算术运算指令
扩展算术运算指令可以完成32位浮点数的平方、平方根、自然对数、自然指数运 算及三角函数等运算,指令格式见下表。对于STL形式的函数指令,是对累加器1中的 32位浮点数进行运算,结果保存在累加器中,对于LAD和FBD形式的函数指令,由 参数IN提供32位浮点数,运算结果保存在由OUT指定的存储区。
表3 整数和实数的码型变换指令(STL形式)
表4 整数和实数的码型变换指令(LAD、FBD形式)
3 实数取整指令 实数取整指令共有4条,有3种指令形式:STL、LAD和FBD,指令 格式、说明及示例分别见表5和表6。
表5 实数取整指令(STL形式)
表6 实数取整指令(LAD、FBD形式)
4 累加器1调整指令 累加器调整指令可对累加器1的内容进行调整,指令格式、说明及示 例分别见表7。 表7 累加器1调整指令
返回目录
1 BCD码和整数到其他类型转换指令 BCD码和整数到其它类型转换指令共有6条,有3种指令形式:STL、 LAD和FBD,分别见表1和表2。
表1
表2 BCD码和整数到其他类型转换指令(LAD、FBD形式的指令)
Leabharlann Baidu
2 整数和实数的码型变换指令 整数和实数的码型转换指令共有5条,有3种指令形式:STL、LAD和 FBD,分别见表3和表4。
例7:如果输入I0.1为1,则将MD0中的内容以7位BCD码的格式,转换为 长整数,存放到MD10,如果转换不执行,则输出Q4.0为1。
返回目录
二、数学运算指令 包括: 算术运算指令 逻辑运算指令 循环移位指令
返回目录
(一)算术运算指令 算术运算指令可完成整数、长整数及实数的加、减、乘、除、求 余、求绝对值等基本算术运算;以及32位浮点数的平方、平方根、自 然对数、基于e的指数运算及三角函数等扩展算术运算。
返回上一页
1. 对累加器1的装入指令
装入(L,Load)指令将源操作数装入累加器1,而累加器1原有的数据 移入累加器2。装入指令可以对字节(8位)、字(16位)、双字(32位)
数据迸行操作,没有使用的位清零。指令格式如下: L 操作数 其中的操作数可以是立即数(如:-5、B#16#1A、’AB’、S5T#8S、 P#I1.0、直接或间接寻址的存储区(如:IB0、MW2、DBB12)。指令 示例见下表所示
4.与地址寄存器有关的装入和传送指令 S7-300/400系统有两个地址寄存器:AR1和AR2。对于地址寄存器可以 不经过累加器1而直接将操作数装入和传送,或直接交换两个地址寄存器的 内容。
(1) LAR1(将操作数的内容装入地址寄存器AR1) 使用LAR1指令可以将操作数的内容(32位指针)装入地址寄存器AR1, 执行后累加器1和累加器2的内容不变,指令的执行与状态位无关,而且对 状态字没有任何影响。指令的格式如下: LAR1 操作数 其中的操作数可以是累加器1、指针型常数(P#)、存储双字(MD)、 本地数据双字(LD)、数据双字(DBD)、背景数据双字(DID)或地址 寄存器AR2。指令的使用如下表所示:
3 实数比较指令 实数比较指令的指令格式见下表
比较累加器2与累加器1 中的数据大小
例4:实数比较指令的使用
例5:下图是比较指令的一个例子:梯形图中的方框比较指令可以 比较整数(I)、双整数(D)和浮点数(R)。方框比较指令在梯形 图中相当于一个常开触点,可以与其他触点串连和并联。
I 0.6 MW 2 MW 4
例10:用浮点数对数指令和指数指令求5的立方。计算公式为:
53 exp(3 ln 5)
STL指令为: L L#5 DTR LN L 3.0 *R EXP RND T MW40
//将长整数转换成实数
//将实数转换、取整为长整数
例11:将存储字MW10,MW12中的整数相加,结果减8后存入MW14 中。用STL指令编程。
例1:当输入I0.2为1时,执行传送操作,将MW20的内容传送到DBW20, 且使输出Q4.0为1。
返回目录
(二) 比较指令 比较指令用于比较累加器2与累加器1中的数据大小,被比较的两个数 的数据类型应该相同。如果比较的条件满足,则RLO为1,否则为0。 对于LAD和FBD形式的指令,将由参数IN1提供的数据与由IN2提供的 数据进行比较,数据类型可以是INT、DINT或REAL。 比较指令可完成整数、长整数或32位浮点数(实数)的相等、不等、大 于、小于、大于或等于、小于或等于等比较 。 整数比较指令 长整数比较指令 实数比较指令
返回目录
2. 对累加器1的传送指令 传送(T,Transfer)指令可以将累加器1的内容复制到被寻址的操作数, 所复制的字节数取决于目标地址的类型(字节、字或双字),指令格式如下: T 操作数 其中的操作数可以为直接I/O区(存储类型为PQ)、数据存储区或过程映 像输出表的相应地址(存储类型为Q)。
例12;当I0.0为1时,将存储双字MD20,MD24中的长整数相乘,结果 加MD32后存入到MD28中,用LAD指令编程。
返回目录
(二)、逻辑运算指令 字逻辑运算指令可对两个16位(WORD)或32位(DWORD)的二进 制数据,逐位进行逻辑与、逻辑或、逻辑异或运算。 对于STL形式的字逻辑运算指令,可对累加器1和累加器2中的字或双 字数据进行逻辑运算,结果保存在累加器1中,若结果不为0,则对状态 标志位CC1置“1”,否则对CC1置“0”。 对于LAD和FBD形式的字逻辑运算指令,由参数IN1和IN2提供参与运 算的两个数据,运算结果保存在由OUT指定的存储区中。
返回目录
5. LC(定时器/计数器装载指令) 使用LC(定时器/计数器装载指令)指令可以在累加器1的内容保存 到累加器2中以后,将指定定时器字中当前时间值和时基以BCD码(0~ 999)格式装入到累加器1中,或将指定计数器的当前计数值以BCD码 (0~999)格式装入到累加器1中。指令格式如下:
LC 【定时器/计数器】
(4)TAR2(将地址寄存器2的内容传送到操作数) 使用TAR2指令可以将地址寄存器AR2的内容(32位指针)传送给被 寻址的操作数,指令格式同TAR1。其中的操作数可以是累加器1、存储 双字(MD)、本地数据双字(LD)、数据双字(DBD)、背景数据双 字(DID),但不能用AR1。 (5)CAR(交换地址寄存器1和地址寄存器2的内容) 使用CAR指令可以交换地址寄存器AR1和地址寄存器AR2的内容,指 令不需要指定操作数。指令的执行与状态位无关,而且对状态字没有任 何影响。
返回上一页
(一)装入和传送指令 装入指令(L)和传送指令(T),可以对输入/输出模块与存储 区之间的信息交换进行编程,或者对各存储区之间的信息交换进行 编程。 特点:CPU在每次扫描中将无条件执行这些指令,也就是说,这 些指令不受语句中逻辑操作结果(RLO)的影响 对累加器1的装入指令 对累加器1的传送指令 状态字与累加器1之间的装入和传送指令 与地址寄存器有关的装入和传送指令 LC(定时器/计数器装载指令) MOVE指令