(舊文章移植)

GPPW設定,Binary 交信,IP 192.0.1.11 。

M1.jpg

 

通信Port:3010(16進制)

M2.jpg


開專案,製作一個喜歡的Form,

那個插頭造型的元件就是Winsocket。

M3.jpg


三菱Q CPU PLC通訊須知:

通信封包格式,例如→03FF0A0064000000204401006400

最初的03是WORD寫入命令,FF:站號;0A00:延遲時間;64000000:100的意思;

20:SPACE;44:D;〈本例為D100的意思〉;0100:長度(寫入點數)

最後的6400是欲寫入的值,等於10進制100的意思,

所以整個封包的意義是,把100寫入PLC的D100!!

程式如下:

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

procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Close;
StatusBar1.SimpleText:='Connect To PLC'; {最下面狀態Bar的顯示連接中}
ClientSocket1.Address:=Edit1.Text; {PLC的IP位址192.0.1.11}
ClientSocket1.Port := StrToInt(Edit3.Text) ; {PLC的通信PORT:12304 (10進),等於3010(16進)}
ClientSocket1.Open;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
StatusBar1.SimpleText:='Connected'; {最下面狀態Bar的顯示已經連接}

end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
StatusBar1.SimpleText:='Disconnect'; {最下面狀態Bar的顯示無法連接}
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
VAR
P,R,T : String;
K,L,i,j : Integer;
begin
EDIT4.TEXT := '';
P :=ClientSocket1.Socket.ReceiveText ; {PLC回答}
L := Length(P);
FOR i := 1 To L Do
PLCAnswerData:= PLCAnswerData + IntToHex(Byte(p[i]),2);
EDIT4.TEXT := PLCAnswerData; {秀出PLC回答}

if PLCAnswerData <> '' then
PLCAnswerChange
else
begin
ShowMessage('PLC Answer nothing,Please Check PLC Ethernet Card!')
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
VAR
Q :STRING;
L,a,b,c,i : INTEGER;
begin
StatusBar1.SimpleText:='Send Data to PLC'; {最下面狀態Bar的顯示送資料到PLC}

PLCAnswerData := '';
L := Length(Edit2.Text);
if L > 0 then
begin
b :=0;
For i:= b to ((L Div 2)-1) do begin
b:= b+1;
c:= b + i;
a := StrToInt('0x0' + Copy(edit2.Text,c,2)); {欲送到PLC資料做處理}
Q := Q + Chr(a); {欲送到PLC資料做字元轉換}

end;
ClientSocket1.Socket.SendText(Q); {送資料到PLC}
end
else
begin
ShowMessage('Please Check Input!')
end;
end;

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

以上僅供參考

 

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

老男人幻想世界

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


留言列表 (7)

發表留言
  • 橙光
  • 好吧,我承認,看到是天書直接滑下來按推 XDDD
  • 下一篇是日本旅遊。

    老男人 於 2018/04/03 19:09 回覆

  • koko
  • 每個字都認識~

    但整句湊在一起......... 都看不懂, 哈........ ^_^
  • 無妨,歡迎歡迎。

    老男人 於 2018/04/05 20:01 回覆

  • 遠虹(佈置手作)
  • 打卡有獎品嗎?[:emotion1379949799-3701721921.gif]

  • 泥找時間來兌獎

    老男人 於 2018/04/06 22:32 回覆