@@ copyright ?> siemens forums
@@ copyright ?> siemens forums
giá trị excel không có giá trị có thể do tên tag bạn lấy về chưa đúng. tên tag phải lấy đúng với tên tags mình đặt. bạn vào phần của wincc tìm đến phần ví dụ của nó sẽ có đấy
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.
Chào kochodoi,
Bạn có thể Up toàn bộ Project lên để thuận tiện mọi người tư vấn giúp ko?
Chia sẻ đầy đủ thì sẽ được sự trợ giúp.
Chúc vui!
Thiết kế hệ thống điều khiển
PLC - HMI - SCADA
YN: pvn_nhph
hp: 090 858 9797
sao bạn không thử truy vấn trực tiếp tới csdl, thử xem có làm được không, dùng ngôn ngữ truy vấn SQL ấy
Em cũng rất muốn nhưng vì lý do bảo mật của nhà máy nên em không thể up lên được! Mong anh thông cảm, nhiệm vụ của em giờ là sửa code để nó hoạt động.
Em đã thử dùng ngôn ngữ SQL nhưng mà có một trở ngại là lại không chuyên SQL nên việc viết code nhiều khi mình không hiểu được sâu nguồn gốc của câu lệnh. Ở support của Siemens thì cũng có nói về vấn đề CtrlList này, một số kỹ sư nước ngoài họ đã phản ánh việc không hiển thị được lên ListViewCtrl như đã hứa của Siemens nhưng chưa có phản hồi từ hãng. Có biện pháp khác là dùng Crytals Report nhưng lại dùng phần mềm từ hãng thứ 3, em vẫn chưa có biện pháp nào khác./.
'Mà theo em được biết thì trên youtube vẫn chưa có một kênh nào về tự động hóa cho tất cả các kỹ sư ở Việt Nam thật sự bổ ích - hướng dẫn tất cả các phần làm việc của WinCC cũng như Step 7 hoặc mới nhất là TIA (máy cùi quá nên vẫn đang dùng Step7), giống kiểu Getting Started wincc, sau đó là nâng cao lên các tính năng khác của các phần mềm, bộ điều khiển, việc đó sẽ giúp nâng cao trình độ kỹ sư Việt Nam. Nếu anh em nào có tâm huyết có thể lập ra một kênh như vậy và các anh em trên diễn đàn sẽ đóng góp video.'
Lần sửa cuối bởi kochodoi, ngày 02-09-2015 lúc 11:45 AM.
CÁC anh chị có ai làm về vấn đề này oke hết rồi và m.n đnag làm có thể cho em ý kiến , cách thức tìm hiểu giúp em dc ko ạ . em mới tìm hiểu có gì sơ suất mong các anh chị thông cảm và chỉ bảo thêm ạ . ĐỀ tài của em là thiêt kế 1 trang web để điều khiển PLCs7-1200 . và dùng sql để chuyển dữ liệu giữa web và wincc để 2 cái đó hiểu nhau . mong mọi người giúp đỡ ạ .
Em đọc nhưng vẫn chưa hiểu rõ được vấn đề, Hiện tại em cũng đang làm về đề tài thiết kế một cơ sở dữ liệu (SQL Server) để truy xuất từ winc về và ngược lại. Các bác pro đã làm qua có thể vào chỉ giáo em chút được không. thời gian quá gấp nên em chưa thể hiểu hết được. Mong các bác giúp đỡ. Thanks!
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