西门子STL语言案例
西门子STL语言案例

STL案例1:数值到位的对应1. LAR1 P##SetValue //#SetValue为输入,WORD型TAR2+AR1A 【AR1,P#】= # //Q_Adress为UDT, OutPut为结构体A 【AR1,P#】= #……………………………………同理,位到数值的对应也是一样的处理方法。
STL案例2:存储区地址指针16位地址指针(应用于T/C/DB/DI/FB/FC 等的号)-L 11T MW20AL S5T#10S SE T[MW20] //T11//用于定时器L MW20L 1+IT MW22A CU C[MW22] //FC12//用于计数器L 12T LW20 UC FC[LW20] //FC12//用于FCOPN DB[LW20] //DB12//用于DBSTL案例3:存储区地址指针32位地址指针OPN DB1 //打开共享数据块OPN DI3 //打开背景数据块,最多同时打开两个DB块-L 4SLD 3T MD20 //L P#T MD24 //L 320T MD28 //L DBW[MD20] //L DBW[MD24] //+IT DIW[MD28] //转换为指针为P# 将指针P#存储在MD24中转换为指针为P#,存在MD28中STL案例4:存储区地址指针32位地址指针,与LOOP指令配合操作,某一DB块中与MW2相等的第一个数的位置L 0T MW100T MD4OPN DB1L 100NEXT: T MW100L MW2L DBW[MD4]==I=AJC m1L MD4L P#+DT MD4L MW100LOOP NEXTm1: FPJNC m2 L MD4 L P# /D+ 1 T MD8STL案例5:寄存器间接寻址32位内部区域指针使用示例OPN DB1LAR1 P#L DBW[AR1,P#]LAR1 MD20L DBW[AR1,P#]+ILAR2 P#T DBW[AR2,P#]STL案例6:寄存器间接寻址32位交叉区域指针使用示例LAR1 P#A [AR1,P#] //注意格式,-=L P# LAR2L W[AR2,P#] //T MW60注意格式STL案例7:Point数据类型指针使用示例Point指针占用48位地址空间,主要用于向被调用的函数FC/FB传递复合数据类型(如ARRAY、STRUCT、UDT等)的实参,在被调用函数的FC/FB内部可以间接访问实参的存储器。
西门子300PLC的PID例子STL

4.0
OB35_RESERVED_2 Byte
5.0
OB35_PHASE_OFFSET Word
6.0
OB35_RESERVED_3 Int
8.0
OB35_EXC_FREQ
Int
10.0
OB35_DATE_TIME Date_And_Time 12.0
注释
Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1) 16#36 (OB 35 has started) Priority of OB Execution 35 (Organization block 35, OB35) Reserved for system Reserved for system Phase offset (msec) Reserved for system Frequency of execution (msec) Date and time OB35 started
块: OB35 "Cyclic Interrupt"
程序段: 1
实验选择
AN DB1.DBX 0.0 JNB sy1 AN DB1.DBX 0.1 JNB sy2 AN DB1.DBX 0.2 JNB sy3 AN DB1.DBX 0.3 JNB sy4 AN DB1.DBX 0.4 JNB sy5 AN DB1.DBX 0.5 JNB sy6 AN DB1.DBX 0.6 JNB sy7 AN DB1.DBX 0.7 JNB sy8 AN DB1.DBX 1.0 JNB sy9 AN DB1.DBX 1.1 JNB sy10 AN DB1.DBX 1.2 JNB sy11
QLMN_HLM:=
西门子PLC,STL语句指令大全

西门子PLC,STL语句指令大全西门子PLC,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 表示实数)它们都是加运算只是数的大小不同。
西门子 S7-300和S7-400语句表(STL)编程 说明书

