西门子代理6SL3246-0BA22-1CA0
我公司是西门子签约代理商备有大量西门子产品浔之漫智控技术(上海)有限公司:西门子授权代理商
现货库存;大量全新库存,款到48小时发货,无须漫长货期
西门子PLC(S7-200、S7-200 SMART、S7-300、S7-400、S7-1200、S7-1500、ET200S、ET200M、ET200SP)、触摸屏、变频器、工控机、电线电缆、仪器仪表等,产品选型、询价、采购,敬请联系,浔之漫智控技术(上海)有限公司
、数据的分离
在工程控制应用中,有些时候我们往往需要把接收到的数据进行分离以便使用,比如说在PLC的通信中,就会应用数据的分离功能。举个例子,如接收到某16位二进制数据,需要从16位数据把其高4位和低12位进行分离,要实现这个目的,我们可以用除法指令或逻辑卷运算指令去实现。
1、用整数除法实现
假设需要分离的16位二进制数存储在VW0中,为16#358E,将分离后的高4位存储在VW4中,低12位存储在VW2中。
用除法指令将VW0除以16#1000,则商为3,余数为16#58E,所以VD2的低16位(VW4)中存放16#3,VD2的高16位(VW2)中存放16#58E。
2、用逻辑运算指令实现
将VW0的数据与16#0FFF进行逻辑与运算,此时将VW0的高4位全部变成了0,从而实现了VW0的低12位的分离;将VW0的数据与16#F000进行逻辑与运算,将VW0的低12位全部变成了0,然后进行右移12位,从而实现了高4位的分离。
所以,我们可以灵活采用进行逻辑运算的值,并配合移位指令,就可以分离出任何所需的位。
二、数据的转换
在PLC的运算和显示中,我们经常会应用到运算和转换,比如速度与频率的转换、距离和脉冲的转换,或者是出现单位的转换,比如英寸转换成厘米等等。当我们进行运算时,需要先对数据的类型进行转换,数据类型转换成统一的之后才能进行运算,我们以英寸转换成厘米为例看一下。
根据单位转换,1英寸的2.54厘米,因为2.54是浮点数,需要进行浮点数运算,所得的英寸数据先通过I_DI、 DI_R指令将整数转换成双整数,再转换成浮点数,之后再用MUL_R指令进行浮点数乘法运算。
此外,有时我们还会遇到需要将十进制数用七段数码显示管进行显示时,也需要用到转换指令,此时用的是BCD与整数指令的转换指令I_BCD、BCD_I,再将BCD码转换成七段码显示器的编码,通过输出口与七段数码管相连接,这样才能显示。
三、表中取数
在某些工程应用场合中,我们可能需要用到比较多的数据,这时我们可以先把数据存到表中,之后再从表中把数据取出来使用,这种情况我们会应用到FIFO指令。对于表指令,还有LIFO、AD_T-TBL、FILL_N、TBL_FIND等指令可以灵活使用。
执行FIFO之前和之后,各个存储器的数据如图所示,执行一次之后,将VW10的数据取出来,并存储在VW10中,这其实就是先进先出的功能。
四、按比例的计算
在模拟量控制中,涉及到传感器检测模拟量信号,比如说温度传感器检测温度,因为模拟量采集的信号是电压或电流值,要将传感器采集的值换算成被测物理量的实际值,这时就需要用到比例计算放大模拟量值。假设,温度传感器的检测温度是Tmin,其对应的输出电压为Vmin,检测温度是Tmax,其对应的输出电压为Vmax,要计算某个输出电压V所对应的温度T,我们可以利用如下公式计算:
以上就是S7 PLC工程应用中的几种常用典型控制功能
ERROR:输出错误。
STATUS:扫描或初始化的状态。
S7-1200 PLC与变频器的通信是与它本身的扫描周期不同步的,在完成一次与变频器的通信事件之前,S7-1200通常完成了多个扫描。
USS_PORT通信的时间间隔是S7-1200与变频器通信所需要的时间,不同的通信波特率对应的不同的USS_PORT通信间隔时间。下图列出了不同的波特率对应的USS_PORT小通信间隔时间。
图8:不同的波特率对应的USS_PORT小通信间隔时间
USS_PORT在发生通信错误时,通常进行3次尝试来完成通信事件,那么S7-1200与变频器通信的时间就是USS_PORT发生通信超时的时间间隔。例如:如果通信波特率是57600,那么USS_PORT与变频器通信的时间间隔应当大于小的调用时间间隔,即大于36.1Ms而小于109Ms。S7-1200 USS 协议库默认的通信错误超时尝试次数是2次。
基于以上的USS_PORT通信时间的处理,我们建议在循环中断OB块中调用USS_PORT通信功能块。在建立循环中断OB块时,我们可以设置循环中断OB块的扫描时间,以满足通信的要求。循环中断OB块的扫描时间的设置如下图所示:
图9:循环中断OB块的扫描时间的设置
2.USS_DRV功能块的编程
USS_DRV功能块的编程如下图所示。
图10: USS_DRV功能块的编程
USS_DRV功能块用来与变频器进行交换数据,从而读取变频器的状态以及控制变频器的运行。每个变频器使用的一个USS_DRV功能块,但是同一个CM1241 RS485模块的USS网络的所有变频器(多16个)都使用同一个USS_DRV_DB。
USS_DRV_DB:指定变频器进行USS通信的数据块。
RUN: 指定DB块的变频器启动指令。
OFF2: 紧急停止,自由停车。 该位为0时停车。
OFF3: 快速停车,带制动停车。 该位为0时停车。
F_ACK: 变频器故障确认。
DIR : 变频器控制电机的转向。
SPEED_SP: 变频器的速度设定值。
ERROR: 程序输出错误。
RUN_EN: 变频器运行状态指示。
D_DIR: 变频器运行方向状态指示。
INHIBIT: 变频器是否被禁止的状态指示。
FAULT: 变频器故障。
SPEED: 变频器的反馈的实际速度值。
DRIVE: 变频器的USS站地址。变频器参数P2011设置。
PZD_LEN: 变频器的循环过程字。 变频器参数P2012设置。
注意:变频器的PKW的长度在这里是特殊需要注意的,在使用USS通信时必须是4,如果改成3或者127都将不能读取反馈回来的过程值。