BÁc nào làm qua vấn đề này rùi chỉ giúp em với ah. Chỉ giúp em tại sao xuất sang Excel ko có gỉ cả???
http://plcvietnam.com.vn/forum/showt...C3%A0-MS-Excel
Bạn tham khảo thêm tại đấy, đã có chủ đề cụ thể.
Thân.
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.
-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.
@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
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.
^_^ đú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
Chào cả nhà,
thiquocvinh nói hoàn toàn đúng.
Cả cái Alarm của ncrazy tiên sinh cũng add được luôn. Việc này hpecom đã làm năm 2007 trên WinCC V6, nhưng lâu quá ko biết đoạn code thất lạc nơi nào rồi, tìm hoài không thấy. Nhưng chắc chắn phần Alarm là Add được. Riêng phần Trend tại hạ chưa hiểu các vị huynh đệ định Add kiểu gì? Nếu thực sự nó có lợi ích thì chúng ta cùng chung tay làm.
Trân trọng,