前言,目录 位逻辑指令 1 比较指令 2 转换指令 3 计数器指令 4 数据块指令 5 逻辑控制指令 6 整数运算指令 7 浮点数运算指令 8 装载和传送指令 9 程序控制指令 10 移位和循环移位指令 11 定时器指令 12 字逻辑指令 13 累加器指令 14附录所有语句表指令一览 A 编程举例 B 参数传递 CSIMATICS7-300和S7-400 语句表(STL )编程参考手册2006年3月版A5E00706960-01索引安全指南本手册包括应该遵守的注意事项,以保证人身安全及财产损失。
在本手册中,与人身安全有关的注意事项通过安全警告符号突出显示,而只与财产损失有关的注意事项则没有安全警告符号。
这些注意事项根据危险等级显示如下:危险表示若不采取适当的预防措施,将导致死亡或严重的人身伤害。
警告表示若不采取适当的预防措施,将可能导致死亡或严重的人身伤害。
小心带安全警告符号时,表示若不采取适当的预防措施,将导致轻微的人身伤害。
小心不带安全警告符号时,表示若不采取适当的预防措施,将造成财产损失。
注意如果不引起相应的重视,将会导致意外的结果或状态。
当出现多个安全等级时,应该采用最高危险等级的安全提示。
带安全警告符号的人员伤害警告也可能会导致财产损失。
合格人员只有合格人员才允许对设备/系统进行调试和操作。
合格人员规定为根据既定的安全惯例和标准,被授权对设备、系统和电路进行调试、接地和加装标签的人员。
正确使用请注意如下事项:警告该装置及其组件只能用于产品目录或技术说明书中所阐述的应用,并且只能与由西门子公司认可或推荐的第三方厂商提供的设备或组件一起使用。
本产品只有在正确的运输、贮存、设置和安装以及仔细地运行和维护的情况下,才能正确而安全地运行。
商标标有®的所有名称均为西门子公司的注册商标。
本文档中的其它一些标志也是注册商标,如果任何第三方出于个人目的而使用,都会侵犯商标所有者的权利。
郑重声明我们已核对过本手册的内容与所述硬件和软件相符。
西门子STL语言案例教程文件

西门子S T L语言案例STL案例1:数值到位的对应1. LAR1 P##SetValue //#SetValue为输入,WORD型TAR2+AR1A 【AR1,P#1.0】= #Q_Adress.OutPut.Q_Pos1 //Q_Adress为UDT, OutPut为结构体A 【AR1,P#1.1】= #Q_Adress.OutPut.Q_Pos2……………………………………同理,位到数值的对应也是一样的处理方法。
STL案例2:存储区地址指针16位地址指针(应用于T/C/DB/DI/FB/FC 等的号) -L 11T MW20A I2.1L S5T#10S SE T[MW20] //T11//用于定时器L MW20L 1+IT MW22A I2.2 CU C[MW22] //FC12//用于计数器L 12T LW20 UC FC[LW20] //FC12//用于FCOPN DB[LW20] //DB12//用于DBSTL案例3:存储区地址指针32位地址指针OPN DB1 //打开共享数据块OPN DI3 //打开背景数据块,最多同时打开两个DB块 -L 4SLD 3T MD20 //L P#20.0T MD24 //L 320T MD28 //L DBW[MD20] //DB1.DBW4L DBW[MD24] // DB1.DBW20+IT DIW[MD28] // DB3.DBW40转换为指针为P#4.0 将指针P#20.0存储在MD24中转换为指针为P#40.0,存在MD28中STL案例4:存储区地址指针32位地址指针,与LOOP指令配合操作,某一DB块中与MW2相等的第一个数的位置L 0T MW100T MD4OPN DB1L 100NEXT: T MW100L MW2L DBW[MD4]==I= M10.0A M10.0JC m1L MD4L P#2.0+DT MD4L MW100LOOP NEXTm1: FP M10.0JNC m2 L MD4 L P#2.0 /D+ 1 T MD8STL案例5:寄存器间接寻址32位内部区域指针使用示例OPN DB1LAR1 P#10.0L DBW[AR1,P#12.0]LAR1 MD20L DBW[AR1,P#0.0]+ILAR2 P#40.0T DBW[AR2,P#0.0]STL案例6:寄存器间接寻址32位交叉区域指针使用示例LAR1 P#M20.0A [AR1,P#1.1] //注意格式,M21.1 -= Q1.2L P#I40.0 LAR2L W[AR2,P#0.0] //T MW60注意格式STL案例7:Point数据类型指针使用示例Point指针占用48位地址空间,主要用于向被调用的函数FC/FB传递复合数据类型(如ARRAY、STRUCT、UDT等)的实参,在被调用函数的FC/FB内部可以间接访问实参的存储器。
最新西门子STL语言案例

