PDA

View Full Version : Trao đổi dữ liệu giữa WinCC V7 và MS Excel



thiquocvinh
08-15-2011, 02:13 AM
Mình mới tìm hiểu WinCC V7 được một thời gian. Bây giờ đang tìm cách xuất dữ liệu từ WinCC V7.0 SP2 sang MS Excel.
Mình có đọc được một đoạn code trong phần help. Mọi người cùng thảo luận nha.

MS Excel
In this example, an output value from an input field is written in an Excel table

'VBS113
Dim objExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
'
'ExcelExample.xls is to create before executing this procedure.
'Replace <path> with the real path of the file ExcelExample.xls.
objExcelApp.Workbooks.Open "<path>\ExcelExample.xls"
objExcelApp.Cells(4, 3).Value = ScreenItems("IOField1").OutputValue
objExcelApp.ActiveWorkbook.Save
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp = Nothing


Tài liệu tham khảo: HD kết nối WinCC 7 - MsExcel 07: http://www.mediafire.com/view/?7ct6na9tjb6o6v5

ILOVEPLC
08-26-2011, 04:25 PM
Mình củng đang nghiên cứu về phần này mà tài liệu thì ít quá, cho mình hỏi một chút. Trong wincc có phần nào cho ta hiển thị số khi mực nước dân lên xuống không.?
VD: khi mực nước dân lên trong bồn nước thực tế là 10cm thì trong wincc củng cho ta thấy là 10cm.
Nhờ các bạn chỉ giúp, cảm ơn.

nguyendien.tdh
08-26-2011, 10:19 PM
Bạn mô phỏng or là thực tế .Theo mình thì Mực nước dâng lên hay xuống thì để minh họa trên WinCC thì chắc chắn bạn sẽ phải lưu vào 1 vùng nhớ nào đó .Bạn muốn hiển thị thì chỉ việc đọc vùng nhơ đó .Còn nếu chính xác thực tế thì bạn phải quan sát nước dâng , rút thật rồi dựa vào đó tính toán thôi .Mình góp ý như vậy bạn thử xem .

dinhdinh1986
08-28-2011, 09:59 AM
Hiện tại nếu ứng dụng vào thực tế thì có các thiết bị đo mức: đo mức chất lỏng, đo mức vật liệu dạng bột,.... ( có thể sử dụng ultrasonic hoặc điện dung ...), output ra của nó là analog dạng 4-20mA hoặc FF hoặc Profibus hoặc HART, bạn có thể dùng output này để lập trình trong chương trình s7 và từ đò link qua wincc, kiến thức nông cạn, ai biết thì chỉ lại giúp mình với nhé.
Gửi bạn con đo mức này nhé, lướt qua dữ liệu output của nó bạn nhé, sản phẩm của E-H: http://www.mediafire.com/?vbwh819qwap7c7v
Trân trọng cảm ơn, chúc vui vẻ.

phuongtdh1
10-14-2011, 04:58 PM
Chào mọi người.
Mình đang nghiên cứu về Wincc. Cho nình hỏi cách truyền dữ liệu từ 1 tag của wincc sang ms excel và ngược lại
mình đã làm được với iofield nhưng với tag thi không được.
Cám ơn trước mọi người.

mr_khanh89
11-07-2011, 07:35 PM
Chào các bác !
Như đã đọc các bài viết trong diễn dàn vấn đề xuất dữ liệu từ wincc ra excel thì không vấn đề gì cả.
Còn vấn đề ngược lại đọc dữ liệu từ excel về wincc thì bó tay. bác nào biết về vấn đề này thì xin chỉ giáo thêm cho mọi người cùng trao đổi.
Cảm ơn nhiều !

thiquocvinh
11-07-2011, 10:22 PM
Chào bạn,
Mình hưởng ứng nhiệt tình. :P
Vậy bạn bắt đầu đi, hướng giải quyết của bạn như thế nào? Có thể nêu ý tưởng lên để mọi người tham khảo và tìm hiểu không?
Chúc vui. :)

mr_khanh89
11-10-2011, 05:58 PM
chào,
wincc thì mình cũng chưa nghiên cứu nhiều cho lắm. nên vấn đề đọc dữ liệu mình cũng chưa tìm hiểu kỹ.
Theo mình thì có thể thay lệnh xuất ra bảng exel thành lệnh đọc, vì mình cũng chưa text thử nên cũng ko biết có được ko.
ACE nào có ý tưởng hay xin góp ý, thanks !

chúc vui !

thiquocvinh
11-11-2011, 11:04 AM
Chào,
Mình có đọc được một số thông tin, và người ta chỉ là vào phần HELP tìm hiểu. Bạn vào HELP search: Example: Accessing MS Excel with VBA
Hi vọng có thể giúp được bạn phần nào.

gunners242
12-05-2011, 11:01 PM
Bác nào biết cách xuất dữ liệu ra excel thì chỉ giùm em với,e đang rất cần.thanks cả nhà

kidsolo1412
12-05-2011, 11:12 PM
Vào cấu hình trong tag,logdata chọn log dạng file CSV
xem clip này có phần cấu hình:
http://www.youtube.com/watch?v=fKaxsLeJyFw
File excel kết quả :
http://www.youtube.com/watch?v=wsS38xI9R2U

gunners242
12-06-2011, 09:02 AM
Cám ơn anh. Nhưng anh có thể cho em 1 ví dụ cụ thể hoặc 1 clip xuất dữ liệu ra excel cho dễ hiểu được không ah.Thanks anh nhìu

kidsolo1412
12-06-2011, 10:19 AM
Cám ơn anh. Nhưng anh có thể cho em 1 ví dụ cụ thể hoặc 1 clip xuất dữ liệu ra excel cho dễ hiểu được không ah.Thanks anh nhìu
Trong clip đầu tiên từ giây 6 đến giây 36 là đoạn cấu hình cho tag nhiệt độ xuất file ra folder Luutru nằm trong ổ C với dung lượng max của file là 50MB và thời gian log là 1s
Trong clip 2 từ 3p15s đến 4p20s là kết quả của file excel.

