实时数据库与驱动程序开发接口-解析
- 格式:doc
- 大小:56.50 KB
- 文档页数:5
1.(一)工业组态软件的主要特点:延续性和可扩充性,封装性,通用性。
2.工业组态软件的结构组成:工程管理器,开发系统,运行系统,实时数据库(Db),Io驱动程序,web服务器。
3.力控的扩展组件有:通用数据库接口,网络通信程序,无线通信程序,通信协议转发组件,实时数据库编程接口。
4.(二)工业组态控制项目的总要求:可分为5个部分,即控制现场工艺,执行部件及控制点数,控制设备,现场模拟和监控以及数据库。
5.组态工程开发的一半过程:首先建立数据库点参数,对点参数进行数据连接,其次建立窗口监控画面,对监控画面里的各种图元对象建立动画连接,然后编制脚本程序,进行分析曲线,报警,报表制作后便完成了一个简单的组态开发过程。
6.(三)力控中的变量类别及相应的作用域:窗口中间变量,作用域仅限于力控应用程序的一个窗口;中间变量:作用域为整个应用程序,不限于单个窗口;间接变量:作为其他变量的指针;数据可变量:作用域为数据库;系统变量:整个系统。
7.间接变量的一半作用:作为其他变量的指针。
8.数据库变量的特点:数据库变量域数据库Db中的点参数进行对应,完成数据交互,数据库变量是人机界面与实时数据库联系的桥梁,其中的数据库变量不但可以访问本地数据库,话可以访问远程数据库,构成分布式结构。
9.系统变量的特点:都以美元符号“”开头。
10.变量的数据类型有:实型,整型,离散型,字符型。
11.定义变量:变量---数据库变量---变量管理---添加变量。
12.删除变量:变量管理---删除变量。
13.引用变量:14.(四)基本概念:点是一组数据的集合。
节点是树形结构的组织单元。
15.点的类型:模拟IO的,数字IO点,累计点,控制点,运算点等。
16.点的参数:是含有一个值得数据项的名称,例如PV,NAME,DESC等。
17.点的数据连接类型:IO设备连接,网络数据库,内部连接。
18.数据库的点如何访问:采用”节点路径I点名. 参数名”的形式访问19.点的创建过程:可以选择DbManager菜单命令“点”---“新建”。
驱动程序基础知识单选题100道及答案解析1. 驱动程序的主要作用是()A. 优化硬件性能B. 连接硬件和操作系统C. 提供用户界面D. 管理文件系统答案:B解析:驱动程序主要负责连接硬件设备和操作系统,使得操作系统能够识别和控制硬件。
2. 以下哪种不是常见的驱动程序类型()A. 显卡驱动B. 音频驱动C. 办公软件驱动D. 网卡驱动答案:C解析:办公软件不属于硬件,不需要专门的驱动程序。
3. 安装新硬件后,首先要安装的是()A. 应用程序B. 驱动程序C. 系统补丁D. 杀毒软件答案:B解析:为了让新硬件正常工作,首先要安装对应的驱动程序。
4. 驱动程序通常由()提供A. 硬件制造商B. 操作系统开发商C. 第三方软件公司D. 以上都有可能答案:D解析:硬件制造商、操作系统开发商和第三方软件公司都可能提供驱动程序。
5. 驱动程序版本更新的主要目的是()A. 增加新功能B. 修复漏洞C. 提高兼容性D. 以上都是答案:D解析:驱动程序版本更新可以实现增加新功能、修复漏洞、提高兼容性等目的。
6. 不正确安装驱动程序可能导致()A. 硬件无法正常工作B. 系统崩溃C. 数据丢失D. 以上都有可能答案:D解析:不正确安装驱动程序可能引发各种问题,包括硬件无法正常工作、系统崩溃、数据丢失等。
7. 以下哪种方式获取驱动程序最可靠()A. 从随机附带的光盘获取B. 从硬件制造商官网获取C. 从第三方下载网站获取D. 使用驱动精灵等工具自动获取答案:B解析:从硬件制造商官网获取的驱动程序通常是经过严格测试和适配的,最为可靠。
8. 对于Windows 操作系统,驱动程序文件的扩展名通常是()A..exeB..dllC..sysD..inf答案:C解析:.sys 是Windows 操作系统中常见的驱动程序文件扩展名。
9. 在Linux 系统中,驱动程序通常被编译进()A. 内核B. 应用程序C. 库文件D. 脚本答案:A解析:在Linux 系统中,很多驱动程序会被编译进内核。
课程内容驱动基本概念介绍驱动核心代码分析WDM和WDF介绍Windows 10通用驱动平台驱动程序是一个软件模块,可以使操作系统和硬件设备进行交互驱动程序是操作系统的一个扩展驱动程序一般是由硬件的设计者或厂商进行编写Microsoft已经为符合公共设计规范的硬件设备提供了内置的驱动程序可执行文件,扩展名是.exe入口函数是Main()Main()函数完成大部分工作应用程序完成工作后返回,并释放内存空间在用户态运行可执行文件,扩展名是.sys入口函数是DriverEntry()DriverEntry()不会做很多工作,只是初始化驱动驱动其他部分会注册很多回调函数,会被系统的不同模块调用驱动不会返回,会一直存在直至被显示的释放在内核态或用户态运行Driver StacksPDO位于驱动栈的最底层,和总线驱动相关联当总线驱动被加载时,它会枚举所有挂载在总线上面的设备并请求设备所需要的资源每个设备都有自己对应的PDOPnP管理器会确定每个设备的驱动并在设备的PDO 之上构建适当的设备栈设备栈的核心部分,FDO和设备功能驱动相关联设备功能驱动完成Windows和设备交互的核心功能对上向应用程序和服务提供上层接口对下为设备或其他驱动提供数据交换的接口一个设备栈可以包含多个FiDO,可以在FDO之上或之下每个FiDO和一个过滤驱动相关联,FiDO是可选的通常的目的是修改一些在设备栈中传输的I/O请求,例如可以加密和解密读写请求当一个新设备被插入到系统后,系统总线驱动会向PnP管理器报告这个新设备PnP管理器通过总线驱动查询这个设备的更多信息,比如设备ID和设备所需要的资源PnP管理器利用这个信息去查找是否有有对应的驱动在本地或WU(Windows Update)上面一旦查找到设备对应的驱动,Windows便会安装并加载这个驱动加载驱动到地址空间解析驱动中引入的函数-调用其他模块调用驱动的入口函数(DriverEntry()),因此驱动可以注册回调函数调用AddDevice(),驱动此时可以创建一个“设备对象”,并将这个对象加入到设备栈中所有的事物在驱动框架中都是用对象呈现的(驱动,设备,请求等等)对象拥有属性,方法和事件WDF 对象方法属性事件操作对象的函数被WDF 框架调用用于通知某些事件设置或获取单个属性值的方法Driver (WDFDRIVER)Device (WDFDEVICE)Device (WDFDEVICE)Queue (WDFQUEUE)Queue (WDFQUEUE)……ObjectOperation方法:Status = Wdf Device Create ();属性:Cannot failWdfInterrupt Get Device();WdfInterrupt Set Policy();Can fail:Status = WdfRegistry Assign Value();Status = WdfRegistry Query Value();Status = WdfRequest Retrieve InputBuffer();回调事件:PFN_WDF_INTERRUPT_ENABLE EvtInterruptEnable初始化宏:WDF_XXX_CONFIG_INITWDF_XXX_EVENT_CALLBACKS_INIT当驱动被加载时,DriverEntry是第一个被操作系统调用的函数WdfDriverCreate( RawDriverObject, […] , attributes, &driver )NTSTATUS DriverEntry(_In_PDRIVER_OBJECT DriverObject ,_In_PUNICODE_STRING RegistryPath ) {[…]// Create WDF Driver ObjectWDF_OBJECT_ATTRIBUTES_INIT(&attributes);attributes.EvtDriverUnload = OnDriverUnload;WDF_DRIVER_CONFIG_INIT(&config, OnDeviceAdd);status = WdfDriverCreate(DriverObject ,RegistryPath ,&attributes,&config,&driver );}WDF EventWDF MethodWDF ObjectDeclare vars这是一个过滤驱动程序吗?驱动程序是电源管理策略的所有者吗?为设备对象创建I/O队列创建辅助对象,例如计时器,工作者对象,锁等NTSTATUS OnDeviceAdd( WDFDRIVER Driver,PWDFDEVICE_INIT DeviceInit) {WDFDEVICE device;IWDFIoQueue* pDefaultQueue= NULL;DeviceInit->SetPowerPolicyOwnership(TRUE );status= WdfDeviceCreate(&DeviceInit,&deviceAttributes, &device);context = GetContext(device);context->WdfDevice= device;status = pIWDFDevice->CreateIoQueue(NULL, TRUE, WdfIoQueueDispatchParallel,TRUE, FALSE, &pDefaultQueue);return status;}Static Configuration Device CreateSetting ContextQueue Create进入电源状态管理(D0Entry)使能中断(InterruptEnable)…获取硬件资源,进行一些静态配置,(PrepareHardware)进入电源状态管理(D0Entry)使能中断(InterruptEnable)…获取硬件资源,进行一些静态配置,(PrepareHardware)NTSTATUS OnPrepareHardware(WDFDEVICE Device ,WDFCMRESLIST ResourcesRaw ,WDFCMRESLIST ResourcesTranslated ) {int ResourceCount = WdfCmResourceListGetCount(ResourcesTranslated );for (i=0; i < ResourceCount; i++) {descriptor =WdfCmResourceListGetDescriptor(ResourcesTranslated , i);switch (descriptor->Type) {case CmResourceTypePort : […]case CmResourceTypeMemory : […]case CmResourceTypeInterrupt : […]default : break ;}}return STATUS_SUCCESS ;}进入电源状态管理(D0Entry)使能中断(InterruptEnable)…获取硬件资源,进行一些静态配置,(PrepareHardware)NTSTATUS OnD0Entry(IN WDFDEVICE Device ,IN WDF_POWER_DEVICE_STATE RecentPowerState ){PADXL345AccDevice pAccDevice = nullptr pAccDevice = GetContext(Device);WdfWaitLockAcquire(pAccDevice->m_WaitLock);I2CSensorWriteRegister(pAccDevice->m_I2CIoTarget, MY_REGISTER,MY_VALUE, sizeof (MY_VALUE) );pAccDevice->m_PoweredOn = true ;WdfWaitLockRelease(pAccDevice->m_WaitLock);return STATUS_SUCCESS ;}进入电源状态管理(D0Entry)使能中断(InterruptEnable)…获取硬件资源,进行一些静态配置,(PrepareHardware)NTSTATUS OnInterruptEnable(IN WDFINTERRUPT Interrupt,IN WDFDEVICE Device){PDEVICE_EXTENSION devExt;ULONG regUlong;PULONG intCsr;devContext = GetDeviceContext(WdfInterruptGetDevice(Interrupt) );intRegId = &devContext->IntRegisterId regVal = READ_REGISTER_ULONG( intRegId );regVal = ENABLE_INTERRUPT_BYTE( regVal );WRITE_REGISTER_ULONG( intRegId, regVal );return STATUS_SUCCESS;}进入电源状态管理(D0Entry)使能中断(InterruptEnable)…获取硬件资源,进行一些静态配置,(PrepareHardware)EvtIoResume EvtDMAEnablerFillEvtDeviceSelfManagedIoInitEvtDeviceDisarmWakeFromSxEventChildListScanForChildren EvtDeviceRemoveAddedResourcesStart power-managed queuesEvtIoResume Disarm wake signal, if it was armed. (called onlyduring power up; not called during resource rebalance)EvtDeviceDisarmWakeFromSx EvtDeviceDisarmWakeFromS0Request information about child devicesEvtChildListScanForChildren Enable DMA, if driver supports it EvtDmaEnablerSelfManagedIoStartEvtDmaEnablerEnableEvtDmaEnablerFillConnect interruptsEvtDeviceD0EntryPostInterruptsEnabledEvtInterruptEnable Notify Driver of state change EvtDeviceD0EntryDevice OperationalRestart from here if device is in low power statePrepare hardware for power EvtDevicePrepareHardwareChange resources requirements EvtDeviceRemoveAddedResourcesEvtDeviceFilterAddResourceRequirementsEvtDeviceFilterRemoveResourcRequirementsRestart from here if rebalancing resourcesCreate Device object EvtDriverDeviceAddDevice arrivedEnable self-managed I/O, if driver supports it.EvtDeviceSelfManagedIoInit (implicit power up),EvtDeviceSelfManagedIoRestart (explicit power up)Stop power-managed queuesEvtIoStop Arm wake signal, if it was not armed. (calledonly during power up; not called duringresource rebalance)EvtDeviceArmWakeFromSx EvtDeviceArmWakeFromS0Disable DMA, if driver supports it EvtDmaEnablerSelfManagedIoStopEvtDmaEnablerDisableEvtDmaEnablerFlushDisconnect interrupts EvtDeviceD0EntryPostInterruptsDisabledEvtInterruptDisableNotify Driver of state changeEvtDeviceD0Exit Device OperationalStop here if transitioning to low power stateRelease hardware EvtDeviceReleaseHardwarePurge power-managed queuesEvtIoStop Stop here if rebalancing resourcesFlush I/O if driver supports self-managedI/OEvtDeviceSelfManagedIoFlush Device removedSuspend self-managed I/O, if driver supports it.EvtDeviceSelfManagedIoSuspend Cleanup I/O buffers if driver supports self-managed i/o EvtDeviceSelfManagedIoCleanupDelete device object s context area.EvtDeviceContextCleanupEvtDeviceContextDestroyWDM和操作系统深度耦合,WDM驱动程序直接调用系统服务例程,直接操作系统数据结构WDM驱动程序全部为内核态程序,操作系统对驱动输入只做有限的检查WDF框架处理与操作系统的交互,驱动本身专注于和设备交互WDF基于对象模型和事件驱动WDF支持内核态程序和用户态程序将操作系统底层的复杂逻辑抽象化使驱动代码有可能<20行对不同的硬件设备使用相同的编程模型例如GPIO,UART,I2C,NFC,传感器驱动框架内置的日志系统为数据分析定制的工具支持上千种不同的硬件设备最初UMDF V1基于C++ COMUMDF V2使用和内核态驱动开发相同的模型和语法支持USB周边设备,传感器,NFC,智能卡,HID(包括触控)等等驱动崩溃只会影响宿主进程,不会影响整个操作系统系统重启策略可以自动恢复崩溃的UMDF驱动Windows 10提供了一系列API和DDI,对于所有的Windows平台都是通用的,被称为Universal Windows Platform(UWP) Windows通用驱动是指一个内核态或用户态的驱动并能运行在所有基于UWP的系统上面Windows通用驱动只能调用属于UWP部分的DDI,这部分DDI会在MSDN文档中标记为Universal确定你的驱动是否支持UWP,把你的驱动标记为通用驱动然后重新编译在Visual Studio中打开驱动项目工程在配置选项中把操作系统选择为Windows 10在工程属性中把目标平台改为“通用”,其他选项还有“桌面”和“手机”重新编译驱动,这时可以会出现一些链接器错误尝试修复这些错误,对于出现错误的API,请参考文档是否有通用平台的API可以替代,如果没有,您可能需要重新设计你的驱动KMDF version Release method Included in this versionof Windows Drivers using it run on1.19Windows 10, version1607 WDK Windows 10, version1607Windows 10 version1607 and later,Windows Server 20161.17Windows 10, version1511 WDK Windows 10, version1511Windows 10 version1511 and later,Windows 10 Mobile,Windows 10 IoT Core,Windows Server 20161.15Windows 10 WDK Windows 10Windows 10 for desktop editions, Windows 10 Mobile, IoT Core, Windows Server 2016UMDF version Release method Included in this version ofWindows Drivers using it can run on2.19Windows 10, version 1607WDK Windows 10, version 1607Windows 10, version 1607 (all SKUs), Windows Server 20162.17Windows 10, version 1511WDK Windows 10, version 1511Windows 10 for desktop editions (Home, Pro, Enterprise, and Education), Windows 10 Mobile, Windows 10 IoT Core (IoT Core), Windows Server 20162.15Windows 10 WDK Windows 10Windows 10 for desktop editions, Windows 10 Mobile, IoT Core, Windows Server 2016驱动程序运行在哪个版本的操作系统上驱动程序支持的硬件类型驱动程序使用的驱动模型确定驱动程序是否使用了只有KMDF支持的功能,如果驱动程序没有使用KMDF的功能,并且驱动运行在Windows 8.1或以后的系统上,则可以迁移到UMDF 2https:///en-us/windows/hardware/drivers/wdf/wdf-porting-guide Which Drivers Can Be Ported and WhereDifferences Between WDM and WDFPreparing for PortingSteps in PortingSummary of KMDF and WDM Equivalents。
OPC技术在Deltav系统中的实际应用(转载)2007-03-04 09:41作者:张宏李含草胡晓岚摘要:OPC技术的产生为应用软件和现场设备提供了通用的接口标准。
基于OPC技术的几种OPC软件产品在Deltav系统中的实际应用,大大争强了Deltav系统的开放性能,本文介绍了这几种OPC软件产品,并提出了OPC Server看门狗脉冲信号发生器的设计回路方案,用来检测连在一起的各个OPC Server之间的通讯状态。
Abstract: OPC technology realized an open and seamless connection between the application and plant-floor device.The article describes the application of the types of OPC products in Deltav system,and gives out how Deltav system improve its capability and open ability with OPC technology.In order to create an easy communication line monitor for the OPC communication lines ,the article gives the design of OPC Server watch dog generator.关键词:OPC OPC服务器Deltav系统Keywords: OPC OPC Server Deltav System中图分类号:TP311.52 文献标识码:BOPC是OLE for Process Control 的缩写,即把OLE应用于工业控制领域。
OPC是作为解决应用软件与各种设备驱动程序的通信而产生的一项工业技术规范和标准。
数据实时接口原理
实时数据接口的原理如下:
数据接口通讯原理根据装置监控系统接口多样性的特点,数采站上运行的数据采集软件针对不同的监控系统接口类型,根据数据采集服务器的数据请求,从监控系统读取生产实时数据,并返回给实时数据库。
数据采集站具有本地缓存功能,使系统在接口服务器与数据采集服务器之间的网络中断时,数据采集不中断。
实时数据存储与管理基于实时数据库,实时数据库是数据采集系统的实时数据存储中心,存储从各装置采集到的生产实时数据,并向应用系统提供数据服务。
此外,数据接口的传输过程通常包括数据的发送和接收,通过特定的协议和标准进行数据交换。
总之,实时数据接口通过一系列的技术和协议,实现了对实时数据的采集、传输、存储和应用,为各种应用系统提供了实时的数据支持。
如需更多信息,建议查阅相关文献或咨询计算机领域专业人士。
OSI PI实时数据库系统OSI PI实时数据库系统PI实时数据库系统(Plant Inhrmation System)是由美国OSI Software公司开发的基于C/S、B/S结构的商品化软件应用平台,是工厂底层控制网络与上层管理信息系统连接的桥梁,PI在工厂信息集成中扮演着特殊和重要的角色。
PI实时数据库系统适用于电力、石油、化工、冶金、造纸、制药、水处理、食品饮料、通讯等各种生产流程企业的生产过程优化。
PI是全世界装机量最多的实时数据库系统,己成为OSI公司的标志产品。
美国OSI SOftware公司创建于1980年,总部设在加州|San Leandro。
在休斯顿、西雅图、克里夫兰设有分部,在美国的IL、FL、MO、MA、NY、NC等州设有办事处,在澳大利亚、新西兰、德国、新加坡设有办事处,全球范围有超过80多个分销商。
OSI Software公司与Microsd、SAP、KBC等著名公司保持着良好的合作关系,PI的客户端产品中底层完全采用微软Windows技术,同时也将用户界面Windows化。
迄今为止,PI的客户端模块以功能强大、灵活、易用的特点在业界一直保持着领先的地位。
OSI So ftware公司还与世界上几乎所有的DCS/PLC厂商保持着良好合作关系,这就使得PI与DCS/PLC的数据接口建立在坚实的基础之上。
PI实时数据库系统概述世界上众多的企业都认识到生产过程的实时数据与历史数据是企业最有价值的信息财富,是整个企业信息系统的核心和基础。
但是,如果生产现场缺乏数据,数据不完整或者不一致,以及历史数据丢失,都将导致管理者对工厂的现状无法判定,给管理带来困难,严重时甚至导致工厂停产,发生事故等等。
二十年来,OSI S0ftware公司一直致力于实时数据库产品的开发工作,使得PI系统成为世界上最优秀的实时数据库产品。
目前,全世界超过5000家公司选用了PI系统,而且购买PI用户每年以40%的速度增长,使得凹的装机量近万套,成为全球装机量最多的实时数据库产品。
实时数据库的关键技术及未来发展前景摘要:作为数据库领域的一个重要分支。
实时数据库弱化了关系型数据库的某些功能,通过采用专用的工业实时数据压缩算法以及特殊的历史数据存储索引机制,应对特殊的需求。
实时数据库推动了信息化从传统领域向新的领域扩展,向更高层次发展。
这些新的领域包括生产实时监视、电力调度、交通监视及控制、实时仿真、作战指挥自动化等。
展望未来,在物联网领域实时数据库将会发挥更重要的作用。
关键词:实时数据库数据压缩算法信息化关系数据库物联网中图分类号:TP311.133.2文献标识码:A文章编号:1007-9416(2014)04-0215-021引言1.1实时数据库简介及应用背景实时数据库作为一种特殊的数据库,早在十多年前就已经在国外的大型流程工业企业部署应用。
随着网络、存储及计算技术的飞速发展,实时数据库广泛应用于电力、钢铁、石油、石化、交通、航空、水利、环保等重要行业和领域,已经是工业领域信息化的核心基础软件,在“信息化与工业化融合”过程中发挥着重要作用。
1.2国内外主流实时数据库介绍目前国内外市场上主流的实时数据库有:美国OSI公司的PI实时数据库,美国GE公司的IH实时数据库和美国印步公司的eDNA实时数据库。
国产的有代表性的实时数据库有:上海麦杰的openPlant,北京中科启信的Agilor。
2实时数据库的主要特点及架构2.1实时数据库的特点实时数据库面向的应用领域有如下3个特点:2.1.1单位时间内响应的数据量大如:一个的火电厂的SIS系统使用实时数据库存储数据,同时需要处理的测点数超过了一万,这些测点的变化周期通常在1秒钟之内,也就是说,需要将超过一万点的数据在1秒钟之内保存到数据库中。
2.1.2存储数据量大实时数据库的核心就是对大量的实时信息进行处理,由于成年累月的数据将占据大量的硬盘空间。
假设同时处理对于1万点的系统,每1秒钟存储一次,每次单点占用8个字节,那么保存10年的数据量将有10000*8*10*365*86400=25228800000000字节,接近23TGB。
mysql-binlog-connector-java实现原理-回复MySQL Binlog Connector Java 是一个用于读取MySQL 二进制日志(binlog)的Java 库。
它可以将binlog 数据解析为数据库表操作语句,并提供了一些功能来处理和转换这些数据。
以下是关于MySQL Binlog Connector Java 实现原理的详细介绍。
1. 什么是MySQL 二进制日志(binlog)?MySQL 二进制日志(binlog)是MySQL 数据库引擎用于记录数据库表的写操作的日志文件。
它包含了对数据库表的更新、插入和删除等操作的详细信息。
通过解析binlog 文件,可以还原出数据库的历史状态、实现数据复制、实时备份和数据恢复等功能。
2. MySQL Binlog Connector Java 的作用是什么?MySQL Binlog Connector Java 的目标是将MySQL binlog 数据解析为数据库表操作语句,以便进行进一步处理。
它提供了一个简单的接口来连接到MySQL 数据库,并实时读取和解析binlog 数据。
通过使用这个库,开发人员可以轻松地实现数据库表数据同步、ETL(Extract, Transform, Load)处理和实时数据分析等功能。
3. MySQL Binlog Connector Java 的实现原理是什么?MySQL Binlog Connector Java 通过以下步骤实现对binlog 数据的解析和处理:(1) 连接到MySQL 数据库服务器:MySQL Binlog Connector Java 首先需要连接到MySQL 数据库服务器。
它使用MySQL 的JDBC 驱动程序建立与数据库的连接,以便读取binlog 数据。
连接字符串中应包含binlog 文件的位置信息,以确定从哪个位置开始读取binlog 数据。
(2) 发送BINLOG_DUMP 命令:一旦成功连接到MySQL 数据库服务器,MySQL Binlog Connector Java 将发送BINLOG_DUMP 命令来请求服务器发送binlog 数据。
PI实时数据库的OPC和API接口浅析1引言随着电厂信息化要求越来越高,SIS系统的建设逐渐走上历史舞台,很多电厂开始着手搭建自己的SIS网,而SIS的核心部分就是实时数据库系统。
说到实时数据库系统,目前的产品有很多,PI是其中重要的一员,由于它先进的旋转门压缩数据技术、加上运行稳定的特点,尽管价格高昂,它还是在国内拥有很大的市场占有率。
SIS系统的另一重要组成部分是实时数据库系统与现场设备之间的接口,衡量一个实时数据库系统的优劣,其接口系统是否具有开放性、灵活性和方便性是很重要的一方面。
在这点上,P I也具备了一流实时数据库系统应该具备的特点,它提供了对OPC、ODBC以及OLE DB的支持,另外,它还有C/C++、VB环境下的SDK开发工具包和PI-API接口函数库,利用PI-API和SDK,我们可以比较方便地开发我们自己的专用接口。
在台州发电厂的SIS项目实施过程中,我们用API开发了几个专业接口(如RTU系统的接口、电量统计系统的接口等),也利用了PI的OPC接口,完成了全电厂范围的数据采集,为今后SIS系统的进一步开发打好了基础。
以下就对OPC接口的应用和API接口函数的应用做一些介绍。
2 OPC接口的应用OPC(OLE FOR PROCESS CONTROL)是一个开放性的工业标准,它是由一些世界上著名的自动化系统和硬件、软件公司和Microsoft(微软)紧密合作而建立的,是微软公司的OLE 在过程控制方面的应用。
OPC以COM/DCOM技术为基础,采用客户/服务器模式,为工业自动化软件面向对象的开发提供了统一的标准。
采用这项标准后,硬件开发商将取代软件开发商为自己的硬件产品开发符合标准的OPC SERVER程序,而软件开发者不用再关心硬件驱动方面的技术问题,只要按标准开发OPC CLIENT程序就可完成与硬件的连接,这样不但提高了系统的开放性,也提高了软件开发的效率,使软件开发人员可以有更多的精力投入到其核心产品的开发上。
数据库与应用程序接口(API)考试(答案见尾页)一、选择题1. 数据库与应用程序接口(API)的基本概念是什么?A. API是一种软件组织之间的连接标准B. API是一种数据传输协议C. API是一种数据库和应用程序之间的通信协议D. API是一种数据库操作的标准方法2. 在数据库与应用程序接口中,以下哪个是常见的API类型?A. RESTful APIB. SOAP APIC. GraphQL APID. All of the above3. API在数据库与应用程序之间的通信过程中扮演什么角色?A. 提供数据转换服务B. 提供数据加密服务C. 提供数据缓存服务D. 提供数据压缩服务4. RESTful API与传统Web应用程序中的API有何不同?A. RESTful API使用HTTP请求来处理数据B. RESTful API使用XML作为数据交换格式C. RESTful API更加简洁易用D. RESTful API对数据排序和筛选有更好的支持5. 在数据库与应用程序接口中,以下哪个是API调用的基本组成部分?A. URLB. HTTP方法(GET、POST、PUT、DELETE等)C. 参数D. 返回结果6. 在使用RESTful API时,哪种数据交换格式通常被使用?A. JSONB. XMLC. CSVD. JSONB7. 以下哪个选项是数据库驱动程序与数据库管理系统(DBMS)之间的接口标准?A. ODBCB. JDBCC. OLE DBD. 8. 在数据库与应用程序接口中,以下哪个是API调用的返回类型?A. 字符串B. 数组C. 对象D. 数据库连接对象9. 在数据库与应用程序接口中,以下哪个是API调用的错误处理机制?A. 调用者处理错误B. 被调用者处理错误C. 使用异常处理错误D. 使用日志记录错误10. 在数据库与应用程序接口中,以下哪个是数据库驱动程序与数据库管理系统(DBMS)之间的接口标准?A. ODBCB. JDBCC. OLE DBD. 11. 在数据库与应用程序接口(API)中,通常使用哪种协议?A. HTTPB. HTTPSC. TCP/IPD. ORM(对象关系映射)12. API在数据库连接中的主要作用是什么?A. 提供数据验证B. 提供数据转换C. 提供数据加密D. 提供应用程序与数据库之间的通信13. 以下哪个选项不是API在数据库连接中的常见功能?A. 数据转换B. 数据加密C. 数据验证D. 数据缓存14. 在数据库与应用程序接口(API)的设计中,通常遵循哪种原则?A. 单一职责原则B. 开放封闭原则C. Liskov替换原则D. 接口隔离原则15. 在数据库与应用程序接口(API)中,如何处理错误信息?A. 将错误信息保存在返回的JSON数据中B. 使用特定的错误代码和消息C. 避免返回详细的错误信息D. 将错误信息封装在异常中16. 在数据库与应用程序接口(API)中,如何确保数据的安全性?A. 使用HTTPS协议B. 对数据进行加密C. 实施访问控制列表(ACL)D. 对用户进行身份验证17. 以下哪个选项不是数据库与应用程序接口(API)在设计时的考虑因素?A. 性能B. 可用性C. 可扩展性D. 可维护性18. 在数据库与应用程序接口(API)中,如何处理大数据量的查询?A. 使用分页技术B. 对结果进行缓存C. 使用索引D. 对数据进行预处理19. 在数据库与应用程序接口(API)的测试中,通常关注哪些方面?A. 功能测试B. 性能测试C. 安全性测试D. 兼容性测试20. 数据库与应用程序接口(API)的主要目的是什么?A. 提供数据存储服务B. 提供数据查询服务C. 提供数据更新服务D. 提供应用程序与数据库之间的交互接口21. 在数据库与应用程序接口(API)中,通常使用哪种协议进行数据传输?A. HTTPB. HTTPSC. TCP/IPD. ORM(对象关系映射)协议22. 数据库与应用程序接口(API)的设计原则中,最关键的原则是什么?B. 可靠性C. 效率D. 安全性23. 在数据库与应用程序接口(API)中,常见的数据操作包括哪几种?A. 查询B. 更新C. 删除D. 插入24. 数据库与应用程序接口(API)在现代应用程序开发中的角色是什么?A. 作为应用程序与数据库之间的唯一通信方式B. 作为应用程序与数据库之间通信的辅助手段C. 作为应用程序与数据库之间通信的主要方式D. 作为应用程序与数据库之间通信的替代方案25. 在数据库与应用程序接口(API)中,通常如何处理错误?A. 使用异常处理机制B. 使用返回码C. 使用日志记录D. 使用错误代码和消息26. 数据库与应用程序接口(API)的性能优化措施包括哪些?A. 缓存数据结果B. 减少网络延迟C. 优化SQL查询D. 使用批量操作27. 在数据库与应用程序接口(API)中,如何保证数据的一致性和完整性?A. 使用事务管理B. 使用锁机制C. 使用触发器28. 数据库与应用程序接口(API)的安全性措施包括哪些?A. 认证和授权B. 数据加密C. 防止SQL注入D. 使用安全的连接(如SSL)29. 在数据库与应用程序接口(API)中,如何实现数据的实时备份和恢复?A. 使用数据库自带的备份工具B. 使用第三方备份工具C. 实现数据同步D. 使用备份和恢复的API30. API在数据库与应用程序之间的通信中扮演什么角色?A. 数据库引擎B. 数据访问层C. 应用程序与数据库之间的协议转换器D. 数据库管理员31. API如何确保数据的安全性和完整性?A. 通过加密传输数据B. 对数据进行身份验证和授权C. 限制对数据的访问D. 通过审计跟踪数据访问32. 在数据库与应用程序的接口中,哪种类型的数据交换是同步的?A. RESTful APIB. SOAP APIC. GraphQL APID. ODBC API33. API在数据库性能优化中的作用是什么?A. 减少网络延迟B. 提高数据传输效率C. 减少数据库服务器的负载D. 提供数据分析和报告功能34. 以下哪个选项不是API在数据库管理中的常见用途?A. 自动化日常任务B. 集成不同的数据源C. 提供数据备份和恢复功能D. 允许用户通过图形界面访问数据35. API在微服务架构中的作用是什么?A. 作为微服务之间的通信桥梁B. 提供数据缓存机制C. 实现数据的分布式存储D. 管理微服务的生命周期36. 在数据库与应用程序的接口中,哪种技术用于定义数据结构和行为?A. 数据模型B. SQL查询C. NoSQL模式D. API文档37. API在数据库迁移中的作用是什么?A. 提供数据转换服务B. 自动化数据迁移过程C. 提供数据验证功能D. 优化数据分布38. 在数据库与应用程序的接口中,哪种类型的接口是标准化的?A. RESTful APIB. SOAP APIC. GraphQL APID. ODBC API39. 在数据库与应用程序接口(API)中,以下哪个选项是常见的数据交换格式?A. JSONB. XMLC. CSVD. all of the above40. 以下哪个描述是关于数据库与应用程序接口(API)的安全性的?A. API通常使用SSL/TLS进行加密通信。
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。
换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用,将Java语言和JDBC结合起来使程序员只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。
JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。
作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。
JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC 之间的桥接。
JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。
JDBCTM 是一种用于执行SQL 语句的JavaTM API,它由一组用Java 编程语言编写的类和接口组成。
JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序。
有了JDBC,向各种关系数据库发送SQL 语句就是一件很容易的事。
换言之,有了JDBC API,就不必为访问Sybase 数据库专门写一个程序,为访问Oracle 数据库又专门写一个程序,为访问Informix 数据库又写另一个程序,等等。
迅图数码QMDB实时数据库简介1 QMDB实时数据库简介QMDB实时数据库是基于物联网GIS应用的实时数据库,在以往工业型的数据库上进行了优化改进,让其适用于Q-MAP在WEB SCADA GIS的应用。
目前,QMDB是通过专有的数据通道跟Q-MAP GIS引擎进行连接。
配合Q-MAP实时数据引擎,可以实现终端数据的高频率、大数据量采集和储存,并且还提供与关系型数据库及业务系统的接口。
图表1 QMDB与其他专业实时数据库的比较QMDB是专业支持位置服务的可跨平台操作的实时数据库,它支持超过100万的数据采集点,采用有损、无损混合的压缩算法,压缩比例达到40:1,吞吐量达到100万事件/秒,时间分辨率达到了微秒级别。
所有QMDB的程序开发接口都是线程安全的,一个服务连接可以在不同的线程中同时访问(查询或者提交数据),也可以在不同的线程中使用不同的连接访问数据。
除此之外,QMDB的数据提交程序接口还可以在客户端磁盘上缓存所提交的数据,只有确认服务端已经接收到这些数据之后,接口函数才删除这些缓存数据,否则,当网络通讯恢复正常后,接口函数会将这些缓存在客户端的数据重新发送给服务端,从而确保当网络通讯出现故障的过程中,客户端程序所提交的数据不丢失。
2 函数接口QMDB为开发人员提供比较完备的程序开发接口,分为如下几类:服务连接查询、维护接口;数据点配置信息查询、维护接口;数据提交接口(写数据接口);数据查询接口;命名服务器访问接口;数据处理服务器状态监测接口。
3 数据操作●创建、更新、删除:QMDB支持浮点型数据点,用户既可以创建单个浮点型数据点,也可以批量创建。
在QMDB中,删除一个数据点,同时也意味着删除了这个数据点的所有历史归档数据,因此该操作需要非常谨慎。
在更新数据点的时候,用户可以批量更新需要注意的是,如果数据点原来的配置允许存储历史数据,而更改后的配置不允许存储历史数据,那么,QMDB会删除该数据之前已经存储的历史数据。
力 控 企业实时数据库pSpace 5.0 ®北京三维力控科技有限公司目 录 1 2 3 4 5 6 pSpace 系统概述 ............................................................................................................ 1 pSpace 技术优势 ............................................................................................................ 2 pSpace 系统功能 ............................................................................................................ 4 pSpace 商业优势 .......................................................................................................... 14 pSpace 生产管理解决方案 .......................................................................................... 16 pSpace 效益展望 .......................................................................................................... 18 pSpace 5.0 产品宣传资料 pSpace 系统概述 1 pSpace 系统概述对于现代工业企业, 如何能使决策者随时查看生产过程数据, 以便快速地做出更为灵活 的商业决策,是企业信息化建设的关键。
实时数据库与驱动程序开发接口
V1.0 2006/12/29发布
1引言
根据整个组态的结构描述,在驱动程序与实时数据库之间交换的内容包括采集的实时数据及由实时数据库向驱动发送的控制命令串,驱动程序要求实时数据库或其他驱动支持的功能。
2实现方式
具体的实现方式是能过共享内存的方式进行数据传送。
系统驱动所使用的共享内存全部编号使用,编号从0开始顺序递增,不同的驱动使用不同的共享内存编号,一般一个驱动使用一个共享内存,特殊情况下一个驱动可以使用一个以上的共享内存号。
系统提供若干函数对共享内存的创建及使用进行支持。
并且提供完整的温巡驱动程序,使用纯C语言编写。
二次开发人员可以阅读,参照完成其他驱动的编写工作。
另外对每一个驱动的开发需要在drive目录下建立一个单独的文件存储驱动的应用程序与设置文件.以omron为例,需在drive下建立omron 目录.对每一个驱动程序写一个readme.txt文件和一个config.txt文件来描述开发的目的及驱动的用法及驱动程序的参数设置.
系统占用的共享享内存编号有如下几个, 其他程序请不要占用.
100 声音驱动使用
102 短信程序使用
103 电话语音报警使用
80web驱动使用
3驱动程序编写说明
3.1 数据区
驱动程序采集的量一般分为两种形式一种是实时数据量如遥信,遥测与遥脉等. 另一种类型是结构量,如SOE, 保护动作记录等。
实时数据量采用0 - 1999进行编号, 驱动程序开发人员可自行安排其中的某一段为遥信,遥测或遥脉, 例如0 - 100 为遥信, 101-200 为遥脉, 201 - 300 为遥测.对于遥信多的,将更多的编号分配给遥信,对于遥测多的将更多的编号分配给遥测。
采集上来的量在组态的参数配置中按驱动编写的情况进行配置.
3.2 上传结构变量
结构型变量采用如下方法进行传送,系统提供若干个结构串位置,当将指定形式的若干个结构串放入结构串中时,同时将串个数告诉实时数据库。
则实时数据库程序读入所有的串,并根据指定的格式进行存盘操作或命令操作。
结构串的格式一般为一个特征码附加若干有效字串参数。
3.3 命令区
驱动程序从实时数据库中接收的内容一般是命令串,命令串中包括命令特征码及命令附带的数据,当收到退出命令时驱动程序应自动安全地退出. 退出命令是命令字符串"EXIT"。
3.4 下行结构变量
下传结构变量一般是由实时数据库传送到驱动程序的下行结构变量。
接收下行结构变量的程序一般有声音报警,电话报警,及调度程序等。
4类接口说明
4.1 支持函数文件列表
1)ramdrive.h
2)ramdrive.c
4.2 使用步骤
1)使用方法bool CreateRam( int ramid );
完成共享内存的建立,参数为数据共享区的编号.
2)设置实时数据
void SetValue( int id, int iValue )
id 编号iValue 实时值
3)设置结构串
void SetStruct( int iNum , char * chStruct )
iNum 串内容编号chStruct 串内容
4)设置结构串个数,当实时数据库读完之后会置0
void SetStructNum( int iStructNum )
iStructNum 结构串个数
4.3 实时数据库接收的命令
命令组成: 一般是一个标识开头,跟随着是一些参数
Synax0 = CONC 站号开出号
Descr0 = 发出一个控制命令
Synax1 = COND 站号命令编号数字串
Descr1 = 发出一个带数字的控制命令
Synax2 = CONS 站号命令编号使用字符串代替参数设置内的内容下发
Descr2 = 发送指定的字符串下去字符串中可能有空格
Synax3 = CONV ALUE 站号命令编号数字串
Descr3 = 用于定值更改,会保存原始定值. 有默认取默认值,无则根据关联取出默认值, 如都没有则空出等输入
Synax4 = ASSIGNSYS 编号值save
Descr4 = 给系统总线上的某一个量赋值
Synax5 = SQL SQL语句
Descr5 = 执行一个可执行的sql语句
Synax6 = SOE yyyy mm dd hh mm ss ms ramid istate
Descr6 = 执行一个SOE语句年月日时分秒微秒遥信在共享内存内的编号动作后的状态值
Synax7 = BPACT netaddr gztype yyyy mm dd hh mm ss ms data1 data2 data3 data4 data5 data6
Descr7 = 保护动作语句网络地址故障类型年月日时分秒微秒故障数据1 故障数据2 故障数据3 故障数据4 故障数据5 故障数据6
Synax8 = CMDTORUN CMDSTR
Descr8 = 给上位机的命令CMDSTR为命令脚本
例如:CMDSTR为DisplayMsg Hello ! 则在上位界面程序的状态栏显示Hello ! 例如:OPENDLG …为在上位机弹出指定的对话框
Synax9 = DDL ymramid timetype dataj dataf datap datag datas
Descr9 = 传送电度表量的语句电度表量编号时间种类尖峰平谷总对于时间类型0 本月 1 上月 2 上上月
Synax10 = REMOTE remotetype ctlno ctltype
Descr10 = 调度上送命令
REMOTE 远程命令标志固定使用
remotetype 远程命令类型0 远方遥控1 升降命令
ctlno 遥控号/对象号
ctltype 开关/升降错开关的代码分别为0 1 升降错的代码分别为0 1 2
例如:
REMOTE 0 1 1 意义为遥控号为1 控制内容为关
Synax11 = EVENT netaddr eventtype evnetcode yyyy mm dd hh mm ss ms Parm Descr11 = 设备事件消息命令
EVENT 事件关键字
netaddr 设备网络地址相关设置表格:保护单元描述保护单元地址eventtype 事件类型代码相关设置表格:事件类型
evnetcode 事件代码相关设置表格:事件代码
yyyy mm dd hh mm ss ms 事件时间
Parm 事件参数中间可以有空格多余一个空格会缩为一个空格
例如:
EVENT 0 1 1 2007 3 27 08 30 33 132 parm0 parm1
分析流程:
根据设备网络地址–> 设备类型(通过保护单元地址设置)
根据设备类型,事件类型,事件代码–> 代码意义(通过事件代码表格)Synax12 = DZ filename
Descr12 = 保护定值传送命令
定值接口文件放在组态的temp子目录下。
通常为c:\ctconfig\temp
或/usr/local/ctconfig/temp目录。
向实时库传送时,只需要放入文件名即可.不要带路径.
接口文件定义如下:使用纯文本文件。
addr 1 //保护地址
zoneno 0 //保护定值区号0-3 对于压板类型固定设为-1,以此标记设定为压板
data 0 1 10.1 //定值序号为0 性质1为投入值为10.1
data 1 1 11.2 //定值序号为1 性质1为投入值为11.2
data 2 1 12.3 //定值序号为2 性质1为投入值为12.3
data 3 1 13.4 //定值序号为3 性质1为投入值为13.4
查看指定的保护定值使用exec 命令。
exec browsedz.exe
Synax13 = displayalarm
Descr13 = 驱动要求界面强制显示指定的报警信息
displayalarm iStationid, iDataKind, iid berror date time stationdescr alarmdescr alarmkind tellother devicename
displayalarm 关键字
iStationid, iDataKind, iid 点编号
berror 0 故障标志黄色闪烁1 事故标志红色闪烁
date time 日期时间
stationdescr 站点描述
alarmdescr 报警内容描述
alarmkind 报警类型
tellother 是否在网络上传输
devicename 采集设备描述,表示从哪个设备上过来的报警
4.4 下行信息语法
此语法供调度类型的驱动程序接收
CDTSOE yyyy mm dd hh mm ss ms stationid yxid state
SOE语句年月日时分秒毫秒遥信站号遥信编号动作后状态CDTBPACT netaddr gztype yyyy mm dd hh mm ss ms
保护动作语句网络地址故障类型年月日时分秒毫秒CDTEVENT eventtype evnetcode yyyy mm dd hh mm ss ms
事件动作语句网络地址事件类型事件代码年月日时分秒毫秒。