STL案例1:数值到位的对应1. LAR1 P##SetValue //#SetValue为输入,WORD型TAR2+AR1A 【AR1,P#1.0】= #Q_Adress.OutPut.Q_Pos1 //Q_Adress为UDT, OutPut为结构体A 【AR1,P#1.1】= #Q_Adress.OutPut.Q_Pos2……………………………………同理,位到数值的对应也是一样的处理方法。
STL案例2:存储区地址指针-16位地址指针(应用于T/C/DB/DI/FB/FC等的号)L 11T MW20A I2.1L S5T#10SSE T[MW20] //T11//用于定时器L MW20L 1+IT MW22A I2.2CU C[MW22] //C12//用于计数器L 12T LW20UC FC[LW20] //FC12//用于FCOPN DB[LW20] //DB12//用于DBSTL案例3:存储区地址指针-32位地址指针OPN DB1 //打开共享数据块OPN DI3 //打开背景数据块,最多同时打开两个DB块L 4SLD 3T MD20 //转换为指针为P#4.0L P#20.0T MD24 //将指针P#20.0存储在MD24中L 320T MD28 //转换为指针为P#40.0,存在MD28中L DBW[MD20] //DB1.DBW4L DBW[MD24] // DB1.DBW20+IT DIW[MD28] // DB3.DBW40STL案例4:存储区地址指针-32位地址指针,与LOOP指令配合操作,某一DB块中与MW2相等的第一个数的位置L 0T MW100T MD4OPN DB1L 100NEXT: T MW100L MW2L DBW[MD4]==I= M10.0A M10.0JC m1L MD4L P#2.0+DT MD4L MW100LOOP NEXTm1: FP M10.0JNC m2L MD4 L P#2.0 /D+ 1T MD8OPN DB1LAR1 P#10.0L DBW[AR1,P#12.0] LAR1 MD20L DBW[AR1,P#0.0] +ILAR2 P#40.0T DBW[AR2,P#0.0]LAR1 P#M20.0A [AR1,P#1.1] //注意格式,M21.1 = Q1.2L P#I40.0LAR2L W[AR2,P#0.0] //注意格式T MW60STL案例7:Point数据类型指针使用示例Point指针占用48位地址空间,主要用于向被调用的函数FC/FB 传递复合数据类型(如ARRAY、STRUCT、UDT等)的实参,在被调用函数的FC/FB内部可以间接访问实参的存储器。
西门子STEP7使用STL源文件快速创建洁净窄调程序的方法

整套设备对空气进行处理,并不断送入室内,又不 程序和应用程序,系统程序一般在出厂前已经初始
断从室内排出一部分出来,这一整套设备就构成了 化完毕, 而应用程序则是在系统程序运行的条件
洁净空调系统。
下,由用户根据自己的需要自行编辑,目的是用来
药厂的洁净空调系统控制一般通过使用可编 满足不同的自动化生产要求[3]。
采用梯形图逻辑(LAD)、功能块图(FBD)和语句表 那么可能需要为10个电机都建立这些变量,如果是
(STL)等方式进行编程操作[1-3]。
单独建立, 就需要建立10×5=50个变量; 如果用
UDT来处理,那就简单多了,先定义一个名为motor
2 在STEP7中编制洁净空调PLC程序
的UDT变量,里面添加上面所说的2个bool变量和3
关键词:西门子;PLC程序;STEP7;STL源文件;VB脚本;洁净空调
Create a PLC Program by Uusing SIMATIC STEP7 STL Source File
Zeng Tianxiang
(Shanghai Macroprocess Lustration Technology Co., Ltd., Shanghai 201100)
Abstract:Current automation field need us to create Siemens PLC program as quickly as possible, a new method
. AltlhatRcianghgetnseratReeSsieemrevnsedPL.C program by redefined template from I/O list and instrument list automatically is
西门子PLC位逻辑指令(STL)

