Đăng Ký
Kết quả 1 đến 10 của 41

Hybrid View

  1. #1
    Cộng tác viên
    Ngày tham gia
    Apr 2011
    Đang ở
    Sài Gòn
    Bài viết
    28
    Thanks
    0
    Thanked 1 Time in 1 Post
    Chào bạn tu dong hoa,

    Mình nói lại:
    WinCC có VBA, trong VBA bạn khai báo kết nối với Excell để lấy tên và kiểu dữ liệu của tag
    Lấy được tên và kiểu dữ liệu rồi thì dùng đối tượng HMIGO để tạo tag.
    Mình viết một VD đầy đủ:
    Private Sub TagCreate(pTagName As String, pTagType As String, pPLC_Addr As String, pGroupName As String, pConnection As String, Optional pStartVal As Variant)
    Dim mHMIGO As New HMIGO
    Select Case UCase(Trim(pTagType))
    Case "BOOL":
    mHMIGO.CreateTag pTagName, TAG_BINARY_TAG, pConnection, pPLC_Addr, pGroupName
    Case "BYTE":
    mHMIGO.CreateTag pTagName, TAG_UNSIGNED_8BIT_VALUE, pConnection, pPLC_Addr, pGroupName
    Case "INT":
    mHMIGO.CreateTag pTagName, TAG_SIGNED_16BIT_VALUE, pConnection, pPLC_Addr, pGroupName
    Case "REAL":
    mHMIGO.CreateTag pTagName, TAG_FLOATINGPOINT_NUMBER_32BIT_IEEE_754, pConnection, pPLC_Addr, pGroupName
    Case "TEXT":
    mHMIGO.CreateTag pTagName, TAG_TEXT_TAG_16BIT_CHARACTER_SET, pConnection, pPLC_Addr, pGroupName
    Case Else
    End Select
    If Not IsMissing(pStartVal) Then
    mHMIGO.TagStart = pStartVal
    End If
    End Sub

    Thân,
    Thiết kế hệ thống điều khiển
    PLC - HMI - SCADA
    YN: pvn_nhph
    hp: 090 858 9797

  2. #2
    Thành viên cấp 2
    Ngày tham gia
    Mar 2012
    Bài viết
    58
    Thanks
    0
    0 lượt trong 0 bài viết
    Trích dẫn Gửi bởi hpecom Xem bài viết
    Chào bạn tu dong hoa,

    Mình nói lại:
    WinCC có VBA, trong VBA bạn khai báo kết nối với Excell để lấy tên và kiểu dữ liệu của tag
    Lấy được tên và kiểu dữ liệu rồi thì dùng đối tượng HMIGO để tạo tag.
    Mình viết một VD đầy đủ:
    Private Sub TagCreate(pTagName As String, pTagType As String, pPLC_Addr As String, pGroupName As String, pConnection As String, Optional pStartVal As Variant)
    Dim mHMIGO As New HMIGO
    Select Case UCase(Trim(pTagType))
    Case "BOOL":
    mHMIGO.CreateTag pTagName, TAG_BINARY_TAG, pConnection, pPLC_Addr, pGroupName
    Case "BYTE":
    mHMIGO.CreateTag pTagName, TAG_UNSIGNED_8BIT_VALUE, pConnection, pPLC_Addr, pGroupName
    Case "INT":
    mHMIGO.CreateTag pTagName, TAG_SIGNED_16BIT_VALUE, pConnection, pPLC_Addr, pGroupName
    Case "REAL":
    mHMIGO.CreateTag pTagName, TAG_FLOATINGPOINT_NUMBER_32BIT_IEEE_754, pConnection, pPLC_Addr, pGroupName
    Case "TEXT":
    mHMIGO.CreateTag pTagName, TAG_TEXT_TAG_16BIT_CHARACTER_SET, pConnection, pPLC_Addr, pGroupName
    Case Else
    End Select
    If Not IsMissing(pStartVal) Then
    mHMIGO.TagStart = pStartVal
    End If
    End Sub

    Thân,
    Cảm ơn anh rất nhiều. Cho em hỏi 1 câu hơi chuối, trong wincc em thấy có VBS, vậy VBA nó nằm ở đâu anh

  3. #3
    Thành viên cấp 4
    Ngày tham gia
    Mar 2011
    Đang ở
    HoChiMinh City
    Bài viết
    488
    Thanks
    0
    83 lượt trong 49 bài viết
    Trích dẫn Gửi bởi tu dong hoa Xem bài viết
    Cảm ơn anh rất nhiều. Cho em hỏi 1 câu hơi chuối, trong wincc em thấy có VBS, vậy VBA nó nằm ở đâu anh
    Mạn phép.
    Giống bên Excel vậy. Có thể ấn phím tắt Alt + F11
    Vinh - 0935 501 812

  4. #4
    Thành viên cấp 4
    Ngày tham gia
    Mar 2011
    Đang ở
    HoChiMinh City
    Bài viết
    488
    Thanks
    0
    83 lượt trong 49 bài viết
    Chào anh hpecom,
    Theo form mẫu Excel em để đầu bài thì lúc trước có tham khảo được một số ví dụ và viết được một đoạn nhỏ - do kiến thức còn yếu nên viết chưa được hay lắm nhưng cũng chạy tạm được.
    Em tạo 1 CommandButton và viết code trên đó. Em thấy trong MsVB này có rất nhiều thư viên chuyên dụng của WinCC, nhưng cũng không thể tìm được hết - vì nhiều lý do.

    Private Sub CommandButton1_Click()

    thongbao = MsgBox("Do you want to create tags?", vbYesNo)
    'co muon tao tag hay khong?

    If thongbao = vbYes Then

    'excel
    Dim objExcelApp
    Dim TagName
    Set objExcelApp = CreateObject("Excel.Application")
    objExcelApp.Visible = True
    objExcelApp.Workbooks.Open "D:\Nghien cuu\VB_1\11.xlsx"
    'Lay TagName tu excel
    TagName = objExcelApp.Cells(2, 2).value
    'Lay TagType tu excel
    TagType = objExcelApp.Cells(2, 3).value
    objExcelApp.ActiveWorkbook.Save

    Set objExcelApp = Nothing
    'tag
    Dim objHMIGO As HMIGO
    Set objHMIGO = New HMIGO

    'lay tagtype tu excel
    If TagType = "TAG_BINARY_TAG" Then TagType = TAG_BINARY_TAG
    If TagType = "TAG_SIGNED_8BIT_VALUE" Then TagType = TAG_SIGNED_8BIT_VALUE
    If TagType = "TAG_UNSIGNED_8BIT_VALUE" Then TagType = TAG_UNSIGNED_8BIT_VALUE
    If TagType = "TAG_SIGNED_16BIT_VALUE" Then TagType = TAG_SIGNED_16BIT_VALUE
    If TagType = "TAG_UNSIGNED_16BIT_VALUE" Then TagType = TAG_UNSIGNED_16BIT_VALUE
    If TagType = "TAG_SIGNED_32BIT_VALUE" Then TagType = TAG_SIGNED_32BIT_VALUE
    If TagType = "TAG_UNSIGNED_32BIT_VALUE" Then TagType = TAG_UNSIGNED_32BIT_VALUE
    If TagType = "TAG_FLOATINGPOINT_NUMBER_32BIT_IEEE_754" Then TagType = TAG_FLOATINGPOINT_NUMBER_32BIT_IEEE_754
    If TagType = "TAG_FLOATINGPOINT_NUMBER_64BIT_IEEE_754" Then TagType = TAG_FLOATINGPOINT_NUMBER_64BIT_IEEE_754
    If TagType = "TAG_TEXT_TAG_8BIT_CHARACTER_SET" Then TagType = TAG_TEXT_TAG_8BIT_CHARACTER_SET
    If TagType = "TAG_TEXT_TAG_16BIT_CHARACTER_SET" Then TagType = TAG_TEXT_TAG_16BIT_CHARACTER_SET
    If TagType = "TAG_RAW_DATA_TYPE" Then TagType = TAG_TEXT_REFERENCE


    ' cau truc tao tag
    objHMIGO.CreateTag TagName, TagType

    ' thong bao da tao tag
    MsgBox "Tag " & TagName & " is created "

    Set objHMIGO = Nothing

    Else: MsgBox "OK, Noproblem !!!"
    End If
    End Sub


    Đoạn code trên mới chỉ tạo được từng tag một, và sẽ báo lỗi khi tên Tag bị trùng, Tóm lại đoạn code chưa hoàn thiện.
    Vinh - 0935 501 812

Tag của Chủ đề này

Đánh dấu

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Back to Top