如何升级自动化平台服务器,使用的IFIX组态,SQL 数据库

如何升级自动化平台服务器,使用的IFIX组态,SQL 数据库,第1张

组态王软件数据库。服务器方式连接渣水系统组态王数据库。渣水系统那边安装组态王的OPC服务器,iFIX作为OPC客户端进行连接。建立查询数据库后的记录集,并把数据写到EXCEL中后另存为EXCEL文件:阻抗不连续 信号

一般情况下组态软件直接通讯有三种方案

一是通过opc的方式 这个最简单。但是配置服务器还是需要费一些功夫的

二是通过中间软件 例如关系数据库。如果ifix的opc不给开放 就可以先把数据存入关系数据库 例如sql access 然后力控再从关系数据库取。这种办法是最便宜最省钱的

三是走底层接口 ifix也可以开放底层数据库接口 但是开发底层接口的费用很高 而且技术服务支持不动 所以采用的很少

Private Sub 历史报表Btn_Click()

'注释: 1。该程序需要安装ADO 20目标库并在本机注册

' 2。Microsoft ActiveX Data Objects 21 Library 必须被引用 (Office 2000)

' 3。Microsoft Excel 90 object libraries 必须被引用 (Office 2000)

' 4。划===处可根据具体报表修改

Dim strQuery As String

Dim c, i As Integer

Dim r As Integer

Dim Rpt_xls As ExcelApplication

Dim dnm(4) As String

Dim MyDate, MyMonth, MyDay, MyHour, MyMinute, MySecond

Dim stDate, stMonth, stDay, stHour, stinute, stSecond, sttime As String

Dim StartTime, EndTime, Duration, DisplayDay, DisplayMonth As String

'++===================================================================

'报表中的 TAG

Dim Items As Integer

dnm(1) = "AI1"

dnm(2) = "AI2"

dnm(3) = "AI3"

dnm(4) = "AI4"

'从历史库中取得域项, 2 - DATATIME, VALUE, TAG 共三项

'--====================================================================

stDate = Date$

sttime = Time$

StartTime = stDate & " 00:00:00"

EndTime = stDate + " " + sttime

Set Rpt_xls = New ExcelApplication

Rpt_xlsVisible = True

'++============================================================================

'打开的报表文件名

Dim OutReportFile As String

Dim Rpt_f2 As String

Rpt_f2 = "d:\Dynamics\App\HIST"

Rpt_xlsWorkbooksOpen Rpt_f2 & "XLS"

Rpt_xlsSheets("Sheet1")Select

Range("e1")Select

SelectionNumberFormatLocal = "yyyy-mm-dd hh:mm:ss"

Cells(1, 4)Value = stDate & "-" & sttime

' Rpt_xlsActiveWorkbookSaveAs (Rpt_f2 & stDate)

'++==========================================================================

Dim cnADO As New ADODBConnection

Dim rsADO As Recordset

Set cnADO = New ADODBConnection

cnADOConnectionString = "DSN = FIX Dynamics Historical Data; UID =; PWD = ;"

cnADOOpen "FIX Dynamics Historical Data", "", ""

'============================================================================

'查询,根据报表修改。注意,在“Select VALUE FROM mynd“中,mynd是当前SCADA节点名。

For i = 1 To 4

r = 3

strQuery = "Select VALUE FROM mynd " & _

"WHERE (TAG='" & dnm(i) & "'and " & _

"INTERVAL = '00:30:00' and " & _

"DATETIME >= {ts '" & StartTime & "'} and " & _

"DATETIME <= {ts '" & EndTime & "'})"

'--===========================================================================

MsgBox (strQuery)

Set rsADO = New ADODBRecordset

rsADOOpen strQuery, cnADO, adOpenForwardOnly, adLockBatchOptimistic

rsADOMoveFirst

Rpt_xlsColumns("a")Select

SelectionNumberFormatLocal = "yyyy-mm-dd hh:mm:ss"

While rsADOEOF <> True

' MsgBox ("有记录")

Cells(r, i + 1)Value = rsADOFields(0)

Cells(r, i + 1)NumberFormatLocal = "000"

r = r + 1

rsADOMoveNext

Wend

MsgBox (r)

Next i

Set cnADO = Nothing

' Rpt_xlsActiveSheetPageSetupOrientation = xlPortrait 'xlLandscape

' Rpt_xlsActiveSheetPageSetupPaperSize = xlPaperA4

' Rpt_xlsActiveSheetPrintOut

' Rpt_xlsDisplayAlerts = False

Rpt_xlsActiveWorkbookSave

' OutReportFile = Rpt_f2 & "_00" & MyMonth & MyDay

' Rpt_xlsActiveWorkbookSaveAs OutReportFile

Rpt_xlsActiveWorkbookSaveAs (Rpt_f2 & stDate)

Rpt_xlsQuit

Rpt_xlsDisplayAlerts = True

Set Rpt_xls = Nothing

End Sub

Private Sub 历史数据库Btn_Click()

'注释: 1。该程序需要安装ADO 20目标库并在本机注册

' 2。Microsoft ActiveX Data Objects 21 Library 必须被引用 (Office 2000)

