西门子P资料LC培训讲义4.docx

上传人:b****5 文档编号:28534138 上传时间:2023-07-18 格式:DOCX 页数:13 大小:228.31KB
下载 相关 举报
西门子P资料LC培训讲义4.docx_第1页
第1页 / 共13页
西门子P资料LC培训讲义4.docx_第2页
第2页 / 共13页
西门子P资料LC培训讲义4.docx_第3页
第3页 / 共13页
西门子P资料LC培训讲义4.docx_第4页
第4页 / 共13页
西门子P资料LC培训讲义4.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

西门子P资料LC培训讲义4.docx

《西门子P资料LC培训讲义4.docx》由会员分享,可在线阅读,更多相关《西门子P资料LC培训讲义4.docx(13页珍藏版)》请在冰豆网上搜索。

西门子P资料LC培训讲义4.docx

西门子P资料LC培训讲义4

四、S7-300/400梯形图指令介绍

在学习指令之前,要先了解有关PLC的存储区域概念。

不同品牌的PLC,梯形图指令均大同小异,但是,存储区的名字及地址的表示方法却差异很大。

 

西门子S7-300/400PLC的存储区域分为:

输入映像区(I或PI):

开关量输入DI模块的影射到I区,模拟量输入AI模块影射到PI区;这是只读区。

输出映像区(Q或PQ):

Q区写入与之对应的开关量输出DO模块,PQ区写入与之对应的模拟量输出AO模块;Q区可读/写,PQ只写,不可读。

位存储区(M):

又叫中间继电器,可读/写。

DB块:

用户定义的数据块,必须先定义后使用,可读/写。

T区:

计时器名。

C区:

计数器名。

L区:

这是局部数据区,上面提到的那些都是全局数据区。

所谓全局数据区,就是所有的程序(OB块、FC、FB)都可以访问,而且访问到的是同一个变量;局部数据区则不然,每个独立的OB块、FC、FB块都有一个独立的L区,例如:

OB1和FC1中都有L0.0,但它们却不是同一个变量。

在STEP7的梯形图指令中,不同类型的常数的格式都有严格的规定。

如byte、word和dword类型的常数,在输入时要以“16#”作为前缀,后面跟十六进制的数据;dint类型的数据在输入时要以“L#”作为前缀,后面跟十进制的数据;real类型的数据,在输入时,后面一定要带小数部分,如没有小数部分,则加上“.0”;计时器的时间常数则以“S5T#”为前缀,后面加上aH_bbM_ccS_dddMS(表示:

几小时_几分_几秒_几毫秒),“S5T#2.5S”表示2.5秒。

STEP7中的变量,从是否使用符号的角度,可以分为符号名变量和地址名变量。

地址名变量是以存储区域名为前缀,后面紧跟代表二进制长度的B、W、D(分别代表字节、字和双字),然后是起始字节的地址;位的地址名变量是存储区域名,加上位所在的字节地址,加“.”,加上位的序号。

例如:

IB0、IW0、ID0、I0.0;QB0、QW0、QD0、Q0.0;MB0、MW0、MD0、M0.0;LB0、LW0、LD0、L0.0;DB1.DBB0、DB1.DBW0、DB1.DBD0、DB1.DBX0.0。

计时器变量名则以T加上一个0~max之间的数字来表示,如T0、T1等等。

计数器变量名则以C加上一个0~max之间的数字来表示,如C0、C1等等。

(注:

max代表某型号的CPU所具有的最大数)建议大家尽量少用地址名变量,而使用符号名变量。

符号名变量是可以通过符号编辑器(symboleditor)来建立,也可以直接在使用了地址名变量后,用鼠标右键点击它,在弹出菜单中,选择“编辑符号”来建立符号。

在STEP7中,不仅可以为地址名变量建立符号名变量,还可以为组织块,功能块,功能,数据块建立符号名,并使用符号名来编写程序。

一旦建立了符号名,在编写程序的过程中,系统会自动提示,以便我们正确输入变量。

L区的变量,是局域变量;在程序进入该块时,到该块结束的过程中,局域变量是稳定的,当程序再次进入时,该局域变量的内容是不可知的,系统可能覆盖了它。

除此之外,其他存储区域的变量为全局变量,组织块、功能块、功能均可访问它们,系统不会改变它们的内容。

梯形图是PLC最常用的编程语言,它与电气控制原理图有一点点相似,是比较容易学习和掌握的一种PLC编程语言。

在STEP7的梯形图指令中,按照功能特点共分为如下十四大类指令:

位逻辑指令、比较指令、类型转换指令、整数运算指令、实数运算指令、移动(赋值)指令、字逻辑运算指令、移位指令、定时器指令、计数器指令、DB块调用指令、跳转指令、程序控制指令和(CPU)状态位指令。

4.1、位逻辑指令

位逻辑指令说明:

指令符号前面的“––”,是指令的输入,指令符号后面的“––”,是指令的输出。

输入和输出都是BOOL类型,即只有“0”和“1”两种可能。

梯形图的左边竖线表示“1”,连接线表示直接传导这个信号,传导是由左向右的。

Ø––||––常开触点(地址):