daocongdabl
12-06-2011, 10:32 AM
xuất ra file CSV có cái là dể làm và đảm bảo yêu cầu lưu trử số liệu ,nhưng có một hạn chế là ra file có nhiều dòng ,cột mà mình không mong muốn ,mình chủ yếu là chỉ cần ngày tháng ,số liệu của mình muốn xuất ,nhưng mình đả nghiên cứu VB để xử lý vụ này ,nhưng nói thiệt anh em đừng cười về VB mình dốt lắm ,đang bắt đầu học thôi .

gunners242
12-06-2011, 02:03 PM
Vâng. cám ơn bác kidsolo1412 đã chia sẻ với em nhé.=;

gunners242
12-15-2011, 11:13 PM
mình tưởng khi chạy runtime winccflex thì nó sẽ tự động lưu lại 1 file excel báo cáo trong ổ C mà. Mong mọi người đóng góp ý kiến.chúc vui vẻ

dohung
12-27-2011, 02:53 PM
Việc lưu trữ dữ liệu từ wincc hay wincc flexible có thể thực hiện thông qua data login hay alarm login hay viết thêm 1 đoạn script để lưu trữ với bố cục mong muốn.Việc sử dụng chức năng login thuận lợi cho việc lưu trữ file, lưu trữ đồ thị theo trend...Các chức năng này dohung đã làm xong.Bác nào cần cứ pm nhé.

hiennguyen
12-27-2011, 02:58 PM
em cần em cần :d,chỉ em với ^^

dohung
12-27-2011, 03:00 PM
Với hiennghien thì anh sẵng sàng rồi,cái đĩa tuần này anh gửi nhé,đang bị chậm tiến độ nên anh tăng ca hoài.
Em làm các chức năng trên bên wincc flex chưa ? Nếu chưa thì làm bên đó nhé.

hoanghoduc
01-11-2012, 03:01 PM
Thực ra để có thể lưu thông tin (Tức tag, hay ngày giờ, hay dữ liệu....) các bạn nên dùng Uer Archive
Vì ở đó nó có đầy đủ để ta Export, Import to PLC hoặc Export to Excel ... theo cách riêng!

thangngo88
02-17-2012, 08:15 PM
Xin các anh chị cho em hỏi cách thiết kế layouts su dung CSV Table với ạ. em chưa hiểu lắm về file CSV và cách tạo ra file CSV mong các anh chị giúp đỡ. Em muốn xuất dữ liệu ra từ phần tagloging sử dụng CSV table hichic mà không biết làm thế nào..

khongbaogio
02-22-2012, 08:00 PM
Theo mình nghĩ là bạn muốn export file dữ liệu từ Online table của Wincc để ra file CSV. Cái này thì WinCC đã hỗ trợ sẵn bạn chỉ cần Cấu hình trong tag logging rồi lôi bảng Online Table của Wincc ra rồi hiển thị các tag vừa cấu hình là xong, bạn muốn export ra file CSV thì có thể dùng thanh công cụ trên online table để làm. Hoặc nếu bạn muốn làm báo cáo lấy dữ liệu từ SQL của Wincc ra thì bạn phải sài Connectivity Pack của Wincc sau đó viết một đoạn code C để export dữ liệu mà bạn muốn lấy ra.



Hieplangmoi@gmail.com

thangngo88
02-22-2012, 08:25 PM
lấy dữ liệu từ SQL của Wincc ra thì bạn phải sài Connectivity Pack của Wincc sau đó viết một đoạn code C để export dữ liệu mà bạn muốn lấy ra...bạn có thể cho mình một viduj để mình hiểu rõ hơn không. mình mới làm về wincc nên còn kém quá..mình muốn viết một đoạn code c để lấy dữ liệu đã lưu trữ ra báo cáo tại một thời điểm bất kì mà chưa biết làm thế nào mong bạn giúp đỡ..thank bạn nhiều

khongbaogio
02-23-2012, 09:45 AM
Mình cũng đã viết một bài viết trên diễn đàn Webdien rồi nên mình sẽ không viết lại nữa bạn tham khảo ở đây
http://webdien.com/d/showthread.php?t=27050



As if having any question please feel free to contact me
Hieplangmoi@gmail.com

dohung
03-01-2012, 09:24 AM
Bác nào có thể cho link option Connectivity Pack trong wincc không ?
Hình như bản đang dùng không có.

lucphong126
03-21-2012, 10:26 AM
ai biết cách xuất dữ liệu từ WinCC sang Oracle thông qua industrial data brigde chỉ em với !

danh_vohoai
04-12-2012, 10:35 PM
Mình củng đang nghiên cứu về phần này mà tài liệu thì ít quá, cho mình hỏi một chút. Trong wincc có phần nào cho ta hiển thị số khi mực nước dân lên xuống không.?
VD: khi mực nước dân lên trong bồn nước thực tế là 10cm thì trong wincc củng cho ta thấy là 10cm.
Nhờ các bạn chỉ giúp, cảm ơn.
Dùng I/O field đó bạn. chọn kiểu dự liệu hiển thị rồi liên kết nó với Tags báo mực nước là xong thôi (Tags này thay đổi giá trị dựa vao analog bạn đọc được từ cảm biến mực nước.)

ncrazy
04-12-2012, 10:42 PM
Dear a e
Ae cho mình hỏi datalog của mình đang log 500ms, người ta yêu cầu xuất dữ liệu ra 3 table, 1 table hiển thị đúng 500ms, 1 table hiển thị dữ liệu 1m và 1 table hiển thị dữ liệu 1h thì mình có cách gì lấy dữ liệu ra không vậy, ko cần xuất exel, chỉ cần hiển thị ra màn hình wincc thoi

