Delta PLC İçin Modbus Program Yazmak.

başka bir inverter var derken marka ve model nedir haberleşme protokolünü bilmek gerekiyor.
 
Arkadaşlar bende sizin verdiğiniz projelerdeki gibi bi uygulama yapmak istedim ancak başarılı olamadım delta plc'yi c# ile kontrol etmek istiyorum acaba sizin şu projelerin kaynak kodları var mı? rica etsem gönderebilir misinz?
benim kodlarda aşağıda;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace delta_plc_ilk_uygulama
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
if (serialPort1.IsOpen == false)
{
serialPort1.Open();


}
}


private void button1_Click(object sender, EventArgs e)
// :01050500FF00F6 :01050500FF00F5 // :01050500FF00F6




{
byte[] buffer = StringToByteArray("3A01050500FF00F60D0A");
serialPort1.Write(buffer, 0, buffer.Length) ;
}


private void button3_Click(object sender, EventArgs e)
{
serialPort1.Write("PON");
}


public static byte[] StringToByteArray(string hex)
{
return Enumerable.Range(0, hex.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
.ToArray();
}
}
}
 

Math modülüne ihtiyacınız yok(Kullanmasanız da olur)

LRC Check Pythonic yolu:

PHP:
def calc(self,word):
        sta = 0
        sayi = 0
        key=""
        for i in range(2,(len(word)+1),2):
            a = word[sta:i]
            sta=i
            sayi += int(a,16)
            key = str(hex(256-((sayi)%256)).split("x")[1].upper())
            if len(key) ==1:
                key = "0"+key
        return ":"+word+key+"\r\n"
 
hocam kolay gelsin. bu sitedeki ilk mesajım çünkü iytiyacım olan şey değişti. şimdiye kadar ETE hocamla picproje'de veya etepic sitesinde düşe kalka ilerliyor, 18f452 lerle birşeyler yapmaya çalışıyordum. ama durum değişti, yeni bilgilere ihtiyaç hasıl oldu.

değerli hocam, üzerinde uğraştığım ciddi bir proje var.
16 tane selenoid valfi sürmem gerekiyor. örneğin:


BASLA:
FOR I=1 TO 12 '(satırdaki rakam sayısı. 1'den itibaren)
FOR B=2 TO 1 step -1 '(satır sayısı. 1'den itibaren )
C=(12*B)-I '(satır*sütun-ilk for...)

LOOKUP C,[$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,_
$FF,$FF,$FF,$FF,$FF,$FE,$FC,$F8,$F0,$E0,$C0,$00],DEGER

SHIFTOUT BILGI, SAAT,0, [DEGER]
NEXT B
PULSOUT YUKLE,5


ADCIN 0,A
PAUSE A
NEXT I
GOTO BASLA

diye bir program yazdım. pic'e 2 tane de 74hc 595 çoklayıcı bağladım. programla ilk önce bir 595'e $00 gönderiyor, sonra diğerine $FF gönderiyor, sonra da bu değerleri (tabiki binary düzende) basıyor. bastıktan sonra a kadar pause yapıyor ve sondan başa doğru tarayarak geliyor. sanırım anlatabildim. hocam bunu 64 tane selenoid valf sürecek şekilde yaptım ama kafam karıştı. nedeni mi? elektromanyetik gürültü ve beslemenin sıhhati. ben ürünün endüstriyel standartlarda olmasını istiyorum. bundan dolayı da plc işimi çözermi acaba diye araştırmalara başladım.
hocam kısacası plc benim 64 tane selenoid valfimi benim belirleyeceğim bir düzende a süresi boyunca açık kapatır mı?
yani elimde değerler matrisi olacak ve plc belirtilen sırada ve sürede bu değerleri valflere basacak. mümkün mü?
teşekkürler

- - - Updated - - -

hocam kolay gelsin. bu sitedeki ilk mesajım çünkü iytiyacım olan şey değişti. şimdiye kadar ETE hocamla picproje'de veya etepic sitesinde düşe kalka ilerliyor, 18f452 lerle birşeyler yapmaya çalışıyordum. ama durum değişti, yeni bilgilere ihtiyaç hasıl oldu.

değerli hocam, üzerinde uğraştığım ciddi bir proje var.
16 tane selenoid valfi sürmem gerekiyor. örneğin:


BASLA:
FOR I=1 TO 12 '(satırdaki rakam sayısı. 1'den itibaren)
FOR B=2 TO 1 step -1 '(satır sayısı. 1'den itibaren )
C=(12*B)-I '(satır*sütun-ilk for...)

LOOKUP C,[$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$FF,_
$FF,$FF,$FF,$FF,$FF,$FE,$FC,$F8,$F0,$E0,$C0,$00],DEGER

SHIFTOUT BILGI, SAAT,0, [DEGER]
NEXT B
PULSOUT YUKLE,5


ADCIN 0,A
PAUSE A
NEXT I
GOTO BASLA

diye bir program yazdım. pic'e 2 tane de 74hc 595 çoklayıcı bağladım. programla ilk önce bir 595'e $00 gönderiyor, sonra diğerine $FF gönderiyor, sonra da bu değerleri (tabiki binary düzende) basıyor. bastıktan sonra a kadar pause yapıyor ve sondan başa doğru tarayarak geliyor. sanırım anlatabildim. hocam bunu 64 tane selenoid valf sürecek şekilde yaptım ama kafam karıştı. nedeni mi? elektromanyetik gürültü ve beslemenin sıhhati. ben ürünün endüstriyel standartlarda olmasını istiyorum. bundan dolayı da plc işimi çözermi acaba diye araştırmalara başladım.
hocam kısacası plc benim 64 tane selenoid valfimi benim belirleyeceğim bir düzende a süresi boyunca açık kapatır mı?
yani elimde değerler matrisi olacak ve plc belirtilen sırada ve sürede bu değerleri valflere basacak. mümkün mü?
teşekkürler
 
Merhabalar dediğiniz sistem PLC ile olur elbette fakat maliyetli olur bu iş için bana göre plc, bunun yerine pic kontrollü, modbus haberleşmeli endüstriyel bir kart ile'de bu iş çözülebilir. Tabiki yapacağınız uygulama sadece bir seferlik ise, bu seferde endüstriyel kart tasarımına gitmek maliyet ve emek açısından PLC ye göre dezavantaklı kalır.

Yukarıdaki seçenekler doğrultusunda uygulamanız eğer birden fazla olacaksa ve bu tip endüstriyel bir kart tasarlayamazsanız, bu kartı sizin yerinize yapabilir ve çalışır halde teslim edebilirim, hayırlı çalışmalar.
 
öncelikle cevabınız için teşekkür ederim. aslında durum şu şekilde. ben 16 selenoid valfi çalıştıracak bir kart yaptım ve uzun süre sorunsuz çalıştı. sonra 64 valf için ürettim o da çalıştı. şimdilik bir sıkıntı yok. ancak ben aslında türkiye de satılan Elektronik devre elemanlarına, devrenin besleme kalitesine ve biraz da tasarımıma güvenemediğim için, neticede de bu ürünü sattığımda hiçbir sorun olmaması gerektiğini düşündüğüm için plc ye yönelmiştim. tabi bu aşamada sizin teklifinizi de değerlendirmeye almam lazım.
istediğim şey şu:
64 tane 10 watt-12 v selenoid valfi sürebilecek
usb (veya cf, mmc kart da olur) den bilgileri eş zamanlı alabilecek,
mümkünse uzaktan kumanda da bağlanabilecek bir devreye ihtiyacım var. bunu siz tasarlarsanız bana maliyeti ne kadar olur?
bunu plc ile yapmak istesek (plc nin markası önemli değil) ne kadar tutar?
bunları bilmek isterim.
teşekkürler
 
Son düzenleme:
6 sayfadır okuyorum burda elle tutulur bir örnek bulacağım diye ama gene nafile herkes ucundan bir şey sormuş cevabını almış gitmiş bir tane örnek var onunda kaynak kodları yok....

deneyen arkadaşlardan kimse başarılı olamadı mı acaba rica etsem kaynak kodlu bir örnek verebilirmisiniz..
bazı arkdaşlar kaynak dökümanlardan işi çözebiliyorlar ama benim gibi bazılarıda örnekleri inceleyerek çözüyor....

sitemim affola

saygılarımla
 
emrah kardeşim programın bitince paylaşacaktın. durumun nedir acaba.
 
arkadaşlar delta plc ile modbus rtu haberleşi yapmak için plc tarafında bir kod eklemek veya ayar yapmak gereiyormu başlangıçdaki iletişim ayarlarından rtu şekmekten başka kod kısmına ayrıca bir ekleme yapmak gerekimi saygılarımla
 

Tüm sayfaları detaylıca okumadım fakat alttaki ücretsiz kütüphane ile ModBus protokolünü bazı programlama dilleri için kullanabilirsiniz.

Java versiyonunu kullanarak 10 dakikada bir cihaza bağlanıp verilerini almıştım.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…