紫金桥实时数据库二次开发包及手册等点开发接口_第1页
紫金桥实时数据库二次开发包及手册等点开发接口_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、点开发接口数据库点组态首先要进行参数和点类型组态。参数管理:参数包括基本参数、私有参数和自定义参数。其中基本参数和私有参数是系统参数。基本参数是数据库系统预先定义的参数,运行时数据库将自动解释其含义,如量程变换等参数,参数序号从0到99。私有参数是某一种点类型特定使用的参数,参数序号从100到159共60种参数,不同的点类型同一个参数序号可以定义不同的参数。如参数100在累计点中的含义是FILTERFL,表示小信号是否切除,而在PID控制点中表示PID控制的P参数。在同一种点类型中参数序号不能重复,但是不同的点类型该参数序号可以重复。自定义参数:用户组态的参数,序号从160到239。参数组态时

2、在参数管理时点击鼠标左键时同时按下Ctrl和Shift输入口令:systemman可以进入系统组态,可以组态系统参数。参数组态请参见帮助中的自定义参数。需要注意的是:如果要组态一种的点类型的私有参数,类别选择点参数类型,此时该点类型还没有建立,则可以在子类别中输入点类型的序号,如果点类型的序号是20,则在子类别中输入20。点类型管理:点类型序号从0到31是系统点类型,32到63是用户自定义点类型。同样在点类型管理界面点击鼠标左键时同时按下Ctrl和Shift输入口令:systemman可以进入系统组态,可以组态系统点类型。点类型组态请参见帮助中的自定义点类型。每一种点类型包含组态数据库和运行数

3、据库。组态DLL的开发:组态DLL是数据库组态时调用的DLL。该DLL需要完成下列事务:组态输入的管理和点的管理。1)组态输入的管理:组态界面是由若干个对话框组成,必须是子窗口,没有边框,它提供用户组态界面,每一个窗口上可以关联若干参数(当然也可以没有)。该对话框必须从类库提供的CParaPage基类派生。在该输入窗口中,可以对当前的点进行数据的输入、检查、保存。它要完成的功能包括:a)参数和窗口输入的对应:virtualvoidInitEditItem() = 0;在窗口输入时,可以把窗口的输入和参数的对应起来,如在窗口中有一个输入框可以把其和参数点名连接起来,这样系统在引导数据时,就可以自

4、动的把当前点的点名自动更新到该输入框中,而在保存数据时又可以自动把该输入框中的数据自动保存到其参数中。voidCAioBaseDlg:InitEditItem()AddEditItem(PARA_INDEX_NAME,IDC_NAME);AddEditItem(PARA_INDEX_UNIT,IDC_UNIT);b)从当前点读入数据:virtual voidGetData();把当前点数据从内存中读入,显示到对话框上,在InitEditItem对应的参数已经自动读入,但是如果还需要其他的处理,需要自己处理。c)根据当前参数设置状态:virtualvoidGetState();在读入参数后,可以

5、设置一些控制的状态,如不进行量程变换可以使裸数据上下限不能输入等。d)检查当前输入是否合法:virtualboolCheckValue();当切换点时或保存数据之前对当前输入的参数进行合法性检查。系统已经完成的检查包括:点名,量程上下限,限值报警参数范围。如果参数合法,则返回true,否则返回false。e)保存当前输入:virtual boolSaveData();保存输入后调用,在InitEditItem对应的参数已经自动保存。此时保存,只是往内存中保存,并不是往文件中保存。如果成功,则返回true,否则返回false。 提供的方法:a)增加一个参数关联:boolAddEditItem(D

6、WORD dwIndex,UINT nIDD,Para_Edit_Type nType = Para_Edit,DWORD dwData = 0);把当前窗口中的控制和参数关联。参数:dwIndex,双字,参数序号。nIDD,窗口中控制的资源号。nType,表示控制的类型,目前支持三种格式文本编辑框,下拉框,复选框。dwData,目前仅在控制类型为下拉框时使用,表示下拉框中的值与选择的值有偏差。如在报警优先级中,低级报警在下拉框中值为0,但是保存时为1,此时可以设定dwData = 1。b)通知系统当前点参数改变:voidSetModified();通知系统当前点已经有参数改变,如果是在Ini