vuongvuong1234
04-20-2012, 10:50 AM
Chào mọi người!
Mình là thành viên mới của diễn đàn! Mình có 1 thắc mắc mong anh em giúp đỡ!
Về vấn đề hiển thị mực nước trong wincc, mình đã hiển thị được số trong IOFied , mình tạo 1 polygon để hiển thị mức lên xuống của mực nước ! Nhưng nó chỉ hiển thị đến 100 là đầy polygon, Ví dụ mình có 130(l) nc thì iofied nhảy lên 100 thì polygon đã đầy!
mình dùng plc thật ! cpu 224
Mong anh em giúp đỡ!
Thanks!

vuongvuong1234
04-20-2012, 10:51 AM
Chào mọi người!
Mình là thành viên mới của diễn đàn! Mình có 1 thắc mắc mong anh em giúp đỡ!
Về vấn đề hiển thị mực nước trong wincc, mình đã hiển thị được số trong IOFied , mình tạo 1 polygon để hiển thị mức lên xuống của mực nước ! Nhưng nó chỉ hiển thị đến 100 là đầy polygon, Ví dụ mình có 130(l) nc thì iofied nhảy lên 100 thì polygon đã đầy!
mình dùng plc thật ! cpu 224
Mong anh em giúp đỡ!
Thanks!

khanh my
04-20-2012, 11:53 AM
Chào mọi người!
Mình là thành viên mới của diễn đàn! Mình có 1 thắc mắc mong anh em giúp đỡ!
Về vấn đề hiển thị mực nước trong wincc, mình đã hiển thị được số trong IOFied , mình tạo 1 polygon để hiển thị mức lên xuống của mực nước ! Nhưng nó chỉ hiển thị đến 100 là đầy polygon, Ví dụ mình có 130(l) nc thì iofied nhảy lên 100 thì polygon đã đầy!
mình dùng plc thật ! cpu 224
Mong anh em giúp đỡ!
Thanks!
Anh tham khảo tại đây
http://www.youtube.com/watch?v=7goTNOLYSLs

congatechnical
07-05-2012, 11:50 AM
Mình mới tìm hiểu WinCC V7 được một thời gian. Bây giờ đang tìm cách xuất dữ liệu từ WinCC V7.0 SP2 sang MS Excel.
Mình có đọc được một đoạn code trong phần help. Mọi người cùng thảo luận nha.

MS Excel
In this example, an output value from an input field is written in an Excel table

'VBS113
Dim objExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
'
'ExcelExample.xls is to create before executing this procedure.
'Replace <path> with the real path of the file ExcelExample.xls.
objExcelApp.Workbooks.Open "<path>\ExcelExample.xls"
objExcelApp.Cells(4, 3).Value = ScreenItems("IOField1").OutputValue
objExcelApp.ActiveWorkbook.Save
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp = Nothing

Chào bạn !
Mình cũng đang tìm hiểu về vấn đề này.Không biết bạn đã làm OK vấn đề này chưa? Tôi cũng đã làm thử như VD trong đó nhưng khi xuất ra Excel thì không thấy dữ liệu của IOField đâu?
Bác nào làm rùi có thể chia sẻ một chút kinh nghiệm với. Cám ơn nhiều

labview
07-05-2012, 03:45 PM
Các anh có tài liệu wincc 7.0 sp2 tiếng việt chia sẻ cho em với ,em mới tìm hiểu về wincc ,em co quyển sách viết về wincc 6.0 ,có một vài điểm khác nhau nên hơi khó hiểu về tag logging,alarm logging,em đang dung phan mền wincc 7.0 ,các anh có thì cho em tham khảo vơi! Em thanks trước nha!

thanhke_auto
07-05-2012, 07:26 PM
Các anh có tài liệu wincc 7.0 sp2 tiếng việt chia sẻ cho em với ,em mới tìm hiểu về wincc ,em co quyển sách viết về wincc 6.0 ,có một vài điểm khác nhau nên hơi khó hiểu về tag logging,alarm logging,em đang dung phan mền wincc 7.0 ,các anh có thì cho em tham khảo vơi! Em thanks trước nha!
http://plcvietnam.com.vn/threads/167-Chia-se-tai-lieu-WinCC.plc