西门子PLC位逻辑指令(STL)(六月份第四周自动化讲义韩书峰)一、与指令和与非指令例如: A I0.0AN I0.1二、或指令和或非指令例如:O I.0ON I0.1三、异或指令和异或非指令例如:X 0.0XN 0.1注:两个X指令将组成异或指令,一个X指令与一个XN指令将组成同或指令。
四、位逻辑指令的组合形式1、先与后或PLC执行程序时有先与后或的规律。
例如: A M0.0AN I0.0OA M0.1AN I0.1= Q0.02、与(非)嵌套如果有需要先或、再与的运算,需要把或运算逻辑放在括号内。
例如:A(O M0.0O I0.0)AN M0.03、或(非)嵌套如果有需要优先运算的时候,可以把优先运算部分放在括号内,然后再执行或运算。
例如:O(L 23L MW10>=I)O I0.0= Q0.04、异或(非)嵌套X()XN()5、赋值指令=6、置位指令S7、复位指令R8、对RLO操作指令CLR 用于清除RLO,SET 用于置位RLO ,NOT 用于对RLO取反SA VE 用于把RLO保存到BR9、上升沿指令与下降沿指令FN 检测RLO下降沿指令FP 检测RLO上升沿指令例如: A I0.0FP M0.0= Q0.09、地址上升沿与地址下降沿指令转换为指令表形式:A M0.1A(A I0.0BLD 100FN M0.0)= Q0.0作业:把下面的梯形图转换为指令表A M 0.1 A(A I 0.0 BLD 100FN M 0.0 )A(O I 0.0 O I 0.1 )= L 20.0 A L 20.0 BLD 102= Q 0.0 A L 20.0 A I 0.2 = Q 0.1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STL案例1:数值到位的对应
1. LAR1 P##SetValue 〃#SetValue 为输入,WOR型
TAR2
+AR1
A 【AR1,P#1.0】
=#Q_Adress.OutPut.Q_Pos1 II Q_Adress为UDT, OutPut 为结构体
A 【AR1,P#1.1】
=#Q_Adress.OutPut.Q_Pos2
同理,位到数值的对应也是一样的处理方法。
L 11
T MW20
A I2.1
L S5T#10S
SE T[MW20]
//T11 //用于定时器
L MW20
L 1
+I
T MW22
A I2.2
CU C[MW22]
//C12 //用于计数器
L 12 T LW20
UC FC[LW20]
//FC12 OPN DB[LW20]
//用于D
B //DB12
STL案例3:存储区地址指针-32位地址指针
OP
DB1 // 打开共享数据块
N
OP
DI3 // 打开背景数据块,最多同时打开两个DB块N
L 4
SLD 3
T MD20 // 转换为指针为P#4.0
L P#20.0
T MD24 // 将指针P#20.0存储在MD24中L 320
T MD28 // 转换为指针为P#40.0,存在MD28中
L DBW[MD20] //DB1.DBW4
L DBW[MD24] // DB1.DBW20
+1
T DIW[MD28] // DB3.DBW40
STL案例4:存储区地址指针-32位地址指针,与LOOP指令配合操作,某一DB块中与MW2相等的第一个数的位置
L 0
T MW100
T MD4
OPN DB1
L 100
NEXT: T MW100
L MW2
L DBW[MD4]
==I
= M10.0
A M10.0
JC ml
L MD4
L P#2.0
+D
T MD4
L MW100
LOOP NEXT m1: FP M10.0
JNC m2
L MD4
L P#2.0 /D
+ 1
T MD8
STL案例5:寄存器间接寻址-32位内部区域指针使用示例OPN DB1
LAR1 P#10.0
L DBW[AR1 ,P#12.0]
LAR1 MD20
L DBW[AR1 ,P#0.0]
+1
LAR2 P#40.0
T DBW[AR2,P#0.0]
STL案例6:寄存器间接寻址-32位交叉区域指针使用示例LAR1 P#M20.0
M21.1 A [AR1,P#1.1] II注意格式,
= Q1.2
L P#I4O.O
LAR2
L W[AR2,P#0.0] II 注意格式
T MW60
STL 案例7: Point 数据类型指针使用示例
Point 指针占用48位地址空间,主要用于向被调用的函数 FC/FB 传递复合数据类型(如 ARRAY STRUCT UDT 等)的实参,在被调 用函数的FC/FB 内部可以间接访问实参的存储器。
输入首地址,求多个浮点数的平均值。
CALL FC3
ln_Data:二P#M100.0 NO :=4 OUT_VAL :=MD20
L 0
T #ADD_TEMP LAR1 P##In_Data L 0
L W[AR1,P#0.0] ==I // JC M1
T #BLOCK_NO
OPN DB[#BLOCK_NO]
M1: L D[AR1,P#2.0] // LAR1
〃lnt
// // //DB //Poi nt 型
型
临时变量清零
或 L P##In_Data ; LAR1
块号或0
判断是否是DB 块数据
第一个数据的起始地址
#N0
==I
JC END
NO: T #NO_TEMP L D[AR1,P#0.0]
L #ADD_TEMP
+D
T #ADD_TEMP
L #NO_TEMP
LOOP NO
L #ADD_TEMP
L #NO
DTR
/R
T #OUT_VAL END: NOP 0
STL 案例8 Any 数据类型指针使用示例
输入Any 指针地址,求多个浮点数的平均值
CALL FC13
ln_Data:二P#DB1.DBX0.0 REAL 8
OUT_VAL:二MD20
L 0
T #ADD_TEMP
L P##In_Data
若数据类型不是REAL 则跳转到END 代表REAL 数据类型的代号
<>D
JC END
L 0
L W[AR1 ,P#4.0] //Any 指针 DB 号或 0 JC M1
T #BLOCK_NO
LAR1
L B[AR1,P#1.0]
// L B#16#8
//
STL案例8 Any数据类型指针使用示例
OPN DB[#BLOCK_NO]
欢迎下载11
M1: L W[AR1,P#2.0] //Any 指针数据长度
T #Data_LEN
L D[AR1,P#6.0] //Any 指针第一个数据起始地址
LAR1
L # Data_LEN
NO: T #DATA_NO
L D[AR1,P#0.0]
L ADD_TEMP
+R
T ADD_TEMP
+AR1 P#4.0
L #DATA_NO
LOOP NO
L #ADD_TEMP
L #Data_LEN
ITD
DTR
/R
T #OUT_VAL
END: NOP 0
欢迎下载12。