模拟量输入模块1746-NI16I在油田注水自动化系统中的应用

1 概述
1746-ni16i是美国allen-bradley公司出品的基于slc500系列plc的模拟量输入模块,设计时可以通过编程灵活设定该模块的工作方式、输入信号类型、数据格式、滤波频率等参数,从而方便地应用于各种场合。采用1746-ni16i作为采集模块组态的scada系统具有扩展方便、组态灵活、稳定可靠、便于维护等特点。
1746-ni16i有两种工作方式:classl和class3。其中的classl方式是经典的使用方式,该方式占用系统资源较少,但使用起来需要较为复杂的编程;而class3方式则使用方便,编程简单,但占用系统资源较多。
2 1746-ni16i的软件资源
在使用1746-ni16i之前必须先了解1746-ni16i的软件资源,只有在对模块的每个通道正确配置后,才能使模块正常工作。
对1746-ni16i编程首先要了解slc500系列plc对内存变量的管理方式。slc500系列plc以文件的方式组织内存,即把内存划分为若干个区域--文件,每个文件分管不同类型的变量,如b文件、n文件、i文件、0文件分别用于管理开关量数据、模拟量数据、输人数据、输出数据等等。
1746-ni16i的class3方式和classl方式地址映射如表1所列。其中,o:e.i表示输出文件中e号槽位的第i号字;i:e.i表示输入文件中e号槽位的第i号字。
可以看出,在classl方式下,系统将采用输入文件中的8个字的空间来传输16个通道的配置字,并采用输出文件中的8个字来传输16个通道的数据字及状态字;而在class3方式下,每个字都由单独的空间对应。因此,在classl方式下,通常通过配置字的bit0和bitl来配置输入或输出文件中的8个字。
应当说明:1746-ni16i中的配置字是通道配置信息存放地址;数据字是输人数据存放地址;状态字是通道状态存放地址。
无论配置字、数据字还是状态字,它们都由16位二进制数构成。
2.1通道配置字
配置字中的每一位都具有其特定的意义,通过这些配置宇可以对通道的不同参数进行配置。这些位的定义如下:
bit0、bitl:分别为classl方式下的数据/状态和读/写设置。bit0和bitl只能在classl方式中使用,而在class3方式中设置这两位将出现错误(状态字的bitl5、bitl4、bitl3被置0)。因为在class3方式中,要用32个字的空间来传输各个通道的数据字和状态字,而在classl方式中只有8个字,因此用户可通过设置bito和bitl来选择这8个字的功能。具体选择方式如表2所列。
bit2:classl握手信号,在classl方式中,该模块提供了握手信号来简化模块的配置。这种握手的方法是设置模块16个通道的最快途径。在配置模块的各个通道时,bit2必须被置1。配置完毕后,状态字的bit6必须被置1,以表示配置完毕。把配置字 的bit2清零即可使状态字的bit6复位。握手信号的详细使用方法将在后面的程序中给出具体的说明。在class3方式中,并不需要这种握手协议,因为所有配置字和状态字的信息都可以通过32个字的空间一次传递。
bit3:未使用,但此位必须保持为零,否则在状态字中会出现错误指示。
bit4、bit5:输人类型选择位。这两位的设置可根据用户输入设备的类型来选择,该输入可以是在某特定范围内的模拟电压或电流。具体设置见表3所列。
bit6、bit7、bit8:数据格式选择位。模拟电流或电压输入在经模块内a/d转换器转换为不同格式的数字量后,不同格式的数据所对应的最大最小值不同,因此,用户可根据要求选择。在class3方式中,用户可自定义4种格式,见表4所列。
bit9、bitlo、bitll:校准模式选择位。要进入校准模式,必须把bit9置1。进行校准时,必须先进行零校准,再进行满量程校准。零校准时需把bitl0置1,bitll清0,满量程校准时需把bitll置1,bitl0清零。把这三位全部清零即可进入运行状态。
bitl2、bitl3、bitl4:通道滤波频率选择位。1746-ni16i提供有8种滤波频率,每个模块的16个通道可分为4组(0-3、4-7、8-11、12-15),模块中的4个a/d转换芯片分别负责4组通道的a/d转换。在选择通道滤波频率时,只需对4组通道中每组的第一个通道(0、4、8、12)进行配置即可,也就是说,每组通道只能使用一个滤波频率,且只能对每组的第一个通道进行配置。滤波频率的高低决定了降噪特性的好坏。但是太低的滤波频率在降低噪声干扰的同时,也提高了模块的刷新速度。
bitl5:通道使能选择位。当该位被清零时,通道被禁止,此通道的数据字和状态字也同时被清零,直至通道使能位被置1,且通道状态字的bitl5、bit 14、bit 13都为1时,通道才能继续工作。具体的位操作组合见表5所列。
2.2通道状态字
通道状态字中的每一位都可以被用来判断通道的状态。表6是class3方式状态字各个位的功能。
classl方式与class3方式状态字的区别在于:classl方式的状态字中bit6为握手信号。bit6为0表示模块准备就绪,可以向其写入配置字;bit6为1表示配置结束,可以进入采集工作状态。
3 在scada系统中的应用及编程
在油田注水自动化系统中,往往需对系统各处的压力、流量、温度、浊度等工程量进行实时监控,而现场仪表输出一般都为4-20ma输出,因此可采用1746-ni16i来采集信号和进行a/d转换,并采用带dh+接口的slc5/04作为主cpu来与dh+网络中的其它plc以及上位监控计算机组成scada系统。其系统框图如图1所示。
本系统须采集148路信号,其中模拟电流信号占132路,因此需要9块1746-ni16i模块,若用class3方式,输出及输入文件需包含32x9=288个字,而slc500系列plc的输入输出文件的最大长度为256字,因此在class3方式下最多只能使用8块1746-ni16i模块,故本系统只能使用classl方式。
在程序运行后,首先需对9块1746-ni16i进行配置,配置完毕,才能进入采集状态。限于篇幅,本文只给出一个通道的配置程序,见图2所示。
从图2所示的配置程序看出,配置的开始与完成是由配置字的bit2和状态字的bit6通过握手协议来实现的。每个模块的每个通道需单独配置。程序上电时,配置字的bit2和状态字的bit6都为零,状态字的bit6为零表示模块已准备好,可以接收配置字,并可向配置字单元写入配置字,此时需把配置字的bit2置1,表示开始配置。当配置完毕后,模块会把状态字的bit6置1,表示配置完成。此时可把状态字保存,以备后用。
class3的配置和采集程序相对比较简单,它只需向对应的单元写入配置字即可,在此不再赘述。详细资料可参考有关文献。
4 结论
在油田注水自动化项目中,基于1746-ni16i的scada系统已投入运行半年,实际运行证明:该系统稳定可靠,运行良好,提高了油田注水的自动化程度,减轻了工人负担,同时也增加了数据的准确性和可靠性。


三星Exynos1080安兔兔跑分逼近70万 或将引领5nm旗舰芯片
回顾云知声高交会四大产品方案
需求不断增加 安防企业品牌安全遭受拷问
如何快速设计RF电路板
万兴PDF:如何手写签名签署数字PDF文档?
模拟量输入模块1746-NI16I在油田注水自动化系统中的应用
盘点全球自动驾驶汽车发展概况
英雄互娱VR处女作,《全民枪战》VR版首次亮相
酶电极传感器与无酶电极传感器的定义及区别
彭博社:苹果招募工程师从事 6G 通信技术研发 致力于无线技术和芯片设计
三星对其Odyssey +设备进行了优惠促销
地表水水质自动监测系统建设方案
i.MX 8M Plus加持的AI领域的里程碑开发板长什么样?
远程信息处理控制单元介绍
从ChatGPT看芯片产业机遇
使用LTC4095的锂聚合物充电器电路
低消耗小功率10W电源芯片U9513B简介
地平线与轻舟智航正式达成战略合作
半导体电子产业 经济学思维之三十三:“假阳性错误”和“假阴性错误”
iphone8什么时候上市最新消息:iphone8如期发布,售价超1000美金妥妥的,七大新功能不可不知!