PLC deki ters zaman rölesi mantık olarak picte kullanılabilir mi?

Başlatan atakhan, 01 Ağustos 2017, 16:59:57

atakhan

arkadaşlar herkese merhaba sizlere bir sorum olacak PLC deki belli başlı uygulamaları pic ile yapabilir miyiz? örneğin PLC de iki tane buton kullanalım start ve stop buton olmak üzere  start butonuna basınca motor çalışsın stop butonuna bastıktan 10sn sonra dursun.. başka bir örnek ise start butonuna bastıktan 10sn sonra motor çalışssın..  bu 2 örneği PLC de ladder diyagramla yapmak çok basit çünkü PLC de mühürleme denilen bir kavram var aynı şey pic tede var mı? yada PLC nin içinde dahili rölele var bu rölelerin normalde açık ve kapalı kontakları var bunlar sayesinde yukarıdaki verdiğim 2 örnek basit bir şekilde yapılabilmekte, pic te olay nasıl gerçekleşiyor cevabınız için şimdiden teşekkür ederim (not: cevaplayacak olan arkadaşlar  yukarıda verdiğim 2 örnek hakkında kodlu bir cevap yazmak isterlerse ccs c compiler  kullanıyorum dikkatinize)

matador

Pic ile herhangi bir çıkışı set ettikten sonra reset durumuna kadar mühürlemiş olursunuz.


Örneğin;


output_high(PIN_B7); // çıkış low yapana kadar böyle kalacaktır.


atakhan

matador bey cevabınız için teşekkür ediyorum biraz önce bir deneme yaptım ve buldum galiba fakat küçük bi sorun var
yaptığım şey start ve stop butonuyla b0 a bağlı ledi yakıp söndürmek

#include <main.h>
int sayac=0;
void main()
{
set_tris_b(0x00);
output_b(0x00);
set_tris_a(0xFF);


   while(TRUE)
   {
      if(input(pin_a0))
      sayac=1;
     
         if(sayac==1)
            output_high(pin_b0);
         else
            output_low(pin_b0);
       
       
       if(input(pin_a1))
       {
           output_low(pin_b0);
           sayac=0;
       }

burada bir sorun yok start ile ledi yakıyor stop ile söndürebiliyorum fakat programda if(sayac==1) kısmına      delay_ms(10000);
                                                                                                                                                              output_high(pin_b0); yazdığımda       
start butonuyla led 10sn gecikmeli yanıyor fakat yandıktan sonra stop butonu ile söndüremiyorum

atakhan


ilyas KAYA

Plc nin yapamadığını Bile yaparsınız. Aslında yapamadığıni demek yanlış olur zaten plc lerin içinde mikroişlemci var. PİC olur atmel olur stm olur adı ne olursa olsun sonuçta mikroişlemci.

Bu soru şuna benzer; cpu ile bilgisayarin yaptigi seyler yapilabilir mi ?
Zaten bilgisayarın yaptığı işleri cpu yapıyor. Sanırım anlatabildim :)

mehmet

@atakhan :
Mesajlarınızda "Türkçe Yazım Kuralları" na dikkat ediniz.
Kod eklerken "KOD" düğmesini kullananınız ve mesajlarınızı
yeniden düzenleyiniz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

muhendisbey

@cezeri
Saydıklarınız mikroişlemci değil, mikrodenetleyici olacaktı.
PLC'lerde sadece mikrodenetleyici değil FPGA kullanan modeller de mevcut. Bunlar genelde üst düzey PLC'lerde kullanılır. Paralel işlem yeteneğine sahiptir, oldukça da hızlıdır.


PLC'de yapılamayan birçok işlem mikrodenetleyici ile yapılabilir. Örneğin I2C bağlantısı olan ya da SPI bağlantısı olan PLC görmedim. Profibus bulunan mikrodenetleyici olmasa bile yazılım ve ek donanımlarla profibus'tan veri alınabilir.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

MB_77

keşke mikroişlemci ile mikrodenetleyici arasındaki farkı da söyleysediniz de kendi hükmünüz gibi olmasaydı.

Microchip firmasının sitesinde ürünlerini sınıflandırırken kullandığı MCU nedir peki,

Açılımı Mikro Control Unit nedir peki? google translate yazsam mikro kontrol ünitesi der.

Üstelik Microchip firması ürünlerin ana başlığında mikroişlemciler ve mikrokontrolörler başlığından sonra alt başlıkların tümü MCU!!!

Ben aradaki farkı merak ettim. açıklayabilecekmisiniz

matador

Mikroişlemci, işlem yapan kısmın kendisidir, kodu yürüten bölge olarak düşünebilirsiniz.

Mikrodenetleyici ise çevre birimlerine sahip olan tümleşik bir yapıdır. ADC birimi, uart, i2c, usb, vs... ile mikroişlemci bir arada olduğunda mikrodenetleyici olarak isimlendirilir.

muhendisbey

Mikroişlemci kendi dahili program hafızası bulunmayan, ASM kodlarına karşılık gelen kodları yürüten, üzerinde herhangi bir modül (ADC,I2C, UART...) bulunmayan elemandır. Örneğin Intel 8086
MCU adı üzerinde bir ünite, birçok yapının içerisine dahil edildiği elemandır.


@MB_77  Yaptığınız davranış biçimini ayıplıyor, sizi kınıyorum. Microprocessor ile microcontroller'a versus atıp google'da arasanız cevabınızı bulacaksınız.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

MB_77

Davranışım sizi incittiyse özür dilerim. Davranışınızı ayıpladığımdan kendi tarzımla tepki göstermekten ibaretti yaptığım.

Dediğim gibi, değerli bilgilendirmeler kendi hükmü gibi olunmamalı görüşündeyim. burası herkese açık bir platform.

Saygılar

cetin1990

Camiayı, büyük bir dertten kurtarıyorum.
MU de git. Merkezi ünit :)

