avatar_mustafa

pic ile plc haberleşmesi

Başlatan mustafa, 31 Mart 2013, 04:53:07

F®T

IQ_TABLE[10]=MBY1.Byte1  'MODBUS 40006 BURDA OKUNAN DEĞERİN REGİSTER ADRESİ VERİLİYOR DEĞER BURAYA AKTARILIYOR
IQ_TABLE[11]=MBY1.Byte0

burası 4006 .


IQ_TABLE[12]=MBY1.Byte1  'MODBUS 40007 olur.hatırladığım kadarı ile böyle gidiyordu.
IQ_TABLE[13]=MBY1.Byte0
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Elzemefe

#31
hocam

IQ_TABLE[12]=MBY1.Byte1  'MODBUS 40007 olur.hatırladığım kadarı ile böyle gidiyordu.
IQ_TABLE[13]=MBY1.Byte0

olduğuna  göre

diyelimki biz Panelden modbus rtu seçip
40008 adresine veri gönderdiğimizi var sayar  isek;
dim as x word

x.Byte1=IQ_TABLE[14] 
x.Byte0=IQ_TABLE[15]

portb=x.Byte0


dediğim zaman  doğru  olmuş  olur mu _?

proton compiler kullanabilyorum fakat
şimdi win7 64 bit kulladığım  için bırakmıştım

geçen akşam indirdim ama bir türlü
compile edemedim

win7 64 bit için pds ve proton ide compiler
upload edebilirmisiniz _?

F®T

Dediğin gibi bir sorun olmaması lazım.
Proton netten bakarsan her yerde var tekrar upload anlamsız.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

EMKE

#33

start:
Inc sayac
If sayac = 0 Then Inc sayac2
IQ_TABLE[5] = sayac2
If sayac2.1 = 1 Then Inc IQ_TABLE[5]
If sayac2.2 = 1 Then Inc IQ_TABLE[7]

If PIE1.4 = 0 And PIE1.5 = 0 And TIME > 5 Then Low RS485AKT
TIME = 0
  PIE1.5 = 1
GoTo start
FT hocam birşey sormak istiyorum yukarıda eklediğim kod fultek salih beyin yazdığı kod sizde daha önce kullanmıştınız sanırım dop panel ve plc ile haberleşmiştiniz sizden öğrenmek istediğim şey şu salih bey kodunuzu start bloğu arasına yazın demiş ben şimdi bir sıcaklık verisini okududğumu farzedersem bu start bloğu arasında nasıl bir işlem yapmam gerekiyor mümkünse bir ufak ipucu verebilrseniz çok memnun olurum şu anda önümde dop-b07e415  bir panel var ve 18f4550 ile haberleştirmeye çalışıyorum ama başaramadım bir türlü  .

F®T



;********************** START **PROGRAM BURDA **DÜZENLENİYOR*******************************
start:
AI = ADIn 0            [b]'adc den okunan değer[/b]
MW = AI
MBY1 = MW / 64
IQ_TABLE[10]=MBY1.Byte1  [b]'MODBUS 40006 BURDA OKUNAN DEĞERİN REGİSTER ADRESİ VERİLİYOR DEĞER BURAYA [/b]AKTARILIYOR
IQ_TABLE[11]=MBY1.Byte0
If PIE1.4 = 0 And PIE1.5 = 0  And TIME > 3 Then
    Low RS485AKT
    Low RS485LED
    TIME = 0
    SR_BYTE_CNT = 0
    PIE1.5 = 1
EndIf
GoTo start
;------------------------TEKRAR BASLAYA DÖNÜYORUZ------------------------------

"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

#35
Senin okuduğun adc değeri adin 0 dan olsun .Sorgulamadada 40006 dan sorguluyorsun o değeri.Değer word olduğu için byte lara ayırıyorsun iki ayrı bayte olarak yollucan.

IQ_TABLE[10]=MBY1.Byte1  'MODBUS 40006 BURDA OKUNAN DEĞERİN REGİSTER ADRESİ VERİLİYOR DEĞER BURAYA AKTARILIYOR
IQ_TABLE[11]=MBY1.Byte0   'MODBUS 40005 BURDA OKUNAN DEĞERİN REGİSTER ADRESİ VERİLİYOR DEĞER BURAYA AKTARILIYOR
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

EMKE

Cevap için teşekkürler ft hocam ben fultek salih beyin kodundan bahsetmiştim neyse öd , ben sizin yaptığınız uygulamayı birebir 18f4550 ye yükledim ama ekrana bir türlü gönderemedim veriyi  bağlantılar vs herşey doğru ama haberleşme olmuyor .

F®T

#37
EMKE biraz yorum koysan işin içine olacak bu iş.Ben EMKE projeyi bitirmiştir hiç sesi çıkmıyor diye düşünüyordum.Ama daha ileri gidememişin.Benim verdiğim örnekte isis dosyası ve açık kod adc örneği çalışan bir kod.Nerde hata yapıyorsun.Bilemiyom.Aç mevzuları bakalım belki anlarız hatayı.Bak start demiş Salih inc demiş.bir değişkenin değerini arttırmış ve onu 40001 nolu registere koymuş.Master sorgularsa o registeri o sayaç değerini okur ordan.Benim kod onun kodu aynı farkeden bişi yokki.

Veriyi ekran master olarak bu programa bana ver bilgiyi der.Ayrıca ekran ve bu kartın haberleşme ayarları birebir aynı olacak.bu kartın adresini modbus ta belirteceksin.

