6ES7516-2PN00-0AB0
SIMATIC DP,CPU 1516PRO-2 PN 用于 ET 200pro, 中央处理器,带 主存储器 1MByte 用于 程序及 5MByte 用于数据, 第 1 个接口:PROFINET IRT 带 3 端口交换机, 第 2 接口:PROFINET RT, 10 ns Bit 高性能, 防护等级:IP65/67, 需要 SIMATIC 存储卡, 需要连接模块
0" box-sizing: border-box;padding: 0.5rem 0.2rem;display: block">必须使用的附加产品服务 0" https://mall.industry.siemens.com/mall/collaterals/files/150/jpg/P_ST70_XX_07549t.jpg"/>6ES7194-4AP00-0AA0SIMATIC DP,连接模块 用于 ET 200pro CPU 151xPRO-2 PN, 3x M12 和 2x 7/8" 用于 2x PROFINET本文介绍西门子s7-200 plc的置位与复位,这两个位操作的指令在我们的程序编写中,作用也是很大,它能完成一些,常规常开常闭触点编程无法完成的程序,可以使我们编写的PLC程序条理更加清晰,步骤更加简单。
它们两个在每次使用时99%的情况下都是成对出现的,只要我们在程序一个地方使用了置位,在程序的另一个地方就会用到复位。所以永远都是你等着我,我等着你,只要你要不来我就不老。置位与复位的大体意思就是,置位是对一个位写1(有输出),复位就是写0(没有输出)。下面介绍使用法。
图1
如图1,是我们上一节课讲的西门子s7200 PLC的,启动,保持,停止的控制电路和程序,我们知道右边的这个程序,它是用单纯的常开和常闭的位操作指令编写的,可以完成自锁的功能。大家不太明白的再看一下上一节。但除了以上介绍的,这个自锁功能还能用我们今天讲的置位和复位操作来完成。程序如下。
图2
图2,左边就是使用置位复位编写的PLC程序,感觉是不是比以前编写的程序,清晰简单多了,右边是置位复位操作指令的每一个部分的分解说明,已经写的很明白了就不用讲了。如果还是没看明白就接着往下看,看一看PLC置位复位程序的执行过程就明白了。
图3
如图3,这个是PLC置位复位程序的置位执行步骤,
1,外部常开按钮没有按下时I0.0没有接通,Q0.1置位线圈就没有输出。
2,外部常开按钮按下时I0.0接通,Q0.1置位线圈就有了输出。
3,松开外部常开按钮时I0.0断开没有接通,虽然I0.0已经断开没有了接通,但Q0.1置位线圈依然还是有输出,实现了自锁功能。直到有复位信号时它才会没有输出,这就是置位操作指令的特点。
简单不。接下来看复位的操作。
图4
如图4,这个是PLC置位复位程序的复位执行步骤,
4,外部常闭按钮没有按下时I0.5没有接通,Q0.1复位线圈就没有输出。
5,当外部常闭按钮按下时I0.5接通,Q0.1复位线圈就有了输出。它就会复位置位线圈Q0.1,这样Q0.1就没有了输出。
6,即使外部常闭按钮松开I0.5没有了接通,复位线圈Q0.1依然被固定在复位状态。Q0.1就没有了输出,实现了停止功能。
也很简单。下面大家再来看一下图5。
图5
如图5,这张图说明了PLC置位和复位操作指令的,一次性操作多个输出位的使用方法,当置位或复位操作指令的下面的数字是3时,就表示当外部常开按钮按下时,可以一次性置位3个输出点,并一直保持,直到有复位信号产生。以上就是PLC置位和复位操作指令的基本的使用方法,大家可以配合我们上节讲的西门子s7200 PLC的仿真软件,进行仿真调试,然后熟练掌握这两个操作指令。
西门子PLC常用数据的编程实例当数据用规定的格式输入后,在西门子plc的内部存储器中均需要以二进制的形式存储,二进制格式与实际数据间的关系较复杂,它常常会给程序的调试与检查带来困难,为了更清楚地说明数据的使用方法与存储形式,举例如下。
【例1】利用数据装载指令(指令代码L),将各种十进制、十六进制数据读入到累加器ACCU1。
程序指令如下:
①L 27 ,/将单字长(16位)的十进制常数27读入到累加器l中;
②L1#一1 //将双字长(32位)的十进制常数一l读入到累加器l中:
③L2#1010 0000 0010 0001 //将单字长(16位)的二进制数1010 0000 0010 0001读入到累
加器l中;
④LDW#16# AOFl_BCD4 //将双字长(32位)的十六进制常数AOFl BCD4读入到累加器l中;
⑤L-2.5 //将双字长(32位)的浮点数“-2.5”读入到累加器l中(有关浮点数c1勺存
储格式见后述)。
【例2】利用数据装载指令(指令代码L),将ASCII字符“END”读入到累加器1中,并确定其执行结果。
程序指令如下:
LfEND. ∥将ASCII字符“END”读入到累加器l中
对照表8-5.2“ASCII代码表”可知,E=45;N=4E D=44,所以本字符在累加器1中的执行结果为:“454E44”。
【例3】利用数据装载指令(指令代码L),将定时器时间值、计数器计数值读入到累加器1中,并确定其执行结果。
程序指令如下:
①LT#500ms ∥将定时器时间值(500ms)读入到累加器l中;
②LC#100 //将计数器计数值(100)读入到累加器l中;
定时器时间值、计数器计数值以常数形式存储,因此,累加器l的执行结果分别为500与100。
【例4】利用数据装载指令(指令代码L),将2字节(16位)的常数100、20分别读入到累加器1的高、低字节中,并确定其执行结果。
程序指令如下:
LB# (100,20) //将2字节(16位)的常数读入到累加器l中;
本指令与常数读入指令“L 27”的区别在于:
L 27指令:执行指令是将常数27转换为二进制后存储于累加器1,因为27=(1B) 16,所以累加器l的执行结果为“00 1B”。常数值的范围为0~65535(即O—FFFF)。
L B# (100,20)指令:执行指令是将2个十进制常数转换为二进制后,分别存储于存储器的高字节与低字节中,因为100=(64)16;20=(14) 16,所以累加器1的执行结果为“64 14”。指令中括号内的常数值的范围为0~255(即O~FF)。
相关指令:
LB# (100,20,12,15) //将4字节(32位)的常数读入到累加器l中。
【例5】利用数据装载指令(指令代码L),将4字节(32位)的地址数据10.2、M10.2分别读入到累加器1中,并确定其执行结果。
程序指令如下:
①LP#10.2 /,将双字长(32位)的地址数据读入到累加器l中;
②LP#M10.2 //将双字长(32位)的地址数据读入到累加器l中;
注意:地址数据在S7中的存储格式如下:
地址位(bit31):“0”指针寄存器不含地址符,地址符bit24~bit26应为0;“l”指针寄存器含地址符,地址符由bit24~bit26指定。
地址符(bit24~bit26):地址位(bit31)为“1”时用于指定存储器地址,地址的编码如下:
000:地址P:
001:,地址I;
010:地址Q;
011:地址M;
100:地址DBX;
101:地址DIX;
110:地址L:
111:地址VL。
因此,在累加器1中,指令“L P#10.2”的执行结果为“0000 0052”;指令“L P#10.2”的执行结果为“8300 0052”。
【例6】利用数据装载指令(指令代码L),将日期数据2006-11-18读入到累加器1中,并确定其执行结果。
程序指令如下:
LD#2006_ll—l8 //将双字长(32位)的日期读入到累加器l中;
注意:日期在PLC中的存储格式为表格数据,且以1990年1月1日作为起点“O”;以后每天增加1,1990年1月2日为“l”。因此,2006年11月18日对应累加器l的日期存储数据为:6165;而2007年11月18日对应累加器1的日期存储数据为:6165 365= 6530。
【例7】利用数据装载指令(指令代码L),将时间数据13:20:33.125s读入到累加器1中,并确定其执行结果。
程序指令如下:
LTOD#13:20:33.125 ∥将双字长(32位)的对阅读入到累加器l中。
注意:时间在PLC中的存储格式为以ms为单位的数据,如:
13:20:33.125s =(13×3600 20×60 33.125)s= 48033125 ms
因此,执行本指令后累加器1的时间存储数据为:48033125。