PLC的功能指令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11
OUT
●
HTA EN IN LEN ENO OUT
● ● ●
4、数据运算指令
4、数据运算指令 I0.1 ADD_I
EN ENO
● 加法指令 ADD_I:整数加法 ADD_DI:双整数加法 ADD_R:实数加法
VW0 VW2
I0.2
IN1 IN2
OUT SUB_DI
VW4
● 减法指令 SUB_I:整数加法 SUB_DI:双整数加法 SUB_R:实数加法 ● 乘法指令 MUL_I:整数加法 MUL_DI:双整数加法 MUL_R:实数加法 ● 除法指令 DIV_I:整数加法 DIV_DI:双整数加法 DIV_R:实数加法
停止、结束、看门狗指令
A
I0.2
//
25
2、循环指令
I2.1
EN FOR ENO
INDX:当前循环计数 INIT:循环初值
VW0 1 20
I2.2
INDX
INIT FINAL
FINAL:循环终值
NEXT:循环结束
ENO
……
FOR
EN INDX INIT FINAL
VW2 1 8
10:44
INDX大于结束值, 循环中止;若起始值 大于结束值,则不执 行循环 FOR与NEXT指令配 套使用,允许循环嵌 26 套。最多嵌套8层。
4.5 中断程序与中断指令
10:44 5
4.2 数据处理指令
1、数据传送指令
MOV_B EN ENO
●
MOV_B/W/DW/R 字节/字/双字/实数 传送指令
IN
OUT
BLKMOV_B EN IN N SWAP EN IN ENO OUT ENO
●
BLKMOV_B/W/DW/R 字节/字/双字/实数 块传送指令
I0.0 I0.1 I0.2
//增计数输入端 //减计数输入端 //复位输入端 //增减计数 //设定脉冲数 //存于 VW100
C30, VW100
LDI>=
C30, +500 //判断计数器 //当前值是否 //大于 500
JMP
10
//条件满足,跳转 //到标号 10 开始 //的程序段
LBL
5、子程序的调用
子程序可嵌套, 最多8层
39
第四章 PLC 的功能指令
4.1 使能输入与输出 4.2 数据处理指令 4.3 程序控制指令 4.4 局部变量与子程序
OUT
●
SWAP 字节交换指令,用于交换输入 IN的高字节和低字节
6
4.2 数据处理指令
2、数据循环指令
SHR_B
EN
IN N
ENO
OUT
●
SHR/L_B/W/DW 字节/字/双字 右/左移位指令(移N 位)
ROR_B EN IN N ENO
●
OUT
ROR/L_B/W/DW 字节/字/双字 右/左 循环移位指令 (移N位)
● 可用在主程序中、子程序和中断程序中 ● 用在中断程序时,终止中断,执行主程序,在扫 描周期结束由RUN切换到STOP
23
4.3 程序控制指令
1、结束及停止指令
M0.4
WDR
看门狗指令:WDR
● 定时时间为500ms,每次扫描自动复位。程序扫描 周期小于500ms时,看门狗不起作用 ● 被触发时,停止执行用户程序。适用于: 用户程序很长 中断执行过长 循环指令时扫描周期过长
24
LD O O STOP
SM5.0 SM4.3 I0.3
//检查 I/O 错误 //运行时刻检查编程 //外部切换开关 //条件满足,由 RUN // 切换到 STOP 方式 // //
LD END
I0.5
//外部停止控制 //停止程序执行 // //
LD WDR
10:44
M0.4
//用触点重新触发 //看门狗定时器
目
第一章 绪论
录
第二章 S7-200的基本使用方法 第三章 数字量控制系统程序设计方法 第四章 S7-200的功能指令 第五章 S7-200在模拟量闭环控制中的应用
第六章 S7-200的通信功能
第七章 施耐德M340的使用
10:44 1
第四章 S7-200 的功能指令
4.1 使能输入与输出 4.2 数据处理指令 4.3 程序控制指令 4.4 局部变量与子程序
● 还可用来在子程序和调用它的程序间传递输入和输 出参数
31
4.4 局部变量和子程序
2、局部变量的类型 IN—输入变量 传入子程序的输入参数,寻址方式可为:
1、直接寻址 VB100 2、间接寻址
如*AC1,指针指定的数值被传入子程序
3、常数或地址
16#2344
&VB100
32
4.4 局部变量和子程序
双整数转换为整数
转换后的数超出输出 的允许范围,溢出标 志SM1.1被置为1
●
I_BCD
整数转换为BCD码
BCD码转换为整数 双整数转换为实数
● BCD_I ● DI_R
9
4.2 数据处理指令
3、数据转换指令
ROUND EN
VD0
●
VD10
ENO OUT
将实数四舍五入后转换为 双整数
IN
TRUNC
VD0
10:44
IN1
VD0
16
4.2 数据处理指令
5、表功能指令
I0.1 AD_T_TAB EN ENO VW0
● 填表指令
1254
TL EC 数据0 数据1 VW100 VW102 执行后
VW0
VW100
DATA
TBL VW100 VW102 VW104 VW106 VW108
TL:表的最大长度 EC:表内实际的项数
2)子程序的创建
菜单操作: Edit—— Insert—— Subroutine 程序编辑器: 点击鼠标右键
35
10:44
36
4.4 局部变量和子程序
4、局部变量定义和程序编写 #为系统 自动增 加
37
4.4 局部变量和子程序
5、子程序的调用
子程序可嵌套, 最多8层
38
4.4 局部变量和子程序
I0.1
END
条件结束指令:END
● 结束主程序,终止当前的扫描周期,返回主程序 起点
● 调试程序时,在程序的适当位置插入,可实现程 序的分段调试
● 只能用在主程序中,不能在子程序和中断程序中 使用
22
4.3 程序控制指令
1、结束及停止指令
SM5.0 STOP
停止指令:STOP
检查I/O错误
● 使主机CPU的工作方式由RUN切换到STOP方式, 从而立即终止用户程序的执行
临时保存在局部数据区的变量,只有在执行该 POU时,定义的临时变量被使用,执行后,不 再保存
程序编辑器自动为局部变量指定地址
LB0 LW2 Lx.y
34
4.4 局部变量和子程序
3、子程序的编写和调用 1)子程序的作用
缩短程序的长度,也可缩短程序的执行时间 增强程序的可读性和可维护性 便于移植
( NEXT )
…… ……
( NEXT )
4.3 程序控制指令
3、跳转和标号指令
控制程序流程,提高灵活性
I2.1
n
( JMP )
JMP:跳转指令 使能输入有效时,使程序流程 跳到同一程序中的指定标号n处 LBL:标号指令
…… n
LBL
标记程序段,n=0~255
只能用于同一程序块
27
LD LD LD CTUD
用输入IN填充从输出OUT开始的 N个字,N=1~255
18
6、编程举例
用模拟电位器调节定时器T37的设定值5~20s
T37:100ms定时器 50~200
5s对应PT输入50 20s对应PT输入200 模拟电位器:SMB28 数值范围:0~255
设N为模拟电位器值
10:44
0~255
Pr e _ PT 50 (200 50) N / 255
EN
ENO OUT MUL_R
VD10 VD14
I0.3
IN1 IN2
VD18
EN
ENO
VD10 VD14
10:44
IN1 IN2
OUT
VD18
12
4、数据运算指令
I0.1
EN INC_B ENO OUT IN1
VB0
VB1
I0.2 EN
DEC_W ENO OUT
● 递增指令 INC_B:字节递增 INC_W:字递增 INC_DW:双字递增
I0.3
IN1
TAN EN ENO OUT IN1
● TAN:正切指令 VD14
VD10
10:44
IN:弧度值
15
4、数学运算指令
I0.1
EN DIV_R ENO OUT
3.1415 180.0
IN1
VD0
IN1
MUL_R EN ENO OUT
30.0 VD0
IN1 IN1
SIN EN
VD0
ENO OUT
4.5 中断程序与中断指令
10:44 2
4.1 使能输入与输出
EN
ENO
● 功能性指令,表达数据的流动 ● EN为功能块的能流输入端,为布尔类型。与之 相连的逻辑运算结果为1,则能量流过该指令盒 ● ENO为功能块的能流输出端,若ENO=1,则把 能流传到下一个
3
4.1 使能输入与输出
能流
DIV_I
2、局部变量的类型 OUT—输出变量
子程序的执行结果,被返回给调用它的POU
IN_OUT—输入_输出变量
IN_OUT的初始值由调用它的POU传送给子程序, 并用同一变量将子程序的执行结果返回给调用 它的POU 常数和地址不能作输出变量和输入输出变量
33
5.4 局部变量和子程序
2、局部变量的类型 TEMP—临时变量
10
//标志程序段
LD
10:44
I0.3 Q1.0 , 3
// //把从 Q1.0 开始的 //3 个输出点置 1
28
S
第四章 PLC 的功能指令
4.1 使能输入与输出 4.2 数据处理指令 4.3 程序控制指令 4.4 局部变量与子程序
4.5 中断程序与中断指令
10:44 29
4.4 局部变量和子程序
VW10
I0.3
IN1
VW12
DEC_DW EN ENO OUT IN1
● 递减指令 DEC_B:字节递减 DEC_W:字递减 DEC_DW:双字递减
VD10
10:44
VD12
13
4、数据运算指令
I0.1
EN SQRT ENO OUT IN1
VD0
VD4
● SQRT:平方根指令
I0.2 EN
LN ENO OUT
● VD14
LN:自然对数指令
VD10
I0.3
IN1
EXP EN ENO OUT
● VD14
EXP:指数指令
14
VD10
10:44
IN1
4、数学运算指令
I0.1
EN SIN ENO OUT IN1
VD0
VD4
● SIN:正弦指令
I0.2 EN
COS ENO OUT
● VD14
COS:余弦指令
VD10
0005 0002 2345 3120
XXXX XXXX
VW104
VW106 VW108 VW110
0005 0003 2345 3120 1254
XXXX
VW110
17
4.2 数据处理指令
5、表功能指令
I0.1 FILL_N EN ENO
● 存储器填充指令
0 10
IN
N
OUT
VW100 VW100~VW118=0
19
6、编程举例
Pr e _ PT 50 (200 50) N / 255
10:44
20
第四章 PLC 的功能指令
4.1 使能输入与输出 4.2 数据处理指令 4.3 程序控制指令 4.4 局部变量与子程序
4.5 中断程序与中断指令
10:44 21
4.3 程序控制指令
1、结束及停止指令
移出的最后一位数百度文库放在溢出位SM1.1
7
4.2 数据处理指令
2、数据循环指令
移位寄存器指令
将DATA端的数值移入移位寄存器中
1
1
8
4.2 数据处理指令 3、数据转换指令
●
B_I EN
VB0
B_I I_B I_DI
字节转换为整数 整数转换为字节 整数转换为双整数
●
ENO OUT
VW10
IN
●
●
DI_I
1、局部变量表
● 全局变量表中定义的变量为全局变量,需要具体的地址
30
4.4 局部变量和子程序
1、局部变量表
● 局部变量用来定义由范围限制的变量,只在被创建 的POU中有效
POU-Program Organizational Unit
● 若全局符号与局部变量名称相同时,在定义局 部变量的POU中,局部变量的定义优先 ● 可应用于子程序中,不适用绝对地址和全局符号, 可便于移植到别的项目中。
EN
VD0
●
VD10
ENO OUT
将32位实数转换为32位带 符号整数
IN
转换后的数超出输出的允许范围,溢 出标志SM1.1被置为1
10
4.2 数据处理指令
3、数据转换指令
ASCII:30~39 41~46
ATH EN IN LEN ENO
16进制:0~9 A~F ● 将从IN指定地址开始、长度 为LEN的ASCII字符串转换成 从OUT指定地址开始存放的16 进制数 16进制数转换为ASCII ITA:整数转换为ASCII DTA:双整数转换为ASCII RTA:实数转换为ASCII
EN ENO
OUT
能流
MOV_B
EN ENO
OUT
VW10
VW12
IN1 IN2
VW14 VB0
IN1
VB2
●
几个功能块可以串联在一行中,只有前一个功 能块被正确执行,后一个功能块才能被执行
4
第四章 PLC 的功能指令
4.1 使能输入与输出 4.2 数据处理指令 4.3 程序控制指令 4.4 局部变量与子程序
OUT
●
HTA EN IN LEN ENO OUT
● ● ●
4、数据运算指令
4、数据运算指令 I0.1 ADD_I
EN ENO
● 加法指令 ADD_I:整数加法 ADD_DI:双整数加法 ADD_R:实数加法
VW0 VW2
I0.2
IN1 IN2
OUT SUB_DI
VW4
● 减法指令 SUB_I:整数加法 SUB_DI:双整数加法 SUB_R:实数加法 ● 乘法指令 MUL_I:整数加法 MUL_DI:双整数加法 MUL_R:实数加法 ● 除法指令 DIV_I:整数加法 DIV_DI:双整数加法 DIV_R:实数加法
停止、结束、看门狗指令
A
I0.2
//
25
2、循环指令
I2.1
EN FOR ENO
INDX:当前循环计数 INIT:循环初值
VW0 1 20
I2.2
INDX
INIT FINAL
FINAL:循环终值
NEXT:循环结束
ENO
……
FOR
EN INDX INIT FINAL
VW2 1 8
10:44
INDX大于结束值, 循环中止;若起始值 大于结束值,则不执 行循环 FOR与NEXT指令配 套使用,允许循环嵌 26 套。最多嵌套8层。
4.5 中断程序与中断指令
10:44 5
4.2 数据处理指令
1、数据传送指令
MOV_B EN ENO
●
MOV_B/W/DW/R 字节/字/双字/实数 传送指令
IN
OUT
BLKMOV_B EN IN N SWAP EN IN ENO OUT ENO
●
BLKMOV_B/W/DW/R 字节/字/双字/实数 块传送指令
I0.0 I0.1 I0.2
//增计数输入端 //减计数输入端 //复位输入端 //增减计数 //设定脉冲数 //存于 VW100
C30, VW100
LDI>=
C30, +500 //判断计数器 //当前值是否 //大于 500
JMP
10
//条件满足,跳转 //到标号 10 开始 //的程序段
LBL
5、子程序的调用
子程序可嵌套, 最多8层
39
第四章 PLC 的功能指令
4.1 使能输入与输出 4.2 数据处理指令 4.3 程序控制指令 4.4 局部变量与子程序
OUT
●
SWAP 字节交换指令,用于交换输入 IN的高字节和低字节
6
4.2 数据处理指令
2、数据循环指令
SHR_B
EN
IN N
ENO
OUT
●
SHR/L_B/W/DW 字节/字/双字 右/左移位指令(移N 位)
ROR_B EN IN N ENO
●
OUT
ROR/L_B/W/DW 字节/字/双字 右/左 循环移位指令 (移N位)
● 可用在主程序中、子程序和中断程序中 ● 用在中断程序时,终止中断,执行主程序,在扫 描周期结束由RUN切换到STOP
23
4.3 程序控制指令
1、结束及停止指令
M0.4
WDR
看门狗指令:WDR
● 定时时间为500ms,每次扫描自动复位。程序扫描 周期小于500ms时,看门狗不起作用 ● 被触发时,停止执行用户程序。适用于: 用户程序很长 中断执行过长 循环指令时扫描周期过长
24
LD O O STOP
SM5.0 SM4.3 I0.3
//检查 I/O 错误 //运行时刻检查编程 //外部切换开关 //条件满足,由 RUN // 切换到 STOP 方式 // //
LD END
I0.5
//外部停止控制 //停止程序执行 // //
LD WDR
10:44
M0.4
//用触点重新触发 //看门狗定时器
目
第一章 绪论
录
第二章 S7-200的基本使用方法 第三章 数字量控制系统程序设计方法 第四章 S7-200的功能指令 第五章 S7-200在模拟量闭环控制中的应用
第六章 S7-200的通信功能
第七章 施耐德M340的使用
10:44 1
第四章 S7-200 的功能指令
4.1 使能输入与输出 4.2 数据处理指令 4.3 程序控制指令 4.4 局部变量与子程序
● 还可用来在子程序和调用它的程序间传递输入和输 出参数
31
4.4 局部变量和子程序
2、局部变量的类型 IN—输入变量 传入子程序的输入参数,寻址方式可为:
1、直接寻址 VB100 2、间接寻址
如*AC1,指针指定的数值被传入子程序
3、常数或地址
16#2344
&VB100
32
4.4 局部变量和子程序
双整数转换为整数
转换后的数超出输出 的允许范围,溢出标 志SM1.1被置为1
●
I_BCD
整数转换为BCD码
BCD码转换为整数 双整数转换为实数
● BCD_I ● DI_R
9
4.2 数据处理指令
3、数据转换指令
ROUND EN
VD0
●
VD10
ENO OUT
将实数四舍五入后转换为 双整数
IN
TRUNC
VD0
10:44
IN1
VD0
16
4.2 数据处理指令
5、表功能指令
I0.1 AD_T_TAB EN ENO VW0
● 填表指令
1254
TL EC 数据0 数据1 VW100 VW102 执行后
VW0
VW100
DATA
TBL VW100 VW102 VW104 VW106 VW108
TL:表的最大长度 EC:表内实际的项数
2)子程序的创建
菜单操作: Edit—— Insert—— Subroutine 程序编辑器: 点击鼠标右键
35
10:44
36
4.4 局部变量和子程序
4、局部变量定义和程序编写 #为系统 自动增 加
37
4.4 局部变量和子程序
5、子程序的调用
子程序可嵌套, 最多8层
38
4.4 局部变量和子程序
I0.1
END
条件结束指令:END
● 结束主程序,终止当前的扫描周期,返回主程序 起点
● 调试程序时,在程序的适当位置插入,可实现程 序的分段调试
● 只能用在主程序中,不能在子程序和中断程序中 使用
22
4.3 程序控制指令
1、结束及停止指令
SM5.0 STOP
停止指令:STOP
检查I/O错误
● 使主机CPU的工作方式由RUN切换到STOP方式, 从而立即终止用户程序的执行
临时保存在局部数据区的变量,只有在执行该 POU时,定义的临时变量被使用,执行后,不 再保存
程序编辑器自动为局部变量指定地址
LB0 LW2 Lx.y
34
4.4 局部变量和子程序
3、子程序的编写和调用 1)子程序的作用
缩短程序的长度,也可缩短程序的执行时间 增强程序的可读性和可维护性 便于移植
( NEXT )
…… ……
( NEXT )
4.3 程序控制指令
3、跳转和标号指令
控制程序流程,提高灵活性
I2.1
n
( JMP )
JMP:跳转指令 使能输入有效时,使程序流程 跳到同一程序中的指定标号n处 LBL:标号指令
…… n
LBL
标记程序段,n=0~255
只能用于同一程序块
27
LD LD LD CTUD
用输入IN填充从输出OUT开始的 N个字,N=1~255
18
6、编程举例
用模拟电位器调节定时器T37的设定值5~20s
T37:100ms定时器 50~200
5s对应PT输入50 20s对应PT输入200 模拟电位器:SMB28 数值范围:0~255
设N为模拟电位器值
10:44
0~255
Pr e _ PT 50 (200 50) N / 255
EN
ENO OUT MUL_R
VD10 VD14
I0.3
IN1 IN2
VD18
EN
ENO
VD10 VD14
10:44
IN1 IN2
OUT
VD18
12
4、数据运算指令
I0.1
EN INC_B ENO OUT IN1
VB0
VB1
I0.2 EN
DEC_W ENO OUT
● 递增指令 INC_B:字节递增 INC_W:字递增 INC_DW:双字递增
I0.3
IN1
TAN EN ENO OUT IN1
● TAN:正切指令 VD14
VD10
10:44
IN:弧度值
15
4、数学运算指令
I0.1
EN DIV_R ENO OUT
3.1415 180.0
IN1
VD0
IN1
MUL_R EN ENO OUT
30.0 VD0
IN1 IN1
SIN EN
VD0
ENO OUT
4.5 中断程序与中断指令
10:44 2
4.1 使能输入与输出
EN
ENO
● 功能性指令,表达数据的流动 ● EN为功能块的能流输入端,为布尔类型。与之 相连的逻辑运算结果为1,则能量流过该指令盒 ● ENO为功能块的能流输出端,若ENO=1,则把 能流传到下一个
3
4.1 使能输入与输出
能流
DIV_I
2、局部变量的类型 OUT—输出变量
子程序的执行结果,被返回给调用它的POU
IN_OUT—输入_输出变量
IN_OUT的初始值由调用它的POU传送给子程序, 并用同一变量将子程序的执行结果返回给调用 它的POU 常数和地址不能作输出变量和输入输出变量
33
5.4 局部变量和子程序
2、局部变量的类型 TEMP—临时变量
10
//标志程序段
LD
10:44
I0.3 Q1.0 , 3
// //把从 Q1.0 开始的 //3 个输出点置 1
28
S
第四章 PLC 的功能指令
4.1 使能输入与输出 4.2 数据处理指令 4.3 程序控制指令 4.4 局部变量与子程序
4.5 中断程序与中断指令
10:44 29
4.4 局部变量和子程序
VW10
I0.3
IN1
VW12
DEC_DW EN ENO OUT IN1
● 递减指令 DEC_B:字节递减 DEC_W:字递减 DEC_DW:双字递减
VD10
10:44
VD12
13
4、数据运算指令
I0.1
EN SQRT ENO OUT IN1
VD0
VD4
● SQRT:平方根指令
I0.2 EN
LN ENO OUT
● VD14
LN:自然对数指令
VD10
I0.3
IN1
EXP EN ENO OUT
● VD14
EXP:指数指令
14
VD10
10:44
IN1
4、数学运算指令
I0.1
EN SIN ENO OUT IN1
VD0
VD4
● SIN:正弦指令
I0.2 EN
COS ENO OUT
● VD14
COS:余弦指令
VD10
0005 0002 2345 3120
XXXX XXXX
VW104
VW106 VW108 VW110
0005 0003 2345 3120 1254
XXXX
VW110
17
4.2 数据处理指令
5、表功能指令
I0.1 FILL_N EN ENO
● 存储器填充指令
0 10
IN
N
OUT
VW100 VW100~VW118=0
19
6、编程举例
Pr e _ PT 50 (200 50) N / 255
10:44
20
第四章 PLC 的功能指令
4.1 使能输入与输出 4.2 数据处理指令 4.3 程序控制指令 4.4 局部变量与子程序
4.5 中断程序与中断指令
10:44 21
4.3 程序控制指令
1、结束及停止指令
移出的最后一位数百度文库放在溢出位SM1.1
7
4.2 数据处理指令
2、数据循环指令
移位寄存器指令
将DATA端的数值移入移位寄存器中
1
1
8
4.2 数据处理指令 3、数据转换指令
●
B_I EN
VB0
B_I I_B I_DI
字节转换为整数 整数转换为字节 整数转换为双整数
●
ENO OUT
VW10
IN
●
●
DI_I
1、局部变量表
● 全局变量表中定义的变量为全局变量,需要具体的地址
30
4.4 局部变量和子程序
1、局部变量表
● 局部变量用来定义由范围限制的变量,只在被创建 的POU中有效
POU-Program Organizational Unit
● 若全局符号与局部变量名称相同时,在定义局 部变量的POU中,局部变量的定义优先 ● 可应用于子程序中,不适用绝对地址和全局符号, 可便于移植到别的项目中。
EN
VD0
●
VD10
ENO OUT
将32位实数转换为32位带 符号整数
IN
转换后的数超出输出的允许范围,溢 出标志SM1.1被置为1
10
4.2 数据处理指令
3、数据转换指令
ASCII:30~39 41~46
ATH EN IN LEN ENO
16进制:0~9 A~F ● 将从IN指定地址开始、长度 为LEN的ASCII字符串转换成 从OUT指定地址开始存放的16 进制数 16进制数转换为ASCII ITA:整数转换为ASCII DTA:双整数转换为ASCII RTA:实数转换为ASCII
EN ENO
OUT
能流
MOV_B
EN ENO
OUT
VW10
VW12
IN1 IN2
VW14 VB0
IN1
VB2
●
几个功能块可以串联在一行中,只有前一个功 能块被正确执行,后一个功能块才能被执行
4
第四章 PLC 的功能指令
4.1 使能输入与输出 4.2 数据处理指令 4.3 程序控制指令 4.4 局部变量与子程序