5.01 力控的数据库是用SQL Server还是ACCESS改造的?
都不是,力控的实时数据库是自己编写算法的实时数据库。不同于商业的关系数据库。
5.02 实时数据库中的区域是什么意思?
力控实时数据库为了方便管理,将数据库分成0-30共31个区域(AREA)、每个区域又划分成0-99共100个单元(UNIT、下面又分子单元(SUBUNIT、组(GROUP,点名(NAME和点参数的六层结构。
5.03 数据库变量常用的就是PV参数,但其它参数何用途,详细的说明吗?
数据库点参数在“数据库组态(DB Manager-点[T]-点参数”菜单下说明。不同的点类型不同的参数,对于控制策略点参数的说明要看策略的在线帮助了。
5.04 数据库组态时点太多,能复制点或将现的EXCEL点表保存成数据库的点表吗?
可以,力控的数据库支持点复制(自动加序号和删除,也可以将已的EXCEL点表照力控指定的格式导入力控的实时数据库
5.05 力控支持自定义变量和参数吗?
支持。
5.06 实时数据库支持与关系数据库的通讯吗?
支持,可以使用ADO和ODBC方式。详情请参考相关手册或致电北京技术部。
5.07 力控的数据库与数据库之间如何通讯?
可以使用远程数据源的方式,建立网络连接实现,该方式仅支持网络TCP/IP方式;也可以使用力控数据库间专的Portserver或者COMMSERVER协议,该方式支持TCP/IP,串口,拨号,GPRS等多种物理方式的链接,轻松组件分布式实时数据库网络。
5.08 Portserver组件做为分布式网络数据库的通讯组件,什么优点?
Portserver是一个网络通讯的服务器组件,它是力控构成C/S架构服务器的通讯核心组件,支持力控软件以各种网络方式来互相通讯。
比如:力控可以通过RS232/RS422/RS485、无线电台、电话轮巡拨号、GPRS/CDMA等方式和其它节点的力控软件来通讯。
特点如下:
1、组件具备分组和地址概念,网络不同节点的力控通过该组件可进行互相寻址;
2、通过该组件可以使多个客户端同时进行访问服务器;
3、力控软件虚拟成设备,远程力控通过IO驱动程序来进行访问力控;
4、具备故障恢复功能,通讯中断的时候具备自动恢复功能,保证系统的稳定性;
5、直接将力控区域数据库的数据进行发送,提高了系统的效率;
6、第方程序通过开放协议可以以各种网络方式直接访问力控实时数据库。
5.09 为何运行后在打开数据库DB时发现“历史点不存在XXXX”( XXXX为数据库变量的信息)?
这两种可能:
1、这里指出的变量没在组态中进行历史参数的保存设置。即根本不存在历史数据;
2、使用历史曲线或报表等工具对该变量进行过历史数据查询,但所查询的时段没历史数据,即通讯故障,或关机等造成历史数据中断。
5.10 db照条件存储的原理以及如何保存满足条件的时刻?
PcAuto6.1版本中在现的定时保存和变化保存的基础上增加了条件存储功能,条件存储的条件是一个表达式(可使用数学公式参见下表),当表达式为真时Db将存储数据,为假时不存储数据
四则运算:+、-、*、/、%、
移位操作:>>、<<、
大小判断:>、>=、<、<=、==、 !=、
位操作:&、^、|、!、~、
条件判断:&&、||、
数学函数:abs、floor、ceil、cos、sin、tan、cosh、sinh、tanh、acos、asin、atan、deg、rad、exp、ln、log、logn、sqrt、sqrtn、pow、mod、
例如Tag0001的存储为定时存储,保存条件为Tag0002.PV>0,当Tag0002.PV=0或者<0时,Tag0001存储的数据是-9999,告知保存条件不符合,当Tag0002.PV>0时满足条件,Tag0001存储数据。在某些应用环境下,不单单要照存储条件保存历史数据,而且需要把满足条件的具体时间记录下来,这样需配置Db.ini中[ConfSave]字段的DoAction属性,当DoAction=1时,Db将在一个条件存储过程完成后(从保存条件满足到保存条件不满足)将开始储存和结束存储的时间记录到工程目录的DB目录下的ConfSave.mdb数据库中,如需保存到其他数据库需修改[ConfSave]字段的ConnectStr属性, ConnectStr属性是一个ODBC连接字符串,可以根据具体数据库自行生成。默认情况下不保存条件存储记录。
例如要保存在sql server2000的数据库test中,则db.ini的设置如下
[HisData]
NODATA=-9999.9
[ConfSave]
DoAction = 1
ConnectStr="DRIVER=SQLServer;SERVER=192.168.0.252;UID=sa;PWD=123;DATABASE=test "
同时在test里面要建立一张表,名称是SaveConfTable,里面的字段也得定义好,字段的定义如下:
TagName:文本型
bgnTime:日期型
bgnTimeMs:数字型
endTime:日期型
endTimeMs:数字型
也就是说db往数据库写的表名以及字段名字都是固定好的,并且不会自动创建表格。
5.11 db里数据,但是view里没数据?
情况1:数据库组态里的变量,在中间变量或者是数据库变量里定义了同样的点。
情况2:工程存在远程数据源,画面里引用的模拟量输出很可能是通过netview的方式引过来的,给客户造成误解。
情况3:view是从关系数据库里获取的数据,而且超过了63个字符串,而db的desc参数最多只能接收63个字符串。
5.12 如何算存历史数据所占用的空间?
比如100个点,每秒保存1次,则一天保存了多少空间。
一个点保存占用8字节。则算法如下:
8*3600(1天的秒数*24(一天的小时数)*100=69120000byte(字节)
69120000byte/1024=67500kb
67500kb/1024=65.918MB
65.918MB/1024=0.064G
其中公式为:1B=1b(位
1KB=1024B
1MB=1024KB
1GB=1024MB
5.13 db.ini的说明?
[HisData]
NODATA =PREDATA|* 取历史数据时,如果数据不存在,如果NODATA = PREDATA则使用前一个数据,如果NODATA = 其他值,则用其他值。
[Config]
IOREADY_PROMPT =1|0 设备没准备好时,是否提示。1,提示;0,不提示。
VERTYPE = INBUILD|PC|CHUNCHANG 版本类型。迁入版,pc版和春常oem版
SHOWCHECK =1|0 是否进行密码检查。1,检查;0,不检查。
[RealData]
SAMEVALUEACTION =1|0 对相同的采集值,是否进行处理。1,处理;0,不处理。
[WATCHDOG]
CHECK_CYCLE 看门狗检查周期
HARD_WATCHDOG 喂狗周期
DB_SOFT_WATCHDOG 检查db的周期
NDS_SOFT_WATCHDOG 检查nds的周期
IOSERVER_SOFT_WATCHDOG 检查ioserver的周期
[Pid]
DOACTION =1|0 PID点是否进行运算,1运算,0不运算
[NetDb]
UpDateTimer =* 使用远程数据源时,数据的刷新周期,单位为毫秒
[ConfSave]
DoAction =1|0 是否记录条件存储的开始以及停止时间,1记录,0不记录
ConnectStr =* 保存条件存储记录时的数据库连接字符串,该字符串为ODBC字符串
[NewHis]
CycTime =1|0 使用HisSaveManager历史库时,是否启用定时保存功能,1启用,0不启用
FlushTime =* 使用HisSaveManager历史库时,定时存盘周期,单位为毫秒
[Redun]
CycTime =* 双机冗余数据通讯周期的最小值,单位为毫秒,界面设置小于该数据时,DB只照该数据处理
TimeOut =* 双机冗余数据超时周期的最小值,单位为毫秒,界面设置小于该数据时,DB只照该数据处理
InitAll =1|0 双机冗余数据同步时,是否同步全部的属性,还是只同步PV,1全部属性,0只同步PV
5.14 关于dbcom的授权说明
我们的VB\VC通信组件若干个,在VB的部件里能看到一共有三个,DBCOM、DBCOMMOCX、DBINTERFACE,这个是不同历史时期的产物,但是用处是基本相当的,只不过效率不同,现在最新的是,DBCOMMOCX,而DBCOM的授权只能用DBCOM,另外两个需要用DBISDK的授权。
5.15 滤波的算法
数据的变化率 =(本次数值 - 上一次数值) / 两次数值的时间差(单位:秒,数据的变化率 > 设定的滤波值,数据被丢弃。
5.16 小信号切除的限值代表什么意思?
比如填0.1,代表当采集的数据小于0.1的时候就忽略不计。
5.17 力控里的统计值的计算原理?
力控保存的统计值时照整点保存,即统计只在正点那个时刻保存一次。
比如在9点,这个时刻保存8点到9点的最大值,最小值和平均值,在10点,这个时刻保存9点到10点的最大值,最小值和平均值,而取8点到10点的平均值,就会用到9点和10点保存的统计值。
5.18 为何只能查看10天的历史数据,以前数据都没了?
力控的实时数据库默认保存10天的历史数据,所以会出现上述问题,只需在力控实时数据库工程管理器DBManager“工程”——“数据库参数”——“历史数据保存时间”中将保存时间的设置需求进行修改即可。
5.19 力控的历史数据能使用EXCEL或关系数据库查看吗?
可以,在以前版本中使用力控的“内部控件”——“ODBC转储”工具可以将历史数据转存到EXCEL中查看,或使用ODBCGATE工具转存到关系数据库中。在力控6系列产品中可以使用OdbcRouter来进行将数据转储到EXCEL或关系数据库中来进行查看。
5.20 做一个恒压供水系统监控,使用数据变化1%保存历史数据的方式。数据库根本就不保存历史数据,你们的数据库是不是问题,不能存历史?
力控对数据库变量“定时”和“数据变化”两种历史保存方式,数据库变量都可以任意用其中一种方式;对于上述及其类似系统存在实时数据(恒定的压力)前后两次测量值变化微小的工程,请使用定时保存,或将数据变化精度提高即可。
5.21 历史数据占用了大量硬盘空间,数据很重要我想将数据备份出来并删除原的历史,可以吗?
可以,在组态中使用“内部控件”——“数据备份”即可。该控件可以实现历史数据的备份(是否删除可则和恢复。
5.22 力控如何与其它软件交换数据?
力控可以通过标准的DDE、OPC和控件DBCom与第方软件进行数据交换,也可以共同约定通讯方式进行数据交换。
5.23 我用VC自己编写了专用控制算法和仿真模型,想用力控做画面和数据采集,用我的程序做运算并返回信息给力控,可以吗?
可以,力控的DBCommocx是个标准的OLE控件可以在本地和远程计算机上双向的与VC++、VB、VFP、DELPHI、FrontPage、C++ Build等编写的程序进行实时或历史的数据交换,也支持数据变化通知。
5.24 力控怎样与ERP和MIS等管理系统结合?
力控先将数据写到关系数据库中,ERP和MIS等系统再与关系数据库进行通讯。
5.25 力控可以和Infoplus等大型实时数据库连接吗?
力控是标准的OPC Server和DDE Server,可以使用OPC和DDE向实时数据库提供数据,对于Infoplus也可以使用专用的CMIO接口。
5.26 力控能结合GIS地理信息系统吗?
可以,使用DBCommocx控件向GIS提供报警和实时数据信息;如果是WebGIS可以调用力控的drawcom控件,浏览力控的网络发布画面,力控也可以使用StartAPP函数启动WebGIS的画面,或者通过力控直接调用GIS系统的ActiveX控件在力控界面上进行使用,或者是力控开发专门的组件来完成。
5.27 如何读写*.txt的纯文本文件?
可以使用FileRead和FileWrite等相关函数进行读写操作。请查看相关的函数操作。
5.28 力控能获取历史趋势上游标定时间的值吗?
可以,在力控5系列以前版本中可以使用字段tr_val1——tr_val8能得到每支趋势笔的游标所在时刻的值,在力控6系列的产品中直接调用曲线控件的GetSlidValue函数就可以了。
5.29 使用力控查询力控数据的平均值为什么不能得到数据?
如果想要得到历史数据的平均值、最大值、最小值,必须在历史数据存储的时候将变量的统计选上,只有这样力控存储数据的时候才能将统计值进行统计。
5.30 数据库组态中的导入导出点表什么规则,需要注意什么?
导出文件由个文件组成,文件名称分别是*_basic.csv、*_his.csv、*_link.csv,而且必须位于同一个子目录下。在导出文件时需要指定目录和*的内容,个文件自动生成,在导入时*_basic.csv是必须存在的,另外两个文件可以也可以没。
*_basic.csv保存点的基本组态信息,*_his.csv保存历史记录的信息,*_link.csv保存连接项的定义。下面详细介绍个文件的格式和每个单元的含义
*_basic.csv文件以点类型组织整个文件,它包括以下几个部分的内容:
1、第一行和第二行共两个字段,第一个字段是点类型,第二个字段是这种类型的点的总数量,包括所有区域中的数量。点类型用一个整形数标示,它的取值和含义见表一
其他的点类型值是用户自定义点类型。
2、然后接下来的分别是每个区域中该中类型点的定义信息,开始两行是两个字段,指出那个区域共有多少个这种类型的点。
3、接下来是这个区域中这种类型的点的定义,字段的数量依赖于这个类型的参数数量。
如果多个区域该种类型的点,则重复2.、3.的内容。如果多种点类型重复1.、2.、3.的内容。
每种类型的点都不同的参数集,标准点类型的参数值的含义是固定的,自定义点类型的参数值由用户定义,这里无法确定。标准点类型的含义如表二
*_his.csv文件定义历史记录的定义,一共有三种形式的历史记录定义,分别是变化保存、定期保存和退出时保存。下面详细介绍它的格式:
这个文件的每一行都是四个字段,依次分别是点名称、参数名称、记录形式和参数。第一行是表头,从第二行开始是数据部分。记录形式的取值和含义见表三
*_link.csv文件定义连接项的信息,连接项定义一共有三种类型,非别是设备连接项、网络数据库连接项和内部连接项。下面详细介绍它的格式:
这个文件和上一个文件不同的地方就是参数数量多一些,而且它的字段数量随着连接类型的不同二不同。它的第三字段取值含义见表四
注意,如果是设备连接项,就不是6个字段,而是13个字段,后8个字段分别标示IOITEMDEF结构体中的8个long值的内容。
5.31 对于上限值比下限值还小的量程变换中,该如何实现,例如上位机输入是0,下位机对应是32000,上位机输入是90,下位机是6400?
量程变换中,上限值一定要高于下限值,所以不符合这个要求,同时分段线性化是单向的,也就是下位机的数据发生变化,上位机会按照分段线性化进行计算,但是如果是上位机设定值给下位机,则不起作用。所以针对这种方式,只能用程序来写。比如定义一个a变量来进行io连接,再定义一个b变量,在界面上做模拟量的输入输出,择b这个变量,同时在程序运行周期中写如下的公式:a.PV=-(b.pv-32000*9/2560)*2560/9
5.32 数据库里存储数据范围?
历史数据库存取7位效数据,如100000000数据库作为1.0E8存储,是2位效数据;12345678数据库作为1.234567E7存储。这个与数据库组态里小数点的位数择无关。实时数据库存取16位效数据
5.33 数据库组态里的数据库参数通讯故障时显示值为0,运行时报表数据还是-9999?
通讯故障时,view上文字标签会数据库参数配置的显示,报表等控件显示-9999,这种情况下可以在专家报表菜单栏—格式—无效数据处理中设置。
5.34 数据库点类型的控制点中位置式和微分先行不好用?
这两个方式不好用,让客户用增量式算法。
5.35 数据库点的历史参数里的保存条件在修改时会弹出条件必须为表达式?
条件必须使用数据库点。