|
leonhuang
級(jí)別: 略有小成
|
描述:通訊讀寫格式
圖片:
描述:儀表設(shè)定
圖片:
描述:儀表通訊方式設(shè)定
圖片:
描述:儀表數(shù)據(jù)存取地址
圖片:
描述:編寫的程序1
圖片:
描述:編寫的程序2
圖片:
不懂通訊的菜鳥,請(qǐng)各位大佬教教我。 通訊格式我看了些資料,有基本的認(rèn)識(shí)。但是在編寫程序的過程中有一些不懂。 一、就編寫程序是用8位還是16位即M8161的選擇。因?yàn)槲襎3儀表(圖片:儀表數(shù)據(jù)存取地址,功能地址40005,毛重;占兩個(gè)寄存器、32位,4字節(jié)有符號(hào)只讀)的寄存器是否影響位數(shù)與RS指令的編寫? 二:編寫數(shù)據(jù)格式,{RS D0 Kn D30 Kn},Kn的個(gè)數(shù)如何確定。如[MOV H1 D0] [MOV H3 D1] [MOV H5 D2] [MOV H2 D3] [MOV H核驗(yàn)碼? D4] 那這樣是不是就5個(gè)。8位與16位數(shù)據(jù)格式,地址碼到校驗(yàn)碼個(gè)數(shù)是否不一樣? 三、8位和16位的格式,D0(b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0),8位是處理b0-b7;16位是處理b0-b15。 8位的編寫:[MOV H1 D0] [MOV H3 D1] [MOV H5 D2] [MOV H2 D3] 在第一點(diǎn)中說的功能地址0005占兩個(gè)寄存器、共4個(gè)字節(jié)、32位;那數(shù)據(jù)個(gè)數(shù)這樣編寫是不是就有問題了? 16位的編寫:[MOV H1 D0] [MOV H3 D1] [MOV H5 D2] [MOV H2 D3] 三、CRC校驗(yàn)如何編寫,我這個(gè)程序的CRC校驗(yàn)碼是什么? 四、回傳數(shù)據(jù)的處理。回傳回來的數(shù)據(jù)是放在D33、D34中,還是D33、D34、D35、D36中?[MOV D30 D50 K10 ] 如果是16位處理,那數(shù)據(jù)是放在D53與D54,那程序:[MOV D54 K4M10] [MOV D53 K4M26] [MOV K4M10 D100]最終數(shù)據(jù)存在D100、D101中? 這樣的理解是不是有問題? [ 此帖被leonhuang在2019-07-04 14:06重新編輯 ] |
|---|---|
|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
你可以參考我發(fā)的例子, 你有PDF格式的壓力表手冊(cè)的話,就傳上來看看,貼圖看不清楚 |
|
|---|---|---|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
如果你用的是FX3U就照著我的例子做,F(xiàn)X3U有CRC指令,程序相對(duì)簡(jiǎn)單 http://m.wsrsbx.cn/job-gkaction-download-pid-tpc-tid-1666109-aid-232721.html |
|
|---|---|---|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
注意一項(xiàng): 1.通訊方式設(shè)為12;跟例子一模一樣了; 2.看你的手冊(cè),40001和40002是凈重;在PLC程序的地址是:H0/H1;可以讀連續(xù)2個(gè)數(shù)的形式讀出再合并成32位數(shù); 3.同理,40005和40006是毛重;在PLC程序的地址是:H4/H5 4.你先用MODSCAN32軟件,驗(yàn)證你的變送器設(shè)置的通訊格式、接線對(duì)不對(duì),是否能讀出數(shù)據(jù),這步很重要,如能讀出,說明設(shè)定沒問題,MODSCAN32軟件網(wǎng)站 有人發(fā)過可下; 5.例子是與4個(gè)從站通訊,若只讀一個(gè)站,程序修改一下,只掃描1個(gè)站即可。 |
|
|---|---|---|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
1、站號(hào),讀命令這都好理解。讀存儲(chǔ)器40005+40006=4個(gè)字節(jié)32位;按您說的是讀05和06存儲(chǔ)器,M0V H5 D212高位、MOV H6 D213低位,而不是只寫一個(gè)存儲(chǔ)器0005?(MOV H0 D212;MOV H5 D213) =====你這里有問題,我沒實(shí)物,你必須動(dòng)手驗(yàn)證;通常,40005,在軟件里是4+40001的,你要自己驗(yàn)證,樓上說的沒錯(cuò),每一家商廠都不一定相同;還有,讀命令03,可以讀連續(xù)多個(gè)寄存器,例如,要讀H4和H5這2個(gè)的數(shù)值,就這樣寫:01 03 00 04 00 02后面是CRC |
|
|---|---|---|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
是的,你還要一個(gè)RS232轉(zhuǎn)RS485的東東,淘寶有賣的,幾十塊一個(gè);然后,用電腦MOSDCAN32直接與儀表通訊 如果這邊都可以了,再寫PLC程序,就簡(jiǎn)單得多了,就不有考濾儀表這邊的事情. |
|
|---|---|---|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
選03,不是04; 通訊格式設(shè)定要與儀表相同,建議你設(shè)為MODBUS RTU 8N2;儀表設(shè)模式12, |
|
|---|---|---|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
除了通訊速率格式要完全相同之外,還要注意接線,正負(fù)不可接錯(cuò),錯(cuò)的話不可以通訊;儀表地址不可設(shè)為0,要設(shè)成0以外的地址,通常,0地址為上位機(jī) 軟件中的Device ID就是儀表地址 [ 此帖被anlyl2014在2019-07-11 12:47重新編輯 ] |
|
|---|---|---|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
看14樓;軟件設(shè)為03, ![]() [ 此帖被anlyl2014在2019-07-11 13:22重新編輯 ] |
|
|---|---|---|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
看你第二張圖,沒連線,如果通訊OK,不會(huì)有紅字出現(xiàn) 通訊OK的話,40005.40006就是你要讀出的數(shù), |
|
|---|---|---|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
![]() 要注意電腦COM口是否正確 軟件設(shè)置要跟儀表相同 連線正確,對(duì)應(yīng)的地址會(huì)出現(xiàn)數(shù)值 [ 此帖被anlyl2014在2019-07-13 10:12重新編輯 ] |
|
|---|---|---|
|
|
anlyl2014
大吉大利
級(jí)別: 網(wǎng)絡(luò)英雄
|
通訊端口的設(shè)置已經(jīng)改為,RTU,8位數(shù)據(jù),無校驗(yàn),2位停止;地址01,9600波特率======指的軟件還是儀表?這兩個(gè)要相同, 你儀表F06=12;MODBUS RTU;8N2 F07=1;地址為1; F08=9600;通訊速率 發(fā)送的信息;回傳信息先不管,連線,通訊OK的話,就不會(huì)有紅字警報(bào) 還有,看你之前發(fā)的圖,你儀表485A 485B接有兩條線,還接到哪里? 單獨(dú)接到RS232轉(zhuǎn)RS485,不要接到別處 ![]() [ 此帖被anlyl2014在2019-07-12 23:16重新編輯 ] |
|
|---|---|---|
|