产品推荐:气相|液相|光谱|质谱|电化学|元素分析|水分测定仪|样品前处理|试验机|培养箱


化工仪器网>技术中心>技术参数>正文

欢迎联系我

有什么可以帮您? 在线咨询

西门子S7-1500 模拟量模块读取数据程序编写

来源:西门子plc模块代理商   2024年05月23日 17:22  

模拟量模块工作的基本原理是:通过模数转换器(A-D转换),将模拟量信号转换成数字量信号。并且以二进制补码的形式表示,占用两个字节,共16位,最高位为符号位。

16位二进制补码表示的数值范围是-32768~+32767,但模块的测量范围却不与数值范围相同。

测量范围为-27648~+27648,比如测量的电压为±10V,那么对应关系就是:

  • -10V=-27648

  • +10V=+27648

数值范围测量范围的不同,可以表示当传感器输入信号超限的数据,这样CPU就能对故障进行诊断。

下表是输入信号与转换的数字值之间的对应关系:

图片

图片

1、模拟量值的规范化

无论外部的信号是什么(温度、压力、流量、速度),这些信号经模块转换后都用-27648~+27648范围的整数表示,这个整数没有单位,更不容易记忆。

我们在程序中使用模拟量时,如果程序中的数值和实际中的情况一致,那么将会更加方便。把无意义的数值转换成有实际意义的数据,就是模拟量的规范化。

2、SCALE指令

在经典STEP7软件中通过库的方式,提供规范化程序模块,在博途中把这些常用的功能块做成了指令。

SCALE指令就相当于经典STEP7中的FC105,用法相同。

示例:利用压力传感器通过4-20mA信号,采集压力值,压力变送器量程0~0.6MPa,如果利用SCALE指令采集模拟量数据,如下图所示:

图片

  • IN:模拟量数据地址,在硬件组态中可查到具体地址,以%IW开头(与经典STEP7不同)。

  • HI_LIM:量程上限,本示例为压力变送器上限程0.6,数据类型为浮点数

  • LO_LIM:量程下限,本示例为压力变送器上限程0.0,数据类型为浮点数。

  • RET_VAL:错误代码,当转换出错时可根据代码提示查找错误。

  • OUT:转换值,通过指令规范化后的实际值,数据类型为浮点数。

  • BIPOLAR:极性选择,0=单极性,1=双极性。

除了利用SCALE指令进行数据转换,当然你也可以自己利用数学方法,构造出转换程序,博途中提供很方便的指令。

但是不建议这么做,既然有了SCALE指令再去自己写算法,显然这么做很浪费精力。这些指令经过了多次验证,肯定不会出问题,自己编写的程序,容易出差错。

在博途中增加了缩放SCALE_XNORM_X标准化两个指令,也可以通过这两个指令进行规范化,但要比SCALE指令复杂点,可以试着自己编写。

3、循环采集

对于模拟量信号,在短时间内不会出现很大的波动,没必要在主程序中每个周期都扫描采集,可以利用循环中断,实现固定时间间隔进行采样。

新建一个组织块,类型选择为Cyclic interrupt(循环中断),如下图所示:

图片

上图中的时间间隔单位是μs,数值范围250~60000000(250μs~60s)

把我们编写的模拟量采集程序块,拖拽到循环中断OB30中,即可实现每隔500ms对模拟量进行一次采样。

图片


免责声明

  • 凡本网注明“来源:化工仪器网”的所有作品,均为浙江兴旺宝明通网络有限公司-化工仪器网合法拥有版权或有权使用的作品,未经本网授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:化工仪器网”。违反上述声明者,本网将追究其相关法律责任。
  • 本网转载并注明自其他来源(非化工仪器网)的作品,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品第一来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
企业未开通此功能
详询客服 : 0571-87858618