Maxim

pic ile kralını hatta PLC nin 100 katı şeyleri yapabilirsin ama bunun hiç önemi yoktur.
çünkü önemli olan tasarım ve stabilitedir.

plc alırsın takarsın o orada 100 sene çalışır ve hiç resetleyip manyaklaşmaz.
pic ise kimin ne yaptığı ve nasıl yaptığı önemlidir
zırt pırt kapanıp açan saçmalayan bir tasarım yaptıysan hiç değerli değildir.

bakınız, forumlarda yüzlerce konu var yok efendim röle çekmişte pic resetlenmiş vay efendim kendi kendine kapanıyormuş falan
kısacası ne yaptığın değil, kimin nasıl yaptığıdır önemli olan.

Salih

Alıntı yapılan: Maxim - 02 Ağustos 2017, 16:03:41
pic ile kralını hatta PLC nin 100 katı şeyleri yapabilirsin ama bunun hiç önemi yoktur.
çünkü önemli olan tasarım ve stabilitedir.

plc alırsın takarsın o orada 100 sene çalışır ve hiç resetleyip manyaklaşmaz.
pic ise kimin ne yaptığı ve nasıl yaptığı önemlidir
zırt pırt kapanıp açan saçmalayan bir tasarım yaptıysan hiç değerli değildir.

bakınız, forumlarda yüzlerce konu var yok efendim röle çekmişte pic resetlenmiş vay efendim kendi kendine kapanıyormuş falan
kısacası ne yaptığın değil, kimin nasıl yaptığıdır önemli olan.


+1


Endüstriyel fabrika ortamlarında, kontrol cihazlarından öncelikle beklenen,
güvenli ve kararlı(istenenleri yanılmadan sürekli yapabilmesi) olarak çalışmasıdır.
PLC üreticileri en başta bunları sağlarlar.
Dolayısı ile endüstriyel kontrol cihazı yapmak için,
ciddi tasarım ,üretim ve deneme aşamaları gerekir.
Bundan dolayı, büro tipi cihazlara göre pahalıdırlar.




mehmet

Örnek olarak;
/*
 * File:   main.c
 * Author: mehmet
 *
 * Created on 02 Ağustos 2017 Çarşamba, 18:13
 */

// PIC12F675 Configuration Bit Settings
// 'C' source line config statements
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

// CONFIG
#pragma config FOSC = INTRCIO   // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-Up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF      // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = ON       // Brown-out Detect Enable bit (BOD enabled)
#pragma config CP = ON          // Code Protection bit (Program Memory code protection is enabled)
#pragma config CPD = ON         // Data Code Protection bit (Data memory code protection is enabled)

#include <xc.h>

#define _XTAL_FREQ  4000000

#define SWITCH      GPIObits.GP2
#define LED_G       GPIObits.GP1
#define LED_Y       GPIObits.GP0

#define BUTON_DIR   TRISIObits.TRISIO2
#define LED_G_DIR   TRISIObits.TRISIO1
#define LED_Y_DIR   TRISIObits.TRISIO0

//------------------------------------------------------------------------------

void mcuInit(void)
{
    ANSEL = 0x00;
    CMCON = 0x07;
//    OPTION_REG = 0b00000000;
//    VRCON = 0b00000000;
//    WPU = 0b00100000;

    GPIO = 0x00;

    LED_Y = 0b0;
    LED_G = 0b0;

    BUTON_DIR = 0b1;
    LED_G_DIR = 0b0;
    LED_Y_DIR = 0b0;
}
//------------------------------------------------------------------------------

void main(void)
{
    mcuInit();

    while (1)
    {
        if (SWITCH)
        {
            __delay_ms(20); //debounce
            if (SWITCH)
            {
                LED_Y = 0b1;
                LED_G = 0b1;
                while (SWITCH)
                {

                }
                LED_Y = 0b0;
                __delay_ms(2000); //ters zaman gecikme süresi
                LED_G = 0b0;
            }
        }
    }
}
//******************************************************************************


Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr