pic ile plc deneme tmr0 saniye ayarlamak

arci

Üye
Katılım
4 Ocak 2009
Mesajlar
184
Puanları
1
öncelikle iyi günler.projem için kaynak ararken şans eseri bulduğum bir çalışmada pic'i bir plc gibi programlanabilen bir giriş ve çıkış larını kumanda eden çalışmayı yapmaya başladım.
a PIC PLC Project : UZAM_PLC with PIC16F648A Microcontroller

devre de porta dijital giriş(G0,G1,G2...G7), portb dijital çıkış(C0,C1,...C7) olarak çalışmakta , sanal 8 adet kontak (M0,M1...,M7),8 ADET AYRI AYRI PROGRAMLANABİLİR ZAMAN RÖLESİ (Z1,Z2,...Z7)

ZAMAN RÖLESİ NDE TMR0 KESMESİ KULLANDIM ANCAK TAM OLARAK AYARLAYAMADIĞIM İÇİN SÜRE AYARLARI YAPAMIYORUM AYRICA PC İÇİN BİR ARA YÜZ OLUŞTURMAYA ÇALIŞIYORUM TMR0 NASIL AYARLAYA BİLİRİM TEŞEKKÜRLER.

TİMER AYARLARIM
DEFINE OSC 4
...
...
...
ON INTERRUPT GoTo KESME 'kesme oluşursa KESME adlı etikete git.
OPTION_REG=%01010000 'Pull up dirençleri İPTAL- Bölme oranı 1/2.
INTCON=%10100000 'Kesmeler aktif ve TMR0 kesmesi aktif
tmr0=6
.
.
.
.
.
DISABLE
kesme:
tmr0say = tmr0say + 1
if tmr0say <=20 then kesme_son
PULSOUT PORTC.5,10
TMR0SAY=0
for temp5 = 0 to 7
if z_izin[temp5] = 1 AND z_say[temp5] <> 0 then z_say[temp5]=z_say[temp5] - 1
next temp5
kesme_son:
tmr0=6
INTCON.2=0 'TMR0 Kesme bayrağı sıfırlanıyor
RESUME
ENABLE

PROGRAM BAŞLATILDIĞIN DA 5 SANİYE seri girişten enter bekler tuşa baılmaz ise programa başlar.enter 'a basıldığında hafızada program yoksa program yok yazar ve portc.5 1sn aralıkla yanıp söner program var sa kayıtlı programı yazar ve bekler..
burada "X" iptal eder yani hafızadaki programı siler,"W" ise hafızadan çağrılan program geldiğinde ilk basılırsa direk programın çalıştırır.

artık program girme vakti.
pici resetle ve "ENTERa bas" yazısı geldi.
enter

tanımlamalar:

G0N = giriş sıfır sinyali
G0T = giriş sıfır sinyali terslenmiş

C0N = çıkış sıfır sinyali
C0T = çıkış sıfır sinyali terslenmiş

M0N = SANAL KONTAK
M0T = SANAL KONTAK TERSLENMİŞ

"E" koşul sonu
"enter" entere basılarak satır sonlanır ve diğer satıra geçilir.
"Q" her şey gibi program sonu dikkat edilecek nokta satır snunda "enter" ' e basıldıktan sonra yeni satıra geçildiğinde "Q" ya basılmalıdır

G0
----| |--------( C0 ) program : 1- G0NEC0N "ENTER"

PRO AÇIKLAMA:
İLKOLARAK "G0N" GİRİŞ "G0"(GİRİŞ SIFIR) "N" (NORMAL) "E" (İSE) "C0N" (DOĞRU İSE C SIFIR "1"OLUR DEĞİLSE "0" OLUR)

G0
----|/|--------( C0 ) program : 1- G0TEC0N "ENTER"

PRO AÇIKLAMA:
İLKOLARAK "G0T" GİRİŞ "G0"(GİRİŞ SIFIR 'IN TERSİ) "N" (NORMAL) "E" (İSE) "C0N" (DOĞRU İSE C SIFIR "1"OLUR DEĞİLSE "0" OLUR)

seri bağlantı:
"(" , ")" seri bağlantı ayıraçları
ORN:
1- (G0NAG1NAG3N)EC0N

örn:
G0 G1 G3
----| |------| |------| |---( C0 )

1- (G0TAG1N)EC0N
AÇIKLAMA :
SERİ BAĞLAMA "(" İLE BAŞLAR VE HER KOŞULDAN "G0T" SONRA "A" girilir ve diğer koşul yazılır. "G1N" yazılır.birmek içinse ")" girilerek seri bağlanan girişler sonlandırılır.
"E" sonuç girilir "C0N" koşul doğru ise C0 = 1 olur yanlış ise C0=0 olur


Paralel bağlantı
"[" , "]" paralel bağlantı başlangıç ve son düğüm noktalarI.
paralel bağlantıda koşullar "(",")" ayıraçları ile girilmeli ve bir paralel kol üzerindeki koşul bittiğinde diğer kolda olan koşulları girmeden önce "0" ile ayırılmalıdır.
orn:
G0
-------| |--------( C0 ) program : 1- [(G0n)O(G1N)]EC0N "ENTER"
| |
| G1 |
|---| |--|

açıklama G0 ile G1 normalde açık buton birisine basılırsa c0 çalışır ikiside basık deil ise C0 çalışmaz

karışık bağlantı:
bu bağlantıda dikkat edilecek noktaparalel bağlantı kurallarıdır.
program
1- G0tA[(G1NAG2N)O(G3N)]EC0N

G0 G1 G2
---|/|----||---| |--------( C0 )
| |
| G3 |
|----| |----|

ZAMAN RÖLESİ
KULLANIMI
Z1
---||---(C0) KOD: 1- Z1NEC0N

G0
---||---(Z1)100 KOD: 1- G0NEZ1N100

ZAMAN RÖLESİ KALIBINDA SÜRE HER ZAMAN 3 HANELİ SAYI OLMALIDIR.
ÖRN

G0NEZ1N050


not: plc ile tecrübem yok program sona erdiğinde çıkışlarda değişiklikler yapılıyor

PROGRAM LA ŞİMDİLİK BUNLARI KULLANABİRİSİNİZ DAHASI GELECEK
 

Ekli dosyalar

  • 1ooz8g.jpg
    1ooz8g.jpg
    6.4 KB · Görüntüleme: 10

Yeni mesajlar

Forum istatistikleri

Konular
128,172
Mesajlar
915,633
Kullanıcılar
449,936
Son üye
AsilOzgenc

Yeni konular

Geri
Üst