請問有關PLC-FX1s通訊問題 |
尚未結案
|
b8643045
一般會員 發表:3 回覆:1 積分:0 註冊:2005-02-02 發送簡訊給我 |
因最近要幫我哥寫一個和PLC通訊的軟體..因找了很久..還是找不出解決問題的方法,可能不是本科生(我是中山財管的)的問題,而且剛接觸DELPHI不久..能力有限..請各位幫我解決一些問題..
以下是我在貴站找到在轉成我自己的程式...
var
Form1: TForm1;
viewstring: string;
i: integer;
rbuf, sbuf: array[0..22] of byte;
procedure TForm1.FormCreate(Sender: TObject);
begin
Comm1.StartComm; //開啟通訊埠
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Comm1.StopComm; //關閉通訊埠
end;
procedure Tform1.senddata; //發送資料
var
i: integer;
commflg: boolean;
begin
viewstring:='';
commflg:=true;
for i:=0 to 16 do
begin
if not form1.Comm1.WriteCommData(@sbuf[i],1) then
begin
commflg:=false; //發送失敗
break;
end ;
sleep(2); //發送位元組間的延遲時間
viewstring:=viewstring inttohex(sbuf[i],2) ' '; //發送的位元組
end;
viewstring:='發送' viewstring;
form1.Memo2.Lines.Add(viewstring);
form1.Memo2.Lines.Add('');
if not commflg then messagedlg('發送失敗!',mterror,[mbyes],0);
end;
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word); //通訊埠接收資料
var
i: integer;
begin
viewstring:='';
move(buffer^,rbuf,bufferlength); //接受buffer中的位元組
for i:=1 to bufferlength do
viewstring:=viewstring inttohex(rbuf[i],2) ' '; //接收到的位元組
viewstring:='接收<<' viewstring;
memo1.lines.add(viewstring);
memo2.Lines.Add('數據接收OK!');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Comm1.StartComm; //開啟通訊埠
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
//要傳送的16進位資料至PLC端(即寫入Y0-Y7的值),值為:ENQ 01 FF BW 0 Y0000 01 1
sbuf[0] := $05; // ENQ
sbuf[1] := $30; // 0
sbuf[2] := $31; // 1
sbuf[3] := $46; // F
sbuf[4] := $46; // F
sbuf[5] := $42; // B
sbuf[6] := $57; // W
sbuf[7] := $30; // 0
sbuf[8] := $59;//Y
sbuf[9] := $30;//0
sbuf[10] := $30;//0
sbuf[11] := $30;//0
sbuf[12] := $30;//0
sbuf[13] := $30;//0
sbuf[14] := $31;//1
sbuf[15] := $31;//1
senddata;
end;
問題
1.PLC有收到訊號..但是Y0000不會亮燈.如果是用回原來的程式只有回應 9595959595959500...請問這是我出了那裡的錯..
2.最後有一個CHECKSUM--因是將01 FF BW 0 Y0000 01 1加總起來,我不知如何下手.
請問各位大大幫幫我.
|
ANDY8C
資深會員 發表:114 回覆:582 積分:299 註冊:2006-10-29 發送簡訊給我 |
一定是少了某些 COMMAND 未下達......... MOXA(四零四),有賣專業的套件...... 將原來的程式,用 RS232 的監控軟體接起來
再一步一步的破解COMMAND ,不管用什麼軟體開發,
攔截 RS232 通常都會100%成功的,我試過很多了...... 若還是不行,專業還是交給專業(花錢請網友完成較快) --------------------------------
這一網站,真的不錯!!
------
--------------------------------------- 偶爾才來 KTOP ,交流條碼問題,在 FB [條碼標籤達人] 社團留言,感恩. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |