在我们入门S7-1200时总会涉及到模数转换(AD转换)和数模转化。在这里先介绍如何在PLC中编写模数转化,俗称标定。
首先介绍下S7-1200系统中西门子自带的标定块---NORM_X(标准化)和SCALE_X(缩放)具体说明如下图所示


在程序中如何编写呢,接下来举个实例来说明下。已知:温度传感器量程0~50℃,输出信号4~20ma,目标:在PLC或触摸屏中读出0~50℃的温度。模拟量模块选6ES7 231-4HF32-0XB0 (8路模拟量输入)CPU选CPU 1214C DC/DC/DC 。如何编程:
1、在设备组态中组态PLC及相应模块,然后分配好对应地址 最后组态AI接入点的输入类型,如下图所示


2、在OB1或者FC块里编写程序,首先要用标准化指令将模拟量4~20ma和PLC接收的数字量 0~27648关联并有以0~100%形式标准化,然后在使用缩放指令将标准化指令结果转换成温度传感器的实际量程如此就完成模数转化了。这里模拟量AI输入IW100用DB数据块里INT类型代替,方便模拟数据。具体程序见下图

然后我们介绍另一种方法来标定传感器,也是西门子自带指令。CALCULATE:计算指令。具体如何使用就不多介绍了可以查看博图里帮助。
其实我们做传感器标定是有一个公式的,我们只要掌握了这个公式以后就不需要在求人或者去百度搜索或者去论坛里下载一个别人编辑好的块。别人的东西与自己的习惯终究不一样。接下来我们就介绍这个公式吧。 首先: 定义各变量名称传感器量程上限:HI 、下限: Lo ; PLC接收数字量: 上限 K1、下限 K2;模拟量输入:AI。 然后公式是:( AI-K2 )/(K1-K2)*(HI-Lo)+Lo。 最后让我们来验证下对不对。见下图模拟数据。

这期就介绍到这里,后续将介绍如何建一个通用模拟量标定块,可以反复调用。下期会以梯形图形式和SCL语言分别介绍。