下面以标度变换程序为例,简单介绍FB编程过程。
当采集模拟量AI时,需要进行标度变换处理。这里以一个压力信号为例,介绍FB编程过程。
(1)需采集变量为压力,范围0~300 Pa。
(3)电信号接入通过AI模块的某通道地址PIW256(在硬件组态是分配)。
(4)根据硬件手册可知,4~20 mA的电信号对应数字量信号为0~27648。
(5)建立压力(上下限)和数字量(0~27648)对应关系式。如图7-35所示,可以利用相似三角形对应边之比相等列出关系:
(y-min)/(max-min)=x/27648
图7-35 工程量和数字量对应关系
式中:x为采集上来的数字量;y为变换后的压力值;min为压力值下限;max为压力值上限。
这里,因为压力上下限固定,程序就直接用常数处理,采样值是字信号,转换后的压力值是实数信号,两种类型变量不能直接运算,首先编写标度变换的FC程序,如图7-36所示。
图7-36 标度变换FC程序
图7-36中,程序段1是将输入数据PIW256装入MW0中,程序段2、3是数据类型转换,程序段4是标度变换算式,注意运算是先乘后除,让计算机自动进行小数处理,避免人为误差。
MW0:0~27648,标度变换后存放地址MD14,为一实数,范围0~300 Pa。图7-37所示的是仿真结果,当输入信号MW0为13824时,对应的压力就是150 Pa。
图7-37 标度变换FC仿真效果图
这是一个采样值的标度变换程序,当有很多模拟量要采集,重复编如上程序显然不现实,也很低效率。当有多种功能结构雷同时,考虑编写成FC或FB子程序进行调用。
下面就以标度变换程序为例,简单介绍FB子程序的具体实现。
(1)点击CPU→“程序块”→“添加新块”,准备添加FB功能块,如图7-38所示。
图7-38 新建FB
(2)建立FB1,如图7-39所示。
图7-39 建立FB1(www.xing528.com)
(3)打开FB1,如图7-40所示。
图7-40 打开FB1
(4)在功能块FB1的块接口中添加入口参数Input、出口参数Output、临时变量Temp等,如图7-41所示。下拉“块接口”或者点击块接口下的“▼”。注意FB中的参数与FC中的参数不同之处。
图7-41 建好的FB1程序与接口参数
FB1标度变换程序如图7-42所示。
图7-42 建立好的FB1
续图7-42
(5)在FC1中调用FB1程序,可拖拽FB1到FC1来实现调用。如图7-43所示。
图7-43 调用FB1
(6)给FB1指定一个背景数据块FB1_DB,经过上述调用,系统会自动生成一个对应的背景数据块,或者右键数据块,点击“创建实例”系统会提示是否生成,如图7-44所示,点击确定。或者,可以直接建立DB块,指向为FB背景数据块,依次点击CPU→“程序块”→“添加新块”,添加指向FB的背景数据块,如图7-45所示。建好的背景数据块如图7-46所示。
图7-44 调用FB1时生成背景数据块DB1
图7-45 新建背景数据块DB1,指向FB1
图7-46 新建背景数据块DB1,指向FB1
(7)可以多次调用FB1,实现多个数据采集标度变换,如图7-47所示,仿真效果如图7-48所示。
图7-47 两次调用FB1程序
图7-48 调用FB1仿真效果图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。