• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Scada WinCC VbScript ile Excel'e saatlik veri aktarmak

Katılım
7 Mayıs 2009
Mesajlar
22
Excel Vers. ve Dili
Office 2010
Kod:
Sub OnClick(Byval Item)                                                                                                
Dim EXCEL
Dim SATIR
Dim SAYFA


		Set Excel = CreateObject ("Excel.Application")
		Excel.visible = True
 		Excel.application.workbooks.open "D:\Raporlar\Ocak.xlsx"

	SATIR = 1

	Do While 0 = 0
	SAYFA = Day(Now)
		If Second(Now) = 00 Then
			Excel.Sheets(SAYFA).Select
'Kömür Tüketimi
			Excel.Cells(SATIR,3).Value = HMIRuntime.Tags("KomurToplam").Read
'Kondens Sıcaklığı
			Excel.Cells(SATIR,6).Value = HMIRuntime.Tags("KondensSicakligi").Read
'Degazör Sıcaklığı
			Excel.Cells(SATIR,7).Value = HMIRuntime.Tags("DegazorSicakligi").Read
'Besi Suyu Tüketimi
			Excel.Cells(SATIR,8).Value = HMIRuntime.Tags("BesiSuyuToplam").Read
'Dram Basıncı
			Excel.Cells(SATIR,10).Value = HMIRuntime.Tags("DramBasinci").Read
'Yatak Sıcaklığı
			Excel.Cells(SATIR,11).Value = HMIRuntime.Tags("YatakSicakligi").Read
'Baca Sıcaklığı
			Excel.Cells(SATIR,12).Value = HMIRuntime.Tags("BacaSicakligi").Read
'Kızgın Buhar Sıcaklığı
			Excel.Cells(SATIR,13).Value = HMIRuntime.Tags("KizginBuharSicakligi").Read
'Kızgın Buhar Basıncı
			Excel.Cells(SATIR,14).Value = HMIRuntime.Tags("KizginBuharBasinci").Read
'Kollektör Sıcaklığı
			Excel.Cells(SATIR,15).Value = HMIRuntime.Tags("KollektorSicakligi").Read
'Kollektör Basıncı
			Excel.Cells(SATIR,16).Value = HMIRuntime.Tags("KollektorBasinci").Read
'Buhar Debisi
			Excel.Cells(SATIR,17).Value = HMIRuntime.Tags("BuharDebisi").Read
'Elektrik Sarfiyatı
			'Excel.Cells(SATIR,18).Value = HMIRuntime.Tags("Elektirik").Read
'Verim
			Excel.Cells(SATIR,19).Value = HMIRuntime.Tags("Verim").Read
'CO
			Excel.Cells(SATIR,20).Value = HMIRuntime.Tags("CO").Read
'SO2
			Excel.Cells(SATIR,21).Value = HMIRuntime.Tags("SO2").Read
'O2
			Excel.Cells(SATIR,22).Value = HMIRuntime.Tags("O2").Read

WScript.sleep 3600000 '1 saat bekleme süresi
SATIR = SATIR + 1

		End If
		If SATIR = 30 Then
			SATIR = 6
		End If 
	Loop		

	Excel.ActiveWorkbook.Save
	Excel.ActiveWorkbook.Close
	Excel.application.quit
End Sub


Scada üzerindeki "Rapor Yaz" butona bir kez tıkladıktan sonra Excel 'e verileri saatlik olarak otomatik atmak istiyorum.

WScript.sleep komutunda sorun yaşıyorum. Script bu komuta geldiğinde kayıttan çıkıyor. Sleep komutunu kullanamıyorum. Döngü içerisinde 1 saat bekleme yapabileceğim başka bir komut var mı ? Yada her saat başı verileri Excel'e aktarabileceğim başka bir yöntem var mı ?

Yardımlarınızı bekliyorum. Şimdiden teşekkür ederim.
 
