(舊文章移植)

自製RS232接頭,兩頭都是母的。

476727704_m.jpg 

 

RS232示意接線圖。

476728152_m.jpg

476728427_m.jpg

 

FX3U PLC朋友寄放,拜託我通電測試。(還了,已經無PLC可測試)

476727276_m.jpg

 

插上自製RS232接頭通信測試。

476727046_m.jpg

 

簡易PLC程式。

476729010_m.jpg

 

簡易DELPHI測試程式。

476729431_m.jpg

 

DELPHI程式碼。(使用Cport,請自己在網路搜尋下載,增加元件)

---------------------------------------------------------------------

procedure TForm1.FormCreate(Sender: TObject);
begin

Comport1.Open;

end;

Function TForm1.ChkSum(t: String): String; //SUMCHECK
Var
L, j, Sum : Integer;
begin
Sum := 0;
L := Length(t);
For j := 1 To L do
Sum := Sum + Ord(t[j]);
ChkSum := RightStr(IntToHex(Sum, 2), 2);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
STX,ETX,buf,buf2,ans :String;//DIRECT INTPUT TO PLC
icnt,ilen,sum1 :integer;

begin
STX := Chr(2) ;
ETX := Chr(3);
buf := edit1.Text + ETX;
ilen := Length(buf);
buf2 := STX + buf + ChkSum(buf);
comport1.WriteStr(buf2);
//RECEIVE
sleep(50);
icnt :=0;
icnt := comport1.InputCount;
comport1.ReadStr(ans,icnt);
edit2.Text := ans;

end;

procedure TForm1.Button2Click(Sender: TObject);
var
STX,ETX,buf,ans,buf2 :String; //Y002 FORCE ON
icnt,ilen,sum1 :integer;
begin
STX := Chr(2) ;
ETX := Chr(3);
buf := '70205' + ETX;
ilen := Length(buf);
buf2 := STX + buf + ChkSum(buf);
comport1.WriteStr(buf2);
sleep(50);
icnt :=0;
icnt := comport1.InputCount;
comport1.ReadStr(ans,icnt);
edit2.Text := ans;

end;

procedure TForm1.Button3Click(Sender: TObject);//Y002 FORCE OFF
var
STX,ETX,buf,ans,buf2 :String;
ilen,icnt :integer;
begin
STX := Chr(2) ;
ETX := Chr(3);
buf := '80205' + ETX;
ilen := Length(buf);
buf2 := STX + buf + ChkSum(buf);
comport1.WriteStr(buf2);
sleep(50);
icnt :=0;
icnt := comport1.InputCount;
comport1.ReadStr(ans,icnt);
edit2.Text := ans;

end;

procedure TForm1.Button4Click(Sender: TObject);
var
STX,ETX,buf,ans,buf2 :String;
ilen,icnt :integer;
begin
STX := Chr(2) ;
ETX := Chr(3);
buf := '70008' + ETX;
ilen := Length(buf);
buf2 := STX + buf + ChkSum(buf);
comport1.WriteStr(buf2);
sleep(50);
icnt :=0;
icnt := comport1.InputCount;
comport1.ReadStr(ans,icnt);
edit2.Text := ans;

end;

procedure TForm1.Button5Click(Sender: TObject);
var
STX,ETX,buf,ans,buf2 :String;
ilen,icnt :integer;
begin
STX := Chr(2) ;
ETX := Chr(3);
buf := '80008' + ETX;
ilen := Length(buf);
buf2 := STX + buf + ChkSum(buf);
comport1.WriteStr(buf2);
sleep(50);
icnt :=0;
icnt := comport1.InputCount;
comport1.ReadStr(ans,icnt);
edit2.Text := ans;

end;

end.

 

---------------------------------------------------------------------

隨便寫寫,通訊測試使用。(僅供參考!)

 

創作者介紹
創作者 老男人 的頭像
老男人

老男人幻想世界

老男人 發表在 痞客邦 留言(5) 人氣()


留言列表 (5)

發表留言
  • 遠虹(佈置手作)
  • 騙人的吧....為什麼這麼巧....
  • 迷辦法
    腰痛也得兌獎了

    老男人 於 2018/03/31 18:12 回覆

  • 遠虹(佈置手作)
  • 兩個都是母的?
    這樣不好玩呀...
  • 配一個公的
    素不素粉幸湖

    老男人 於 2018/03/31 18:13 回覆

  • 遠虹(佈置手作)
  • 親愛的格子風格開始走專業風囉
  • 不會
    只是慢慢地把荒廢的文章移過來

    老男人 於 2018/03/31 18:14 回覆

  • koko
  • 拍拍手~~~~ ^_^
  • 謝謝

    老男人 於 2018/03/31 18:15 回覆