Delphi Can
Modbüs veri göndermek - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Mikrodenetleyiciler ve Gömülü Sistemler (https://www.delphican.com/forumdisplay.php?fid=1128)
+---- Forum: Gömülü Sistemler (https://www.delphican.com/forumdisplay.php?fid=1132)
+---- Konu Başlığı: Modbüs veri göndermek (/showthread.php?tid=6304)



Modbüs veri göndermek - TurboPascal - 29-09-2021

Aşağıdaki resimdeki gibi bir karakter setini elimizdeki bir terminale gönderip, bir mekanizmayı tetikleyebiliyoruz. 
Bu karakter setini Delphi tarafından nasıl / hangi formatta gönderebilirim.
Doğrudan $01$03$01$20$00$14$29$CF string olarak gönderiyorum. Fakat sonuç alamıyorum.
Yardımcı olabilir misiniz?


Modbüs veri göndermek - enigma - 29-09-2021

Öncelikle RS232 ile doğru Com port'u açabiliyor musunuz ? Eğer cevabınız evet ise yazdığınız değeri, GonderilecekDegisken := #$01#$06#$00#$22 ... şeklinde atadıktan sonra gönderin.
Ayrıca kullandığınız program yani "Hercule" ne yazarsanız onu gönderir. Yani "$" işaretini Hex olarak algılamaz. Oysa Delphi'de bunun karşılığı HEX demektir.


Cvp: Modbüs veri göndermek - TurboPascal - 29-09-2021

(29-09-2021, Saat: 13:48)enigma Adlı Kullanıcıdan Alıntı: Öncelikle RS232 ile doğru Com port'u açabiliyor musunuz ? Eğer cevabınız evet ise yazdığınız değeri, GonderilecekDegisken := #$01#$06#$00#$22 ...  şeklinde atadıktan sonra gönderin.
Ayrıca kullandığınız program yani "Hercule" ne yazarsanız onu gönderir. Yani "$" işaretini Hex olarak algılamaz. Oysa Delphi'de bunun karşılığı HEX demektir.

Evet com porta open ile sorunsuz bağlanıyorum. #$01#$06#$00#$22 bu formatta deneyeceğim.


Modbüs veri göndermek - enigma - 30-09-2021

Sonuç alabildiniz mi ?


Cvp: Modbüs veri göndermek - TurboPascal - 30-09-2021

(30-09-2021, Saat: 10:53)enigma Adlı Kullanıcıdan Alıntı: Sonuç alabildiniz mi ?

Henüz test etme imkanım olmadı. 
Cihaz siparişi verdim. 
gelince test edip, sonuç bildireceğim.
İlginiz için teşekkür ederim.


Cvp: Modbüs veri göndermek - TurboPascal - 06-10-2021

Tüm karakterleri arada $ işareti olmadan aşağıdaki yöntemle gönderebildim.
Yardımcı olan arkadaşlara teşekkür ederim.

procedure Tfrm1.btToHexClick(Sender: TObject);
var
 LStr1, LStr2: String;
 begin
 LStr1 := Edit1.Text;
 SetLength(LStr2, Length(LStr1) * 4);
 BinToHex(LStr1[1], PWideChar(LStr2), Length(LStr1) * SizeOf(Char));
 FComPort.WriteString(LStr2);
end;

Kaynak:
BinHexMethods