西门子PLC指令教程 应用指令
- 格式:ppt
- 大小:632.50 KB
- 文档页数:81
西门子PLC的NEG_I指令功能和应用实例 -
西门子plc
plc的NEG_I指令符号
表1为NEG_I转换指令说明表。
表1 NEG_I转换指令说明表参数数据类型存储器区域说明 EN BOOL I、Q、M、L、D 允许输入 ENO BOOL I、Q、M、L、D 允许输出 IN INT I、Q、M、L、D 整型数输入 OUT INT I、Q、M、L、D 求输入整型数的负值 NEG_I(求整型数输入的负值)指令,读输入参数IN的内容,然后,实现求“2”的补码指令。
求“2”的补码指令等效于乘(-1),即转变“正/负”符号(例如:从一个正值变成负值)。
ENO总是与EN有相同的信号状态,只有以下状况是例外:假如EN的信号状态=“1”,而指令执行时消灭溢出,这时ENO的信号状态=“0”。
表2为NEG_I转换指令对状态位的影响。
表2 NEG_I转换指令对状态位的影响- BR CC1 CC0 OV OS OR STA RLO /FC 写状态位 x x x x x 0 x x 1 如图2所示,假如输入I0.0的信号状态为“1”,然后,MW8的值以相反的符号,由输出参数OUT输出到MW10。
例如:MW8=+10,执行指令后,MW10=-10。
假如转换指令没有执行(即ENO=EN =0),则输出Q4.0置成“1”。
假如信号状态EN =1以及消灭溢出,则ENO的信号状态置成“0”。
图2 NEG_I转换指令应用举例
1。
西门子PLC编程指令1、位逻辑指令(1)-||-常开接点(地址)(2)-|/|-常闭接点(地址)(3)XOR位异或(4)-|NOT|-信号流反向(5)-()输出线圈(6)-(#)-中间输出(7)-(R)线圈复位(8)-(S)线圈置位(9)RS复位置位触发器(10)RS置位复位触发器(11)-(N)-RLO下降沿检测(12)-(P)-PLO上升沿检测(13)-(SAVE)将RLO存入BR存储器(14)MEG地址下降沿检测(15)POS地址上升沿检测2、比较指令(1)CMP?I整数比较(2)CMP?D双整数比较(3)CMP?R实数比较3、转换指令(1)BCD_IBCD码转换为整数(2)I_BCD整数转换为BCD码(3)I_DINT整数转换为双整数(4)BCD_DIBCD码转换为双整数(5)DI_BCD双整数转换为BCD码(6)DI_REAL双整数转换为浮点数(7)INV_I整数的二进制反码(8)INV_DI双整数的二进制反码(9)NEG_I整数的二进制补码(10)NEG_DI双整数的二进制补码(11)NEG_R浮点数求反(12)ROUND舍入为双整数(13)TRUNC舍去小数取整为双整数(14)CEIL上取整(15)FLOOR下取整4、计数器指令(1)S_CUD加减计数(2)S_CU加计数器(3)S_CD减计数器(4)-(SC)计数器置初值(5)-(CU)加计数器线圈(6)-(CD)减计数器线圈5、数据块指令(1)-(OPN)打开数据块:DB或DI6、逻辑控制指令(1)-(JMP)无条件跳转(2)-(JMP)条件跳转(3)-(JMPN)若非则跳转(4)LABEL标号7、整数算术运算指令(1)ADD_I整数加法(2)SUB_I整数减法(3)MUL_I整数乘法(4)DIV_I整数除法(5)ADD_DI双整数加法(6)SUB_DI双整数减法(7)MUL_DI双整数乘法(8)DIV_DI双整数除法(9)MOD_DI回送余数的双整数8、浮点算术运算指令(1)基础指令①ADD_R实数加法②SUB_R实数减法③MUL_R实数乘法④DIV_R实数除法⑤ABS浮点数绝对值运算(2)扩展指令①SQR浮点数平方②SQRT浮点数平方根③EXP浮点数指数运算④LN浮点数自然对数运算⑤SIN浮点数正弦运算⑥COS浮点数余弦运算⑦TAN浮点数正切运算⑧ASIN浮点数反正弦运算⑨ACOS浮点数反余弦运算⑩ATAN浮点数反正切运算9、赋值指令(1)MOVE赋值10、程序控制指令(1)-(Call)从线圈调用FC/SFC(无参数) (2)CALL_FB从方块调用FB(3)CALL_FC从方块调用FC(4)CALL_SFB从方块调用SFB(5)CALL_SFC从方块调用SFC(6)-(MCR<)主控继电器接通(7)-(MCR>)主控继电器断开(8)-(MCRA)主控继电器启动(9)-(MCRD)主控继电器停止(10)-(RET)返回11、移位和循环指令(1)移位指令①SHR_I整数右移②SHR_DI双整数右移③SHL_W字左移④SHR_W字右移⑤SHL_DW双字左移⑥SHR_DW双字右移(2)循环指令①ROL_DW双字左循环②ROR_DW双字右循环12、状态位指令(1)OV-||-溢出异常位(2)OS-||-存储溢出异常位(3)UO-||-无序异常位(4)BR-||-异常位二进制结果(5)==0-||-结果位等于"0"(6)<>0-||-结果位不等于"0" (7)>0-||-结果位大于"0"(8)<0-||-结果位小于"0"(9)>=0-||-结果位大于等于"0" (10)<=0-||-结果位小于等于"0"13、定时器指令(1)S_PULSE脉冲S5定时器(2)S_PEXT扩展脉冲S5定时器(3)S_ODT接通延时S5定时器(4)S_ODTS保持型接通延时S5定时器(5)S_OFFDT断电延时S5定时器(6)-(SP)脉冲定时器线圈(7)-(SE)扩展脉冲定时器线圈(8)-(SD)接通延时定时器线圈(9)-(SS)保持型接通延时定时器线圈(10)-(SF)断开延时定时器线圈14、字逻辑指令(1)WAND_W字和字相"与"(2)WOR_W字和字相"或"(3)WAND_DW双字和双字相"与" (4)WOR_DW双字和双字相"或" (5)WXOR_W字和字相"异或" (6)WXOR_DW双字和双字相"异或“。
数据处理、运算指令及应用本章要点✍ 数据传送、字节交换、字节立即读写、移位、转换指令的介绍、应用及实训 ✍ 算术运算、逻辑运算、递增/递减指令的介绍、应用及实训✍ 表的定义、填表指令、表取数指令、填充指令、表查找指令的介绍5.1 数据处理指令5.1.1 数据传送指令1. 字节、字、双字、实数单个数据传送指令MOV数据传送指令MOV ,用来传送单个的字节、字、双字、实数。
指令格式及功能如表5-1所示。
表5-1单个数据传送指令MOV 指令格式使EN O = 0即使能输出断开的错误条件是:SM4.3(运行时间),0006(间接寻址错误)。
【例5-1】将变量存储器VW10中内容送到VW100中。
程序如图5-1所示。
LD I0.1MOVW VW10, VW100图5-1例5-1题图2. 字节、字、双字、实数数据块传送指令BLKMOV数据块传送指令将从输入地址IN 开始的N 个数据传送到输出地址OUT 开始的N 个单元中,N 的范围为1至255,N 的数据类型为:字节。
指令格式及功能如表5-2所示。
表5-2 数据传送指令BLKMOV 指令格式使ENO= 0的错误条件:0006(间接寻址错误)0091(操作数超出范围)。
【例5-2】程序举例:将变量存储器VB20开始的4个字节(VB20- VB23)中的数据,移至VB100开始的4个字节中(VB100-VB103)。
程序如图5-2所示。
LAD STLLD I0.0BMB VB20 ,VB100, 4图5-2 例5-2图程序执行后,将VB20~VB23中的数据30、31、32、33送到VB100~VB103。
执行结果如下:数组1数据 30 31 32 33数据地址 VB20 VB21 VB22 VB23块移动执行后:数组2数据 30 31 32 33数据地址 VB100 VB101 VB102 VB1035.1.2 字节交换、字节立即读写指令1. 字节交换指令字节交换指令用来交换输入字IN 的最高位字节和最低位字节。
西门子PLC的基本指令程序设计西门子PLC的基本指令程序设计1. 引言2. 输入输出指令西门子PLC的输入输出指令用于控制PLC与外部设备(如传感器、执行器等)之间的数据交换。
其中,最常用的输入输出指令是电平指令、边沿指令和计时指令。
2.1 电平指令电平指令用于检测输入信号是否处于高电平或低电平状态。
常用的电平指令有:`I`指令:用于检测输入信号是否为高电平;`IB`指令:用于检测输入信号是否为低电平。
2.2 边沿指令边沿指令用于检测输入信号的变化。
常用的边沿指令有:`I8`指令:用于检测输入信号从低电平到高电平的上升沿;`I9`指令:用于检测输入信号从高电平到低电平的下降沿。
2.3 计时指令计时指令用于对输入信号的时间进行计时。
常用的计时指令有:`TON`指令:用于对输入信号的累计时间进行计时;`TOF`指令:用于对输入信号的间隔时间进行计时。
3. 逻辑运算指令逻辑运算指令用于进行逻辑判断和运算。
常用的逻辑运算指令有:`AND`指令:进行与运算;`OR`指令:进行或运算;`XOR`指令:进行异或运算;`NOT`指令:进行非运算。
4. 数据处理指令数据处理指令用于对数据进行处理和转换。
常用的数据处理指令有:`MOV`指令:用于将一个值从一个寄存器复制到另一个寄存器;`ADD`指令:用于对两个操作数进行相加运算;`SUB`指令:用于对两个操作数进行相减运算;`MUL`指令:用于对两个操作数进行相乘运算;`DIV`指令:用于对两个操作数进行相除运算。
5. 定时器指令定时器指令用于进行时间控制和延时操作。
常用的定时器指令有:`TON`指令:用于进行延时操作;`TOF`指令:用于进行时间控制。
6. 计数器指令计数器指令用于进行计数操作。
常用的计数器指令有:`CTU`指令:用于正向计数;`CTD`指令:用于逆向计数。
7. 程序控制指令程序控制指令用于控制程序的执行顺序和跳转。
常用的程序控制指令有:`JSR`指令:用于子程序调用;`JMP`指令:用于无条件跳转;`LBL`指令:用于标记指令。
PLC程序详解(图文并貌)一、时间继电器:TON 使能=1计数,计数到设定值时(一直计数到32767),定时器位=1。
使能=0复位(定时器位=0)。
TOF 使能=1,定时器位=1,计数器复位(清零)。
使能由1到0负跳变,计数器开始计数,到设定值时(停止计数),定时器位=0。
如下图:图1:使能=1时,TOF(T38)的触点动作图图2:使能断开后,计数到设定值后,TOF(T38)的触点动作图(其中T38常开触点是在使能由1到0负跳变后计数器计时到设定值后变为0的)TONR 使能=1,计数器开始计数,计数到设定值时,计数器位=1。
使能断开,计数器停止计数,计数器位仍为1,使能位再为1时,计数器在原来的计数基础上计数。
以上三种计数器可以通过复位指令复位。
正交计数器 A相超前B相90度,增计数B相超前A相90度,减计数当要改变计数方向时(增计数或减计数),只要A相和B相的接线交换一下就可以了。
二、译码指令和编码指令:译码指令和编码指令执行结果如图所示:DECO是将VW2000的第十位置零(为十进制的1024),ENCO输入IN最低位为1的是第3位,把3写入VB10(二进制11)。
三、填表指令(ATT)S7-200填表指令(ATT)的使能端(EN)必须使用一个上升沿或下降沿指令(即在下图的I0.1后加一个上升沿或下降沿),若单纯使用一个常开触点,就会出现以下错误:这一点在编程手册中也没有说明,需要注意。
其他的表格指令也同样。
四、数据转换指令使用数据转换指令时,一定要注意数据的范围,数据范围大的转换为数据范围小的发注意不要超过范围。
如下图所示为数据的大小及其范围。
(1)BCD码转化为整数(BCD_I)关于什么是BCD码,请参看《关于BCD码》。
BCD码转化为整数,我是这样理解的:把BCD码的数值看成为十进制数,然后把BCD到整数的转化看成是十进制数到十六进制数的转化。
如下图所示,BCD码为54,转化为整数后为36。