电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

浅谈紫金桥软件驱动开发

来源:华强电子网 作者:华仔 浏览:593

标签:

摘要: 实时数据库系统和操作系统类似,也需要和各种各样的硬件设备,比如PLC,板卡,智能仪表等等进行通讯。为了增加系统的可靠度和稳定性,也需要引入操作系统中驱动程序的概念。同时驱动程序的引入,也使多人同时开发硬件的支持部分成为了可能。实时数据库系统的驱动程序可以完成与各种I/O设备之间的数据交换。一方面,它把从I/O设备采集到的过程数据发送给实时数据库,另一方面,从实时数据库发出的下置数据也要通过驱动程序

实时数据库系统和操作系统类似,也需要和各种各样的硬件设备,比如PLC,板卡,智能仪表等等进行通讯。为了增加系统的可靠度和稳定性,也需要引入操作系统中驱动程序的概念。同时驱动程序的引入,也使多人同时开发硬件的支持部分成为了可能。

实时数据库系统的驱动程序可以完成与各种I/O设备之间的数据交换。一方面,它把从I/O设备采集到的过程数据发送给实时数据库,另一方面,从实时数据库发出的下置数据也要通过驱动程序传送给I/O设备。

紫金桥实时数据库系统提供了开放的驱动程序开发包,任何有VC++经验的开发人员都可以使用此开发包编制驱动程序,增加系统对新的硬件的支持。为了简化驱动程序的编制,我们尽可能的把通用的功能和某具体设备的实现部分相分离,这些通用的功能部分放在一个独立的程序中,就是调度程序。这样编制驱动程序时,编制者就不用了解很多实现的细节,比如串口的打开与关闭,网络Socket的操作等等。同时调度程序也负责和实时数据库的通讯,掌控超时重发机制等等。有了调度程序,每一个驱动程序就可以专心的实现该设备的特殊功能即可,大大提高了效率。

首先我们先简单看一下调度程序所管理的对象。如下图所示

 height="370" src="//img.hqew.com/File/Images/0-9999/0/HR/2014327174939735877.jpg" width="485" /></p><p>每一个调度程序都会创建唯一的管理类(CManager)对象来管理着所有的其他对象,该对象同时管理着一系列的通道对象。所谓的通道(CChannel)对象其实是一系列的通讯介质的抽象,比如一个串口就可以抽象为一个通道对象,再比如一个网络的端口也可以抽象成一个通道对象。调度程序的通道对象隐藏了各种通讯介质的差别,驱动编制者可以不用关心通道的具体细节。在每一个通道对象的内部又管理着若干的设备(CDevice)对象。这种关系可以这样来理解,比如我们在计算机的Com1口上通过Rs485总线联结了3台设备,在Com2口上联结了一台设备。那么调度程序在运行时就会首先创建一个CManager对象,然后再创建两个CChannel对象让CManager对象来管理,它们分别对应Com1和Com2口。然后在Com1对象内创建三个CDevice对象和三台设备相对应,在Com2对象内创建1个CDevice对象。在CDevice的下一级是包对象(CPacket),设备采集数据的时候总是以包为单位进行采集。在包对象的内部又包含着若干的点(CItem),一个点对应着一个从实时数据库位号到实际设备的连接,从设备中采集到的数据首先被放到点中,然后才送入实时数据库中去的。</p><p>另外我们看一下在紫金桥软件中定义设备并进行组点联结的过程,我们以“青岛青智仪器”的驱动程序为例来简要的说明一下整个过程。</p>驱动的安装:<p>请把“青岛青智驱动程序”目录下的“IO Servers”目录与紫金桥软件安装目录下的“IO Servers”目录进行替换。如果您是使用的缺省选项来安装紫金桥软件的那么“IO Servers”目录应该为“C:\Program Files\RealInfo\IO Servers”。</p>定义设备:<p>进行完第一步之后,请重新启动紫金桥软件,这时在导航器的数据库页中可以找到该驱动程序,见下图:</p><p><img alt=