本地址位与输入进行“与”运算,结果输出。

Ø––|/|––常闭触点(地址):

对本地址位先“非”,再与输入进行“与”运算,结果输出。

Ø––()输出线圈(地址):

本地址位等于输入。

Ø––|NOT|––能流取反:

把输入信号,“非”后输出;

Ø––(S)置位线圈(地址):

如果输入为“1”,本地址位等于“1”。

Ø––(R)重置线圈(地址):

如果输入为“1”,本地址位等于“0”。

Ø––(P)––RLO上升沿检测:

如果输入为“1”,本地址位为“0”,则输出为“1”,否则,输出为“0”。

Ø––(N)––RLO下降沿检测:

如果输入为“0”,本地址位为“1”,则输出为“1”,否则,输出为“0”。

Ø––POS––地址上升沿检测:

输入为“1”,指定的位检测上升沿时,输出为“1”,否则,输出为“0”。

Ø––NEG––地址下降沿检测:

输入为“1”,指定的位检测下降沿时,输出为“1”,否则,输出为“0”。

Ø––(#)––中间输出:

本地址位保存输入的值,输出等于输入。

Ø==SR复位优先型SR双稳态触发器:

先置位,后重置,故复位优先。

Ø==RS置位优先型RS双稳态触发器:

先重置,后置位,故置位优先。

ØXOR逻辑“异或”:

位与位直接进行“异或”运算的梯形图指令没有。

Ø立即读取:

在执行含有PIB、PIW、PID的变量的指令时,CPU直接从外设读取数据。

Ø立即写入:

在执行含有PQB、PQW、PQD的变量的指令时,CPU直接向外设写数据。

 

4.2、比较指令

比较指令说明:

指令符号前面的“––”,是指令的输入,指令符号后面的“––”,是指令的输出。

输入和输出都是BOOL类型,即只有“0”和“1”两种可能。

当比较指令输入为“1”时,且IN1和IN2的比较,结果符合条件,输出为“1”,否则,输出为“0”。

IN1和IN2必须是相同的数据类型,比较的条件分为如下六种情况:

Ø==IN1等于IN2

Ø<>IN1不等于IN2

Ø>IN1大于IN2

Ø

Ø>=IN1大于等于IN2

Ø<=IN1小于等于IN2

根据IN1和IN2的数据类型,分为:

整数比较、双整数比较和实数比较三大类。

ØCMP?

I整数比较,符号如下:

ØCMP?

D双整数比较,符号如下:

ØCMP?

R实数比较,符号如下:

 

4.3、数据格式转换指令

数据格式转换指令说明:

EN为输入,是BOOL类型,ENO为输出,且总是与EN相同;当输入为“1”时,执行指令,否则,不执行指令。

IN输入的数据类型和OUT输出的数据类型在指令名称中已经说明;并且要求为全局变量或局部变量。

Ø

BCD_IBCD码转换为整数

ØI_BCD整数转换为BCD码

Ø

BCD_DIBCD码转换为双整数

ØDI_BCD双整数转换为BCD码

Ø

I_DINT整数转换为双整数

ØDI_REAL双整数转换为浮点数

Ø

INV_I整数的二进制反码

ØINV_DI双整数的二进制反码

Ø

NEG_I整数的二进制补码

ØNEG_DI双整数的二进制补码

Ø

NEG_R浮点数求反

ØROUND舍入为双整数

ØTRUNC舍去小数取整为双整数

Ø

CEIL上取整

ØFLOOR下取整

4.4、计数器指令

ØS_CUD加-减计数器

ØS_CD减计数器

ØS_CU加计数器

Ø---(SC)计数器线圈置位

Ø---(CU)加计数器线圈

Ø---(CD)减计数器线圈

 

**4.5、数据块指令

在梯形图中,访问固定数据块中的数据的一种方式,是先用——(OPN)指令打开DB块,然后直接使用DB块中的地址。

Ø---(OPN)打开数据块:

DB或DI(无条件调用功能)。

4.6、逻辑控制指令

逻辑控制指令,只能在逻辑块内跳转。

Ø---(JMP)---无条件跳转:

指输入为“1”,跳转指令必定执行。

Ø---(JMP)---条件跳转:

其输入为逻辑运算的结果,“1”时执行,“0”则不执行。

Ø---(JMPN)---若非则跳转:

其输入为逻辑运算的结果,“0”时执行,“1”则不执行。

ØLABEL标号是一个跳转指令目的地的标识符。

由1~4个字符组成,第一个字符为字母,后面可以是数字或字母,中间也可以有“_”。

与跳转指令配合使用。

 

4.7、整数算术指令

指令说明:

EN为输入,是BOOL类型,ENO为输出,且总是与EN相同;当输入为“1”时,执行指令,否则,不执行指令。

整数算术指令要求IN1、IN2必须为INT类型的变量或常数,OUT必须为INT类型的变量;双整数的运算指令要求IN1、IN2必须为DINT类型的变量或常数,OUT必须为DINT类型的变量。

使用整数算术指令时,要考虑是否会产生溢出及除法余数丢失等等问题。

Ø

ADD_I整数加法

ØSUB_I整数减法

ØMUL_I整数乘法

ØDIV_I整数除法

Ø

ADD_DI双整数加法

ØSUB_DI双整数减法

ØMUL_DI双整数乘法

Ø

DIV_DI双整数除法

ØMOD_DI回送余数的双整数

 

4.8、浮点数(实数)算术指令

指令说明:

EN为输入,是BOOL类型,ENO为输出,且总是与EN相同;当输入为“1”时,执行指令,否则,不执行指令。

实数的加、减、乘、除法运算指令要求IN1、IN2必须为REAL类型的变量或常数,OUT必须为REAL类型的变量。

ØADD_R实数加法

Ø

SUB_R实数减法

ØMUL_R实数乘法

ØDIV_R实数除法

实数的下述运算指令要求IN必须为REAL类型的变量或常数,OUT必须为REAL类型的变量。

Ø

求绝对值运算(ABS)

Ø求平方(SQR)运算

Ø求平方根(SQRT)运算

Ø求自然对数(LN)运算

Ø求基于e的指数运算(EXP)(e=2.71828)

Ø求正弦(SIN)运算

Ø求反正弦(ASIN)运算

Ø求余弦(COS)运算

Ø求反余弦(ACOS)运算

Ø求正切(TAN)运算

Ø求反正切(ATAN)运算

4.9、赋值指令

指令说明:

EN为输入,是BOOL类型,ENO为输出,且总是与EN相同;当输入为“1”时,执行指令,否则,不执行指令。

指令要求IN为变量或常数,其类型,与OUT的类型一致,且OUT必须为变量。

MOVE只能复制BYTE(字节)、WORD(字)、INT(整数)、DWORD(双字)、DINT(双精度整数)和REAL(实数)数据对象。

用户定义的数据类型(例如数组或结构)必须使用系统功能“BLKMOVE”(SFC20)进行复制。

Ø

MOVE赋值指令

 

**4.10、程序控制指令

Ø---(CALL)从线圈调用:

用来调用不带参数的功能(FC)或系统功能(SFC);

从方块调用FB/FC/SFB/SFC,即从左侧的“总览(OVERVIEW)”里,拖放到梯形图中,EN为输入,ENO为输出,且总是相同的,如图所示:

ØCALL_FB从方块调用FB

ØCALL_FC从方块调用FC

ØCALL_SFB从方块调用SFB

ØCALL_SFC从方块调用SFC

Ø调用多背景块

Ø从库中调用块

Ø使用MCR功能的重要注意事项

Ø---(MCR<)主控继电器接通

Ø---(MCR>)主控继电器断开

Ø---(MCRA)主控继电器启动

Ø---(MCRD)主控继电器停止

ØRET返回

 

4.11、移位指令

使用移位指令,可以将输入IN中的内容向左或向右逐位移动(请参见“CPU寄存器”)。

将输入IN中的内容左移相当于完成乘2加权;将输入IN中的内容右移相当于完成除2加

权的运算。

例如,如果将十进制数值“3”的等效二进制数左移3位,则累加器中的结果是

十进制数“24”的二进制数。

如果将十进制数值“16”的等效二进制数右移2位,则累加

器中的结果是十进制数“4”的二进制数。

输入参数N提供的数值表示移动的位数。

Ø•SHR_I整数右移

Ø•SHR_DI双整数右移

Ø•SHL_W字左移

Ø•SHR_W字右移

Ø•SHL_DW双字左移

Ø•SHR_DW双字右移

Ø•ROL_DW双字左循环

Ø•ROR_DW双字右循环

 

**4.12、状态位指令

状态字是CPU内部存储区中的一个寄存器,包含有为位地址和字逻辑指令提供参考的位。

这类指令的使用难度较大,意义不大,这是我个人意见。

Ø二进制结果位(BR---II---)置位(即有一个信号状态为“1”)。

Ø算术运算功能有上溢(OV---II---)或存储的上溢(OS---II---)。

Ø算术运算功能的结果是无序的(UO---II---)。

Ø算术运算功能的结果以下列方式之一:

==0,<>0,>0,<0,>=0,<=0。

 

4.13、定时器指令

Ø•S_PULSE脉冲S5定时器

Ø•S_PEXT扩展脉冲S5定时器

Ø•S_ODT接通延时S5定时器

Ø•S_ODTS保持型接通延时S5定时器

Ø•S_OFFDT断电延时S5定时器

Ø•---(SP)脉冲定时器线圈

Ø•---(SE)扩展脉冲定时器线圈

Ø•---(SD)接通延时定时器线圈

Ø•---(SS)保持型接通延时定时器线圈

Ø•---(SA)断开延时定时器线圈

 

4.14、字逻辑指令

Ø•WAND_W字和字相“与(AND)”

Ø•WOR_W字和字相“或(OR)”

Ø•WXOR_W字和字相“异或(XOR)”

Ø•WAND_DW双字和双字相“与(AND)”

Ø•WOR_DW双字和双字相“或(OR)”

Ø•WXOR_DW双字和双字相“异或(XOR)”

说明:

指令类别前加**,表示在梯形图中很少使用或者不使用。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1