语句表(STL)编程
- 格式:pdf
- 大小:1.57 MB
- 文档页数:254
使用STL指令的编程方法一、STL/RET 指令STL 指令可以使编程者生成流程和工作与顺序功能图非常接近的程序。
STL 指令的意义为激活某个步(即状态),在梯形图上体现为从主母线上引出的状态接点。
STL 指令有建立子母线的功能,从而使该状态的所有操作均在子母线上进行。
步进返回指令 RET 是指状态流程结束,用于返回主母线。
一般 FX 系列 plc 采用状态器 S 编制顺控程序,并与 STL 指令一起使用。
1. 顺序功能图和步进梯形图之间的转换使用步进梯形指令 STL 和步进返回指令 RET 可以将顺序功能图转换为步进梯形图,其对应关系如下图所示。
( a )顺序功能图( b )梯形图( c )指令表图顺序功能图与梯形图的对应关系ST L 触点驱动的电路块有 3 个功能:①对负载的驱动处理,即在这一步要做什么;②指定转移条件,即满足该条件则退出这一步;③指定转移目标,即下一步状态是什么。
2. 步进梯形图编程规则(1 )初始步可由其它步驱动,但运行开始时必须用其它方法预先作好驱动,否则状态流程不可能向下进行。
(2 )步进梯形图编程顺序为:先进行驱动,后进行转移。
二者的顺序不能颠倒。
( 3 )编程时必须使用 STL 指令对应于每一个顺序功能图上的步。
( 4 )各 STL 触点的驱动电路一般放在一起,最后一个 STL 电路结束时,一定要使用步进返回指令 RET 使其返回主母线。
( 5 ) STL 触点可以直接驱动也可以通过别的触点驱动,如 Y 、M 、 S 、 T 、 C 等元件的线圈和应用指令。
( 6 )驱动负载使用 OUT 指令,当同一负载需要连续多步驱动时可使用多重输出,也可使用SET 指令将负载置位,等到负载不需要驱动时再用 RST 指令将其复位。
( 7 )由于 CPU 只执行活动步对应的电路块,因此使用 STL 指令时允许“双线圈”输出,即不同的STL 触点可以分别驱动同一编程元件的一个线圈。
lc常见的编程语言1.?梯形逻辑图(LAD)梯形逻辑图简称梯形图(ladder diagram 简写为LAD),它是从继电器-接触器控制系统的电气原理图演化而来的,是一种图形语言,它沿用了常开触点、常闭触点、继电器线圈、接触器线圈、定时器和计数器等等术语和图形符号,也增加了一些简单的计算机符号,来完成时间上的顺序控制操作。
触点和线圈等的图形符号就是编程语言的指令符号。
这种编程语言与电路图相呼应,简单、形象、直观、易编程、容易掌握,是目前应用最广泛的编程语言之一。
?2.指令语句表(STL)指令语句表简称语句表(statement list 简写为STL),类似于计算机的汇编语言,它是用语句助记符来编程的。
不同的机型有不同的语句助记符,但都要比汇编语言简单得多,很容易掌握,也是目前用得最多的编程方法。
命令语句主要使用逻辑语言建立PLC 输入和输出的关系,其中包括逻辑AND、OR、NOT及定时器、计数器、移位寄存器、算术运算和PID控制功能等。
中小型PLC一般用语句表编程。
每条命令语句包括命令部分和数据部分。
其命令部分要指定逻辑功能;其数据部分要指定功能存储器的地址号或直接数值。
语句表编程简单明了,语句少,其结构类似于电路的串并联方式,容易掌握。
计算机通用语言可以实现梯形图法和指令语句表法难以实现的复杂逻辑控制功能,但它没有梯形图法形象,比指令语句表编程复杂,因此较难掌握。
常用的通用语言有C、BASIC、PASCAL、FORTRAN等,其中采用C语言较多。
另外,还有控制系统流程图(CSF)、逻辑方程式(布尔代数式)等方法,使用较少,而且工程技术人员对于计算机通用语言又比较难掌握,因此,大部分编程方法都采用梯形图法和指令语句表。
目前常用的PLC产品很多,不同厂家的PLC各种指标和性能不同,其编程方法、具体的指令格式以及继电器编号也不同,当具体操作时,可查阅有关产品说明书。
计算机通用语言可以实现梯形图法和指令语句表法难以实现的复杂逻辑控制功能,但它没有梯形图法形象,比指令语句表编程复杂,因此较难掌握。
3.8 INVI 对整数求反码(16 位)格式INVI说明使用对整数求反码指令(INVI),可以对累加器 1 低字中的 16 位数值求反码。
求反码指令为逐位转换,即“0”变为“1”,“1”变为“0”。
其结果保存在累加器 1 的低字中。
状态字BR CC 1 CC 0 OV OS OR STA RLO /FC 写:- - - - - - - - -举例STL 解释L IW8 INVIT MW10 // 将数值装入累加器 1 低字中。
// 对 16 位数求反码。
// 将结果传送到存储字 MW10。
内容累加器 1 低字位15... .. .. 0INVI 执行之前0110 0011 1010 1110 INVI 执行之后1001 1100 0101 00013.9 INVD 对双整数求反码(32 位)格式INVD说明使用对双整数求反码指令(INVD),可以对累加器 1 中的 32 位数值求反码。
求反码指令为逐位转换,即“0”变为“1”,“1”变为“0”。
其结果保存在累加器 1 中。
状态字BR CC 1 CC 0 OV OS OR STA RLO /FC 写:- - - - - - - - -举例STL 解释L ID8 INVDT MD10 // 将数值装入累加器 1 中。
// 对 32 位数求反码。
// 将结果传送到存储双字 MD10。
内容累加器 1 高字累加器 1 低字位31... .. .. ...16 15... .. .. 0INVD 执行之前0110 1111 1000 1100 0110 0011 1010 1110 INVD 执行之后1001 0000 0111 0011 1001 1100 0101 00013.10 NEGI 对整数求补码(16 位)格式NEGI说明使用对整数求补码指令(NEGI),可以对累加器 1 低字中的 16 位数值求补码。
求补码指令为逐位转换,即“0”变为“1”,“1”变为“0”;然后对累加器中的内容加“1”。
西门子840D知识SIEMENS系统的可编程序控制器SIMATIC MAGAGER是西门子用于进行PLC程序编制,进行机床状态控制的组件,它主要组成包括电源模块、CPU模块、输入输出模块,其接口有,RS232接口,PROFIBUS接口,MPI电缆接口等。
通过X122、MPI插口,使电脑与NCU相连PLC。
硬件组态硬件组态:告诉PLC硬件结构的过程波特率:MPI 187.5kbpsOPI 1.5Mbps过程:建项目-→建站-→组态硬件?自动组态:用线缆建PLC与840D相连,用自动组态自动识别(上载站)将PLC传到计算机:PLC-→UPLOAD-→选MPI地址=2,若地址=3,将包括PLC和NCU若备份PLC,则过程为:新建Project-→plc-→upload station,这样就将硬件备份了。
建立完站后,出现连个文件夹:hardware和cpu.CPU文件夹下有S7程序。
S7程序下有三个目录:(1)symbols 符号表如I40.1为第40个字节第1位(2)BLOCKS 功能块?手动组态:过程:打开S7-→新建文件-→INSERT-→STATION-→SIMATIC 300-→双击HARDWARE-→出现框-→INSERT-→HARDWARE COMPONENT-→PROFILE-→STANDARD-→S300-→RACK300选相应的位置(待置位表中),再在右侧相应的模块上双击就将模块选定,选好后再下载编程在进行PLC程序编制中,可采用以下三种形式:逻辑梯形图(LAD):语句表(STL):功能块图(FBD):语句表编程常用指令:与指令:A 常开AN 常闭或指令:O 常开ON 常闭输出指令:=调用指令:CALL FCXXFP:上升沿检测指令FN:下降沿检测指令FP后必须跟中间寄存器CLR 运算结果,清零SET 置1S 置位1R 清零块?STEP7中常用BLOCK主要有几种:OB组织块、FC功能块、FB功能块、DB数据块等OB:功能块,相当于主程序,常用的有OB1和OB100;FC、FB:功能块,相当于子程序在编完子程序后,必须在主程序中调用子程序OB100是PLC上电后先执行,只执行一次;OB1是PLC CPU循环执行的程序。
西门⼦PLC,STL语句指令⼤全,有语句注释,⼀般⼈都收藏备⽤⼤家写PLC程序,尤其⽤到STL语⾔是不是⼀边写代码,⼀边放个巨⼤的PDF,100多页。
⽤到那个翻页半天,罗⾥吧嗦。
今天把西门⼦90⼏个STL语句表,全部整理发给⼤家。
有语句注释,收藏备⽤吧。
指令(英⽂全称意思 ) :指令含义1、LD( Load 装载 ) :动合触点2、LDN( Load Not 不装载 ) : 动断触点3、A ( And 与动合) : ⽤于动合触点串联4、AN ( And Not 与动断 ) :⽤于动断触点串联5、O( Or 或动合 ) :⽤于动合触点并联6、ON( Or Not 或动断 ) : ⽤于动断触点并联7、=( Out 输出 ) :⽤于线圈输出8、OLD( Or Lode): 块或9、ALD( And Lode): 块与10、LPS( Logic Push ) :逻辑⼊栈11、LRD( Logic Read ) :逻辑读栈12、LPP( Logic Pop ) :逻辑出栈13、NOT( not 并⾮ ) :⾮14、NOP( No Operation Performed ) : ⽆操作15、AENO( And ENO ) :指令盒输出端ENO相与16、S ( Set 放置 ) : 置117、R( Reset 重置,清零 ) :清零18、P ( Positive) :上升沿19、N( Negative) :下降沿20、TON( On_Delay Timer ) :接通延时定时器21、TONR( Retentive On_Delay Timer ) : 有记忆接通延时定时器22、TOF( Off_ Delay Timer ) :断开延时定时器23、CTU( Count Up ) : 增计数器24、CTD( Count Down ) : 减计数器25、CTUD( Count Up/ Count Down ) :增减计数器26、ADD( add 加 ) : 加注意//ADD_I (_ I 表⽰整数)ADD_DI( DI表⽰双字节整数)ADD-R (R 表⽰实数)它们都是加运算只是数的⼤⼩不同。
关于PLC编程语言叙述国际电工委员会IEC61131标准中规范的五种PLC编程语言的混合编程,即梯形图(LAD)、流程图(SFC)、功能图(FBD) 、结构化文本(ST)和语句表(STL)。
1.梯形图(LAD-LAdder Diagram)梯形图是使用最多的PLC编程语言。
因与继电器电路很相似,具有直观易懂的特点,很容易被熟悉继电器控制的电气人员所掌握,特别适合于数字量逻辑控制。
梯形图由触点、线圈和用方框表示的指令构成。
触点代表逻辑输入条件,线圈代表逻辑运算结果,常用来控制的指示灯,开关和内部的标志位等。
指令框用来表示定时器、计数器或数学运算等附加指令。
在程序中,最左边是主信号流,信号流总是从左向右流动的,不适合于编写大型控制程序。
2.流程图(SFC-Seauential Fuction Chart)顺序功能图(SFC)这是位于其它编程语言之上的图形语言,用来编程顺序控制的程序(如:机械手控制程序)。
编写时,工艺过程被划分为若干个顺序出现的步,每步中包括控制输出的动作,从一步到另一步的转换由转换条件来控制,特别适合于生产制造过程。
3. 功能块图(FBD-Function Block Diagram)功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示,适合于有数字电路基础的编程人员使用。
功能块图用类似于与门、或门的框图来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框用“导线”连在一起,信号自左向右。
4.结构化文本(ST-Structured Text)STEP7的S7 SCL结构化控制语言,编程结构和C语言和Pascal语言相似,特别适合于习惯于使用高级语言编程的人使用。
5.语句表(STL-STatement List)语句表(STL)是一种类似于微机汇编语言的一种文本编程语言,由多条语句组成一个程序段。
语言表适合于经验丰富的程序员使用,可以实现某些梯形图不能实现的功能。
10.7 调用功能格式CALL FC n 注意如果使用的是语句表编辑器(STL Editor),“n”必须指向现有有效块。
在使用之前,还必须定义符号名。
说明使用该指令,可调用功能(FC)。
调用指令能够调用你作为地址输入的功能(FC),与 RLO 或其它条件无关。
在处理完被调用块后,调用块程序继续处理。
逻辑块的地址可以绝对指定,也可相对指定。
传送参数(增量编辑方式)调用块可通过一个变量表与被调用的块交换参数。
当你输入一个有效的调用语句时,语句表程序中的变量表可自动扩展。
如果调用一个功能,并且调用块的变量声明表中有 IN、OUT 和 IN_OUT 声明,则这些变量作为一个形式参数表被添加到用于调用块的程序中。
在调用功能时,必须在调用逻辑块中为声明的形式参数赋值实际参数。
IN 参数可作为常数、绝对地址或符号地址定义。
OUT 和 IN_OUT 参数必须作为绝对地址或符号地址定义。
必须保证所有地址和常数与要传送的数据类型相符。
调用指令可将返回地址(选择符和相对地址)、两个当前数据块的选择符以及 MA位保存在B(块)堆栈中。
除此之外,调用指令还可去活 MCR 的相关性,然后生成被调用块的本地数据范围。
状态字BR CC 1 CC 0 OV OS OR STA RLO /FC 写:- - - - 0 0 1 - 0例如:为 FC6 调用赋值参数CALL FC6 形式参数NO OF TOOL TIME OUT FOUND ERROR 实际参数:= MW100 := MW110 := Q0.1:= Q100.0 10.8 调用系统功能块格式CALL SFB n1,DB n2 说明使用该指令,可调用由西门子公司提供的标准功能块(SFB)。
调用指令能够调用你作为地址输入的系统功能块(SFB),与 RLO 或其它条件无关。
如果使用调用指令调用一个系统功能块,必须为它提供一个背景数据块。
在处理完被调用块后,调用块程序继续处理。