Benim örnekteki simülasyonu modbus sorgulama programı ile okuyabiliyorsan ki çalışıyor .Senin ekran yazılımınla alakalı bir durum yada ayralarınla yada bağlantılarınla ilgili bir sorunun var demektir.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

EMKE

FT hocam nasıl oldu anlamadım ama şu anda sizin progrmaınızı birebir attım ve an0 girşine bir pot bağlayarak dop panelde veriyi gösterdim sistemin bir kısmı board üzerinde belkide dikkatsizliğim kafa dalgınlığından bir kablo gevşedi göremedim şu anda stabil çalışıyor sistem sadece anlamadığım bir hata alıyorum potu maks. değere çektiğimde dop panelde iletişim hatası almıyorum pot değerini azaltmaya başlayınca iletişim hatası alıyorum bunun sebebi ne olabilir sizce.

F®T

Sebebi protonun kendisi ile alakalı olabilir.Bu durumu modbusmat programı ile dene değerler normal mi geliyor bir bak.Değerler arada bir anormal oluşuyordur.Normalde benim hatırladığım bu tip işlerde pic adc leri kapalı harici adc kullanmak mantıklı olayı.Neticede parazit ile aiakalı bir durum vardı diye aklıma geliyor.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

EMKE

Haklısınız ft hocam parazit ile ilgili bir durumda olabilir  hata kodu şu com 2 station 1 communication error 5 alıyorum bakalım belkide dop tarafında haberleşme ayarlarında bir problem vardır düzeltiriz inş .

F®T

modbus mat progdan takip et.Bu adc lerin açık olması ile alakalı diye aklıma geliyor.Hatta harici adc kullanmak lazım.Diye o zamanlar konuşmuştuk.Ciddi projelerde sorun olur.Basit işler için problem olmaz.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

FB4LP

18f452 ile DELTA AS228 serisi PLC yi modbus rtu ile haberleştirmek için çalışıyorum. Benim takıldığım nokta pic den rx ve tx uçlarını rs485 + ve - uçlarına çevirecek devre şeması. MAX485 entegresi ile çevrim işlemini yapmak istiyorum. Entegrenin re ve de pinlerini hangi pine bağlamam gerekiyor? Bu devre tasarımını yaparken MAX485 entegresi ile birlikte pasif eleman kullanmak gerekli mi? Sizler plcya da hmi ile haberleşirken nasıl bir dönüştürücü devresi kurdunuz?

ete

PLC konusunda bilgim az. Ancak belirlenmesi gereken şey PLC ser portu TTL mi çalışıyor yoksa PC RS232 (PC) formatındamı. Basitçe RX ve TX pinlerinde ölçüm yaparak bunu anlamak kolaydır.
TTL format (pic USART ) +5V lojik kullanılır. HIGH=5V , LOW=0 V dur.
RS232 (PC) formatında ise HIGH=-10V ve LOW=+10V dur. görüldüğü gibi tamamen farklı bir voltaj seviyeleri var. Öncelikle her iki sistemin bir birini görebilmesi için seviye düzeltici (MAX232) kullanmak gerekebilir. Tabiiki şayet PLC TX ve RX çıkışları TTL değil ise. Bunu bilen varsa burada açıklarsa sevinirim.

Diyelimki PLC formatıda TTL o halde yapılacak iş ;
Bilgi veren tarafta MAX485 entegresine bakacak olursak DI, RO, RE, DE, A, B olarak isimlendirilmiş pinleri mevcut.
DI pini (Data Input) pic tarafında TX pinine bağlanacaktır.
RO pini (Data receive) pic tarafında RX pinine bağlanacaktır.
RE ve DE pinleri birleştirilerek bir pine bağlanacak ve bu pine LOW verilirse sistem Alıcı konumunda olacaktır. Bu birleşik pine HIGH verilirse Sistem Bilgi yollayacak yani TX yapacaktır.

A ve B pinleri karşı tarafta bulunan diğer RS485 entegresinin A ve B pinlerine bağlanacak (A diğer A ya ve B de diğer B ye)

PLC tarafında da durum aynı şekilde yapılmalıdır.
RS485 hattı şayet uzun ise sonlandırma direnci 120 ohm hat sonunda A ve B arasına bağlanmalıdır.

Bir örnek bağlantı şeması ilişikte veriyorum. Bu sitede algoritma çözümleri altında incelediğimiz ve detaylı şekilde açıklanmış projemize aittir.
Gerekirse oradaki açıklamalarıda okumanda yarar var. Zira orada verilen projenin senin yapmayı düşündüğün projeden pek farkı yok. Olan fark yanlızca bir tarafta sende PLC olması.
Ama sana epeyce fikir verecektir bu proje.

Şemada RS485 yerine RS487 entegresi kullanılmış olup bunlar aynıdır kafanı karıştırmasın. Sen onu RS485 entegresi olarak görebilirsin.
 
https://etepic.com/index.php/topic,57.15.html
linkte çalışma ile ilgili açıklamaları bulabilirsin. Sayfa-2 de benim 22 nolu mesajım ekinde projenin bitmiş halinin dosyaları vardır onlara da bakabilirsin.

Ete

FB4LP

O zaman ft hocamın başta paylaştığı kodda "Symbol RS485AKT = PORTB.1" tanımlaması yapılmış. Bende de ve re pinlerini bu pinlere bağlamam gerek doğrumu ?

Powered by EzPortal