您好,欢迎访问三七文档
第五章DCS数据采集技术10页1.6万字目前各种I/O设备提供的对外数据接口可分为以下几类:1,数字通讯接口,包括串口类,以太网(TCP/IP协议)类,现场总线类,仪器总线类通讯接口(如GPIB等).2,模拟量通道输出,设备直接提供4-20mA,1-5V或继电器接点信号等.力控具有世界上大部分主流设备的I/O接口程序,对GPIB总线以及Honeywell,Yokogawa,Foxboro,Fisher-Rosemount等厂家的DCS也能够支持.除通常意义上的数据采集外,力控可以利用采集到的实时数据对装置进行实时建模,插入力控自己的先进控制控件,实施先进控制.5.1对一个设备上的数据定义不同的采集周期如果一台设备上有1000个实时数据需要采集,而在这1000个数据中只有10个是经常刷新且需要密切监视的,其余990个全部是辅助数据,但是也需要时常查看.如果把这1000个数据同等地对待,采用统一的扫描周期进行采集,就会严重影响10个重要数据的刷新速度.怎样既保证1000个数据都能够采集,又确保这10个重要数据的采集速度呢有两种办法:办法1:为一个设备定义两个逻辑设备,使其具有不同的采集周期,如图5-1所示.但是这种方法定义的最长扫描周期为10分钟.办法2:不用上面的办法,一台设备只定义一个设备名称也可以达到要求.因为力控的I/O驱动对画面中不显示而且没有组态历史趋势和报警的数据是不采集的,仅当画面中显示这个数据时才进行采集.因此将不常用的数据单独组态在一个或几个画面中,使用完毕马上关闭就不会影响整个采集速度.这种方法适用于存在有大量不需要快速更新的数据的情况.图5-15.2合理设置扫描周期,避免引起设备死机有些I/O设备内部只有一个CPU,同时负责数据通讯和计算,如果在力控上设置的数据扫描周期太快容易使设备死机,因此在设置这一参数时应该慎重,最好通过多次试验确定一个合适的扫描周期.一般的串口设备的扫描周期可设在10-100毫秒之间.5.3通过拨号方式与I/O设备通讯力控的所有串口I/O驱动程序都支持通过MODEM以拨号方式与设备通讯.只要正确设置电话号码即可,如图5-2所示.15.4通讯状态监视,设备状态数据的读取力控为每一个I/O设备自动定义了一个系统变量,假如系统中有一个设备PLC1,则每当PLC1不能与力控正常通讯时,系统变量$IOPLC1的值就会被置为1.I/O设备故障属于系统报警.计算机通讯口故障,电缆,PLC端通讯口的故障,PLC通讯口与计算机通讯口的参数设置不一致都会造成这种结果.还有一种可能,就是数据连接项错误,如果计算机的命令发给PLC的只读参数,PLC是不会予以理睬的.5.5怎样用I/O驱动程序调试I/O设备力控的I/O驱动程序有数百个,针对每一种设备都有一个独立的程序.当力控实时数据库DB没有启动时,单独启动I/O驱动可以作为本地I/O设备调试工具使用.此时可以测试计算机与I/O设备的通讯情况,摸索最佳的扫描周期.菜单设置[S]/参数用来规定I/O通讯过程中是否显示计算机发出和设备响应的通讯信息.如图5-3所示.菜单工具[T]/工具用来在不启动实时数据库及其数据连接项的情况下执行与I/O设备的通讯.弹出对话框如图5-5上部所示.此时可以按参数设置按钮设置通讯参数,如图5-6和5-7所示,主要是设置串口的DCB参数,IP地址等.图5-2图5-3图5-4正确设置参数后,按连接设备按钮,如果成功的话,连接设备按钮的标题变成断开连接,表示可以收发数据了.如果在参数设置中设置周期性发送周期不为0,则在连接设备后会出现周期发送按钮,否则出现手动发送按钮.使用周期发送或手动发送按钮,可以周期性或一次性地发送编辑框中的数据了.编辑框中数据的格式缺省是混合方式的,如果你想发送编辑框中的数据,这也是唯一的数据类型,它的形成规则如下:任何ASCII码(除'[')可以直接输入,'['可以使用[[]来输入;[]内是由''(空格)分隔的转意字符,它们的意义为:图5-5'[':用来输入'[';2'*':在发送数据是表示延时1毫秒图5-6'#':在发送数据是表示延时10毫秒'$':在发送数据是表示延时100毫秒'!':在发送数据是表示延时1000毫秒'\':表示它后面的数据是十进制的(缺省是16进制)''(空格):作为分隔符,任何未定义的字符都可以作为分隔符,最好使用空格.0~9:可以用来输入10进制或16进制数据.A~F/a~f:可以用来输入16进制数据.例子:abcv[[30*#$!]345对应的16进制数据串为:61H,62H,63H,76H,5BH,30H,33H,34H,35H;而且在30H之后有1111毫秒的延时.当用在其它情况(不是用来发送数据)时,唯一的差别是没有了延时的概念.其它工具:校验使用混合格式的数据,计算常用的校验码,ASCII码表显示使用16进制和10进制显示的ASCII码表,各种数据转换把混合格式,16/32位整数,32位浮点数等转换位十几种常用数据格式,除混合格式外,其它数据格式为直接用空格分隔的数据串图5-75.6如何开发I/O设备驱动程序在力控中有一个SDK工具包,叫做FIOSSDK,可以开发硬件设备与计算机的通讯接口程序.最简单的只需要编写几个函数就可以可以做自己的I/O驱动,现在支持的硬件类型有串口(RS485/232/422),网络,板卡,硬件厂家提供DLL等多种方式的通讯类型.在该SDK中开发自己的通讯接口,不需要关心硬件和计算机通讯的细节,只需要了解通讯协议就可以了.如果通讯协议很复杂,该SDK中提供了足够灵活的手段满足不同层次的需要.例如:在设备初始化时发什么命令或做其他处理,动态改变硬件通讯参数等等.5.6.1FIOS开发包简介FIOS负责完成与各种I/O设备进行数据交换.一方面,它把从I/O设备采集到的实时过程数据发送给数据库DB,另一方面,从DB发出的下置数据也通过FIOS发送给I/O设备.根据监控PC与I/O设备之间通信机制的不同,FIOS主要支持两种工作方式:同步方式与异步方式.异步方式适用以下一类I/O设备:这类I/O设备一般可以独立运行,与监控计算机之间通过串口,网络或MODEM连接.与监控计算机之间通过明确的消息传送(文本或二进制消息)完成数据交换.数据交换过程为异步方式.同步方式适用以下一类I/O设备:这类I/O设备或者依赖PC运行(如:插在PC插槽内),或者独立运行.但与监控计算机之间主要通过直接访问方式进行数据交换,具体形式包括:寄存器直接访问(如:板卡),API函数调用,ActiveX控件访问等.数据交换过程为同步方式.下面列举了FIOS可实现的一些基本功能:底层通信功能:1),串口通信,包括:RS232/422/485.2),TCP/IP网络通信.3),MODEM3通信,通过模拟MODEM在电话网上通信.4),寄存器访问,如:各种DAS板卡.5),其它.链路控制功能:用M代表Master,即上位机(监控PC工作站);S代表Slaver,即下位机(各种I/O设备).对于异步方式,FIOS支持多种链路控制方式.链路控制方式支持以下几种方式:1),M请求,S应答方式.2),M请求,S无应答方式.3),S主动发送,M被动等待.另外,对一次完整数据处理(读或写)过程,支持以下方式:1),1次请求,0次应答方式.2),1次请求,1次应答方式.3),1次请求,多次应答方式.4),0次请求,1次应答方式.5),多次请求,多次应答方式.冗余功能:FIOS支持的冗余方式包括:1),单监控站,双I/O冗余.2),双监控站,单I/O冗余.3),双监控站,双I/O冗余.4),对于总线型设备(如RS485),提供总线监测功能,可实现对冗余通信网络的保护和监测.前端机功能:DB与IOServer不在同一工作站上,IOServer运行在前端机上,前端机与操作站之间通过串口,TCP/IP网络或MODEM进行通信.硬件测试与远程调试功能:使用FIOS可完成对I/O设备的简单测试功能.另外可实现远程调试.故障诊断与恢复功能:FIOS提供诊断机制,在较短的采集周期内报告故障的发生,诊断出下位机故障情况.当下位机更换或恢复后,不需要对FIOS及相关程序进行任何人工干预,而在较短时间自动恢复通信.当某一台,几台或部分通道发生故障,FIOS要自动优化通信链,使其与其他下位机或通道之间的通信不受影响,保证通信效率.界面显示功能:为测试,调试,运行维护方便,FIOS提供显示界面,可显示包括:发送,应答,状态信息,启动时间,分包数,分包信息,成功通信次数(发送次数,成功应答次),故障次数等信息.历史数据处理功能:对于某些能保存历史数据的设备(如:无纸记录仪等),FIOS能将采集到的历史数据恢复到数据库DB中.5.6.2FIOSSDK编程方式FIOSSDK提供了一种简洁的,面向对象的编程方式以缩短开发时间,降低开发难度.FIOSSDK提供标准的开发接口和程序模板,程序员仅需要根据I/O设备的具体通信协议或驱动接口说明,填写几个扫描函数的实现代码,进行必要的调试与测试,即可完成一种FIOS的开发.FIOS提供的开发工具封装了大部分程序员不必关心的技术环节,如:底层通信功能(串口通信,网络通信等),设备超时处理,设备故障诊断等.同时FIOS提供各种调试工具,方便程序员进行系统测试.FIOS开发环境完全基于32位Windows平台.它使用动态链接库(DLL)技术将程序员开发的代码整合到力控系统中.FIOS提供给程序员的开发接口为API函数和C++类库.5.6.3FIOSSDK组件及示例程序FIOSSDK主要由4部分组成:设备组态接口(Iodevui),数据连接组态接口(Ioitemui),编程接口Ioapi和描扫程序Ioscan.Iodevui:负责管理设备组态过程.Ioitemui:负责管理数据连接组态过程.Ioapi:负责完成与I/O设备间的数据交换,包括:对通信协议的解析,数据格式的转换等.Ioscan:主要完成对Ioapi部分的dll代码进行周期性地扫描.同时完成与I/O设备的底层通信(串口通信,网络通信等),以及设备超时处理,设备故障诊断等.Ioscan还负责与数据库DB之间的通信与协作.它把从I/O设备采集到的数据经Ioapi解析转换后提交给DB,或将DB下置给I/O设备的数据经Ioapi解析转换后写入I/O设备.Ioscan是FIOSSDK提供的一个标准软件工具.程序员仅需要开发Iodevui,Ioitemui,Ioapi三部分的代码.示例程序4FIOSSDK提供了两个示例:DemoController与DemoModbus.DemoController是一个初级编程示例,它能引导初学者快速掌握开发FIOS的基本概念和方法.DemoModbus是一个实用编程示例,它采用标准MODBUS通信协议,通过该示例,可以掌握在力控平台上开发标准MODBUS设备I/O驱动程序的方法.FIOSSDK的全部内容都是在安装在力控自动安装的,在力控目录下的子目录Fiossdk中.FIOSSDK主要包含以下几部分内容:Examples,程序示例,仿真程序.Include,头文件.Manual,文档说明.Utility,调试工具.这2个示例具有一定的代表性,它们体现了FIOSSDK的主要功能.FIOSSDK提供了这2个示例的全部源代码,在它们的基础上,稍做改动,就可以开发出新的FIOS.我们把象这2个示例源程序一样具有模板作用的程序称为I/O模板程序.为了提高开发效率,我们建议尽量使用I/O模板程序,这在一定程度上,也减少,降低了编程错误的发生.常用术语我们把FIOSDK中经常涉及的一些概念给出定义,有些术语虽然是通用名词,但在FIOSDK中有特定含义.这些术语有一些在前文给出了解释,有一些会在后文中陆续给出解释.FIOSForceControlI/OServer,即力控I/O驱动程序FIOSSDKFIOS软件开发工具包FCINSTDIR力控软件系统的安装目录FCAPPINSTDIR用力控创建的工程应用的目录IOID唯
本文标题:DCS数据采集技术
链接地址:https://www.777doc.com/doc-4850745 .html