如何得知暫存器在電腦裡的位址? |
答題得分者是:tcSweey
|
sea112001
一般會員 發表:4 回覆:6 積分:2 註冊:2007-10-30 發送簡訊給我 |
各位前輩們好:
小弟現在想寫一個BCB的程式,這個程式是要透過RS232接收觸碰式人機介面所傳送值,但是人機介面他只認得要將值傳送到的目的地的位址,因此小弟想了解說在下面BCB程式裡紅色框的地方的暫存器,要如何知道這個暫存器在電腦裡的位址? 另外小弟想了解Modbus RTU的通訊格式,請問可以介紹相關的書籍嗎? 謝謝 void __fastcall TForm1::Timer1Timer(TObject *Sender) { String Temp,str; charinbuff; if (str.IsEmpty()) { mReceive->Text = 0; Distance->Text = 0; } else { mReceive->Text = inbuff; Distance->Text = mReceive->Text*0.491; } }
------
阿秤 |
tcSweey
一般會員 發表:7 回覆:19 積分:15 註冊:2005-01-04 發送簡訊給我 |
如下:
unsigned char temp[100]; unsigned char *p; p= &(temp[0]); Edit1->Text=AnsiString( (unsigned int) p); RTU 代表是以值來傳送,例如我要送 0x70 ,在傳送上是以 0x70 去傳送,基本上RTU 的data格式是8bit 外加start bit(1) Even or Odd or None stop bit ,例如 8 ,E ,1的格式為 start bit(1) Data bit(8) Even (2) stop bit(1) = 12 bit / 每單位資料 |
sea112001
一般會員 發表:4 回覆:6 積分:2 註冊:2007-10-30 發送簡訊給我 |
|
tcSweey
一般會員 發表:7 回覆:19 積分:15 註冊:2005-01-04 發送簡訊給我 |
|
sea112001
一般會員 發表:4 回覆:6 積分:2 註冊:2007-10-30 發送簡訊給我 |
tcSweey大大您好:
謝謝您這麼的幫忙,我是要用在擷取人機介面的訊號,我用的人機介面是富士的UG330系列的觸碰式人機介面,我想在人機介面上畫一個地圖,然後只要在地圖上按一下,人機介面就會將該處的座標利用RS232傳至電腦,電腦在做後續的計算,但是人機介面傳輸方式是將人機介面裡的暫存器的值移動至電腦的記憶體裡,如: MOV F0=F1 F0:電腦的記憶體位址 F1:人機介面的暫存器位址 而目前我的問題是要將座標的值從F1移到F0,我知道F1的位址,但是不知道F0的位址,也就是說不知道要將F1移到電腦的哪一個記憶體位址去存放,例如: 在BCB上宣告 int a; 在人機介面上 MOV a=F1 但人機介面他不知道a是甚麼,他只認的a在電腦裡的記憶體位址,因此要如何知道a的記憶體位址,且要能指定a的記憶體位址,而不是電腦自己分配的記憶體位址,這就是我的問題,謝謝。
------
阿秤 |
tcSweey
一般會員 發表:7 回覆:19 積分:15 註冊:2005-01-04 發送簡訊給我 |
不好意思,這麼久才回,因為最近比較忙。想請教你一下,你所指的電腦應該是PC 吧,那樣的話跟你的人機介面應該沒有關係,一般而言,人機介面會傳送固定的格式,例如 :(表頭) 01(站號) 03(讀) 0100(Address) 0001(筆數) CRC(check sum) ,而若你要讀取人機上某個按鈕的狀態(0 表示 OFF 1表示 ON),如果此按鈕的位址是0100 的 bit3則你只需下上面所描述的字串,人機就會回應位址0100 的bit 0 ~ bit15 的值,格式為 01 03 0100 XXXX(值) CRC ,此時你再讀取你所對應的記憶體區段,就可以了。大概是這樣。
|
sea112001
一般會員 發表:4 回覆:6 積分:2 註冊:2007-10-30 發送簡訊給我 |
tcSweey大大謝謝您隔了這麼久還願以回答我的問題,您說的沒錯,人機介面有它傳輸資料的格式,因此只要按照人機介面的通訊格式即能做資料的傳送,而人機介面是以Modbus RTU的格式做資料的傳輸,但我目前的問題是如何以BCB建構可以擷取Modbus RTU資料的程式 ,希望是有相關的資料可以參考,另外目前我是以機械式的開關來代替人機介面的這個功能,因此整個系統還是可以運作,但是我還是希望能學到在BCB上建構可以擷取Modbus RTU資料的程式,希望tcSweey大大在有空閒的時候能給予指導,謝謝。
------
阿秤 |
tcSweey
一般會員 發表:7 回覆:19 積分:15 註冊:2005-01-04 發送簡訊給我 |
|
sea112001
一般會員 發表:4 回覆:6 積分:2 註冊:2007-10-30 發送簡訊給我 |
tcSweey您好:
我的信箱是 mo_jom@yahoo.com.tw ,謝謝!
------
阿秤 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |