西门子S 指令表
- 格式:doc
- 大小:226.50 KB
- 文档页数:15
PLC经验分享西门子S-指令浅谈(一)PLC经验分享:西门子S-指令浅谈近年来,随着自动化技术的不断发展,PLC已成为自动化控制系统中不可或缺的一部分。
而西门子S-指令作为西门子PLC控制器中最常用的编程指令之一,有着广泛的应用范围和应用价值。
本文将讨论西门子S-指令的基础用法、常见错误及应对方法等方面问题,为读者提供一些实用的知识和经验。
一、基础用法1.1 S-指令介绍S-指令是西门子PLC控制器中最常用的编程指令之一。
它有两种类型:S-R/W和S-FC。
其中S-R/W是读写指令,可以读取和修改PLC内存中的数据。
S-FC是函数指令,可以执行各种运算、逻辑判断和数据处理。
1.2 S-R/W指令用法S-R/W指令的基本格式如下:S 开头符号LD Load指令,表示将后面的地址拷贝到一个寄存器中保存C 地址类型,表示使用绝对地址I 地址的数值存储的操作数,可以是数据、控制字或状态字例如,S7 LD C100 I0 代表将地址100的数据存储在S7中。
又例如,S8 LD C400 FAT代表将地址400中的第三组状态字的值存储在S8中。
1.3 S-FC指令用法S-FC指令的基本格式如下:S 开头符号FC Function Code,即函数码,根据不同的功能会有不同的代码地址目标地址,表示所有输入数据的输入地址输入数据函数需要的输入值,可以是数据或其他信号例如,S28 FC5 C500 W2 C200.0 表示执行函数码为5的函数,并将输入数据设置为W2寄存器的值,直接返回结果。
另一个例子是S29 FC8I200 #R4.9 SA1 表示执行函数码8的函数,其中输入数据分别为I200、R4.9和SA1。
二、常见错误及应对方法2.1 S-R/W指令错误常见的S-R/W指令错误包括地址越界、数据类型错误等。
在遇到这类错误时,程序就会停止工作。
要解决这类错误,可以采用以下方法:1) 检查地址是否正确,防止地址越界;2) 检查指令语句的格式是否正确,尤其注意逗号和空格;3) 确认数据类型是否正确,以避免数据类型不匹配的问题。
西门⼦PLC基本指令表及各指令解释最受欢迎的⼯控微信平台:技术分享、学习交流、⼯控视频西门⼦PLC基本指令表如下图所⽰名称助记符⽬标元件说明取指令LD I、Q、M、SM、T、C、V、S、L常开接点逻辑运算起始取反指令LDN I、Q、M、SM、T、C、V、S、L常闭接点逻辑运算起始线圈驱动指令=Q、M、SM、T、C、V、S、L驱动线圈的输出与指令A I、Q、M、SM、T、C、V、S、L单个常开接点的串联与⾮指令AN I、Q、M、SM、T、C、V、S、L单个常闭接点的串联或指令O I、Q、M、SM、T、C、V、S、L单个常开接点的并联或⾮指令ON I、Q、M、SM、T、C、V、S、L单个常闭接点的并联置位指令S I、Q、M、SM、T、C、V、S、L使动作保持复位指令R I、Q、M、SM、T、C、V、S、L使保持复位正跳变ED I、Q、M、SM、T、C、V、S、L输⼊信号上升沿产⽣脉冲输出负跳变EU I、Q、M、SM、T、C、V、S、L输⼊信号下降沿产⽣脉冲输出空操作指令NOP⽆使步序作空操作⼀、标准触点LD、A、O、LDN、AN、ONLD,取指令。
表⽰⼀个与输⼊母线相连的常开接点指令,即常开接点逻辑运算起始。
LDN,取反指令。
表⽰⼀个与输⼊母线相连的常闭接点指令,即常闭接点逻辑运算起始。
A,与指令。
⽤于单个常开接点的串联。
AN,与⾮指令。
⽤于单个常闭接点的串联。
O,或指令。
⽤于单个常开接点的并联。
ON,或⾮指令。
⽤于单个常闭接点的并联。
⼆、正、负跳变ED、EUED,在检测到⼀个正跳变(从OFF到ON)之后,让能流接通⼀个扫描周期。
EU,在检测到⼀个负跳变(从ON到OFF)之后,让能流接通⼀个扫描周期。
三、输出==,在执⾏输出指令时,映像寄存器中的指定参数位被接通。
四、置位与复位指令S、RS,执⾏置位(置1)指令时,从bit或OUT指定的地址参数开始的N个点都被置位。
R,执⾏复位(置0)指令时,从bit或OUT指定的地址参数开始的N个点都被复位。
西门子802s/c系统操作篇NC 键盘区(左侧):机床控制面板区域(右侧):屏幕划分符号说明屏幕中的缩略符分别具有如下含义:表 1-1 符号说明(1)当前操作区域(2)程序状态(3)运行方式图中元素缩略符含义MA 加工PA 参数PR 程序DI 通讯DG 诊断STOP 程序停止RESET 程序复位JOG 点动方式MDA 手动输入,自动执行AUTO 自动方式表 1-1 符号说明(续)图中元素缩略符含义SKP 程序段跳跃跳步的程序段在其段号之前用一斜线示,这些程序段在程序运行时跳过不执行。
DRY 空运行轴在运行时将执行设定数据“空运行进给率”中规定的进给值。
ROV 快速修调修调开关对于快速进给也生效。
(4)状态显示SBL单段运行此功能生效时零件程序按如下方式逐段运行:每个程序段逐段解码,在程序段结束时有一暂停,但在没有空运行进给的螺纹程序段时为一例外,在此只有螺纹程序段运行结束后才会产生一暂停。
SBL 功能只有处于程序复位状态时才可以选择。
M1程序停止此功能生效时程序运行到有 M01 指令的程序段时停止运行。
此时屏幕上显示“停止 M00/M01 有效”。
PRT程序测试(无指令给驱动)1_1000INC步进增量系统处于 JOG 运行方式时不显示程序控制而是显示所选择的步进增量。
开机和回参考点 2操作步骤第一步,接通 CNC 和机床电源。
系统引导以后进入“加工”操作区 JOG 运行方式。
出现“回参考点”窗口。
3 参数设定在 CNC 进行工作之前,必须通过参数的输入和修改对机床、刀具等进行调整:输入刀具参数及刀具补偿参数输入/修改零点偏置输入设定数据输入刀具参数及刀具补偿参数—“参数”操作区功能刀具参数包括刀具几何参数、磨损量参数和刀具型号参数。
不同类型的刀具均有一个确定的参数数量。
每个刀具有一个刀具号(T 号)。
参见章节“刀具和刀具补偿”。
参数设定软键选择接下去渐低的或渐高的刀沿号选择接下去渐低的或渐高的刀具号计算刀具长度补偿值用“扩展键”扩展软键功能所有的刀具补偿值复位为零新刀补建立到当前刀具上,并自动分配下一个刀沿号(D1-D9)。
1 位逻辑指令1、1 -||- 常开接点(地址)1、2 -|/|- 常闭接点(地址)1、3 XOR 位异或1、4 -|NOT|- 信号流反向1、5 -( ) 输出线圈1、6 -(#)- 中间输出1、7 -(R) 线圈复位1、8 -(S) 线圈置位1、9 RS 复位置位触发器1、10 RS 置位复位触发器1、11 -(N)- RLO下降沿检测1、12 -(P)- PLO上升沿检测1、13 -(SAVE) 将RLO存入BR存储器1、14 MEG 地址下降沿检测1、15 POS 地址上升沿检测2 比较指令2、1 CMP?I 整数比较2、2 CMP?D 双整数比较2、3 CMP?R 实数比较3 转换指令3、1 BCD_IBCD码转换为整数3、2 I_BCD 整数转换为BCD码3、3 I_DINT 整数转换为双整数3、4 BCD_DIBCD码转换为双整数3、5 DI_BCD 双整数转换为BCD码3、6 DI_REAL 双整数转换为浮点数3、7 INV_I 整数得二进制反码3、8 INV_DI 双整数得二进制反码3、9 NEG_I 整数得二进制补码3、10 NEG_DI 双整数得二进制补码3、11 NEG_R 浮点数求反3、12 ROUND 舍入为双整数3、13 TRUNC 舍去小数取整为双整数3、14 CEIL 上取整3、15 FLOOR 下取整4 计数器指令4、1 S_CUD 加减计数4、2 S_CU 加计数器4、3 S_CD 减计数器4、4 -(SC) 计数器置初值4、5 -(CU) 加计数器线圈4、6 -(CD) 减计数器线圈5 数据块指令5、1 -(OPN) 打开数据块:DB或DI6 逻辑控制指令6、1 -(JMP) 无条件跳转6、2 -(JMP) 条件跳转6、3 -(JMPN) 若非则跳转6、4 LABEL 标号7 整数算术运算指令7、1 ADD_I 整数加法7、2 SUB_I 整数减法7、3 MUL_I 整数乘法7、4 DIV_I 整数除法7、5 ADD_DI 双整数加法7、6 SUB_DI 双整数减法7、7 MUL_DI 双整数乘法7、8 DIV_DI 双整数除法7、9 MOD_DI 回送余数得双整数8 浮点算术运算指令8、1 基础指令8、1、1 ADD_R 实数加法8、1、2 SUB_R 实数减法8、1、3 MUL_R 实数乘法8、1、4 DIV_R 实数除法8、1、5 ABS 浮点数绝对值运算8、2 扩展指令8、2、1 SQR 浮点数平方8、2、2 SQRT 浮点数平方根8、2、3 EXP 浮点数指数运算8、2、4 LN 浮点数自然对数运算8、2、5 SIN 浮点数正弦运算8、4、6 COS 浮点数余弦运算8、2、7 TAN 浮点数正切运算8、2、8 ASIN 浮点数反正弦运算8、2、9 ACOS 浮点数反余弦运算8、2、10ATAN 浮点数反正切运算9 赋值指令9、1 MOVE 赋值10 程序控制指令10、1 -(Call) 从线圈调用FC/SFC(无参数) 10、2 CALL_FB 从方块调用FB10、3 CALL_FC 从方块调用FC10、4 CALL_SFB 从方块调用SFB10、5 CALL_SFC 从方块调用SFC10、7 -(MCR>) 主控继电器断开10、8 -(MCRA) 主控继电器启动10、9 -(MCRD) 主控继电器停止10、10 -(RET) 返回11 移位与循环指令11、1 移位指令11、1、1 SHR_I 整数右移11、1、2 SHR_DI 双整数右移11、1、3 SHL_W 字左移11、1、4 SHR_W 字右移11、1、5 SHL_DW 双字左移11、1、6 SHR_DW 双字右移11、2 循环指令11、2、1 ROL_DW 双字左循环11、2、2 ROR_DW 双字右循环12 状态位指令12、1 OV -||- 溢出异常位12、2 OS -||- 存储溢出异常位12、3 UO -||- 无序异常位12、4 BR -||- 异常位二进制结果12、5 ==0-||- 结果位等于"0"12、6 <>0-||- 结果位不等于"0"12、7 >0-||- 结果位大于"0"12、8 <0-||- 结果位小于"0"12、9 >=0-||- 结果位大于等于"0"12、10 <=0-||- 结果位小于等于"0"13 定时器指令13、1 S_PULSE 脉冲S5定时器13、2 S_PEXT 扩展脉冲S5定时器13、3 S_ODT 接通延时S5定时器13、4 S_ODTS 保持型接通延时S5定时器13、5 S_OFFDT 断电延时S5定时器13、6 -(SP) 脉冲定时器线圈13、7 -(SE) 扩展脉冲定时器线圈13、8 -(SD) 接通延时定时器线圈13、9 -(SS) 保持型接通延时定时器线圈13、10 -(SF) 断开延时定时器线圈14 字逻辑指令14、1 WAND_W 字与字相"与"14、2 WOR_W 字与字相"或"14、3 WAND_DW 双字与双字相"与"14、4 WOR_DW 双字与双字相"或"14、5 WXOR_W 字与字相"异或"14、6 WXOR_DW 双字与双字相"异或。
西门子和发那科(加工中心)指令对照表中文含义西门子发那科备注快速定位G00 X_ Y_ Z_ G00 X_ Y_ Z_ ; 一样直线插补G01 X_ Y_ Z_ F_ G01 X_ Y_ Z_ F_ 一样圆弧插补半径编程G02/G03 X_ Y_ CR=_ F_ G02/G03 X_ Y_ R_ F_半径符号不同圆弧插补圆心编程G02/G03 X_ Y_I_ J_ F_ G02/G03 X_ Y_I_ J_ F_ 一样进给暂停G04 F (秒)G04 S(转速) (S为转速,只有主轴受控机床才可是使用)G04 X (秒) 或G04 P(毫秒) 进给暂停工作平面G17* X-Y G18 Z-X G19 Y-Z G17* X-Y G18 Z-X G19 Y-Z 一样绝对/相对G90*绝对G91相对G90*绝对G91相对一样进给G94*分进给/G95转进给G94*分进给/G95转进给一样输入单位G71*公制/G70英制G21*公制/G20英制不一样刀具半径补偿G41左刀补G42右刀补G40取消刀补G41/G42 G90/G91 G01 X_ Y_ D_ F_ (建立)G40 G90/G91 G01 X_ Y_ F_ (取消)G41左刀补G42右刀补G40取消刀补G41/G42 G90/G91 G01 X_ Y_ D_ F_ (建立)G40 G90/G91 G01 X_ Y_ F_ (取消)一样刀具长度补偿T_D_ + G5_例如G00 Z_ T_D_;G5_ + G43/G44 + H_ G49取消补偿例如G00 Z_ G43/4 H_;不一样坐标偏移TRANS X_ Y_ Z_ (绝对)ATRANS X_ Y_ Z_ (附加于前一个指令)TRANS 单独占一行,取消坐标偏移G52 X_ Y_ Z_ (绝对)G52 X0 Y0 Z0 取消偏移可编程偏移坐标旋转ROT RPL= __ (RPL后跟旋转度数)AROT RPL=__(附加前一个指令)ROT单独占一行,取消坐标旋转G68 X_ Y_ R_ (X_ Y_为旋转中心,R为旋转度数,逆时针为正,反之为负)G69 取消坐标旋转可编程旋转比例缩放SCALE X_Y_ (比1大放大,比1小缩小)ASCALE X_Y_(附加前一个指令)SCALE单独占一行,取消比例缩放不做说明可编程比例镜像MIRROR X0 Y0 (关于X轴对称写Y0,反之亦然,X、Y后面只要跟一个数字即可,没意义)AMIRROR X0 Y0 (附加前一个指令)MIRROR 单独占一行,取消镜像不做说明可编程镜像极坐标AP极角RP极径G17 G16 X_ Y_ (X为极径Y为极角) G15 取消极坐标孔循环CYCLE 81、82、83、84、HOLSE等G73、G81-G89(G98为初始高度,G99为安全高度,R安全高度数值)均为孔系加工宏指令变量符号为R1-R249,R0为空变量运算(+、-、*、/、COS、SIN、TAN、SQRT)=、>、>=、<、<=、>< (等于、大于、大于等于、小于、小于等于、不等于)IF R1>=42.1 GOTOB AAA运算公式要加小括号“()”,比如COS(45)R1=6AAA: G01 X=R1 Y0;运算顺序:先三角函数,后乘除,再加减;先括号里面,后括号外面。
西门子S7-200 PLC指令学习(1)
S7-200系列的基本逻辑指令
S7-200系列的基本逻辑指令与FX系列和CPM1A系列基本逻辑指令大体相似,编程和梯形图表达方式也相差不多,这里列表表示S7-200系列的基本逻辑指令(见表)。
表 S7-200系列的基本逻辑指令
S7-200系列PLC的比较指令
在SIEMENS S7-200的编程软件STEP-7中,有专门的比较指令:IN1与IN2比较,比较的数据类型可以是B、I(W)、D、R,即字节、字整数、双字整数和实数;还可以有其他的比较式:>、<、≥、≤、<>等等。
当满足比较等式,则该触点闭合。
与LMODSOFT指令对照:在LMODSOFT中,没有直接的数的比较指令,但SUB指令可以通过其执行减法功能后的三个输出端的状态实现整数的比较功能。
若与LMODSOFT 中的SUB指令对应,则在STEP-7中应有三个比较指令: >、=、< 来分别对应SUB 指令的三个输出;若还要对应≥、≤、或<>,则根据SUB指令三个输出端的不同组合,均可找到对应的比较指令。
比如:①(30007)>(40030)
②(30007)=(40030)
③(30007)<(40030)
①+②(30007)≥
②+③(30007)≤(40030)
①+③(30007)<>(40030)
S7-200系列PLC的定时器指令
类型、编号及分辨率
TON——接通延时
TONR——有记忆接通延时
TOF——断开延时
3种分辨率(时基):1ms、10ms、100ms——分别对应不同的定时器号
定时器6个要素:
指令格式(时基、编号等)预置值——PT
使能——IN 复位——3种定时器不同
当前值——Txxx 定时器状态(位)——可由触点显示
定时值=时基×预置值PT。
由于定时器的计时间隔与程序的扫描周期并不同步,定时器可能在其时基(1ms、10ms、100ms)内任何时间启动,所以,未避免计时时间丢失,一般要求设置PT预置值必须大于最小需要的时间间隔。
例如:使用10ms时基定时器实现140ms延时(时间间隔),则PT应设置为15(10ms×15=150ms)。
2)功能
(1)接通延时定时器TON——一般用于单一时间间隔的定时
指令格式:见图,编号与分辨率及定时器类型有关。
(见教材P221:Fig8-3-3a)
使能:——IN:I2.0 =“1”
当前值——T33,当在线(Online)时,此处显示当前值
预置值——PT=3,即定时时间=10ms×3=30ms
复位——IN:I2.0 = “0”
定时器状态(位)——“1”或“0”
与MODICON PLC的定时器指令对照:
区别:对MODICON PLC,当10001=“0” ,10002=“1”时,定时器当前值保持;当计时时间到,即(40040)= 30时,只要10002=“1”,定时器也是保持
对S7-200 PLC,只要I0.0=“1”,即计时,当T33当前值=3时,定时器继续计时,直至I0.0=“0”,定时器复位(相当于10002=“0” )
(1)断开延时定时器TOF——一般用于故障时间后的时间延时
指令格式:见图,编号与分辨率及定时器类型有关。
注意:定时器状态(位)=“1”(置位)及当前值复0与使能.I0.0=“1”同步;计时开始与使能I0.0从“1”→“0”(断开)同步,且当计时时间到而使能仍=“0”时,当前值保持。
(2)有记忆接通延时定时器TONR——一般用于累计许多时间间隔(指令功能及时序图见教材P222:Fig8-3-3c)
指令格式:见图,编号与分辨率及定时器类型有关。
注意:定时器状态(位)=“1”(置位)及当前值复0与使能.I0.0=“1”同步;计时开始与使能I0.0从“1”→“0”(断开)同步,且当计时时间到而使能仍=“0”时,当前值保持。
(3) 有记忆接通延时定时器TONR——一般用于累计许多时间间隔
S7-200系列PLC的计数器指令
1)类型及编号
CTU——增计数
CTD——减计数 C0~C255
CTUD——增减计数
计数器6个要素:指令格式(类型、编号等)预置值——PV
使能——CU、CD 复位——R、LD
当前值——Cxxx 计数器状态(位)——与定时器类似
2)功能、时序图及应用示例
此例为一个增减计数器的应用示例,其与MODICON PLC计数器指令的比较,同学可自己进行,并注意到,计数器指令的使能均是采样上升沿(“0” →“1” )。
S7-200系列PLC其它常用指令
1.脉冲产生指令EU/ED的应用
EU指令在EU指令前的逻辑运算结果由OFF到ON时就产生一个宽度为一个扫描周期的脉冲,驱动其后面的输出线圈。
2 .逻辑堆栈的操作
LPS为进栈操作,LRD为读栈操作,LPP为出栈操作。
S7-200系列PLC中有一个9层堆栈,用于处理逻辑运算结果,称为逻辑堆栈。
3 .NOT、NOP和MEND指令
NOT、NOP及MEND指令的形式及功能如表4-19所示。
为空操作,对程序没有实质影响。
MEND为无条件结束指令,在编程结束时一定要写上该指令,否则会出现编译错误。
调试程序时,在程序的适当位置插入MEND指令可以实现程序的分段调试。
4.比较指令
比较指令是将两个操作数按规定的条件作比较,条件成立时,触点就闭合。
比较运算符有:=、>=、<=、>、<和<>。
(1)字节比较字节比较用于比较两个字节型整数值INl和IN2的大小,字节比较是无符号的。
比较式可以是LDB、AB或OB后直接加比较运算符构成。
如:LDB=、AB<>、OB>=等。
整数INl和IN2的寻址范围:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。
指令格式例如: LDB= VBl0,VBl2
(2)整数比较整数比较用于比较两个一字长整数值INl和IN2的大小,整数比较是有符号的(整数范围为16#8000和16#7FFF之间)。
比较式可以是LDW、AW或OW后直接加比较运算符构成。
如:LDW=、AW<>。
OW>=等。
整数INl和IN2的寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。
指令格式例如: LDW= VWl0,VWl2
(3)双字整数比较双字整数比较用于比较两个双字长整数值INl和IN2的大小,双字整数比较是有符号的(双字整数范围为16#80000000和16#7FFFFFFF之间)。
比较式可以是LDD、AD或OD后直接加比较运算符构成。
如:LDD=、AD<>、OD>=等。
双字整数INl和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD 和常数。
指令格式例如: LDD= VDl0,VDl2
(4)实数比较实数比较用于比较两个双字长实数值INl和IN2的大小,实数比较是有符号的(负实数范围为-1.175495E-38和-3.402823E+38,正实数范围为+1.175495E-38和+3.402823E+38)。
比较式可以是LDR、AR或OR后直接加比较运算符构成。
如:LDR=、AR<>、OR>=等。
实数INl和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常数。
指令格式例如: LDR= VDl0,VDl2
S7-200PLC功能指令概述
般的逻辑控制系统用软继电器、定时器和计数器及基本指令就可以实现。
利用功能指令可以开发出更复杂的控制系统,以致构成网络控制系统。
这些功能指令实际上是厂商为满足各种客户的特殊需要而开发的通用子程序。
功能指令的丰富程度及其合用的方便程度是衡量PLC 性能的一个重要指标。
S7-200的功能指令很丰富,大致包括这几方面:算术与逻辑运算、传送、移位与循环移位、程序流控制、数据表处理、PID指令、数据格式变换、高速处理、通信以及实时时钟等。
功能指令的助记符与汇编语言相似,略具计算机知识的人学习起来也不会有太大困难。
但S7-200系列PLC功能指令毕竟太多,一般读者不必准确记忆其详尽用法,需要时可可查阅
产品手册。
S7-200PLC四则运算指令介绍
四则运算指令如表4-20所示。
表4-20 四则运算指令。