' 3。Microsoft Excel 90 object libraries 必须被引用 (Office 2000)

' 4。划===处可根据具体报表修改

Dim strQuery As String

Dim c As Integer

Dim r As Integer

Dim Intyexcel As ExcelApplication

Dim MyDate, MyMonth, MyDay, MyTime, MyHour, MyMinute, MySecond

Dim StartTime, EndTime, Duration, DisplayDay, DisplayMonth As String

'从历史库中取得域项, 2 - DATATIME, VALUE, TAG 共三项

Items = 2

'--====================================================================

MyDate = Format(Now(), "yyyy-mm-dd")

MyTime = Format(Now(), "h:m:s")

StartTime = MyDate & " " & "00:00:00"

EndTime = Now()

'++==========================================================================

' strQuery = "Select value from Fix " + _

' " Where DATETIME >={ts '" + StrStarTime + "'} AND " + _

' "DATETIME <={ts '" + StrEndTime + "'} AND " + _

' "Tag = " & " '" & HisDate5(i, 0) & "'"

'查询,根据报表修改

strQuery = "Select From MYND " + _

"WHERE (DATETIME >= {ts '" & StartTime & "'} and " + _

"DATETIME <= {ts '" & EndTime & "'}) and " + _

"(tag = 'AI1')" + _

"and INTERVAL = '00:30:00' "

'--===========================================================================

Dim cnADO As New ADODBConnection

Dim rsADO As Recordset

Set cnADO = New ADODBConnection

cnADOConnectionString = "DSN = FIX Dynamics Historical Data; UID = ; PWD = ;"

cnADOOpen "FIX Dynamics Historical Data", "", ""

Set rsADO = New ADODBRecordset

' RsOpen strQuery, Cn, adOpenStatic, 3, adCmdText

rsADOOpen strQuery, cnADO, adOpenForwardOnly, adLockBatchOptimistic

' rsADOMoveFirst

'++============================================================================

'打开的报表文件名

Dim Rpt_xls As ExcelApplication

Dim OutReportFile As String

Dim Rpt_f1 As String

Set Rpt_xls = New ExcelApplication

Rpt_xlsVisible = True

Rpt_f1 = "d:\Dynamics\App\rt1"

Rpt_xlsWorkbooksOpen Rpt_f1 & "XLS"

' Rpt_xlsActiveWorkbookSaveAs (Rpt_f1 & stDate)

'===============================================================================

Rpt_xlsSheets("Sheet2")Select

Rpt_xlsRange("E1")Select

r = 3

SelectionNumberFormatLocal = "yyyy-mm-dd hh:mm:ss"

Cells(1, 5)Value = EndTime

While rsADOEOF <> True

If rsADO(c) <> "" Then

Cells(r, 1) = rsADOFields(0)

Cells(r, 2) = rsADOFields(1)

Cells(r, 3) = rsADOFields(2)

Cells(r, 4) = rsADOFields(3)

Cells(r, 5) = rsADOFields(4)

Cells(r, 6) = rsADOFields(5)

Cells(r, 7) = rsADOFields(6)

Cells(r, 8) = rsADOFields(7)

Cells(r, 9) = rsADOFields(8)

End If

r = r + 1

rsADOMoveNext

Wend

' IntyexcelSheets("Sheet1")Select

' IntyexcelActiveSheetPageSetupOrientation = xlPortrait 'xlLandscape

' IntyexcelActiveSheetPageSetupPaperSize = xlPaperA4

' IntyexcelActiveSheetPrintOut

' IntyexcelDisplayAlerts = False

' IntyexcelActiveWorkbookSave

' OutReportFile = InReportFile & "_00" & MyMonth & MyDay

' IntyexcelActiveWorkbookSaveAs OutReportFile

' IntyexcelQuit

' IntyexcelDisplayAlerts = True

' Set Intyexcel = Nothing

Set cnADO = Nothing

End Sub

Private Sub 实时报表Btn_Click()

'注释: 1。该程序需要安装ADO 20目标库并在本机注册

' 2。Microsoft ActiveX Data Objects 21 Library 必须被引用 (Office 2000)

' 3。Microsoft Excel 90 object libraries 必须被引用 (Office 2000)

' 4。划===处可根据具体报表修改

Dim c As Integer

Dim r As Integer

Dim Rpt_xls As ExcelApplication

Dim MyDate, MyMonth, MyDay, MyHour, MyMinute, MySecond

Dim stDate, stMonth, stDay, stHour, stinute, stSecond, sttime As String

Dim StartTime, EndTime, Duration, DisplayDay, DisplayMonth As String

'--====================================================================

stDate = Date$

sttime = Time$

StartTime = stDate & " 09:40:00"

EndTime = stDate + " " + sttime

r = 1

Items = 8

Set Rpt_xls = New ExcelApplication

Rpt_xlsVisible = True

'++============================================================================

'打开的报表文件名

Dim OutReportFile As String

Dim Rpt_f1 As String

Rpt_f1 = "d:\Dynamics\App\rt1"

Rpt_xlsWorkbooksOpen Rpt_f1 & "XLS"

