Wincc 7.0 Excel VBS Kodu Hakkında

seydi53

Üye
Katılım
20 Şub 2007
Mesajlar
16
Puanları
1
Yaş
39
Arkadaşlar wincc de raporlama amaçlı excel script kullanıyorum. Raporlamada sorun yaşamıyorum. Fakat eğer excel sayfası arka planda açıksa raporlama yapmak istediğimde üzerine yazılsın mı diyor . evet desemde kayıt yapamıyor.

Sormak istediğim şu;
Acaba eğer rapor2.xls açıksa kapat değilse devam et.
yada açık olsada üzerine yaz ve kapat gibi komutlar kullanılabilir mi. Nasıl


Üzerinde günler çalışarak yazdığım script;

Kod:
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)                   
Dim TORBASAYISI1
Set TORBASAYISI1 = HMIRuntime.Tags("TORBASAYISI1")
Dim URUNCINSI1
Set URUNCINSI1 = HMIRuntime.Tags("URUNCINSI1")
Dim ZAYITORBASAYISI1
Set ZAYITORBASAYISI1 = HMIRuntime.Tags("ZAYITORBASAYISI1")
Dim YUKLEYICI1
Set YUKLEYICI1 = HMIRuntime.Tags("YUKLEYICI1")
Dim KAMYONPLAKA1
Set KAMYONPLAKA1 = HMIRuntime.Tags("KAMYONPLAKA1")
Dim OPERATOR1
Set OPERATOR1 = HMIRuntime.Tags("OPERATOR1")
Dim ExcelNesne
Set ExcelNesne = CreateObject ("Excel.Application") 
Dim KENAR1
Set KENAR1 = HMIRuntime.Tags("KENAR1")
Dim ACIKLAMA_1
Set ACIKLAMA_1 = HMIRuntime.Tags("ACIKLAMA_1")

close "c:\rapor2.xls"
ExcelNesne.Workbooks.Open "c:\rapor2.xls",,,, "9906007","9906007"

X = 2
Do Until ExcelNesne.CELLS(X,1)=false
X = X + 1
Loop
ExcelNesne.Cells(X,1).value = Date
ExcelNesne.Cells(X,2).value = Time
ExcelNesne.Cells(X,3).value = "KANTAR2"
ExcelNesne.Cells(X,4).value = URUNCINSI1.Read
ExcelNesne.Cells(X,5).value = KAMYONPLAKA1.Read
ExcelNesne.Cells(X,6).value = OPERATOR1.Read
ExcelNesne.Cells(X,7).value = YUKLEYICI1.Read
ExcelNesne.Cells(X,8).value = TORBASAYISI1.Read
ExcelNesne.Cells(X,9).value = ZAYITORBASAYISI1.Read
ExcelNesne.Cells(X,10).value = KENAR1.Read
ExcelNesne.Cells(X,11).value = ACIKLAMA_1.Read

ExcelNesne.ActiveWorkbook.Save
excelnesne.Workbooks.close
excelnesne.Quit

End Sub
 
Moderatör tarafında düzenlendi:
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
sorununuzu çözebildiniz mi? çözdüyseniz nasıl çözdünüz acaba?
 
Benzer bir durum WinTr Scada'da olsaydı aşağıdaki kodu kullanır excel'i kapatırdım. Wincc'ye nasıl uyarlayacağınızı bilmiyorum. Excel açık gözükmesede bazen arka planda çalışmaya devam edebilir. Görev yöneticisinden takip edebilirsiniz. Bu kod excel'e kapat komutu gönderir, kapanmasa bile zorla kapatır.


Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32


Const WM_QUIT = &H12


Friend Sub KillExcell(ByVal ExApp As Microsoft.Office.Interop.Excel.Application)


'Bir ekilde arka planda ak kalm excel'leri ldrr.


On Error Resume Next

ExApp.Quit()

PostMessage(ExApp.Hwnd, WM_QUIT, 0, 0)

ReleaseComObject(ExApp)

GC.WaitForPendingFinalizers()

GC.Collect()

ReleaseComObject(ExApp)

ExApp =
Nothing


End Sub


Friend Sub ReleaseComObject(ByVal o As Object)


Try

System.Runtime.InteropServices.Marshal.ReleaseComObject(o)


Catch ex As Exception


Finally

o =
Nothing


End Try


End Sub
 

Forum istatistikleri

Konular
128,190
Mesajlar
915,723
Kullanıcılar
449,960
Son üye
katzeimar

Yeni konular

Geri
Üst