plc holding register hakkında???

Başlatan forumsad, 05 Mart 2013, 21:37:11

forumsad

arkadaşlar plc ile delphi iletişimi konusunda tırmalıyoruz...

geldiğim son nokta şu:

plc lerde MB ve MW registerleri yazma ve okumaya açıkmış  bu reğisterlerin durumlarını kontrol ederek giriş çıkışlara bağlayarak roleleri yani çıkışları
kontrol edebiliyormuşuz.....ben yeni ögrendim...

hemen MB0 bitini 1 yapınca QP0 çıkışı 1 olacak şekilde plc programını ayarladım ücretli aldığım dongle ile bu registeri durumunu değiştirerek rolenin açıp -kapattığını gördüm    sistem çalışıyor

şimdi ücretsiz delphi kompenantı ile MB0 reğisterinin değerini değiştirmeye çalışıyorum 

bu kodlarlar ile registere yazma ve okuma yapıyorum ama hangi reğisterleri kontrol ettiğimi bilmiyorum  zaten role de çekmiyor
procedure TfrmMain.btnReadClick(Sender: TObject);
var
  Data: array[0..30000] of Word;
  iAmount: Integer;
  i,j: Integer;
  sLine: String;
begin
try
  iAmount := strtoint(edtReadAmount.Text);
  if (iAmount > 0) then
  begin
    mctPLC.Host := edtIPAddress.Text;
    mctplc.UnitID:=1;
    if mctPLC.ReadHoldingRegisters(strtoint(edtReadReg.Text), iAmount, Data) then
    begin
      for i := 0 to (iAmount - 1) do
//        sLine := sline+IntTohex(Data[i],4);
      memo1.lines.add(inttostr(Data[i]));
      delay(0,250);
 //     if kapat=0 then btnRead.Click;
    end
    else
          memo1.lines.add('PLC read operation failed!');
  end;
  except
  end;
end; { btnReadClick }


procedure TfrmMain.btnWriteClick(Sender: TObject);
begin
  mctPLC.Host := edtIPAddress.Text;
  if mctPLC.WriteRegister(StrToInt(edtWriteReg.Text), StrToInt(edtValue.Text)) then
    MessageDlg('PLC register write successful!', mtInformation, [mbOk], 0)
  else
    MessageDlg('PLC register write failed!', mtError, [mbOk], 0);
end; { btnWriteClick }


deneyimi olan biraz yardımcı olursa sevinirim saygılarımla

Salih

Hangi PLC olduğunun yazmamışsın. Böyle durumlarda çalışılan PLC klavuzunda registerların Modbus adres listesi olur.
Eğer Modbus destekliyorlar ise. Yada PLC lerin kendilerine ait haberleşme protokolleri olur.
Bunlara göre kodların yazılması gerekir.

forumsad

http://www.birlikotomasyon.com.tr/dosyalar/ENDA%20MODBUS%20PROTOKOL%C3%9C-01.pdf

hocam şöyle bir kaynak buldum
http://www.dosya.tc/server3/g0rYZG/Master.rar.html  burdada çalışan örnek

örnek çalışıyor ama hangi holding reğisteri nasıl okuyacağımızı anlayamadım
firma diyorki MB ve MW registerleri okunabilir ve yazılabilir diyor....

saygılarımla