西门子PLC模拟量变送器和模拟量值的表示方法
生产过程中有大量连续变化的模拟量需要用plc来测量或控制。有的是非电量(如温度、压力、流量、液位、物体的成分和频率等);有的是强电电量(如发电机和电动机组的电流、电压、有功功率和无功功率、功率因数等)。变送器用于将传感器提供的电量或非电量信号转换为标准的直流电流或直流电压信号,如直流0~10 V或直流4~20 mA信号。
西门子S7-300/400的CPU用16位二进制补码定点数来表示模拟量值。A/D转换的结果是按16位二进制补码形式存储,即占用1个字(两个字节)的长度。其中,高位(第15位)为符号位,正数的符号位为0,负数的符号位为1。
模拟量模块的模拟值位数(即转换精度)可以设置为9~15位(与模块的型号有关,不包括符号位),如果模拟量值的精度小于15位,则模拟量值左移,使其高位(符号位)在16位字的高位(第15位),模拟量值左移后未使用的低位则填入“0”,这种处理方法称为“左对齐”。设模拟量值的精度为12位,加上符号位,未使用的低位(第0~2位)为0,相当于实际的模拟值被乘以8。
三种转换精度的数据存储格式见表1。S位为符号位,标有“×”的位被补为0。
表1 A/D转换结果存储格式示例
有的西门子S7-300信号模块具有对信号进行监视(诊断)和过程中断的智能功能。 1.模块诊断功能 通过模块诊断可以确定数字量模块获取的信号是否正确,或模拟量模块的处理是否正确。 数字量I/O模块可以诊断出无外部电压、共模故障、组态/参数错误、断线、测量范围上溢出或下溢出等故障。模拟量输出模块可以诊断出无外部电压、组态/参数错误、断线和对地短路等故障。 2.过程中断 通过过程中断,可以对过程信号进行监视和响应。 根据设置的参数,可以选择数字量输入模块的每个通道组是否在信号的上升沿、下降沿产生过程中断,或在两个边沿都产生过程中断。信号模块可以对每个通道的一个中断进行暂存。 模拟量输入模块通过上限值和下限值定义一个工作范围,模块将测量值与上、下限值进行比较,如果通过限制,则执行过程中断。 执行过程中断时,CPU暂停执行用户程序,或暂停执行低优先级的中断程序,来处理相应的诊断中断功能模块( OB40)。 |
本篇我们通过一个实例来讲解西门子S7-1200的组织块如何使用。
下面我们做一个组织块的使用练习,使用循环中断产生一赫兹的时钟信号,在Q0.0输出。先来分析一下,一赫兹的时钟信号周期为一秒,高低电平各持续500毫秒交替出现,因此每隔500毫秒产生中断,在循环中断组织块程序中对Q0.0取反即可。具体步骤如下:
一、添加组织块。在项目树中打开PLC1下面的程序块文件夹,双击打开添加新块对话框,单击组织块按钮,选择循环中断,输入组织块的名称,这里我们不作修改。编程语言默认为梯形图,手动或自动分配组织块编号,这里我们不做修改,即自动分配编号200。
扫描时间及产生循环中断的时间间隔,单位为毫秒,改为500,也可以在循环中断组织块的属性中修改,启用仅符号访问,单击确定按钮。
可以看到程序块文件夹下增加了循环中断组织块OB200,同时在工作区中打开了循环中断组织块的程序编辑器。
在检查窗口的属性选项卡,单击循环中断,此处可以定义循环时间和相移。
二、编写程序。从指令数中选择位逻辑运算,鼠标拖拽常开触点指令插入到程序段一中,输入地址Q0.0,插入取反线圈指令,输入地址Q0.0,单击保存项目按钮,保存项目,这样循环中断组织块的程序就编写完成了。
三、编译下载程序到PLC。选中项目树中的PLC1,单击编译按钮编译项目,单击下载按钮,将所有块下载到PLC。
四、查看程序运行情况。单机监视按钮,观察程序运行情况,可以看到在Q0.0产生了一赫兹的时钟信号。