leonhuang
級別: 略有小成
![]() |
描述:通訊讀寫(xiě)格式
圖片: ![]()
描述:儀表設定
圖片: ![]()
描述:儀表通訊方式設定
圖片: ![]()
描述:儀表數據存取地址
圖片: ![]()
描述:編寫(xiě)的程序1
圖片: ![]()
描述:編寫(xiě)的程序2
圖片: ![]() 不懂通訊的菜鳥(niǎo),請各位大佬教教我。 通訊格式我看了些資料,有基本的認識。但是在編寫(xiě)程序的過(guò)程中有一些不懂。 一、就編寫(xiě)程序是用8位還是16位即M8161的選擇。因為我T3儀表(圖片:儀表數據存取地址,功能地址40005,毛重;占兩個(gè)寄存器、32位,4字節有符號只讀)的寄存器是否影響位數與RS指令的編寫(xiě)? 二:編寫(xiě)數據格式,{RS D0 Kn D30 Kn},Kn的個(gè)數如何確定。如[MOV H1 D0] [MOV H3 D1] [MOV H5 D2] [MOV H2 D3] [MOV H核驗碼? D4] 那這樣是不是就5個(gè)。8位與16位數據格式,地址碼到校驗碼個(gè)數是否不一樣? 三、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位的編寫(xiě):[MOV H1 D0] [MOV H3 D1] [MOV H5 D2] [MOV H2 D3] 在第一點(diǎn)中說(shuō)的功能地址0005占兩個(gè)寄存器、共4個(gè)字節、32位;那數據個(gè)數這樣編寫(xiě)是不是就有問(wèn)題了? 16位的編寫(xiě):[MOV H1 D0] [MOV H3 D1] [MOV H5 D2] [MOV H2 D3] 三、CRC校驗如何編寫(xiě),我這個(gè)程序的CRC校驗碼是什么? 四、回傳數據的處理;貍骰貋(lái)的數據是放在D33、D34中,還是D33、D34、D35、D36中?[MOV D30 D50 K10 ] 如果是16位處理,那數據是放在D53與D54,那程序:[MOV D54 K4M10] [MOV D53 K4M26] [MOV K4M10 D100]最終數據存在D100、D101中? 這樣的理解是不是有問(wèn)題? [ 此帖被leonhuang在2019-07-04 14:06重新編輯 ] |
---|---|
|
anlyl2014
大吉大利
級別: 網(wǎng)絡(luò )英雄
![]() |
你可以參考我發(fā)的例子, 你有PDF格式的壓力表手冊的話(huà),就傳上來(lái)看看,貼圖看不清楚 |
|
---|---|---|
|
leonhuang
級別: 略有小成
![]() |
DS822-T3重量變送器PDF |
---|---|
|
leonhuang
級別: 略有小成
![]() |
我看了寫(xiě)的關(guān)于FX3U使用FX3U_485_BD與臺達變頻器通訊的實(shí)例。其中FX3U-MODBUS-RTU-TEST的程序里有CRC校驗的相關(guān)程序,學(xué)習了,若有問(wèn)題再請教 大俠 ![]() |
---|---|
|
leonhuang
級別: 略有小成
![]() |
自已寫(xiě)的程序,請大俠看一下哪兒有問(wèn)題 ![]() |
---|---|
|
anlyl2014
大吉大利
級別: 網(wǎng)絡(luò )英雄
![]() |
如果你用的是FX3U就照著(zhù)我的例子做,FX3U有CRC指令,程序相對簡(jiǎn)單 http://wap.lyf668.cn/job-gkaction-download-pid-tpc-tid-1666109-aid-232721.html |
|
---|---|---|
|
anlyl2014
大吉大利
級別: 網(wǎng)絡(luò )英雄
![]() |
注意一項: 1.通訊方式設為12;跟例子一模一樣了; 2.看你的手冊,40001和40002是凈重;在PLC程序的地址是:H0/H1;可以讀連續2個(gè)數的形式讀出再合并成32位數; 3.同理,40005和40006是毛重;在PLC程序的地址是:H4/H5 4.你先用MODSCAN32軟件,驗證你的變送器設置的通訊格式、接線(xiàn)對不對,是否能讀出數據,這步很重要,如能讀出,說(shuō)明設定沒(méi)問(wèn)題,MODSCAN32軟件網(wǎng)站 有人發(fā)過(guò)可下; 5.例子是與4個(gè)從站通訊,若只讀一個(gè)站,程序修改一下,只掃描1個(gè)站即可。 |
|
---|---|---|
|
leonhuang
級別: 略有小成
![]() |
嗯,我看了你的例子。有幾個(gè)問(wèn)題還是想不明白: 1、站號,讀命令這都好理解。讀存儲器40005+40006=4個(gè)字節32位;按您說(shuō)的是讀05和06存儲器,M0V H5 D212高位、MOV H6 D213低位,而不是只寫(xiě)一個(gè)存儲器0005?(MOV H0 D212;MOV H5 D213) 2、功能地址05,06前面都 已經(jīng)寫(xiě)好了,那接下來(lái)寫(xiě)讀取數據的個(gè)數就好了,那為什么還有一個(gè)MOV H0 D214數據處理的起始存儲器?而不是直接寫(xiě)個(gè)數,MOV H4 D214 ?我們用的是M8161,處理8位,那05與06是2個(gè)字4個(gè)字節32位,那就用H4? 3、傳回來(lái)的數據處理,從第幾個(gè)數據開(kāi)始?從D153開(kāi)始?我在PLC的軟元件/緩沖存儲器監視里看,數據D153-D162都是b0-b7在動(dòng)作,b8-bF都是0,那這說(shuō)明M8161在起做用。而且傳回來(lái)的數據D153-D162的b0-b7每個(gè)位都循環(huán)動(dòng)作,按說(shuō)我的儀表顯示是0,那相對應的數據里b0-b7連續四個(gè)字節就應都是0,沒(méi)有1才對的?(回頭我拍一點(diǎn)視頻看一下) 4、我的儀表總壓力為10000公斤,最小為1公斤,不需要浮點(diǎn)處理。只要數據轉換成十進(jìn)制的為就可以了 [ 此帖被leonhuang在2019-07-10 13:12重新編輯 ] |
---|---|
|
tingfenghu
級別: 工控俠客
![]() ![]() |
首先你用個(gè)USB轉485, 串口助手發(fā)送相應報文,看儀表返回的報文是否正確, Modbus地址各家并沒(méi)有統一,有些需要偏移一位,如40001,實(shí)際地址,是00H,00H,而有些是00H,01H, 直至返回報文數據正解, 用串口助手接收FX3U-485BD的發(fā)出報文, 是否是與上面串口助手發(fā)出的相同 檢查報文是否正解?程序作相對的調整. |
|
---|---|---|
|
anlyl2014
大吉大利
級別: 網(wǎng)絡(luò )英雄
![]() |
1、站號,讀命令這都好理解。讀存儲器40005+40006=4個(gè)字節32位;按您說(shuō)的是讀05和06存儲器,M0V H5 D212高位、MOV H6 D213低位,而不是只寫(xiě)一個(gè)存儲器0005?(MOV H0 D212;MOV H5 D213) =====你這里有問(wèn)題,我沒(méi)實(shí)物,你必須動(dòng)手驗證;通常,40005,在軟件里是4+40001的,你要自己驗證,樓上說(shuō)的沒(méi)錯,每一家商廠(chǎng)都不一定相同;還有,讀命令03,可以讀連續多個(gè)寄存器,例如,要讀H4和H5這2個(gè)的數值,就這樣寫(xiě):01 03 00 04 00 02后面是CRC |
|
---|---|---|
|
leonhuang
級別: 略有小成
![]() |
我沒(méi)有USB轉485的串口,可以用232連接電腦,232轉485的串口?測試是用電腦MOSDCAN發(fā)與PLC通訊,還是用電腦與我的儀表做測試? |
---|---|
|