線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1613
推到 Plurk!
推到 Facebook!

Delphi 如何透過 Com Port 取得PLC I/O 資料??

答題得分者是:conundrum
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-30 21:40:20 IP:220.134.xxx.xxx 未訂閱
完全沒學過PLC...買了兩本書..一本圖控..一本自動化控制..都是Delphi版本的..但是完全看不懂... 不知道有沒有那位大大可以提供一個方向..給小弟一個參考?? THANKS..
mymj
版主


發表:132
回覆:486
積分:608
註冊:2002-10-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-01 18:29:23 IP:203.67.xxx.xxx 未訂閱
1.有關DELPHI部分 delphi要和com port連線需在delphi安裝com port 元件或透過API的方式來連接 有關COM PORT元件可以在深度歷險網站下在或購買文魁出版的DELPHI 與RS232串列通訊控制的書本研讀(都需要撰寫通訊程式) 2.有關PLC部分 A.PLC控制語言需瞭解並且能撰寫(有圖控式及完全程式碼) B.PLC要通訊也要撰寫通訊程式, C.DELPHI寫的命令及數據PLC要認識(PLC廠商會提供一本PLC通訊的命令的手冊) 3.有關連線測試部份 這對初學是一大考驗 你可以在兩台電腦作連線測試,先確認DELPHI寫的程式會正常工作 然而連線測試
sung9918
一般會員


發表:0
回覆:8
積分:1
註冊:2004-01-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-03 11:23:09 IP:210.241.xxx.xxx 未訂閱
我有與 OM AB KV 三種 PLC 連線過.....(只有控制幾個點) 以 OM 為例: OM_PLC one word is 16 bit 0xFFFF uu =unit id normal is "00" bbbb=beginWord nnnn=numOfWord cc =FCS (check sum) 0000 1111 2222 .... is return data or write data (1st 2st 3st ... word) rr =response code 電腦下 READ "@uuRRbbbbnnnncc*\r" PLC return "@uuRRrr000011112222....cc*\r" 電腦下 WRITE "@uuWRbbbb000011112222....cc*\r" PLC return "@uuWRrrcc*\r" WRITE "@uuSCmmcc*\r" return "@uuSCrrcc*\r" ********************************************************************* void PLC_OM_AddCheckSum(char *si,char *so) { unsigned char x; char *s=si; x='@'; while (*s) x ^=*s ; sprintf(so,"@%sX*\r",si,x); } /*----------------------------------------------------------------------------*/ int PLC_OM_XX_read(char *func,int com_port,int beginWord,int numOfWord,char *ret_str) { sprintf( plcStr1, "00%-2sdd", func, beginWord, numOfWord ); PLC_OM_AddCheckSum( plcStr1, plcStr2 ); p232_FlushIn( com_port ); p232_WrStr( com_port, plcStr2 ); delay(50); p232_RdLine( com_port, plcStr2, 11 numOfWord*4 , 0x0d); substr( plcStr2, plcStr3, 5, 2 ); if (!PLC_OM_FindError(plcStr3)) return(0); substr( plcStr2, ret_str, 7, numOfWord*4 ); return(1); } /*----------------------------------------------------------------------------*/ int PLC_OM_DM_read(int com_port,int beginWord,int numOfWord,char *ret_str) { return(PLC_OM_XX_read("RD", com_port, beginWord, numOfWord, ret_str)); } 可以讀 DM IR HR .....理論上可以讀寫 PLC 上所有點..... 我不會 PLC 語法, 當時是參考 PLC 手冊, 及 232的 DATAMONITOR 試出來的....
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-04 21:17:55 IP:220.134.xxx.xxx 未訂閱
感謝mymj,sung9918二位大大的回應..可能我沒有寫的很清楚..sorry.. 1.PLC 為 Mitsubishi Q系列. 2.PLC程式由另外同事撰寫..我只須透過com port讀回 I/O 資料 存入SQLServer DatBase並做運算.
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-05 01:35:25 IP:61.64.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=36438 先參考看看
系統時間:2024-04-27 7:55:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!