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

Hybrid View

  1. #1
    Thành viên cấp 3
    Ngày tham gia
    Sep 2012
    Bài viết
    254
    Thanks
    21
    30 lượt trong 30 bài viết
    Cài Wincc sẽ có thêm SQL sever. Khi chay Wincc. Nếu bạn tạo các cơ sở dữ liệu. Thì trong SQL nó sẽ tự động cập nhật giá trị quá trình cho bạn. Khi ấy ta có thể lấy dữ liệu ra dễ dàng. Còn không thì bạn phải tự tạo Database riêng cho mình trong SQL sever.
    Tất nhiên để lấy được giá trị quá trình trong Sql sever. Chúng ta phải viết C or VB trong Wincc
    Thân

  2. #2
    Thành viên cấp 2
    Ngày tham gia
    May 2012
    Bài viết
    50
    Thanks
    8
    7 lượt trong 7 bài viết
    Trích dẫn Gửi bởi anhnamhm Xem bài viết
    Cài Wincc sẽ có thêm SQL sever. Khi chay Wincc. Nếu bạn tạo các cơ sở dữ liệu. Thì trong SQL nó sẽ tự động cập nhật giá trị quá trình cho bạn. Khi ấy ta có thể lấy dữ liệu ra dễ dàng. Còn không thì bạn phải tự tạo Database riêng cho mình trong SQL sever.
    Tất nhiên để lấy được giá trị quá trình trong Sql sever. Chúng ta phải viết C or VB trong Wincc
    Thân
    Dạ. Nhưng em viết hoài mà vẫn bị lỗi. E đang kiếm cái VBS mẫu để coi thử. Viết nhận dữ liệu và viết dữ liệu như thế nào ạ.
    Nguyễn Văn Phú
    Sinh Viên Đại Học Công Nghiệp TPHCM
    email: Hidden Content

  3. #3
    Thành viên cấp 3
    Ngày tham gia
    Sep 2012
    Bài viết
    254
    Thanks
    21
    30 lượt trong 30 bài viết
    Bạn có thể vao trang siemens. Hoặc vào phần của Wincc để có nhưng code ví dụ của nó. Sau đó phát triển thêm.
    Mình vẫn chưa hiểu " viết dữ liệu của bạn" bạn muốn làm gì

  4. #4
    Thành viên cấp 2
    Ngày tham gia
    May 2012
    Bài viết
    50
    Thanks
    8
    7 lượt trong 7 bài viết
    Trích dẫn Gửi bởi anhnamhm Xem bài viết
    Bạn có thể vao trang siemens. Hoặc vào phần của Wincc để có nhưng code ví dụ của nó. Sau đó phát triển thêm.
    Mình vẫn chưa hiểu " viết dữ liệu của bạn" bạn muốn làm gì
    Viết nhận và gửi dữ liệu giữa wincc và sql đó ạ.
    Nguyễn Văn Phú
    Sinh Viên Đại Học Công Nghiệp TPHCM
    email: Hidden Content

  5. #5
    Thành viên cấp 3
    Ngày tham gia
    Sep 2012
    Bài viết
    254
    Thanks
    21
    30 lượt trong 30 bài viết
    Ô mình bảo với bạn rồi. Khi bạn tạo được liên kết với SQL như mình bảo 2 cách trên. Thì Wincc đã thông với Database. Bjo để hiện giá trị bnaj chỉ cần viết đoạn code để đẩy giá trị nào vào thôi mà.

  6. #6
    Thành viên cấp 2
    Ngày tham gia
    May 2012
    Bài viết
    50
    Thanks
    8
    7 lượt trong 7 bài viết
    Trích dẫn Gửi bởi anhnamhm Xem bài viết
    Ô mình bảo với bạn rồi. Khi bạn tạo được liên kết với SQL như mình bảo 2 cách trên. Thì Wincc đã thông với Database. Bjo để hiện giá trị bnaj chỉ cần viết đoạn code để đẩy giá trị nào vào thôi mà.
    Dạ em biết rồi. Cái quan trọng là em viết hoài nó ko ra đó chứ
    'VBS108a
    Dim objConnection
    Dim objCommand
    Dim objRecordset
    Dim strConnectionString
    Dim strSQL
    Dim lngValue
    Dim lngCount
    strConnectionString = "Provider=MSDASQL;DSN=SampleDSN;UID=;PWD=;"
    strSQL = "select TagValue from WINCC_DATA where ID = 1"
    Set objConnection = CreateObject("ADODB.Connection")
    objConnection.ConnectionString = strConnectionString
    objConnection.Open
    Set objRecordset = CreateObject("ADODB.Recordset")
    Set objCommand = CreateObject("ADODB.Command")
    objCommand.ActiveConnection = objConnection
    objCommand.CommandText = strSQL
    Set objRecordset = objCommand.Execute
    lngCount = objRecordset.Fields.Count
    If (lngCount>0) Then
    objRecordset.movefirst
    lngValue = objRecordset.Fields(0).Value
    HMIRuntime.Tags("dbValue").Write lngValue
    Else
    HMIRuntime.Trace "Selection returned no fields" & vbNewLine
    End If
    Set objCommand = Nothing
    objConnection.Close
    Set objRecordset = Nothing
    Set objConnection = Nothing

    Cái tag1 ở trên đó là tag bên trong wincc minh tạo hả bạn.
    Nguyễn Văn Phú
    Sinh Viên Đại Học Công Nghiệp TPHCM
    email: Hidden Content

  7. #7
    Thành viên cấp 3
    Ngày tham gia
    Dec 2014
    Đang ở
    Hà Nội
    Bài viết
    103
    Thanks
    3
    26 lượt trong 20 bài viết
    Xin chào các anh chị trong diễn đàn. Đây là lần đầu tiên em tham gia diễn đàn nên còn thiếu nhiều kinh nghiệm, mong các anh chị chỉ giáo. Hiện tại, em đang làm báo cáo: truy xuất dữ liệu từ SQL sử dụng VBS. Em đã lưu các dữ liệu sang SQL nhưng hiện tại việc truy xuất lại từ SQL sang WinCC để hiển thị lên ListViewCtrl là không thể, hay nói cách khác là em không làm được. Anh chị nào có tâm huyết hay hứng thú với vấn đề này thì chỉ giáo em với ạ. Em sẽ đính kèm code ở phía dưới ạ. Cảm ơn anh chị đã đọc, chúc diễn đàn phát triển.
    Sub OnClick(Byval Item)
    Dim objCn
    Dim objR
    Dim objCm
    Dim strC
    Dim strSQL
    Dim lngCount
    Dim list
    Dim ssss,aaaa
    Dim s,a
    Dim rs
    Dim row
    Dim li
    Dim oItem
    Dim objCommand

    Set ssss = HMIRuntime.Tags("ssss") 'Thiet lap bien trong WinCC
    s=ssss.Read 'Doc bien tu WinCC
    Set aaaa = HMIRuntime.Tags("aaaa")
    a=aaaa.Read
    Set list=ScreenItems("Control2") 'Gan bien list nay bang Control2, Control2 chinh la ListGirlView
    Set Cn=CreateObject("ADODB.Connection")
    cnStr="Provider=MSDASQL;DSN=CC_HbZz_cl_11_01_13_17 _18_14;UID=;PWD=;"
    strSQL="biaobiao" 'Bang chua du lieu gia tri da duoc luu
    Cn.ConnectionString=cnStr
    Cn.Open
    Set objCommand = CreateObject("ADODB.Command")
    With objCommand
    .ActiveConnection = Cn
    .CommandText = cnStr
    End With
    objCommand.Execute
    Set objCommand = Nothing
    '----------------------------------------------------------------------------
    Set rs=CreateObject("ADODB.Recordset")
    rs.open strSQL,Cn,3,3
    row=0
    li=1
    Do While Not rs.EOF
    Row=Row+1
    If CStr(rs.Fields(11).Value)>= CStr(s) And CStr(rs.Fields(11).Value)<=CStr(a) Then
    Set oItem=list.ListItems.Add()
    oItem.Text=Left(CStr(li),50)
    oItem.SubItems(1)=CStr(rs.Fields(1).Value)
    oItem.SubItems(2)=CStr(rs.Fields(2).Value)
    oItem.SubItems(3)=CStr(rs.Fields(3).Value)
    oItem.SubItems(4)=CStr(rs.Fields(4).Value)
    oItem.SubItems(5)=CStr(rs.Fields(5).Value)
    oItem.SubItems(6)=CStr(rs.Fields(6).Value)
    oItem.SubItems(7)=CStr(rs.Fields(7).Value)
    oItem.SubItems(8)=CStr(rs.Fields(8).Value)
    oItem.SubItems(9)=CStr(rs.Fields(9).Value)
    oItem.SubItems(10)=CStr(rs.Fields(10).Value)
    oItem.SubItems(11)=CStr(rs.Fields(11).Value)
    oItem.SubItems(12)=CStr(rs.Fields(12).Value)
    End If
    li=li+1
    Row=Row+1
    rs.MoveNext
    Loop
    MsgBox "Finish"
    Cn.Close
    End Sub
    '-----------------------------------------------------
    'Em muon lay du lieu tu bang "biaobiao" nay de hien thi len ListViewCtrl thi sua o cho nao ha anh?
    'Day la chuong trinh cua Trung Quoc viet tren phan mem WinCC, phan bao cao Report.
    Lần sửa cuối bởi kochodoi, ngày 01-22-2015 lúc 03:20 PM.

  8. Bài viết của "kochodoi" đã được cám ơn bởi các thành viên:


  9. #8
    Thành viên cấp 3
    Ngày tham gia
    Dec 2014
    Đang ở
    Hà Nội
    Bài viết
    103
    Thanks
    3
    26 lượt trong 20 bài viết
    Mình có một thắc mắc, xin được giải đáp:
    Mình đã tạo ra CSDL trên SQL rồi và lưu giá trị theo thời gian lên đó, nhưng mình không biết là lưu giới hạn dung lượng bao nhiêu, hay là unlimit. Và có cách nào để đẩy dữ liệu khi nó đầy lên không?
    Ví dụ mình đặt giới hạn của nó là 20Gb thì khi đến 20Gb thì nó sẽ xoá dữ liệu cũ để lấy chỗ lưu dữ liệu mới vào.
    Mong mọi người cho ý kiến.

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