b (http://plcvietnam.com.vn/threads/167-Chia-se-tai-lieu-WinCC.plc)ác này hỏi nhiều chỗ quá. có sẵn hết rùi chịu khó tìm đi. ko chỉ trên web mình có tài liệu mà bạn hỏi anh GG ra đầy cho bạn lựa chọn

daocongdabl
10-23-2012, 11:53 AM
Mình mới tìm hiểu WinCC V7 được một thời gian. Bây giờ đang tìm cách xuất dữ liệu từ WinCC V7.0 SP2 sang MS Excel.
Mình có đọc được một đoạn code trong phần help. Mọi người cùng thảo luận nha.

MS Excel
In this example, an output value from an input field is written in an Excel table

'VBS113
Dim objExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
'
'ExcelExample.xls is to create before executing this procedure.
'Replace <path> with the real path of the file ExcelExample.xls.
objExcelApp.Workbooks.Open "<path>\ExcelExample.xls"
objExcelApp.Cells(4, 3).Value = ScreenItems("IOField1").OutputValue
objExcelApp.ActiveWorkbook.Save
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp = Nothing


Tài liệu tham khảo: HD kết nối WinCC 7 - MsExcel 07: http://www.mediafire.com/view/?7ct6na9tjb6o6v5
mình góp ý các bác nếu muốn gọi luôn file exel ra xem thì đoạn code trên bỏ luôn 2 dòng objExcelApp.Workbooks.Close và
objExcelApp.Quit
dạng xuất này là dạng xuất theo phiếu định dạng trước
nếu muốn xuất 1 lần 1 phiếu thì trên đoạn code trên tại dòng
objExcelApp.ActiveWorkbook.Save sửa lại là objExcelApp.ActiveWorkbook.Saveas +số lần xuất từ 1 tag sẻ ra như ý muốn
và cũng từ đoạn code trên thêm 1 chút mắn ,muối vào nửa nó sẻ cho ra phiếu xuất theo ngày tháng báo cáo
ngoài ra cách xuất theo phiếu thì wincc còn 1 dạng xuất theo data
là cứ 1 lần xuất sẻ ghi xuống 1 dòng và 1 ngày hoặc 1 tháng cho ra 1 file báo cáo
lưu ý để cho file báo cáo có dung lượng nhỏ ngoài cách sử dụng dạng exel gốc kiểu file.xls hoặc xlsx thì có thể dùng kiểu file.csv cho file báo cáo dung lượng nhỏ để tiện lưu trử

daocongdabl
10-23-2012, 12:13 PM
từ chủ đề xuất số liệu từ wincc ra exel hoặc từ wincc flexible ra exel theo kiểu xuất phiếu hoặc kiểu data thì mình làm ok hết rồi
và hiện nay mình có 1 ý tưởng là không lẻ mình xuất báo cáo lưu trử vào ổ đỉa và cứ nhiều ngày thì sẻ ra nhiều file exel
còn nếu xuất trên 1 file thì khó theo dỏi
tiện đây hỏi các bác nào từng làm giao diện trên wincc hoặc wincc flexibe dạng lịch tháng/năm
khi nào muốn xem file exel báo cáo lưu trử trước kia chỉ cần chọn lịch ngày tháng năm cần xem file báo cáo trên giao diện wincc hoặc wincc flexible thì lúc đó file exel tương ứng sẻ tự động mở lên cho mình xem

vxambk
11-04-2012, 07:09 AM
Mình đã làm theo file hướng dẫn của QuocVinh nhưng khi nhấn nút OPEN EXCEL không mở được file Excel trong đường dẫn lên và nó báo lỗi như sau:System Erro &H80040111. ClassFactory cannot supply requested class. Mong Vinh chỉ giáo thêm. Thanks!

daocongdabl
11-05-2012, 02:23 AM
Mình đã làm theo file hướng dẫn của QuocVinh nhưng khi nhấn nút OPEN EXCEL không mở được file Excel trong đường dẫn lên và nó báo lỗi như sau:System Erro &H80040111. ClassFactory cannot supply requested class. Mong Vinh chỉ giáo thêm. Thanks!
đoạn code bạn vinh làm là chạy ok nhe,cái này mình kiểm tra rồi với wincc 7 là ok còn wincc v11 thì chỉnh 1 chút là chạy
nếu bạn khó khăn up lên anh em xem và sửa cho

khoadang87
12-13-2012, 02:44 PM
Em định xuất dữ liệu từ wincc 7.0 ra excel từ tag loggin theo thời gian thực như ví dụ 1 giờ thì ghi một lần, mỗi ngày ghi ra 1 file báo cáo, có thể ghi theo tháng và năm để thống kê, bác nào biết chỉ cho em với! em cảm ơn các bác trước!

PHAMTRUNGVAN
12-16-2012, 09:20 AM
Chào bạn !
Mình cũng đang tìm hiểu về vấn đề này.Không biết bạn đã làm OK vấn đề này chưa? Tôi cũng đã làm thử như VD trong đó nhưng khi xuất ra Excel thì không thấy dữ liệu của IOField đâu?
Bác nào làm rùi có thể chia sẻ một chút kinh nghiệm với. Cám ơn nhiều
BẠN THAY "IOField1" sao cho khớp với tên mặc định trong wincc đó.
của mình là "I/O Field1" là ok!!!
goodluck for you!
p/s sẵn tiện bạn bỏ luôn 2 dòng objExcelApp.Workbooks.Close và objExcelApp.Quit luôn nhé!!!

PHAMTRUNGVAN
12-16-2012, 09:26 AM
mình góp ý các bác nếu muốn gọi luôn file exel ra xem thì đoạn code trên bỏ luôn 2 dòng objExcelApp.Workbooks.Close và
objExcelApp.Quit
dạng xuất này là dạng xuất theo phiếu định dạng trước
nếu muốn xuất 1 lần 1 phiếu thì trên đoạn code trên tại dòng
objExcelApp.ActiveWorkbook.Save sửa lại là objExcelApp.ActiveWorkbook.Saveas +số lần xuất từ 1 tag sẻ ra như ý muốn
và cũng từ đoạn code trên thêm 1 chút mắn ,muối vào nửa nó sẻ cho ra phiếu xuất theo ngày tháng báo cáo
ngoài ra cách xuất theo phiếu thì wincc còn 1 dạng xuất theo data
là cứ 1 lần xuất sẻ ghi xuống 1 dòng và 1 ngày hoặc 1 tháng cho ra 1 file báo cáo
lưu ý để cho file báo cáo có dung lượng nhỏ ngoài cách sử dụng dạng exel gốc kiểu file.xls hoặc xlsx thì có thể dùng kiểu file.csv cho file báo cáo dung lượng nhỏ để tiện lưu trử
Chào bạn!!!
bạn có thể cho 1 code ngắn ví dụ được không?
chỉ cần mỗi lần mình nhấn là du liệu từ wincc xuất ra excel kèm theo ngày giờ nữa được không?

daocongdabl
12-16-2012, 04:06 PM
Chào bạn!!!
bạn có thể cho 1 code ngắn ví dụ được không?
chỉ cần mỗi lần mình nhấn là du liệu từ wincc xuất ra excel kèm theo ngày giờ nữa được không?

đoạn code đó là ngắn và đơn giản nhất rồi
quá cụ thể còn gì bàn nửa

PHAMTRUNGVAN
12-16-2012, 07:07 PM
đoạn code đó là ngắn và đơn giản nhất rồi
quá cụ thể còn gì bàn nửa
Mình thử ok rồi!
Nhưng yêu cầu là xuất ra excel cả thời gian và mỗi lần xuất ra thì excel xuống 1 dòng.
Đoạn code trên chỉ xuất ra và bị lặp lại ô dữ liệu.
Mình còn yếu về vấn đề này nên mong bạn có thể chỉ rõ hơn.
Cám ơn ACE trong diễn đàn đã quan tâm!!!

daocongdabl
12-16-2012, 07:25 PM
code này thích hợp cho xuất báo cáo dạng phiếu ,biểu mẩu thôi
còn vấn đề bạn đưa ra là xuất dạng data thì code này không đáp ứng được
phải dùng code khác

PHAMTRUNGVAN
12-16-2012, 07:34 PM
code này thích hợp cho xuất báo cáo dạng phiếu ,biểu mẩu thôi
còn vấn đề bạn đưa ra là xuất dạng data thì code này không đáp ứng được
phải dùng code khác

Bạn có code theo yêu cầu đó ko? up lên giúp mình với!!!
P/s xuất ra excel nhé!!! mình có mấy code nhưng chỉ xuất ra access thôi mà access thì không rành cho lắm!

khoadang87
12-17-2012, 10:27 PM
Bác nào có code xuất dữ liệu dạng data theo thời gian cho em xin, access cũng được mà excel thì tốt quá!

ncrazy
12-18-2012, 05:02 AM
hic, thì xuất được exell rồi thì cải tiến nó chút xíu đi bạn, ^_^ đợi chờ người khác làm gì, ví dụ đơn giản nhất là bạn lưu lại vị trí cell vừa xuất vào biến nhớ nào đó, lần sau trước khi ghi thì đọc cái vị trí đó lên rồi dịch xuống 1 ô là dc, còn không thì trước khi ghi đọc xem nó có trống không, nếu trống thì ghi vào, nếu ko thì xuống 1 dòng.

PHAMTRUNGVAN
12-18-2012, 05:22 AM
HJHJ!!!
TẠI VB EM CÒN GÀ QUÁ!!!
CHƯA BIẾT MÃ CODE THÌ LAM SAO VIẾT CHƯƠNG TRÌNH ĐƯỢC. ACE THÔNG CẢM
VỚI LẠI THỜI GIAN KHÔNG CÒN NHIỀU NÊN KHÔNG THỂ XEM HẾT TÀI LIỆU ĐƯỢC. ACE NÀO CÓ CODE SẴN THÌ UP LÊN. KHÔNG THÌ BÀY CÁCH HOẶC CHO EM MÃ LÊNH ĐỂ EM TẬP TRUNG VÀO TRÁNH TRƯỜNG HỢP COI LAN MAN.
CODE "Sub OnClick(ByVal Item)

Dim objExcelApp
Set objExcelApp = CreateObject("EXCEL.Application")
objExcelApp.Visible = True
objExcelApp.Workbooks.Open "D:\Study\DO AN TOT NGHIEP\NICE\EXCEL\TEST VER2-E.xlsx"

Set objExcelApp = CreateObject("EXCEL.Application")
objExcelApp.Visible = True
objExcelApp.Workbooks.Open "D:\Study\DO AN TOT NGHIEP\NICE\EXCEL\TEST VER2-E.xlsx"
objExcelApp.Cells(4, 2).Value = ScreenItems("I/O Field1").OutputValue
objExcelApp.Cells(5, 2).Value = ScreenItems("I/O Field2").OutputValue
objExcelApp.Cells(6, 2).Value = ScreenItems("I/O Field3").OutputValue
objExcelApp.Cells(7, 2).Value = Now
objExcelApp.ActiveWorkbook.Save

End Sub"
ĐÃ XUẤT RA ĐƯỢC THỜI GIAN NHƯNG LÚC ĐƯỢC LÚC KHÔNG NÊN KHÔNG BIẾT CÓ BỊ LỖI HAY CÒN THIẾU CHỖ NÀO KO???MONG MẤY PRO CHỈ GIÚP.
CODE TRÊN CÓ MỖI CHỮ "NOW" MÀ EM MẤT HẾT CẢ NGÀY CHỦ NHẬT. HIXHIX.
P/S ACE CÓ CODE NHẢY DÒNG EXCEL THÌ UP LUÔN NHÉ!!!

ncrazy
12-18-2012, 06:31 AM
code nhảy dòng ở chữ cells chứ đâu ^_^

PHAMTRUNGVAN
12-18-2012, 05:16 PM
code nhảy dòng ở chữ cells chứ đâu ^_^

cells đó là quy định ô trong excel chứ nhảy dòng gì huynh?chưa hiểu rõ lắm. :D

ncrazy
12-18-2012, 07:38 PM
hic hic, nhảy dòng là nhảy qua cell ở dòng khác đúng ko, thì nhập giá trị khác cho cell ^_^

PHAMTRUNGVAN
12-19-2012, 12:10 AM
hic hic, nhảy dòng là nhảy qua cell ở dòng khác đúng ko, thì nhập giá trị khác cho cell ^_^

đúng rồi anh! nhưng để 1 lần nhấn rồi xuất ra là mỗi lần xuống dòng!
vậy mình so sánh nếu ô trống thì mình cho xuất còn nếu ô có dữ liệu thì mình cho nhảy xuống ô trống tiếp theo.
Vấn đề là so sánh với ô trống hay ô có dữ liệu thì code nó như thế nào. nếu anh pro VB thì giúp em với. chứ ý tưởng là 1 chuyện còn viết code theo ý tưởng thì em bó tay. Anh cho em nếu ô có hoặc không có dữ liệu thì code như thế nào???
ví dụ ( có kiến thức hạn hẹp về VB nên không biết có đúng ko) như: không có dữ liệu thì mình để so sánh "NULL" còn có dữ liệu thì sao? so sánh với gi???
cám ơn anh rất nhiều!!!

ncrazy
12-19-2012, 04:31 AM
hic pó tay với bạn, thế bạn phân biệt con gái với con trai thế nào, con gái thì có đặc điểm xyz nào đó, còn con trai thì không phải là con gái (tất nhiên là ko kể giới tính thứ 3 nhé )

Automation_plc
12-20-2012, 03:56 PM
Mình mới tìm hiểu WinCC V7 được một thời gian. Bây giờ đang tìm cách xuất dữ liệu từ WinCC V7.0 SP2 sang MS Excel.
Mình có đọc được một đoạn code trong phần help. Mọi người cùng thảo luận nha.

MS Excel
In this example, an output value from an input field is written in an Excel table

'VBS113
Dim objExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
'
'ExcelExample.xls is to create before executing this procedure.
'Replace <path> with the real path of the file ExcelExample.xls.
objExcelApp.Workbooks.Open "<path>\ExcelExample.xls"
objExcelApp.Cells(4, 3).Value = ScreenItems("IOField1").OutputValue
objExcelApp.ActiveWorkbook.Save
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp = Nothing


Tài liệu tham khảo: HD kết nối WinCC 7 - MsExcel 07: http://www.mediafire.com/view/?7ct6na9tjb6o6v5
Gửi thiquocvinh
bạn cho mình hỏi chút trong VD bạn làm đó làm sao mình có thể xuất cả thời gian và ngày tháng vậy?
Thanks!

PHAMTRUNGVAN
12-21-2012, 04:35 AM
Gửi thiquocvinh
bạn cho mình hỏi chút trong VD bạn làm đó làm sao mình có thể xuất cả thời gian và ngày tháng vậy?
Thanks!

Hơi vô duyên tí vì không phải hỏi mình!!! nhưng tại mình đang tìm hiểu về cái này nên trả lời luôn bạn thử nhé nếu không được thì bỏ qua cho vì mình mới thử trên máy của mình thôi còn các phiên bản khác mình không chắc lam (@.@)
Xuất ngày "Date"
Xuất thời gian "Time"
xuất ngày và thời gian hiện tại "Now"
vd: objExcelApp.Cells(4, 3).Value = Now

Automation_plc
12-21-2012, 03:03 PM
Hơi vô duyên tí vì không phải hỏi mình!!! nhưng tại mình đang tìm hiểu về cái này nên trả lời luôn bạn thử nhé nếu không được thì bỏ qua cho vì mình mới thử trên máy của mình thôi còn các phiên bản khác mình không chắc lam (@.@)
Xuất ngày "Date"
Xuất thời gian "Time"
xuất ngày và thời gian hiện tại "Now"
vd: objExcelApp.Cells(4, 3).Value = Now

Cám ơn bác nhưng em làm thì ko hiển thị được thời gian mà chỉ là #### thôi có bác nào làm rùi chỉ giúp em với?
Cám ơn nhiều !

PHAMTRUNGVAN
12-22-2012, 12:59 AM
Cám ơn bác nhưng em làm thì ko hiển thị được thời gian mà chỉ là #### thôi có bác nào làm rùi chỉ giúp em với?
Cám ơn nhiều !
Có nút thanks kìa. ^.^
cái đó là do ô excel nhỏ wa! bạn kéo to ra là ok rùi!
good luck!

Automation_plc
12-22-2012, 04:55 PM
Có nút thanks kìa. ^.^
cái đó là do ô excel nhỏ wa! bạn kéo to ra là ok rùi!
good luck!

OK. Thanks nhưng ko thấy nút thanks đâu bác ah. BÁc cho hỏi thêm 1 câu lệnh nữa là VD 7h mình xuất ra ở hàng thứ 3 đến 8h mình muốn nó ở hàng thứ 9 thì dùng lệnh gì vậy?

PHAMTRUNGVAN
12-23-2012, 01:18 AM
OK. Thanks nhưng ko thấy nút thanks đâu bác ah. BÁc cho hỏi thêm 1 câu lệnh nữa là VD 7h mình xuất ra ở hàng thứ 3 đến 8h mình muốn nó ở hàng thứ 9 thì dùng lệnh gì vậy?
Hj! về cái này thì chưa thử!
Bạn có thể xem các lệnh hàm VB rồi tự viết code theo yêu cầu của bạn! Mình ko phải Pro nên chỉ giúp được tới đây thôi!
Về ý tưởng thì như thế này! Bạn thử dùng vòng lặp, rồi so sánh thời gian hiện tại với thời gian mà bạn mong muốn rồi cho xuất dữ liệu ra vị trí ô Excel mà bạn cần.
Vì giờ mình đang chuẩn bị bảo vệ DA nên ko thể giúp bạn được! @.@ Phải cuối tháng 1 mới có thể tìm hiểu thêm!hjhj!
P/s Chữ thanks nằm góc trái màn hình đó bạn!

thiquocvinh
12-23-2012, 02:59 AM
OK. Thanks nhưng ko thấy nút thanks đâu bác ah. BÁc cho hỏi thêm 1 câu lệnh nữa là VD 7h mình xuất ra ở hàng thứ 3 đến 8h mình muốn nó ở hàng thứ 9 thì dùng lệnh gì vậy?
Ví dụ: Bạn khai báo Excel như sau
Dim MsExcel
Set MsExcel = CreateObject("Excel.Application")
Thì để chọn cell thì có cú pháp: MsExcel.cells(2,3)
với 2 là số hàng, 3 là số cột, tức hàng 2 cột 3.
Ví dụ bạn muốn lưu giá trị 100 vào hàng 3 cột 1 thi: MsExcel.cells(2,3) = 100
Tương tự bạn có thể phát triển bằng cách dùng các lệnh như if ... then, vòng lặp Do ... Loop While, v.vvvv
Chúc bạn cuối tuần vui vẻ.

khoadang87
12-25-2012, 04:15 PM
Bác nào có project xuất dữ liệu dạng thống kê theo ngày tháng thì up lên cho em xin với, đang cần gấp quá!

thiquocvinh
12-25-2012, 11:09 PM
Bác nào có project xuất dữ liệu dạng thống kê theo ngày tháng thì up lên cho em xin với, đang cần gấp quá!
code của WinCC thì chưa làm, nhưng dùng trong VB6.0 cũng tựa tựa vậy thôi.
Bạn tham khảo, chỉ cần đổi lại đường link dẫn file excel.

599
Code trong Xuat Du Lieu 1
Dim objExcelApp
Static i
i = i + 1
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
objExcelApp.Workbooks.Open "C:\Users\thiquocvinh\Desktop\VB_1\Vinh_Vb1.xlsx"
'lay ngay thang nam
objExcelApp.cells(i + 1, 1).Value = Date
'lay gio phut giay
objExcelApp.cells(i + 1, 2).Value = Time
'lay du lieu tu man hinh 1
objExcelApp.cells(i + 1, 3).Value = mh
objExcelApp.ActiveWorkbook.Save
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp = Nothing

ncrazy
12-25-2012, 11:41 PM
^_^ vb trong wincc ko phải là vb đâu, nó chỉ là vbs thôi, nó không có kiểu static như vb6

Automation_plc
12-26-2012, 12:08 AM
^_^ vb trong wincc ko phải là vb đâu, nó chỉ là vbs thôi, nó không có kiểu static như vb6
Bác có tài liệu nào nói về vấn đề này ko cho em xin ngâm cứu với? Cám ơn!

thiquocvinh
12-26-2012, 05:08 AM
^_^ vb trong wincc ko phải là vb đâu, nó chỉ là vbs thôi, nó không có kiểu static như vb6
Không có static thì mình khai báo 1 kiểu khác. Chẳng qua khai báo static trong vb cho phù hợp thôi, có thể dùng khai báo i = int

Không có gì có sẵn cả, phải chế biến, mầy mò mới ra được chứ

daocongdabl
12-27-2012, 06:51 PM
Bác nào có project xuất dữ liệu dạng thống kê theo ngày tháng thì up lên cho em xin với, đang cần gấp quá!
Dim objExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
'ExcelExample.xls is to create before executing this procedure.
'Replace with the real path of the file ExcelExample.xls.
objExcelApp.Workbooks.Open "D:\baocao.xls "
objExcelApp.Cells(2, 2).Value = SmartTags(" volt")
objExcelApp.Cells(2,3).Value = SmartTags(" ampe")
objExcelApp.Cells(2, 4).Value = SmartTags(" luu_luong")
objExcelApp.ActiveWorkbook.SaveAs "D:\ bao cao + hàm ngày +hàm giờ là ok"

objExcelApp.Workbooks.Close
objExcelApp.Quit


Set objExcelApp = Nothing


code trên test chạy ok với wincc flexible ,wincc chưa thử ,nhưng mình thấy phần trên code cũng giống hệt wincc thôi
bạn phải tạo 1 bít xung từ phần mềm hay từ wincc cũng ok
cứ 1 phút hoặc 1 giờ... thì gọi code một lần ,cứ 1 lần gọi thì thì wincc ghi giá trị xuống exel(kiểu này thích hợp xuất theo phiếu báo cáo)
còn muốn xuất kiểu data thì thêm chút mắm muối vào code trên cứ 1 lần bít xung on thì số liệu từ wincc sẻ ghi xuống 1 hàng ngang tương ứng
và cứ thế tạo xung 24 lần (1 lần là tương ứng 1 giờ )thì có số liệu trong bảng ghi xuống exel báo cáo đầy đủ cả 24 hàng tương ứng 1 giờ
còn bạn thấy dòng code "D:\ bao cao + hàm ngày +hàm giờ là ok"
nói lên là tên file lưu trử sẻ bằng ngày tháng năm .nếu qua ngày hôm sau sẻ tự động có 1 file khác tương ứng thôi

chúc bạn thành công

nói chung mấy kiến thức này tự mình sẻ ngâm lấy đi ,nó là kiến thức nâng cao của hệ thống scada
nên hầu như không ai chỉ cụ thể đâu ,chỉ đúng hướng cho mình ngâm cứu là quá ok rồi ,chẳng qua gì nồi cơm thôi các bác ạ

kubotapro
12-30-2012, 11:38 PM
thanks ban nhieu.

Automation_plc
01-15-2013, 06:44 PM
Các bác cho em hỏi thêm chút nữa là mình có thể xuất giá trị của Tag ra Excel đc ko ah? Nếu đc thì viết ntn ah? Cám ơn các bác trước.

buihoannute
01-24-2013, 07:36 PM
Xin chào các bạn, tôi cũng đang làm một chương trình về việc kết nối điều khiển giữa VBA và PLC S7 -300 của siemens nhưng chưa có tài liệu gì cũng như hướng dẫn gì rất mong các bạn giúp đỡ cho.
Tôi xin cám ơn nhiều.

anhnamhm
04-05-2013, 01:17 AM
Anh ơi em dùng office 2010 có xuất được không anh? Với em muốn xuất dữ liệu có ngày tháng thì phải làm sao hả anh?

hoangcdt
08-19-2013, 11:16 AM
e cũng làm như mấy anh chỉ, nhưng có điều nó bị lỗi, ko biết nên giãi quyết như thế nào... mong máy a giúp đỡ..
1173
http://i1.upanh.com/2013/0819/03//57215017.1.bmp (http://upanh.com/view/?id=eva95m6famh)

phuc_automation
07-04-2014, 01:48 AM
Hiện tại em đang học Wincc, phần xuất file excel chưa làm được. Lúc xuất ra, cửa sổ excel vừa hiện ra là tự tắt mất tiêu, trong thư mục đích để lưu file thì cũng không có file nào được tạo ra. Mò hai buổi tối rồi mà chưa ra :(

Đây là code VB xuất excel:
Sub OnClick(ByVal Item)
Dim objExcelApp

Set objExcelApp = CreateObject("Excel.Application")

objExcelApp.Visible = True

objExcelApp.Workbooks.Open "G:\AUTOMATION\LAP TRINH\SCADA\tets excel.xlsx"

objExcelApp.Cells(10, 6).Value = ScreenItems("value1").OutputValue
objExcelApp.Cells(10, 7).Value = ScreenItems("value2").OutputValue
objExcelApp.Cells(10, 8).Value = ScreenItems("value3").OutputValue
objExcelApp.Cells(10, 9).Value = ScreenItems("value4").OutputValue

objExcelApp.ActiveWorkbook.Save

objExcelApp.Workbooks.Close

objExcelApp.Quit

Set objExcelApp = Nothing

End Sub
Mong nhờ các sư huynh chỉ giáo với. Em gửi link bản project test. Huynh nào down về mở ra kiểm tra hộ em với. Rút cuộc là lỗi do đâu? Cách khác phục :)
Bản test: http://www.mediafire.com/download/fo4c24w5qiukwgr/test.rar

Nhân tiện gửi luôn link bản demo của một bạn bên dientuvietnam.net ( quên mất luồng nào, tìm mãi không thấy ). Sao bản test của em không nhập được giá trị vào, mà bản demo của bạn "ấy" lại nhập được?
Bản demo: http://www.mediafire.com/download/is3dv42t57sc1zs/demo2.rar

Mong các huynh chỉ ra cái sai của em:62:

traininhbinh
07-20-2014, 10:25 PM
các anh cho em hỏi ? em xuất dữ liệu ra excel được rùi. h em muốn lưu dữ liệu ra excel 1 cách tự động thì phải làm sao ạ? nếu khi mất điện hệ thốn ngừng hoạt động thì ta vẫn có thể mở file excel để xem được dữ liệu cuối cùng? thanks all

tiendungkct
08-12-2014, 05:08 PM
Bạn có thể dùng trigger lưu theo chu kỳ

traininhbinh
08-12-2014, 10:58 PM
thanks a! em làm được cho nó xuất ra liên tục trong triger rùi. nhưng nó lại báo lỗi sql? chắc do key của wincc

vanviet
08-13-2014, 11:49 PM
Em có 1 đoạn code VB Script Lưu trữ dữ liệu từ WinCC Flex vào tập tin Excel bằng cách sử dụng VBScript : em đã chép nó vào Script WinCC Flex và đưa nó vào Event của IO Field, sau đó e tìm cái file Excel nó suất ra ở đâu em không biết.
Em cũng mới tìm hiểu VB Script nên đọc code chưa được hiểu rõ mong các anh trong diễn đàn giúp đỡ em.

Code VB Script: http://stackoverflow.com/questions/16459737/storing-data-from-wincc-flex-to-excel-file-using-vbscript

Dim wsh, XLSrunning, TargetBookrunning, objExcelApp, objWorkbook, TheTargetBook, TheTargetBookName
Dim TheCount, theSheet, theCell, theLastCell, theLastRow
Dim objFSO
Const OverwriteExisting = 1


Set wsh = CreateObject("WScript.Shell")
'TheTargetBookName = "report.xls"
'TheTargetBook = "D:\Out\" & TheTargetBookName

TheTargetBookName = "report.xls"
TheTargetBook = "f:\work\plc\" & TheTargetBookName
TheTargetBookName = "c:\" & TheTargetBookName

'---------------[Modification#1_Begin]-------------------------------------------
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FileExists(TheTargetBook) Then
objFSO.CopyFile TheTargetBookName, TheTargetBook, OverwriteExisting
'HMIRuntime.Trace "The file," & TheTargetBook & ", does not exist." & vbCrLf & "I've just created one for you!"
End If
Set objFSO = Nothing

'---------------[Modification#1_End]--------------------------------------------

TheCount = GetObject("winmgmts:root\CIMV2").ExecQuery("SELECT * FROM Win32_Process WHERE Name='EXCEL.EXE'").Count
'While TheCount is bigger than 0, it means the Excel Application is running..., but doesn't mean the workbook is open for sure!

If TheCount > 0 Then
Set objExcelApp = GetObject(,"Excel.Application")
' Using GetObject(,"Excel.Application") to point to the running Excel Application.

TargetBookrunning = 0
For Each XLSrunning In objExcelApp.Workbooks
If XLSrunning.name = TheTargetBookName Then
TargetBookrunning = 1
End If
Next
If TargetBookrunning = 1 Then
Set objWorkbook = GetObject(TheTargetBook)
Else
Set objWorkbook = objExcelApp.Workbooks.Open(TheTargetBook)
End If
Else

Set objExcelApp = CreateObject("Excel.Application")
Set objWorkbook = objExcelApp.Workbooks.Open(TheTargetBook)

End If

objExcelApp.Visible = True
objExcelApp.ScreenUpdating = True
objExcelApp.DisplayAlerts = True

Dim TheTargetRow ' <------[Modification#2]-------
Set theSheet = objWorkbook.ActiveSheet
With theSheet
Set theCell = theSheet.Cells(65535,2)
Set theLastCell = theCell.end(-4162)
theLastRow = theLastCell.row
.cells(theLastRow + 1, 1) = formatdatetime( now,vbShortDate) & ", " & formatdatetime( now,vbLongTime)
.cells(theLastRow + 1, 2) = SmartTags("Tag_1")
.cells(theLastRow + 1, 3) = SmartTags("Tag_2")
.cells(theLastRow + 1, 4) = SmartTags("Tag_3")
End With
objWorkbook.Save
'objWorkbook.Close

Set objWorkbook = Nothing
'objExcelApp.Quit
Set objExcelApp = Nothing
'MsgBox "Done"

Set wsh = Nothing