天天看點

西門子CP243通信控件

該控件經過多年現場運用,功能完善可靠,可操作的變量類型有I、Q、M、V、S、SM。非注冊版本僅能操作變量區前10個,注冊版本無個數限制,并且注冊一份,不限使用者個數,可以任意釋出使用(僅授權的公司的使用者使用,否則追究相應的責任)。

提供有詳細的示例程式,很容易掌握使用。

同類産品還有Modbus.ocx,S7_PPI.ocx,S7_MPI.ocx等控件

【屬性】

  RemoteHost           CP243 IP位址
  RemotePort           CP243 端口号,預設102           

【方法】

  OpenConnect          打開連接配接
  CloseConnect         關閉連接配接
  ReadData             讀PLC資料 
  WriteData            寫PLC資料
  InitRegCompany       初始化注冊公司名稱           

【事件】

  無

 示例程式界面:

http://www.sky-walker.com.cn/YeFan/S7_CP243.rar
'*************************************************************************
'**函 數 名:chkRun_Click
'**輸    入:無
'**輸    出:無
'**功能描述:
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2005-08-28 11:11:25
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub chkRun_Click()
   tmrRead.Enabled = IIf(chkRun.Value = 0, False, True)
End Sub

'*************************************************************************
'**函 數 名:cmdAbout_Click
'**輸    入:無
'**輸    出:無
'**功能描述:
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2005-11-18 16:44:43
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub cmdAbout_Click()
    CP243Client1.About
End Sub

'*************************************************************************
'**函 數 名:cmdClose_Click
'**輸    入:無
'**輸    出:無
'**功能描述:
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2005-11-19 11:00:41
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub cmdClose_Click()
    Unload Me
End Sub

'*************************************************************************
'**函 數 名:cmdCloseConnect_Click
'**輸    入:無
'**輸    出:無
'**功能描述:關閉連接配接
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2004-12-03 12:53:46
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub cmdCloseConnect_Click()
  CP243Client1.CloseConnect
  picFlag.BackColor = RGB(255, 0, 0)
End Sub

'*************************************************************************
'**函 數 名:cmdOpenConnect_Click
'**輸    入:無
'**輸    出:無
'**功能描述:連接配接指定IP的伺服器
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2004-12-03 12:51:50
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub cmdOpenConnect_Click()
  Dim lngReturn As Long
  
  lngReturn = CP243Client1.OpenConnect(cmbIP.Text)
  If lngReturn = 0 Then
     picFlag.BackColor = RGB(0, 220, 0)
  Else
     picFlag.BackColor = RGB(255, 0, 0)
  End If
  
End Sub


'*************************************************************************
'**函 數 名:cmdSendData_Click
'**輸    入:無
'**輸    出:無
'**功能描述:
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2005-08-27 23:59:32
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub cmdReadData_Click()
    On Error GoTo ToExit '打開錯誤陷阱
    '------------------------------------------------
   Dim i As Long
   Dim bytType As Byte
   Dim lngData() As Long
      
   Select Case cmbType.ListIndex
     Case 0: bytType = CP_I
     Case 1: bytType = CP_Q
     Case 2: bytType = CP_M
     Case 3: bytType = CP_V
     Case 4: bytType = CP_S
     Case 5: bytType = CP_SM
   End Select
   
   If CP243Client1.ReadData(Val(txtAddr), lngData(), Val(cmbNum.Text), Val(cmbLen.ListIndex), Val(bytType)) = 0 Then
      txtData = ""
      For i = 1 To Val(cmbNum.Text)
        txtData = txtData & Format(lngData(i - 1), "0") & " "
      Next
   Else
     txtData = "Error"
   End If
    '------------------------------------------------
    Exit Sub
    '----------------
ToExit:
   MsgBox Err.Description
End Sub


'*************************************************************************
'**函 數 名:cmdWriteData_Click
'**輸    入:無
'**輸    出:無
'**功能描述:
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2005-08-28 11:43:08
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub cmdWriteData_Click()
    On Error GoTo ToExit '打開錯誤陷阱
    '------------------------------------------------
    Dim bytType As Byte
    Dim lngData(0) As Long
    
    Select Case cmbType.ListIndex
      Case 0: bytType = CP_I
      Case 1: bytType = CP_Q
      Case 2: bytType = CP_M
      Case 3: bytType = CP_V
      Case 4: bytType = CP_S
      Case 5: bytType = CP_SM
    End Select
    
    lngData(0) = Val(txtData)
    If CP243Client1.WriteData(Val(txtAddr), lngData(), 1, Val(cmbLen.ListIndex), Val(bytType)) = 0 Then
       '
    Else
        txtData = "Error"
    End If
    '------------------------------------------------
    Exit Sub
    '----------------
ToExit:
   MsgBox Err.Description
End Sub

'*************************************************************************
'**函 數 名:Form_Load
'**輸    入:無
'**輸    出:無
'**功能描述:端口初始化
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2003年12月21日
'**修 改 人:
'**日    期:
'**版    本:V1.0
'*************************************************************************
Private Sub Form_Load()
   Dim i As Long
   For i = 2 To 250
     cmbIP.AddItem "192.168.0." & Format(i, "0")
   Next
   For i = 1 To 100
     cmbNum.AddItem Format(i, "0")
   Next
   
   cmbNum.ListIndex = 0
   cmbIP.ListIndex = 164
   cmbType.ListIndex = 3
   cmbLen.ListIndex = 0
   
   CP243Client1.InitRegCompany "×××公司"    '已注冊的公司名稱
End Sub

'*************************************************************************
'**函 數 名:Form_Unload
'**輸    入:Cancel(Integer) -
'**輸    出:無
'**功能描述:關閉序列槽
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2004-11-20 22:30:57
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub Form_Unload(Cancel As Integer)
    CP243Client1.CloseConnect
    End
End Sub


'*************************************************************************
'**函 數 名:tmrRead_Timer
'**輸    入:無
'**輸    出:無
'**功能描述:
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2005-08-28 11:10:58
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub tmrRead_Timer()
   cmdReadData_Click
End Sub

'*************************************************************************
'**函 數 名:tmrSystem_Timer
'**輸    入:無
'**輸    出:無
'**功能描述:
'**全局變量:
'**調用子產品:
'**作    者:葉帆
'**日    期:2004-12-03 12:55:25
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub tmrSystem_Timer()
    If CP243Client1.State = 7 Then
        picFlag.BackColor = RGB(0, 220, 0)
    Else
        picFlag.BackColor = RGB(255, 0, 0)
    End If
End Sub           

繼續閱讀