双击该选项,将会弹出定义设备对话框,如下图所示:

 height="455" src="//img.hqew.com/File/Images/0-9999/0/HR/2014327174939380730.jpg" width="458" /></p><p>可以看到在此对话框中需要我们输入设备名称,调度程序就是使用设备名称来得到设备配置的。同时还可以看到在此对话框中需要我们输入设备地址,选择并配置通讯端口。此对话框由紫金桥系统提供,是一个缺省的定义设备的对话框。一些简单的设备,使用缺省的设备定义对话框即可完成定义,而一些复杂的设备就必须要求驱动程序提供进一步的设备定义。</p><p>输入任意设备名称,设备地址要和实际的青智单相仪表设备地址设置相一致,其他设置见图。</p><p>点击COM口旁边的“设置”按钮,会弹出如下所示的COM口配置对话框:</p><p><img alt=

选择对应的设置,注意一定要和实际的青智单相仪表设备的设置相一致。

定义IO点

要想从设备中采集数据仅仅定义设备是不够的,必须还要告诉驱动程序,需要采集设备中的那些位置的数据,这就需要进行组点连接。

把导航器切换到数据库页,可以看到在该页下有“点组态”项,如下图所示:

 height="173" src="//img.hqew.com/File/Images/0-9999/0/HR/2014327174939742475.jpg" width="197" /></p><p>双击“点组态”项即可进入点组态管理。</p><p>在点组态管理器中使用鼠标双击点名下的空白处,如下图深蓝色方块所示:</p><p><img alt=

即可弹出点定义对话框:

 height="383" src="//img.hqew.com/File/Images/0-9999/0/HR/2014327174939300209.jpg" width="396" /></p><p>选择“模拟I/O点”并点击“继续”按钮,会弹出如下图所示的对话框:</p><p><img alt=

在点名处输入需要创建的点的名称,比如A1,并点击确定即可完成一个IO输入输出点的定义。

 height="201" src="//img.hqew.com/File/Images/0-9999/0/HR/2014327174940303508.jpg" width="276" /></p><p>点击“复制”按钮,并连续点击“粘贴”按钮可以迅速的复制刚才创建的点。</p>进行组点连接<p>在点组态管理器中双击相应点的外部连接项,见下图所示:</p><p><img alt=

在随后弹出的对话框中选择刚刚定义的设备,并点击增加连接项按钮会弹出如下所示的组点连接对话框:

 height="133" src="//img.hqew.com/File/Images/0-9999/0/HR/2014327174940501796.jpg" width="260" /></p><p>选择需要采集命令类型及子类型。点击确定即可完成一个点的组点连接。</p>运行系统,采集或下置数据<p>首先,确保设备进行了正确的连接,串口线连接没有错误,并且COM口和设备地址,命令类型以及校验方式都和实际相符,然后在紫金桥软件的工具条中点击<img alt=按钮,即可运行整个系统。

注意:此驱动中可下置的命令为启/停/清除累计电能,其中当下置“0”时代表停止,“1”代表启动,“-1”代表清除,下置其它内容无效。

查看数据,下置数据

系统运行之后,在计算机的右下脚点击 height="21" src="//img.hqew.com/File/Images/0-9999/0/HR/2014327174940310105.jpg" width="19" />图标将出现如下画面:</p><p><img alt=

单击“青智仪器单相仪表”,可以看到驱动程序的运行情况。如果您采集的数据出现问题可以根据此处提示信息进行驱动的调试及相应修改。

 height="376" src="//img.hqew.com/File/Images/0-9999/0/HR/2014327174941313404.jpg" width="553" /></p><p>如果您没有看到如上图所示的驱动显示,请在驱动程序中选择菜单“设置/显示设置”并在显示设置对话框中进行如下的设置即可。</p><p><img alt=

如果您在驱动程序中看到采集运行正常那么请您单击“数据库”,显示实时数据库的运行界面。

 height="352" src="//img.hqew.com/File/Images/0-9999/0/HR/2014327174941849385.jpg" width="540" /></p><p>在对应点的PV参数处即可看到采集的当前值。通过双击并输入新的当前值,即可对参数进行更改,但是在更改前请先确定该参数具有写属性。</p>            </div>
<div class="tech-detail-share">
    <!-- Baidu Button BEGIN -->
    <div class="bdsharebuttonbox">
        <a href="##" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a>
        <a href="##" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a>
        <a href="##" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a>
        <span>分享到:</span>
    </div>
    <script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "2", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName(

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67