7、tEditItem对应的参数改变时系统会自动判断,但是如果是不在其中的其他参数,如自己通过文件管理的其他参数如做改动则需要调用该函数。c)设置当前点的安全属性:voidSetTagSecu();管理当前点的安全属性。提供的成员变量:a)当前正在处理点:CTag *m_pTag;当前窗口正在编辑的点,有时该指针可能为空。调用时机:属性页初始化时调用InitEditItem(),得到参数和属性页输入控制之间的联系。它通过调用AddEditItem使系统自动能处理参数的输入和参数更新。组态时点表要切换一个点时,首先调用CheckValue(),检查当前属性页的参数是否合法,如果合法或用户忽略不合法参

8、数则保存参数数据,通过AddEditItem关联的参数自动保存,保存完关联参数后,调用SaveData()。然后切换到用户切换的点,首先把关联参数值更新到属性页中,然后调用GetData,最后调用GetState(),可以在这里根据当前点参数的值设置属性页的状态,如一些按钮、输入编辑框变灰等。注意:属性页读入和保存数据都是指从内存中更新到属性页界面或保存到内存中并没有保存到文件中。保存到磁盘的操作应该在点一级实现。2)点的管理:如果系统的点不能完全满足对点管理的要求,如参数合法性检查,数据的额外存贮等。例如组态的参数中不能满足该点类型的管理,如果系统中可能需要存贮一段脚本,但是参数最多只能输入

9、64个字符,而脚本长度可能大于64。这时就需要自己来处理脚本的输入、存贮等。从系统提供的类库中的CTag类派生。如果是无须特殊处理,则可以使用系统缺省的实现。要完成的功能:a)引导数据:virtualvoidLoadData();从文件中读入当前点的参数。点类型中定义的参数系统已经自动读入,此时可以引导用户要引导的其他参数。b)检查点参数的合法性:virtualboolCheckTagValue(DWORD & dwIndex,bool bTip = true);检查当前点的参数是否合法。基本参数的合法性检查能系统能自动实现,但是其他参数的合法性则需要用户实现。它与属性页中的参数检查不同的是,

10、它可以对点的所有参数进行检查,而属性页中往往只检查属性页中关心的数据。如在报警属性页中,限值报警的限值不能超过量程上下限,而量程上下限往往不在报警参数页中,这时对其检查就需要在点一级检查。参数:dwIndex:不合法的参数序号。bTip:是否能以对话框形式提示出错信息。如果是true则可以显示对话框,否则不能提示。如果参数正确,则返回true,否则返回false。c)保存数据:virtualboolSaveData();保存数据时调用。点类型中定义的参数系统已经自动保存。如果成功则返回true,否则返回false。d)删除点:virtual voidDeleteTag();删除点时调用。提供的

11、方法:a)得到点名:CStringGetName();返回点名。提供的属性:m_nArea:点的区域,整型,0到31。m_nUnit:点所在的单元,整型。m_nType:点的类型,整型。调用时机:系统加载时调用LoadData()引导点参数到内存中。用户存盘之前先调用CheckTagValue检查参数是否合法,如果合法或用户忽略非法数据则调用SaveData(),当删除一个点时调用DeleteTag()。3)DLL中实现的函数:a)创建一个新点:CTag * CreateNewTag(int nType)参数:nType:整型,点的类型。返回值:如果是派生了自己的CTag类,则生成一个对象,否

12、则返回NULL,由系统生成缺省的对象。b)得到属性页数量:intGetPageCount(int nType)参数:nType:整型,点的类型。返回值:整型,属性页的数量。c)得到某一属性页:CParaPage *GetPage(int nType,int nOrder,CWnd * pParent,CString & csTitle)参数:nType:整型,表示点的类型。nOrder:整型,表示属性页的序号,从0开始计数。pParent:CWnd *,创建的属性页的父窗口指针。csTitle:CString,引用类型参数,表示该窗口的标题。返回值:属性页的指针。疑难解答:1)如何在使用编译器

13、?对于某些点类型需要记录一些表达式,此时需要调用系统的编译系统。可以通过以下方式调用:a)先包含头文件:#include GlbFunc0.hb)在点中创建一个动作管理类对象并初始化:CScriptBox* m_pScriptBox;m_pScriptBox = NULL;CGlobalFuncBase* pInter = TypeObj_GetInterFunc();if(pInter)m_pScriptBox = pInter-CreateScriptBox(true);elsem_pScriptBox = NULL;c)参数检查时检查编译:if(!pTag-m_pScriptBox-Compile(Triger, cs)return false;d)保存脚本:if(m_pScriptBox-GetCount() 0)CString csFile = pInter-GetAppPath() + DB + GetName()+.Act;CFile file;if(file.Open(LPCSTR)csFile, CFile:modeCreate|CFile:modeReadWrite)CArchive ar(&file, CArchive:store);m_pScriptBox-Serializ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论