侯肖霞, 张俊霞, 侯立峰
(石家庄职业技术学院 机电工程系,河北 石家庄 050081)
PLC是在各种自动化控制系统中广泛使用的一种控制器.其中西门子公司的S7-200系列是典型代表,其在软件方面强大的指令集,硬件方面紧凑的结构设计、良好的拓展性能,成本方面低廉的价格,超长的使用寿命以及方便的操作性能成为应用者的首选[1].S7-200系列PLC的核心部件是单独的S7-200 CPU控制主机,通过配合不同的功能模块可以灵活拓展出不同的功能,同时可以根据控制要求组成不同规模的控制系统[2].
在实际生产中存在着大量需要检测的信号,其中很大一部分为模拟信号,如温度、压力、液位、湿度、流量等.而在PLC的CPU内部,运算过程只能以数字量的形式进行.只有将生产过程中检测到的模拟量转换为数字量才能通过PLC进行处理,从而完成自动控制过程.本文以S7-200PLC模拟量模块为例,对模拟量与数字量的转换进行了详细分析.
为了满足控制系统中对各种模拟量的处理需求,在拓展模块中设计了专门处理模拟量信息的模拟量输入/输出模块.S7-200PLC有两种模拟量输入模块,分别是模拟量输入模块以及模拟量输入/输出混合模块.
常用的模拟量模块有EM231,EM235等.
1.1.1 EM231模拟量输入模块
EM231模块是一种只能用于模拟量输入的模块,具有4路模拟量输入通道.该模块可以将外部输入的电压信号或者电流信号进行转换,将模拟量信号转换为12位的数字量信号输入到PLC的处理器中,输入信号的量程由EM231的开关SW1,SW2和SW3设定,在单极性应用环境下SW1设为ON,双极性应用环境下SW1设为OFF;电源电压为标准24 V直流电;分辨率为12 bit;转换时间为250 μs.
(1)输入要求
电压输入:单极性为直流电0~10 V或直流电0~5 V,双极性为直流电±5 V或直流电2.5 V.
电流输入:直流电0~20 mA.
(2)数据字格式
电压输入:单极性为0~32000,双极性为-32000~32000.
电流输入:0~32000.
模拟量输入模块具有使用灵活、适用性强等特点.在使用中可以直接将各种模拟量的传感器连接在模块上,安装十分方便[3].
1.1.2 EM235模拟量输入/输出模块
EM235模拟量输入/输出模块可以处理各种模拟信号,将其转换为相应的数字信号,同时也能够输出设定的模拟信号.EM235模块具有4路模拟量输入通道以及1路模拟量输出通道;它的输入信号量程和范围可以是不同幅度的电压或电流,通过6个DIP开关(DIP switch,指拨开关)(SW1~SW6)设定量程和格式.模拟量输入分为单极性输入和双极性输入,不同模式的选择由开关SW6决定,SW6为ON状态对应单极性输入,反之对应双极性输入.电源电压为标准24 V直流电.
(1)输入要求
电压输入:单极性为直流电 0~10 V、直流电0~5 V、直流电0~1 V、直流电0~500 mV、直流电0~100 mV或直流电0~50 mV,双极性为直流电±10 V、直流电±5 V、直流电±2.5 V、直流电±1 V、直流电±500 mV、直流电±250 mV、直流电±100 mV、直流电±50 mV或直流电±25 mV.
电流输入:直流电0~20 mA;
(2)数据字格式
电压输入:双极性为全量程范围-32000~+32000,单极性为全量程范围0~32000.
电流输入:0~32000.
1.2.1 模拟量输入模块的寻址
AI区是S7-200 PLC为了存储模拟量信号而设定的一个内部存储区域.用标识符AI表示输入的模拟量,每个模拟量数据占用一个字长,起始字节地址用AIW0,AIW2,…,AIW30表示.即地址字节的分配按偶数排列进行,从0地址开始.特别需要注意模拟量输入信号为只读数据[3].
1.2.2 模拟量值的表示
现场传感器接受到的信号通过变送器转换为规范的电压或电流信号(如0~10 V、4~20 mA)输送到PLC的模拟量输入模块,模拟量输入模块通过内置的模转数转换电路并按照线性规则将模拟量转换为PLC能够识别的数字量.例如EM235模块数字量的值在0~32000(或-32000~+32000)之间.
1.2.3 模拟量输出模块的寻址
PLC的CPU将模拟量运算的结果存放在AQ区.AQ区是S7-200CPU开辟的用来存储模拟量输出端信号的一个存贮区,称为模拟量输出映像寄存器区.计算得到的数值存储为1个字长的数字量,数据长度及字节的起始地址表示形式如下:AQW0,AQW2,AQW4……,地址按偶数字节进行分配,从地址0开始.系统为每一个模拟量输出模块分配了2个通道,在使用过程中即使只有1路模拟量输出AQW0,第二个模拟量模块数据的输出地址也要从AQW4开始,以此类推.需要注意的是模拟量输出数据是只写数据,用户不能读取该输出值[4].
对于初学PLC编程的人来说,模拟量输入/输出程序的编写要比数字量编程困难,因为在对模拟量输入/输出的编程中不仅涉及到程序编制,而且还关系到从模拟量到数字量转换过程中公式的推导与使用的一系列问题.将传感器检测到的各种模拟量信号通过变送器转化为电压或者电流信号,经由模拟量输入通道输入PLC的过程就是模拟量输入.模拟量输出是PLC将内部程序计算出的结果通过模拟量输出通道转化成标准电压或者电流,输出到相应外部设备的过程.
模拟量的转换过程即传感器检测到实际物理量,再由变送器输出模拟量到PLC,由PLC转换成数字量的过程.PLC编程过程就是对数字量的处理过程.不同的变送器具有不同特点,使用模拟量输入/输出模块进行转换时,转换公式不完全相同,需要根据实际情况进行分析.
选用S7-200的EM235模块参数作为依据进行公式推导,该模块单极性输入数值范围是0~32000.笔者以3种不同传感器为例,探讨模拟量编程的有关问题.3种不同传感器物理量测量、输出电信号、数字量范围具体如下:
(1)温度传感器Ⅰ
温度测量范围为0~200 °C,输出电流为4~20 mA,数字量范围为6400~32000.
(2)温度传感器Ⅱ
温度测量范围为0~100 °C,输出电压为0~5 V,数字量范围为0~32000.
(3)真空压力传感器
压力测量范围为0~0.2 MPa,输出电流为4~20 mA,数字量范围为6400~32000.
3种不同传感器数学关系变化曲线见图1、图2和图3.
以图1为例,推导模拟量/数字量转换公式,由于ΔABC∽ΔADE,根据三角形相似定理得:
(1)
由于BC=200,DE=Tx,AC=32000-6400,AE=AIWx-6400,代入式(1)可得:
(2)
Tx即可在显示器上直接表达为被检测的物理量——温度.
图1 温度传感器Ⅰ数学关系变化曲线
同理,图2对应数学公式:
(3)
图2 温度传感器Ⅱ数学关系变化曲线
图3对应数学公式:
(4)
图3 真空压力传感器数学关系变化曲线
根据模拟量转换后变量的精确度要求,转换公式的编程有整数运算和实数运算编程两种形式.显然,温度传感器Ⅰ和温度传感器Ⅱ的物理量为温度值,属于整数运算范畴.下面以式(2)为例,探讨整数运算的编程.
图4是温度传感变送器Ⅰ按照式(2)以整数运算编写的转换程序,可以作为一个子程序调用.式(3)同样是以整数运算编程方式转换.
图4 温度传感变送器Ⅰ以整数运算编制的转换程序图
真空压力传感器的物理量为压力值,属于实数运算范畴,下面以式(3)为例探讨整数运算的编程.
图5是真空压力传感器按照式(4)以实数运算程序编制的转换程序图,可以作为子程序调用.
图5 真空压力传感器以实数运算编制的转换程序图
同样的实例,按照数学思维方法能推导出不同的模拟量和数字量的转换关系表达式.只要理解其实质,不同的表达式对应不同的程序即可.
编写模拟量处理程序比较复杂,不仅涉及到程序编制,还涉及到公式推导问题.本文所述方法进行公式推导和程序编写,具有转换精度高、性能稳定、程序结构清晰等特点,特别适用于初学PLC的人员使用.同时,该方法也可以用于其他类似需要线性转换的运算.