1、模拟量处理全集成自动化(T I A)解决方案培训教材第二部分第二章模拟量处理这个手册由西门子自动化与驱动集团教育合作部(automation and drive technology, Siemens A&D Cooperates with Education)以培训为目的编写。西门子对其内容不做任何形式的保证。手册的传播或者复制,包括其内容的使用与发表仅作为公共教育及职业培训之用。其他情况需要西门子自动化与驱动集团教育合作部的书面许可(Knust先生,E-Mail:michael.knusthvr.siemens.de)。违者必究。西门子保留所有权力,包括翻译,以及专利权、实用新型或外观设计
2、专有权。感谢Michael Dziallas Engineering公司、职业学校的教师们,和其他有关朋友为本手册的编写做出的贡献。目录:1. 前言 42. 模拟信号 63. STEP 7中的数据类型 84. 数学运算 104.1 固定小数点数的计算(INT 和 DINT) 104.2 浮点数运算(REAL) 114.3 数据格式转换操作 125. 输入/输出模拟量 135.1. 输入和规格化模拟量 145.2. 规格化和输出模拟量 14下列符号代表的含义: 信息 程序 示例 注意1. 前言第二章第二部分介绍的是STEP 7程序的附加功能。基本STEP 7 编程2-3天 第一部分STEP 7
3、编程晋级2-3天 第二部分工业总线系统2-3天 第四部分序列编程2-3天 第三部分过程可视化2-3天 第六部分SIMATIC S7 IT-通讯1-2天 第五部分学习目标:这一章,读者将学习模拟量怎样在SIMATIC S7中输入、处理和输出 模拟信号 STEP 7中的数据类型 数学运算 STEP 7中的数据类型转化 输入和规格化模拟量 规格化和输出模拟量基本条件:为了这部分内容的顺利进行,我们希望读者具备以下的基础知识: Windows 95/98/2000/ME/NET的基本操作知识 用STEP 7对PLC编程的基本知识(例如学习了第一部分第三章)需要的硬件和软件:1 PC , Windows
4、 95/98/2000/ME/NET的操作系统,以及最小:133MHz,64MB 的RAM ,65MB的空余磁盘空间。最佳: 500MHz,128MB 的 RAM,65MB 的空余磁盘空间。2 STEP 7 5.x 软件。3 一个PC用MPI接口。4 一个装有CPU 315-2DP的 PLC SIMATIC S7300, 组态举例:电源: PS 307 2A CPU : CPU 315-2DP 数字式输入:DI 16x DC 24V 数字式输出: DO 16x DC 24V/0.5A1 PC2 STEP 74 S7-3003 PC Adapter2. 模拟信号模拟信号与数字信号不同,数字信号只
5、接受两种信号“电压达到24伏” 和“电压未达到0伏”,而模拟信号能在某一范围内划分出你想得到的很多电压。一个典型的例子是作为模拟信号传送器的电压计。通过调节电阻旋钮的位置可以达到从零开始直到最大电压。下面是模拟量测量在控制系统技术中的例子: 温度 -50 +150C 流量 0 200l/min 转速 500 1500 R/min 等等.这些模拟量通过测量传感器都可以变成电信号。举例来说,5001500R/min的转速可以转换成010V的电压,当转速为865R/min时,测量传感器输出的电压为+3.65V。 如果想用可编程序控制器(PLC)来实现相同的测量,电压、电流或电阻值必须首先转换成数字信
6、号,这称为模数转换(A/D转换)。这意味着上面例子中3.65V 的电压可转化成相同含义的二进制数字信号。更多时候用二进制数字来表示数字信号。如果只用1位,例如描述010V的电压范围,那么只能代表一个区域。如果用2位来描述05V或510V的电压范围,那么可以划分成四个单独的区域,02.5/2.55/57.5/7.510V。通常模数转换在控制系统工程中占8或11位。8位可以有256个单独区域,11位可以有2048个单独区域 。3. STEP 7中的数据类型在SIMATIC S7提供了很多种不同格式的数据类型,下表列出了基本数据类型。类型和描述所占位数格式选项 范围及数值表示法(最低值及最高值)示例
7、BOOL (位)1布尔文本TRUE/FALSETRUEBYTE (字节)8十六进制数B#16#0 to B#16#FFB#16#10WORD (字)16二进制数2#0 to 2#1111_1111_1111_11112#0001_0000_0000_0000十六进制数W#16#0 to W#16#FFFFW#16#1000BCDC#0 to C#999C#998无符号的十进制数B#(0,0) to B#(255,255)B#(10,20)DWORD (双字)32二进制数2#0 to 2#1111_1111_1111_1111_1111_1111_1111_11112#1000_0001_000
8、1_1000_1011_1011_0111_1111十六进制数DW#16#0000_0000 to DW#16#FFFF_FFFFDW#16#00A2_1234无符号的十进制数B#(0,0,0,0) to B#(255,255,255,255)B#(1,14,100,120)INT (整数)16有符号的十进制数 -32768 to 327671DINT (整数,32位)32有符号的十进制数L#-2147483648 to L#2147483647L#1REAL (浮点数)32IEEE 浮点数 上限: 3.402823e+38下限: 1.175495e-381.234567e+13S5TIME
9、(SIMATIC时间)16S7时间,每步10ms (缺省值)S5T#0H_0M_0S_10MS to S5T#2H_46M_30S_0MS andS5T#0H_0M_0S_0MSS5T#0H_1M_0S_0MSS5TIME#1H_1M_0S_0MSTIME (IEC时间)32IEC时间,每步1ms,带符号整数-T#24D_20H_31M_23S_648MS toT#24D_20H_31M_23S_647MST#0D_1H_1M_0S_0MSTIME#0D_1H_1M_0S_0MSDATE (IEC日期)16IEC日期,每步1天D#1990-1-1 to D#2168-12-31DATE#199
10、4-3-15TIME_OF_DAY (时间)32时间每步1msTOD#0:0:0.0 to TOD#23:59:59.999TIME_OF_DAY#1:10:3.3CHAR (字符)8ASCII 字符 A, B etc.B 注意:在模拟量处理中,INT和REAL的数据格式扮演了很重要的角色,因为输入的模拟量在 INT格式中以实数的形式存在。由于INT格式会造成舍入误差,在更精确的数据处理中, 只能使用REAL 格式。4. 数学运算4.1 固定小数点数的计算(INT 和 DINT)使用固定小数点数,加、减、乘、除等整数的数学操作成为可行。然而,由于不考虑小数点后面的数,会造成舍入误差。 操作所占
11、位数功能+I16将累加器1低字中的内容与累加器2低字中的内容相加,结果保存到累加器1低字中。 -I16将累加器2低字中的内容减去累加器1低字中的内容,结果保存到累加器1中。*I16将累加器2低字中的内容乘以累加器1低字中的内容,结果保存到累加器1中。/I16将累加器2低字中的内容除以累加器1低字中的内容,商保存到累加器1低字中,余数保存到累加器1的高字中。+D32将累加器1中的内容与累加器2中的内容相加,结果保存到累加器1中。-D32将累加器2中的内容减去累加器1中的内容,结果保存到累加器1中。*D32将累加器2中的内容乘以累加器1中的内容,结果保存到累加器1中。/D32将累加器2中的内容除以
12、累加器1中的内容,仅把商保存到累加器1中。MOD32将累加器2中的内容除以累加器1中的内容,仅把余数保存到累加器1中。 4.2 浮点数运算(REAL)使用浮点数可以完成很多的数学操作。小数点的正确位置在这里要尤其注意。OperationFunction+R将累加器1(32位标准IEEE浮点数,下同)和累加器2(32位标准IEEE浮点数,下同)中的内容相加,结果保存在累加器1中。-R将累加器2中内容减去累加器1中的内容,结果保存在累加器1中。*R将累加器2中内容乘以累加器1中的内容,结果保存在累加器1中。/R将累加器2中内容除以累加器1中的内容,结果保存在累加器1中。SQRT对累加器1中的内容求
13、平方根,结果保存在累加器1中。SQR对累加器1中的内容求平方,结果保存在累加器1中。 LN对累加器1中的内容求自然对数,结果保存在累加器1中。EXP对累加器1中的内容求指数(以e为底),结果保存在累加器1中。SIN把累加器1中的内容作为以弧度表示的角度,求其正弦,结果保存在累加器1中。 COS把累加器1中的内容作为以弧度表示的角度,求其余弦,结果保存在累加器1中。TAN把累加器1中的内容作为以弧度表示的角度,求其正切,结果保存在累加器1中。ASIN计算累加器1中内容的反正弦,结果保存在累加器1中。ACOS计算累加器1中内容的反余弦,结果保存在累加器1中。 ATAN计算累加器1中内容的反正切,结
14、果保存在累加器1中。 4.3 数据格式转换操作因为数字的格式不总是适合以后重要的操作,因此要对数字进行格式转换操作。 OperationFunctionBTIBCD转成整数(16位)。将累加器1低字中的二进制编码十进制数转换成整数(16位)。BTDBCD转成整数(32位)。将累加器1中的二进制编码十进制数转换成整数(32位)。ITB整数(16位)转成BCD。将累加器1低字中的整数(16位)转换成二进制编码十进制数。ITD整数(16位)转成双整数(32位)。将累加器1低字中的整数(16位)转换成双整数(32位)。DTB双整数(32位)转换成BCD。将累加器1中的双整数(32位)转换成二进制编码十
15、进制数。DTR双整数(32位)转换成浮点数(32位, IEEE-FP)。将累加器1中的双整数(32位)转换成浮点数(32位, IEEE-FP)。RND取整。将累加器1中的32位IEEE浮点数转换成32位整数(双整数)。如果被转换数字的小数部分位于奇数和偶数之间,该指令选择偶数结果。RND+取整为较大的双整数。该指令将结果取整为大于或等于该浮点数的最小整数。RND-取整为较小的双整数。该指令将结果取整为小于或等于该浮点数的最大整数。 TRUNC截尾取整。该指令取结果为被转换浮点数的整数部分。 注意: 在模拟量处理的情况下,模拟量处于INT格式,由于INT格式的舍入误差,应该将其转换成REAL格式
16、。如果不能直接转换,就先用ITD指令将其转换成DINT格式,然后 再用DTD指令转换成REAL格式。.5. 输入/输出模拟量模拟量输入在PLC中作为一个字的信息,这个字的存取使用以下指令:L PIW x 作为“模拟输入字的装入”T PQW x 作为“模拟输出字的传送” 每一个模拟量(“信道”)都分配了一个外围的输入输出字。格式是整数的INT型。输入输出字的地址依赖于模块的初始地址。如果把模拟模块插在插槽4,那么它的缺省初始地址为256。以后的模拟模块的初始地址按每个插槽16来增加。这个缺省的初始地址可以在硬件配置表中逐条显示并核对。 插槽6的第一路模拟输入的地址是PIW 288,第二路模拟输入
17、的地址是PIW 290,第一路模拟输出的地址是PQW 288,等等。在PLC的进一步操作(数字化)中,模拟量转换与模拟输入输出相同。SM334模块带有4路模拟输入和2路模拟输出,当模拟信号从0到10V,0 to 20mA时,数字量的范围如下: 0 13824 27648模拟量的区域在PLC中数字量的进一步操作0A/0V 10mA/5V 20mA/10V这些数字量需要经常通过PLC中的进一步处理来规格化。5.1. 输入和规格化模拟量如果一个模拟量已转化成了数字量,在PLC能处理它之前还必须经过规格化。同样的,从外围设备来的模拟输出量也需要规格化。在STEP 7的程序中,规格化在数学操作中进行。所
18、以数学操作应该尽可能的精确。将要规格化的值必须转化成REAL的数据类型,这样舍入误差的影响可以最小。 练习:在下面的例子中,从0到10V的值中输入到插在插槽6的模拟模块中。目前这个值是一个整数(16位),应该规格化100到1000之间的REAL格式,并以双字MD10保存在位储存器中。 语句表的解决方案:L PIW 288 /0到10V的模拟量输入包含0到27648个整数(16位)ITD /16位整数值转换成32位整数DTR /32位整数转化成实数 L 2.7648e+4 /R /除以实数27648L 9.000e+2 /*R / 乘以实数900(1000-100)L 1.000e+2 /+R
19、/ 加上实数100(补偿值)T MD10 /把100到1000规格化成REAL格式5.2. 规格化和输出模拟量如果一个额定值正在或将要用于模拟输出模块,则必须将它规格化。在STEP 7的程序中,规格化在数学操作中进行。 要被规格化的数据必须转化成REAL的数据类型,这样舍入误差可以尽可能的小。举例:下面的例子中,100到1000的值以REAL格式的双字MD20保存在位储存器中,应该用模拟输出模块SM334 (PQW288)把从0到10V的值规格化。 语句表的解决方案:L MD20 /实数格式100到1000的值 L 1.000e+2 /-R / 减去实数值100(补偿值)L 9.000e+2 /R / 除以实数值900L 2.7648e+4 /*R / 乘以实数值27648RND / 舍入成整数T PQW 288 / 实数0到27648(16位)对应模拟输出值0到10V
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2