ifix的MySQL数据库_iFIX 技术文章:iFIX历史数据库
如下:
定義所需采集數(shù)據(jù)的標(biāo)簽名(或者數(shù)據(jù)源), 并定義采集組存放這些標(biāo)簽;
定義每個(gè)采集組的參數(shù)(節(jié)點(diǎn)、采集速度、相位、控制標(biāo)簽、狀態(tài)和標(biāo)簽);采集速度越快,則數(shù)據(jù)越準(zhǔn)確,數(shù)據(jù)容量越大。iFIX定義的有效數(shù)據(jù)采集周期為:1s、2s、10s、20s、30s、1m、2m、10m、20m、30m(s:秒,m:分鐘)。iFIX推薦的最小采集周期為10秒,默認(rèn)值是30秒。
定義每個(gè)歷史數(shù)據(jù)文件存儲(chǔ)的時(shí)間長(zhǎng)度(以小時(shí)為單位,如4小時(shí)、8小時(shí)、24 小時(shí))。
在SCU中啟動(dòng)歷史采集程序htc.exe,指定文件存放位置。運(yùn)行iFIX,開(kāi)始采集數(shù)據(jù),并把數(shù)據(jù)保存在歷史數(shù)據(jù)文件中。
計(jì)算歷史數(shù)據(jù)需要占用的磁盤(pán)空間容量的公式如下:
文件占用字節(jié)數(shù) = (3500×A) + ((8×B)×C)
A – 采集組的個(gè)數(shù);
B – 每個(gè)采集組包含的平均采集點(diǎn)數(shù);
C – 所有采集組將數(shù)據(jù)寫(xiě)入文件的次數(shù)(所有采集組每個(gè)標(biāo)簽點(diǎn)采集并寫(xiě)入文件的數(shù)據(jù)記錄條數(shù))
【例】以歷史定義為 2 個(gè)采集組,采集速度為 1 分鐘,使用 4 小時(shí)的文件格式。一個(gè)組包含 80 個(gè)標(biāo)簽名,而另一個(gè)包含 20 個(gè)。在此情況下,A、B 和 C 的值如下:
變量
數(shù)值
計(jì)算
A
2
2個(gè)采集組 / 文件
B
50
= (80+20) ÷ 2
C
480
60條(每分鐘一條)/ 小時(shí) × 4小時(shí)(4小時(shí)文件)×2(個(gè)采集組)= 480
將上表數(shù)值帶入公式計(jì)算歷史數(shù)據(jù)文件大小:
(3500 x 2) + ((8 x 50) x 480) = 199,000 bytes
因此,此配置所生成的 4 小時(shí)歷史數(shù)據(jù)文件大約 200K。
[注]:此公式假定數(shù)據(jù)值在每個(gè)掃描周期都超過(guò)記錄死區(qū),因此并不是精確的評(píng)估。根據(jù)數(shù)據(jù)庫(kù)配置,結(jié)果可能有出入。
如下:
字段
數(shù)據(jù)類(lèi)型
字段長(zhǎng)度
含義
NODE
文本
8
節(jié)點(diǎn)名稱(chēng)
TAG
文本
32
標(biāo)簽名稱(chēng)
FIELD
字段
19
字段名稱(chēng)
VALUE
單精度型
默認(rèn)
值
DATETIME
日期/時(shí)間
默認(rèn)
日期時(shí)間
MODE
文本
10
模式
STATUS
文本
20
狀態(tài)
ALARM
文本
40
警告
INTERVAL
文本
9
間隔
[注]每個(gè)節(jié)點(diǎn)生成一個(gè)以節(jié)點(diǎn)名稱(chēng)為數(shù)據(jù)表名稱(chēng)的數(shù)據(jù)表
iFIX。為了實(shí)現(xiàn) ODBC 連接和 SQL 查詢(xún),確認(rèn) SQL 查詢(xún)語(yǔ)句里所查詢(xún)的表名和在歷史數(shù)據(jù)采集組中定義的節(jié)點(diǎn)名相同。使用 DSN 名稱(chēng) FIX Dynamics Historical Data。
以下為使用
Private Sub QueryDatabase(strTag As String, strStartTime As String, strEndTime As String)
Dim conn As Connection
Dim rs As Recordset
Dim strQuery As String
strQuery = "SELECT * FROM THISNODE " + _
"WHERE TAG = '" + strTag + "' " + _
"AND INTERVAL = '1.0' " + _
"AND (DATETIME >={ts '" + strStartTime + "'} AND " + _
"DATETIME <={ts '" + strEndTime + "'})"
If conn Is Nothing Then
Set conn = New Adodb.Connection
conn.ConnectionString = "DSN=FIX Dynamics Historical Data;UID=sa;PWD=;"
conn.Open
End If
If rs Is Nothing Then
Set rs = New Adodb.Recordset
End If
rs.Open strQuery, conn, adOpenForwardOnly, adLockReadOnly, adCmdText
If rs.RecordCount > 0 Then
'讀取記錄
Do While (Not rs.BOF And Not rs.EOF)
strTime =rs.Fields("DATETIME").Value & ""
'下一條
rs.MoveNext
Loop
End If
rs.Close
conn.Close
Set conn = Nothing
Set rs = Nothing
End Sub
總結(jié)
以上是生活随笔為你收集整理的ifix的MySQL数据库_iFIX 技术文章:iFIX历史数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: word 插入代码_突破Word页码困境
- 下一篇: linux导出mysql下ssl证书_L