Rpt_xlsActiveWorkbookSaveAs (Rpt_f1 & stDate)

'===============================================================================

Rpt_xlsSheets("Sheet1")Select

Rpt_xlsRange("E1")Select

SelectionNumberFormatLocal = "yyyy-mm-dd hh:mm:ss"

Cells(1, 5)Value = stDate & sttime

'================================================================================

Cells(3, 2)Value = Fix32myndai1f_cv

Cells(3, 3)Value = Fix32myndai2f_cv

Cells(3, 4)Value = Fix32myndai3f_cv

Cells(3, 5)Value = Fix32myndai4f_cv

Range("B3:E3")Select

SelectionNumberFormatLocal = "000_ "

'================================================================================

Rpt_xlsActiveSheetPageSetupOrientation = xlPortrait 'xlLandscape

Rpt_xlsActiveSheetPageSetupPaperSize = xlPaperA4

'Rpt_xlsActiveSheetPrintOut

Rpt_xlsDisplayAlerts = False

Rpt_xlsActiveWorkbookSave

OutReportFile = Rpt_f1 & "_00" & MyMonth & MyDay

Rpt_xlsActiveWorkbookSaveAs OutReportFile

Rpt_xlsQuit

Rpt_xlsDisplayAlerts = True

Set Rpt_xls = Nothing

End Sub

最简单的SQL语句:备份与还原SQL Server自带的数据库在服务器上备份:use NorthwindBackup database Northwind to disk='d:\Northwind_bakdat' with initRESTORE DATABASE NorthNwind FROM DISK = 'd:\Northwind_bakdat'备份数据库这一 *** 作在客户机上实现 客户机:machine共享目录:share (要完全共享,可写权限)backup:bakcup database dbname to disk='\\machine\share\databak' with init\\machine\share目录要有写权限。restore:restore database dbname from disk='\\machine\share\databak' //备注:restore 语句有很多的选项,可以查看企业管理器的在线帮助。如下with replace, move 'dbname_dat' to 'c:\mssql7\data\dbnamemdf', move 'dbname_log' to 'c:\mssql7\data\dbnamelog'其中'c:\mssql7\data\'是服务器的目录,这点要注意备份与还原数据库的相关内容:SQL Server 70数据库备份有四种:完全数据库备份、增量数据库备份、事务日志备份、数据库文件或文件组备份。在数据库崩溃时,应该首先尝试备份事务日志(这一点很重要),然后恢复最后的数据库备份、该次数据库备份后的所有增量备份,最后恢复事务日志备份,这样可以将数据库恢复到崩溃前的状态。备份是定期的,而不是实时的,所以利用备份并不能完全恢复数据库,它只能将数据库恢复到制作备份的那一刻 数据库日志是实时的,他忠实的记录下所有对数据库的更新 *** 作。因此,当磁盘出现故障造成数据库损坏时,就可以首先利用备份恢复数据库(大部分数据),然后运行数据库日志,即将备份后所做的 *** 作重新在做一遍,从而将数据库完全恢复。--备份完整的数据库---------------------------------------------------------------//创建一个备份设备:1 Create the backup device for the full MyNwind backup/// USE masterEXEC sp_addumpdevice 'disk', 'MyNwind_2', 'c:\mssql7\backup\MyNwind_2dat'2 Back up the full MyNwind database BACKUP DATABASE MyNwind TO MyNwind_2--备份数据库的日志--------------------------------------------------------------- --1 Create the log backup deviceUSE masterEXEC sp_addumpdevice 'disk', 'MyNwindLog1', 'c:\mssql7\backup\MyNwindLog1dat'--2 Update activity has occurred before this point Back up the log of the MyNwind databaseBACKUP LOG MyNwind TO MyNwindLog1tryAdoQuery1Close;AdoQuery1SQLClear;AdoQuery1SQLAdd('backup database pubs');AdoQuery1SQLAdd('to disk='+''''+edtPathText+'''');AdoQuery1ExecSQL;exceptShowMessage('备份数据库失败!');exit;end; SQL server的备份================================================================

ifix数据库入sql或者别的数据库

(1) ifix实时数据入sql

在ifix数据库中建立sqt sqd

sqt进行基本的配置(相当于触发数据采集的方案配置)

sqd包含要导入的数据列表

看看置顶的那个帖子, 历史报表

(2) ifix实时数据入调出或入别的数据库

可以采用编程的方式调用ifix vdbadll 的方法

具体可以参考ifix开发手册

通过这个方法 可以实时访问ifix的实时数据库

你可以在delph中通过这种方法直接访问ifix的实时数据

第一种方法 属于间接方法 但容易

第二种方法 属于直接方法 需要很多资源来支持。

以上就是关于如何升级自动化平台服务器,使用的IFIX组态,SQL 数据库全部的内容,包括:如何升级自动化平台服务器,使用的IFIX组态,SQL 数据库、组态软件北京三维力控怎样直接读取ifix数据库的监控数据、iFIX用VB脚本编的登录界面窗体怎么连接Access数据库,要具体的VB语句,在线等。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9673970.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存