OPC client (VB article - synchronization)

xiaoxiao2021-03-06  42

Http://www.opc-china.com established the following form: See the Album OPC Technology. Quoted as follows: See Album OPC Technology. The code is as follows: Option Explicitdim Withevents Serverobj As OpcserDim Withevents Groupobj As OpcGroupdim ItemObj As Opcitem

Private sub fascist_start_click ()

Dim OutText As String On Error GoTo ErrorHandler Command_Start.Enabled = False Command_Read.Enabled = True Command_Write.Enabled = True Command_Exit.Enabled = True OutText = "OPC server connection" Set ServerObj = New OPCServer ServerObj.Connect ( "XXXSERVER") 'XXXSERVER For an OPC server name OutText = "Add group" set groupobj = serverobj.opcGroups.add ("group") OutText = "adding an item to the group" set itemobj = groupobj.opcitems.addItem ("xxxitem", 1) ' XXXITEM is the added item name EXIT SUB

ErrorHandler: 'If an exception occurs, it is reported. MsgBox Err.Description Chr (13) _ OutText, Vbcritical, "Error"

End Sub

Private submed_read_click () 'Synchronous Read

Dim Outtext As String Dim MyValue As Variant Dim Myquality As Variant Dim MyTimeStamp As Variant On Error Goto Errorhandler

OutText = "ITEM read value" ItemObj.Read OPCDevice, myValue, myQuality, myTimeStamp Edit_ReadVal = myValue Edit_ReadQu = GetQualityText (myQuality) Edit_ReadTS = myTimeStamp Exit Sub ErrorHandler: MsgBox Err.Description Chr (13) _ OutText, vbCritical, "ERROR "END SUB

Private Sub Command_Write_Click () 'synchronous write Dim OutText As String Dim Serverhandles (1) As Long Dim MyValues ​​(1) As Variant Dim MyErrors () As Long OutText = "writing the value" On Error GoTo ErrorHandler Serverhandles (1) = ItemObj.ServerHandle MyValues ​​(1) = Edit_WriteVal GroupObj.SyncWrite 1, Serverhandles, MyValues, MyErrors Edit_WriteRes = ServerObj.GetErrorString (MyErrors (1)) Exit Sub ErrorHandler: MsgBox Err.Description Chr (13) _ OutText, vbCritical, "ERROR" End Sub

PRIVATE SUB Command_exit_click () 'Stop, delete item, delete Group, delete Server. Dim Outtext As String On Error Goto Errorhandler

Command_Start.Enabled = True Command_Read.Enabled = False Command_Write.Enabled = False Command_Exit.Enabled = False OutText = "delete objects" Set ItemObj = Nothing ServerObj.OPCGroups.RemoveAll Set GroupObj = Nothing ServerObj.Disconnect Set ServerObj = Nothing Exit Sub ErrorHandler: MsgBox Err.Description Chr (13) _ OutText, Vbcritical, "Error" End Sub

Private function getqualitytext (qualy) AS STRING

Select Case Quality Case 0: GetQualityText = "BAD" Case 64: GetQualityText = "UNCERTAIN" Case 192: GetQualityText = "GOOD" Case 8: GetQualityText = "NOT_CONNECTED" Case 13: GetQualityText = "DEVICE_FAILURE" Case 16: GetQualityText = "SENSOR_FAILURE "Case 20: GetQualityText =" LAST_KNOWN "Case 24: GetQualityText =" COMM_FAILURE "Case 28: GetQualityText =" OUT_OF_SERVICE "Case 132: GetQualityText =" LAST_USABLE "Case 144: GetQualityText =" SENSOR_CAL "Case 148: GetQualityText =" EGU_EXCEEDED "Case 152: getqualitytext = "sub_normal" case 216: getqualitytext = "local_override" case else: getqualitytext = "unknown error" End SelectEnd Function

转载请注明原文地址:https://www.9cbs.com/read-72408.html

New Post(0)