全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2419
推到 Plurk!
推到 Facebook!

請問有關PLC-FX1s通訊問題

尚未結案
b8643045
一般會員


發表:3
回覆:1
積分:0
註冊:2005-02-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-19 11:54:14 IP:219.93.xxx.xxx 未訂閱
因最近要幫我哥寫一個和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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-23 23:26:51 IP:211.74.xxx.xxx 未訂閱
一定是少了某些 COMMAND 未下達......... MOXA(四零四),有賣專業的套件...... 將原來的程式,用 RS232 的監控軟體接起來 再一步一步的破解COMMAND ,不管用什麼軟體開發, 攔截 RS232 通常都會100%成功的,我試過很多了...... 若還是不行,專業還是交給專業(花錢請網友完成較快) -------------------------------- 這一網站,真的不錯!!
------
---------------------------------------
偶爾才來 KTOP ,交流條碼問題,在 FB [條碼標籤達人] 社團留言,感恩.
系統時間:2024-06-29 4:29:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!