AccessTr.neT
Terazi veya Tartı ile accesse anlık ağırlık bilgisi alma hakkında - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Terazi veya Tartı ile accesse anlık ağırlık bilgisi alma hakkında (/konu-terazi-veya-tarti-ile-accesse-anlik-agirlik-bilgisi-alma-hakkinda.html)



Terazi veya Tartı ile accesse anlık ağırlık bilgisi alma hakkında - sertac76 - 21/03/2016

Merhaba ,

Access ile hazırlayacağım bir proje için siz değerli üstadlarımda yardım bekliyorum.
Yapacağım proje için terazi den yani comm, rs232 veya ethernet anlık ağırlık bilgisini nasıl alabilirim.
Teşekkürler.


Cvp: Terazi veya Tartı ile accesse anlık ağırlık bilgisi alma hakkında - tufanbal - 21/03/2016

Öncelikle terazinin data çıkışı var olması lazım, accesse almadan önce hyperterm ile portu dinlemeyi dene ve hangi porttan veri geliyor onu görmeni tavsiye ederim bu arada gelen datanın türü de çok önemli. Çoğu zaman sadece ağırlık bilgisi gelmiyor Örneğin; "print 30" gibi doğrudan yazıcıya(barkod yazıcı gibi düşün) gönderilen veya daha saçma(doğrudan okunması imkansız ASCI kodu gibi) veriler geliyor. Bunun içinde üretici firma ile iletişime geçmen ve gerekirse firmware'i değiştirmeniz gerekebiliyor. Ben hem terazi hem de metre sayaçlarından veri aldırmıştım. Mscomm32.ocx eklentisine ihtiyacım olmuştu. Kodu da aşağıda paylaşayım. Ayrıca rs 232 pinlerinin 5 ten 5 & 2 den 3 & 3 ten de 2 olacak şekilde RX-TX GRND bağlantısını yapmıştım. İnternette de bir çok kaynak bulabilirsiniz bunun için. Eğer benim gibi yapacaksanız. If Then Else bloğunda bulunan koşulu değiştirmeniz sizin için yeterli olacaktır.

Umarım faydalı olabilmişimdir.


Kod:
Dim cevap
Dim buffer As String
If Me.top_metre > 0 Or Nz(Me.top_metre) <> "" Then
cevap = MsgBox("Metre alanı boş değil ! Sayaçtaki metre ile değiştirmek istediğinize eminmisiniz ?", vbYesNo)
If cevap = vbYes Then
With Mscomm




 'seri portu kontrol et.
 If .PortOpen Then .PortOpen = False
 'aktif portu com3 yap
 .CommPort = 4




'haberleşme hızı,parity,datab,t vs stop bit setleme




.Settings = "9600,N,8,1"
 ' DRT ve RTS bayraklarını setle
 .DTREnable = True
 .RTSEnable = True
 'porttan gelen tüm bit okumalarını yetkilendir
 .RThreshold = 0
 'gönderilecek tüm bitleri yetkilendir
 .SThreshold = 0
 'Seri portu aç
 .PortOpen = True




End With 'MSComm1




'Me.top_metre = MSComm.Input




'MSComm.PortOpen = False
















Do
buffer = Mscomm.Input
Loop Until InStr(buffer, "")




Me.top_metre = Replace(buffer, ".", ",")
top_metre_AfterUpdate
Mscomm.PortOpen = False
Else
Exit Sub
End If
Else
With Mscomm




 'seri portu kontrol et.
 If .PortOpen Then .PortOpen = False
 'aktif portu com3 yap
 .CommPort = 4




'haberleşme hızı,parity,datab,t vs stop bit setleme




.Settings = "9600,N,8,1"
 ' DRT ve RTS bayraklarını setle
 .DTREnable = True
 .RTSEnable = True
 'porttan gelen tüm bit okumalarını yetkilendir
 .RThreshold = 0
 'gönderilecek tüm bitleri yetkilendir
 .SThreshold = 0
 'Seri portu aç
 .PortOpen = True




End With 'MSComm1




'Me.top_metre = MSComm.Input




'MSComm.PortOpen = False












Do
buffer = Mscomm.Input
Loop Until InStr(buffer, "")




Me.top_metre = Replace(buffer, ".", ",")




top_metre_AfterUpdate




Mscomm.PortOpen = False
End If




Cvp: Terazi veya Tartı ile accesse anlık ağırlık bilgisi alma hakkında - sertac76 - 21/03/2016

Sayın tufanbal,
İlgi ve alakanız için çok teşekkürler.