Yok mu yardım edebilecek bir arkadaş. Her saniyede bir yazdırma işlemi yaptırabiliyorum, fakat saat başı değerleri Excel'e aktarma yapamıyorum. Yardımlarınızı bekliyorum Lütfen...
 
Uzun çabalarım sonucunda kendim çözüme ulaşmış bulunuyorum. Yardım eden olmadı ama bu forumu seviyorum araştırma yapmama çok yardımcı oldu. Belki başka arkadaşlarında işine yarar diye düşünerek kodu sizinle paylaşayım.

Kod:
Sub OnClick(Byval Item)                                                                                                                         

Dim EXCEL,SATIR,SAYFA,Dakika,Saniye

		Set Excel = CreateObject ("Excel.Application")
		Excel.visible = True
 		Excel.application.workbooks.open "D:\B.H.Ü.  RAPORLAR\2015\Ocak.xlsx"
	
	SATIR = 5
	SAYFA = Day(Now)

	Do While 0 = 0 
	Dakika = Minute(Now)
	Saniye = Second(Now)
	Select Case Dakika & Saniye
		Case 00
		
			Excel.Sheets(SAYFA).Select
'kömür
			Excel.Cells(SATIR,3).Value = HMIRuntime.Tags("KomurToplam").Read
'Kondens Sıcaklığı
			Excel.Cells(SATIR,6).Value = HMIRuntime.Tags("KondensSicakligi").Read
'Degazör Sıcaklığı
			Excel.Cells(SATIR,7).Value = HMIRuntime.Tags("DegazorSicakligi").Read
'Besi Suyu Tüketimi
			Excel.Cells(SATIR,8).Value = HMIRuntime.Tags("BesiSuyuToplam").Read
'Dram Basıncı
			Excel.Cells(SATIR,10).Value = HMIRuntime.Tags("DramBasinci").Read
'Yatak Sıcaklığı
			Excel.Cells(SATIR,11).Value = HMIRuntime.Tags("YatakSicakligi").Read
'Baca Sıcaklığı
			Excel.Cells(SATIR,12).Value = HMIRuntime.Tags("BacaSicakligi").Read
'Kızgın Buhar Sıcaklığı
			Excel.Cells(SATIR,13).Value = HMIRuntime.Tags("KizginBuharSicakligi").Read
'Kızgın Buhar Basıncı
			Excel.Cells(SATIR,14).Value = HMIRuntime.Tags("KizginBuharBasinci").Read
'Kollektör Sıcaklığı
			Excel.Cells(SATIR,15).Value = HMIRuntime.Tags("KollektorSicakligi").Read
'Kollektör Basıncı
			Excel.Cells(SATIR,16).Value = HMIRuntime.Tags("KollektorBasinci").Read
'Buhar Debisi
			Excel.Cells(SATIR,17).Value = HMIRuntime.Tags("BuharDebisi").Read
'Elektrik Sarfiyatı
			'Excel.Cells(SATIR,18).Value = HMIRuntime.Tags("Elektirik").Read
'Verim
			Excel.Cells(SATIR,19).Value = HMIRuntime.Tags("Verim").Read
'CO
			Excel.Cells(SATIR,20).Value = HMIRuntime.Tags("CO").Read
'SO2
			Excel.Cells(SATIR,21).Value = HMIRuntime.Tags("SO2").Read
'O2
			Excel.Cells(SATIR,22).Value = HMIRuntime.Tags("O2").Read
		If Second(Now) = 01 Then
		SATIR = SATIR + 1
		End If 
	End Select
	If SATIR = 29 Then
		SATIR = 5
		SAYFA = Day(Now)
	End If

Loop		

	Excel.ActiveWorkbook.Save
'	Excel.ActiveWorkbook.Close
'	Excel.application.quit

End Sub
 
Uzun çabalarım sonucunda kendim çözüme ulaşmış bulunuyorum. Yardım eden olmadı ama bu forumu seviyorum araştırma yapmama çok yardımcı oldu. Belki başka arkadaşlarında işine yarar diye düşünerek kodu sizinle paylaşayım.

