Đăng Ký
Trang 2 của 5 Đầu tiênĐầu tiên 1234 ... CuốiCuối
Kết quả 11 đến 20 của 41

Hybrid View

  1. #1
    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 ThiQuocVinh,

    Bạn nghĩ hoàn toàn đúng.
    Dùng VBA có thể kết nối với Excell vào tạo tag tự động.
    Trong Help của WinCC có ví dụ đầy đủ để làm những việc này.
    VD: mHMIGO.CreateTag pTagName, TAG_BINARY_TAG, pConnection, pPLC_Addr, pGroupName

    Thân,
    Anh hướng dẫn cụ thể về cái này đc không, sau cứ lấp lững vậy. đợi câu trả lời của anh

  2. #2
    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

  3. #3
    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

  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
    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

  5. #5
    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

  6. #6
    Thành viên cấp 1
    Ngày tham gia
    Jun 2011
    Bài viết
    42
    Thanks
    2
    7 lượt trong 6 bài viết

    hàng chính hãng, tại sao không?

    -wincc có smarttool dùng cho chuyện này, lúc bạn cài wincc để ý bạn sẽ thấy, thường nó nằm trong C:\Program Files\SIEMENS\WINCC\SmartTools\VarExpImp.
    -Cách các bạn phát triển rất tôt nhưng trong 1 số trường hợp lại không dùng được Vd, Tag struct,....
    -Ngoài ra wincc còn có wincc ODK phải nói là cực good.

  7. #7
    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
    @tiendungkct: Đề nghị Dũng trình bày phương pháp dùng SmartTools và phương pháp dùng ODK cho mọi người cùng mở rộng kiến thức.
    @thiquocvinh: Bạn đặt các dòng code vào 1 vòng lặp, trong đó có biến mRow và sửa code thành
    TagName = objExcelApp.Cells(mRow, 2).value
    'Lay TagType tu excel
    TagType = objExcelApp.Cells(mRow, 3).value
    Thiết kế hệ thống điều khiển
    PLC - HMI - SCADA
    YN: pvn_nhph
    hp: 090 858 9797

  8. #8
    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
    Xin chào,
    Thật ra, ý tưởng này là mình được biết từ anh Dũng. Và nay cũng gặp phải trường hợp này nên muốn phát triển ứng dụng ra.
    @hpecom: Em sẽ thử sau và đưa ra kết quả.
    Thanks các anh.
    Vinh - 0935 501 812

  9. #9
    Thành viên cấp 4
    Ngày tham gia
    Nov 2011
    Bài viết
    490
    Thanks
    0
    49 lượt trong 35 bài viết
    ^_^ đúng là số lượng tag lớn thì làm mệt thật nhưng trong wincc mệt nhất là làm alarm, và trend đó, add alarm và add trend mệt xỉu luôn, hình như có công cụ làm cái này trong wincc thì phải.
    còn viết code tạo tag thì không hợp lý lắm vì tag chỉ add 1 lần thôi, sau đó không add nữa nên hiệu quả sử dụng so với công sức bỏ ra không đáng đâu, sài cái smartool hợp lý hơn
    HỌC, HỌC NỮA, HỌC MÃI,HỌC HẾT LỚP BẢY THÌ NGHỈ
    Hidden Content

  10. #10
    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 ncrazy Xem bài viết
    ^_^ đúng là số lượng tag lớn thì làm mệt thật nhưng trong wincc mệt nhất là làm alarm, và trend đó, add alarm và add trend mệt xỉu luôn, hình như có công cụ làm cái này trong wincc thì phải.
    còn viết code tạo tag thì không hợp lý lắm vì tag chỉ add 1 lần thôi, sau đó không add nữa nên hiệu quả sử dụng so với công sức bỏ ra không đáng đâu, sài cái smartool hợp lý hơn
    Chào anh,
    Mình nghĩ hiệu quả đấy chứ. Code là cố định, đâu phải ta chỉ xài 1 lần, còn nhiều dự án khác nữa chứ.
    Mục đích của mình đưa ra vấn đề tạo tag này là muốn mở rộng ra tiếp vấn đề gán tag.
    Ví dụ tạo 1k tag cho 1k đèn báo => gán 1k tag vào 1k đèn báo đó.
    Không biết là việc này có tool hay không (?). Nhưng mình muốn phát triển mạnh về code để sau này có thể mở rộng thêm nhiều nhiều việc khác.
    Thân
    Vinh - 0935 501 812

Trang 2 của 5 Đầu tiênĐầu tiên 1234 ... CuốiCuối

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