Mọi người có phần mềm SQL SERVER 2000 SP3 không?
Nếu có up lên giúp mình nha. Mình kiếm trên google để đownload mà không được.
Thanks
Printable View
Mọi người có phần mềm SQL SERVER 2000 SP3 không?
Nếu có up lên giúp mình nha. Mình kiếm trên google để đownload mà không được.
Thanks
Chủ đề này mở ra cùng anh em thảo luận việc tối ưu cơ sở dữ liệu trong wincc scada.Mục đích của phần này thực hiện mảng số 3 của 1 scada thông thường(điều khiển-giám sát-thu thập dữ liệu).Để giải quyết các bài ứng dụng thực tế như lưu dữ liệu theo thời gian,theo trigger vào database(MS Access,Excel),sau đó có thể sắp xếp,truy xuất,search thông tin từ database này xuất ra phục vụ cho R&D và in ấn.
Cùng thảo luận nha.
Cai nay dung cho wincc duoc khong ban
-Tại sao khi cài wincc bạn lại thấy co thêm sql nữa, các bạn dùng nó bao giờ chưa nếu dùng rồi hãy cùng thảo luận và chia sẽ khing nghiệm cho mọi người nhé.
mình có bài viết không nhớ viết từ lúc nào đã up len chưa nhưng giờ tìm thấy up lên mọi người tham khảo và thảo luận vấn đề này luôn
Link: http://www.mediafire.com/?b4bh886e9967dk8
-Win CC thì mình không chơi nên không rành lắm. Nhưng theo thuật ngữ SQL trong lập trình web được định nghĩa như sau:
SQL là: Ngôn ngữ truy vấn có cấu trúc (Stucted Query Language)
Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ chuẩn hóa để định nghĩa và xử lý dữ liệu trong một cơ sở dữ liệu quan hệ. Tất cả các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) đều hiểu được SQL.
Dưới đây là một số thông tin về SQL:
* SQL được đặc biệt tạo ra như một phần của lý thuyết quan hệ. Bạn cần một ngôn ngữ để trao đổi với cơ sở dữ liệu, để lấy ra dữ liệu, hoặc để sửa đổi dữ liệu.
* SQL là một ngôn ngữ không dẫn đường. Nói cách khác, với SQL, bạn không phải ra lệnh cho DB2 hãy tìm một bản ghi, hãy đọc con trỏ của nó và lần theo con trỏ đó tới hàng có liên quan trong bảng. Chỉ cần đơn giản nói DB2 phải làm gì và DB2 sẽ biết cách xử lý lệnh. Đơn giản thế thôi!
* Bạn có thể sử dụng SQL để sửa đổi diện mạo của một bảng mà không phải đưa nó ra ngoại tuyến (offline), có thể thêm các cột mới vào một bảng hiện có hay thêm các quy tắc nghiệp vụ vào định nghĩa của bảng.
- Nói túm lại là 1 nơi chưa data trung gian để từ PLC hay winCC có thể truy vấn hỏi xoáy đáp xoay vào (Read write). Vốn liếng còn nhiêu đó @-)
Chúc vui
Cho em hỏi là muốn truy vấn vào winCC mình viết lệnh gì cho WINCC ạ.
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
Bạn có thể vao trang siemens. Hoặc vào phần help 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ì
Ô 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.
What's DataAccessHelper?
Giúp bạn thực hiện việc thao tác với CSDL bằng ngôn ngữ VBScript một cách nhanh chóng, hiệu quả.
Tránh việc viết đi viết lại nhiều lần câu lệnh tạo đối tượng kết nối, đối tượng lệnh(Command), đối tượng chứa tập kết quả trả về từ một câu lệnh truy vấn Select (Recordset).
1. Trong DataAccessHelper có Config.bmo chứa thông tin cấu hình kết nối CSDL và thông tin về tác giả(Thư viện)
2. Trong Management có EmployeeManagement với các Function AddEmployee, UpdateEmployee, DeleteEmployee, SelectEmployees(Sử dụng cho việc test thư viện DataAccessHelper)Code:
' Thong tin ve tac gia.
Public Const Author = "HOANG VAN LUU" ' Ten tac gia
Public Const Mobile = "0934353510" ' So dien thoai
Public Const Email = "[email protected]" ' Hop thu dien tu.
Public Const Profile = "ISS" ' Profile
' Thong tin Server.
Private Const SERVER_NAME = "HOANGLUU-PC\WINCC" ' Ten Server
Private Const DATABASE_NAME = "ODBC_SQL_SERVER_ADVANCE" ' Ten CSDL.
Private Const USER_NAME = "itda" ' Ten nguoi su dung.
Private Const PASSWORD = "123456" ' Mat khau nguoi su dung.
' Ham doc chuoi ket noi Csdl.
Function GetSQLConnectionString(Byref SQLConnectionString)
' Ket noi Csdl thong qua OLEDB.
SQLConnectionString = "Provider=SQLOLEDB.1; Data Source ="& SERVER_NAME &"; uid=" & USER_NAME & "; pwd=" & PASSWORD & "; Initial Catalog = " & DATABASE_NAME & ";"
' Ket noi Csdl thong qua DNS.
'SQLConnectionString = "Provider=MSDASQL;DSN=ODBC_SQL_SERVER_ADVANCE;UID=;PWD=;"
End Function
Chú ý các Tags:
EmpId : kiểu Int
EmpName : kiểu String
EmpAge: kiểu Int.
3. Tải ví dụ mẫu: http://www.mediafire.com/?79oo0s0lxfug9r7Code:
' Khai bao bien va hang so.
Const TableName = "tblEmployee"
Const EmpId = "EmpId"
Const EmpName = "EmpName"
Const EmpAge = "EmpAge"
' Them moi nhan vien.
Public Function AddEmployee()
Dim columnNames ' Ten cot trong csdl.
Dim values ' Gia tri ban can insert vao csdl.
' Gan gia tri cho mang columnNames, values.
columnNames = Array(EmpId, EmpName, EmpAge)
values = Array(HMIRuntime.Tags(EmpId).Read, HMIRuntime.Tags(EmpName).Read, HMIRuntime.Tags(EmpAge).Read)
' Goi ham insert vao csdl.
Call Insert(TableName, columnNames, values)
End Function
' Cap nhat thong tin nhan vien.
Public Function UpdateEmployee()
Dim columnNames ' Ten cot trong csdl.
Dim values ' Gia tri ban can insert vao csdl.
Dim keyColumns ' Cot dieu kien.
Dim keyValues ' Cot gia tri dieu kien.
' Gan gia tri cho mang columnNames, values, keyColumns va keyValues.
columnNames = Array(EmpName, EmpAge)
values = Array(HMIRuntime.Tags(EmpName).Read, HMIRuntime.Tags(EmpAge).Read)
keyColumns = Array(EmpId)
keyValues = Array(HMIRuntime.Tags(EmpId).Read)
' Goi ham update vao csdl.
Call Update(TableName, columnNames, values, keyColumns, keyValues)
End Function
' Xoa nhan vien.
Public Function DeleteEmployee()
Dim keyColumns ' Cot dieu kien.
Dim keyValues ' Cot gia tri dieu kien.
keyColumns = Array(EmpId)
keyValues = Array(HMIRuntime.Tags(EmpId).Read)
' Gan gia tri cho mang keyColumns va keyValues.
Call Delete(TableName, keyColumns, keyValues)
End Function
' Doc danh sach nhan vien.
Public Function SelectEmployees()
Dim strSQLParam ' Chuoi truy van csdl.
Dim objRecordset ' Tap ket qua sau khi thuc hien truy van.
On Error Resume Next
strSQLParam = "SELECT * FROM " & TableName
' Goi Ham Selects tu csdl.
Call Selects(strSQLParam, objRecordset)
Do While objRecordset.EOF = False
HMIRuntime.Trace objRecordset.Fields("EmpId").Value & ": " & objRecordset.Fields("EmpName").Value & ": " & objRecordset.Fields("EmpAge").Value &vbCrLf
objRecordset.MoveNext
Loop
If Err.Number <> 0 Then
MsgBox CStr(Err.Number) & Err.Description, vbOKOnly, "Thong bao"
Err.Clear
End If
Call CloseConnection() ' Goi ham dong ket noi voi csdl.
End Function
Tải xong giả nén, mở file "ODBC_SQL_SERVER_ADVANCE_QUERY" trong thư mục vừa giả nén bằng SQL Server 2005/2008/2012 rồi nhần F5 hoặc nhấn Execute trên thanh công cụ của IDE SQL Server để tạo DataBase và bảng CSDL để test.
Mở Project "SQL_SERVER_UTILS" trong thư mục vừa giả nến để chạy test thử thao tác với CSDL SQL Server là OK.
4. Hướng dẫn sử dụng thư viện:
1. Tạo 1 Project từ IDE của WINCC.
2. Tải 2 files DataAccessHelper.rar và Management.rar về rồi giả nén.
3. Copy 2 thư mục vừa giả nén vào ScriptLib bên trong thư mục project bạn vừa tạo là có thể sử dụng được.
có bạn nào sử dụng vb, hoặc visua c# lập trình opc liên kết với plc. mình có thể dùng cách đó để đọc và ghi các biến trong plc và thao tác với cơ sở dữ liệu sql hoặc access cũng rất dễ dàng. Bạn nào đang làm cái này rồi cho mình trao đổi với nhé
Mình cũng đang viết chương trình giám sát cho vb thông qua OPC để giám sát và điều khiển PLC. mô phỏng thì cũng ok rồi. có chạy thực tế với PLC S7200 Với PCacess thấy cũng ổn định. Bạn đã làm thực tế với nó bao giờ chưa. Còn việt đọc dữ liệu từ Wincc thì có lệnh VB rất đơn giản thôi. Khi muốn ghi dữ liệu ở 1 Tag của Wincc vào Database mình tạo ra và sau đó xử lý ở trên đó cũng được. Lúc này Wincc chính là 1 OPC và chỉ việc đọc và hiển thị dữ liệu mà thôi. Code để mình tìm lại sau
Chao ae.hien tai trong nha may minh co he thong dieu khien PCS7. Bay gio minh muon lay du lieu qua trinh trong wincc(tich hop trong PCS7) ra excel thi minh lap trinh VBS trong global script va tao database trong sql 2000.Nhung khi tao nut an (button) trong wincc de goi file excel ra thi trong file excel nay khong co gia tri qua trinh. Mong ae cao thu nao da lam ve cai nay roi to giup minh voi. thanks
Bác hungsiemen có thể tìm hiểu về OLE DB, cái này có hẳn 1 file excel sẵn, đáp ứng đủ các yêu cầu của bác. Có điều sửa code thế nào lại là vấn đề @@. Em cũng đang làm cái dự án liên quan chủ yếu về report , mà chính là database, nhưng nản với mấy cái thư viện trong vb quá, không hiểu =="
http://www.mediafire.com/download/66...arm+Export.xls
Đây là file excel OLE-DB , trong file này đã có code lấy dữ liệu từ database, và giao diện. Các bác có thể xem và nghiên cứu code @@.
@@ 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 help 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.
Trích dẫ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.
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!
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.'
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.