Kod:
Sub OnClick(Byval Item)                                                                                                                         

Dim EXCEL,SATIR,SAYFA,Dakika,Saniye

		Set Excel = CreateObject ("Excel.Application")
		Excel.visible = True
 		Excel.application.workbooks.open "D:\B.H.Ü.  RAPORLAR\2015\Ocak.xlsx"
	
	SATIR = 5
	SAYFA = Day(Now)

	Do While 0 = 0 
	Dakika = Minute(Now)
	Saniye = Second(Now)
	Select Case Dakika & Saniye
		Case 00
		
			Excel.Sheets(SAYFA).Select
'kömür
			Excel.Cells(SATIR,3).Value = HMIRuntime.Tags("KomurToplam").Read
'Kondens Sıcaklığı
			Excel.Cells(SATIR,6).Value = HMIRuntime.Tags("KondensSicakligi").Read
'Degazör Sıcaklığı
			Excel.Cells(SATIR,7).Value = HMIRuntime.Tags("DegazorSicakligi").Read
'Besi Suyu Tüketimi
			Excel.Cells(SATIR,8).Value = HMIRuntime.Tags("BesiSuyuToplam").Read
'Dram Basıncı
			Excel.Cells(SATIR,10).Value = HMIRuntime.Tags("DramBasinci").Read
'Yatak Sıcaklığı
			Excel.Cells(SATIR,11).Value = HMIRuntime.Tags("YatakSicakligi").Read
'Baca Sıcaklığı
			Excel.Cells(SATIR,12).Value = HMIRuntime.Tags("BacaSicakligi").Read
'Kızgın Buhar Sıcaklığı
			Excel.Cells(SATIR,13).Value = HMIRuntime.Tags("KizginBuharSicakligi").Read
'Kızgın Buhar Basıncı
			Excel.Cells(SATIR,14).Value = HMIRuntime.Tags("KizginBuharBasinci").Read
'Kollektör Sıcaklığı
			Excel.Cells(SATIR,15).Value = HMIRuntime.Tags("KollektorSicakligi").Read
'Kollektör Basıncı
			Excel.Cells(SATIR,16).Value = HMIRuntime.Tags("KollektorBasinci").Read
'Buhar Debisi
			Excel.Cells(SATIR,17).Value = HMIRuntime.Tags("BuharDebisi").Read
'Elektrik Sarfiyatı
			'Excel.Cells(SATIR,18).Value = HMIRuntime.Tags("Elektirik").Read
'Verim
			Excel.Cells(SATIR,19).Value = HMIRuntime.Tags("Verim").Read
'CO
			Excel.Cells(SATIR,20).Value = HMIRuntime.Tags("CO").Read
'SO2
			Excel.Cells(SATIR,21).Value = HMIRuntime.Tags("SO2").Read
'O2
			Excel.Cells(SATIR,22).Value = HMIRuntime.Tags("O2").Read
		If Second(Now) = 01 Then
		SATIR = SATIR + 1
		End If 
	End Select
	If SATIR = 29 Then
		SATIR = 5
		SAYFA = Day(Now)
	End If

Loop		

	Excel.ActiveWorkbook.Save
'	Excel.ActiveWorkbook.Close
'	Excel.application.quit

End Sub


Merhaba Hocam,
Müsait iseniz size bir sorum olacaktı, Yaptığım scada da bir bakım sayfası var, burda set ,gerçek ve kalan süre için I/O fielt lar var.
Yapmak istediğim şu;
Sete 5 yazdığımda makina 5 saat çalıştığında uyarı verecek oparatör örneğin yağlama yapıp gerçek değeri resetleyecek, resetleme butonuna basınca gerçek değerdeki değeri ben exele akrarmak istiyorum. Burda geriye dönük nekadar ve kaç defa yağlama yapılmış bunu görmek.

Butona tıklayınca o anki gerçek değerdeki değeri TAB_1 deki sayfaya yazmak.

Bu konuda yardımcı olabilir misiniz?

bana mesaj atarsanız sizi arayabilirm.
Tel:05366494828
Teşekkür ederim.
thenorthstar Çevrimiçi Aynen Gönder
 
Uzun çabalarım sonucunda kendim çözüme ulaşmış bulunuyorum. Yardım eden olmadı ama bu forumu seviyorum araştırma yapmama çok yardımcı oldu. Belki başka arkadaşlarında işine yarar diye düşünerek kodu sizinle paylaşayım.

Kod:
Sub OnClick(Byval Item)                                                                                                                         

Dim EXCEL,SATIR,SAYFA,Dakika,Saniye

		Set Excel = CreateObject ("Excel.Application")
		Excel.visible = True
 		Excel.application.workbooks.open "D:\B.H.Ü.  RAPORLAR\2015\Ocak.xlsx"
	
	SATIR = 5
	SAYFA = Day(Now)

	Do While 0 = 0 
	Dakika = Minute(Now)
	Saniye = Second(Now)
	Select Case Dakika & Saniye
		Case 00
		
			Excel.Sheets(SAYFA).Select
'kömür
			Excel.Cells(SATIR,3).Value = HMIRuntime.Tags("KomurToplam").Read
'Kondens Sıcaklığı
			Excel.Cells(SATIR,6).Value = HMIRuntime.Tags("KondensSicakligi").Read
'Degazör Sıcaklığı
			Excel.Cells(SATIR,7).Value = HMIRuntime.Tags("DegazorSicakligi").Read
'Besi Suyu Tüketimi
			Excel.Cells(SATIR,8).Value = HMIRuntime.Tags("BesiSuyuToplam").Read
'Dram Basıncı
			Excel.Cells(SATIR,10).Value = HMIRuntime.Tags("DramBasinci").Read
'Yatak Sıcaklığı
			Excel.Cells(SATIR,11).Value = HMIRuntime.Tags("YatakSicakligi").Read
'Baca Sıcaklığı
			Excel.Cells(SATIR,12).Value = HMIRuntime.Tags("BacaSicakligi").Read
'Kızgın Buhar Sıcaklığı
			Excel.Cells(SATIR,13).Value = HMIRuntime.Tags("KizginBuharSicakligi").Read
'Kızgın Buhar Basıncı
			Excel.Cells(SATIR,14).Value = HMIRuntime.Tags("KizginBuharBasinci").Read
'Kollektör Sıcaklığı
			Excel.Cells(SATIR,15).Value = HMIRuntime.Tags("KollektorSicakligi").Read
'Kollektör Basıncı
			Excel.Cells(SATIR,16).Value = HMIRuntime.Tags("KollektorBasinci").Read
'Buhar Debisi
			Excel.Cells(SATIR,17).Value = HMIRuntime.Tags("BuharDebisi").Read
'Elektrik Sarfiyatı
			'Excel.Cells(SATIR,18).Value = HMIRuntime.Tags("Elektirik").Read
'Verim
			Excel.Cells(SATIR,19).Value = HMIRuntime.Tags("Verim").Read
'CO
			Excel.Cells(SATIR,20).Value = HMIRuntime.Tags("CO").Read
'SO2
			Excel.Cells(SATIR,21).Value = HMIRuntime.Tags("SO2").Read
'O2
			Excel.Cells(SATIR,22).Value = HMIRuntime.Tags("O2").Read
		If Second(Now) = 01 Then
		SATIR = SATIR + 1
		End If 
	End Select
	If SATIR = 29 Then
		SATIR = 5
		SAYFA = Day(Now)
	End If

Loop		

	Excel.ActiveWorkbook.Save
'	Excel.ActiveWorkbook.Close
'	Excel.application.quit

End Sub

Mesaj eski ama :)

Döngü yerine Scada programının zamanlanmis görevler bölümü vardır sanırım. Ona bu script i saatlik çalışma olarak tanımlamak alternatif olabilir.
 
Geri
Üst