S7-200與希望森蘭SB200變頻器做Modbus通訊的問(wèn)題?
劉玉蓉
發(fā)布于2014-11-24 17:33
12
0
標(biāo)簽:
基本配置:
CPU是226,變頻器SB200,通訊參數(shù)設(shè)定波特率9600,1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,無(wú)校驗(yàn)。
故障現(xiàn)象:
讀指令間歇性的報(bào)03錯(cuò)誤,通訊超時(shí),讀取的數(shù)據(jù)一直未零。
問(wèn)題1:寄存器地址應(yīng)該怎么寫(xiě)?
變頻器的寄存器地址是四位16進(jìn)制地址,PLC的Mbus_MSG指令要求5位十進(jìn)制地址。變頻器功率參數(shù)的地址為320DH,轉(zhuǎn)成十進(jìn)制是12813.Mbus_MSG指令中這個(gè)地址應(yīng)該咋寫(xiě)呢?
參考附件圖片里的寄存器特點(diǎn)。
問(wèn)題2.為啥老是通訊不上
我用的支持中心下載的示例程序,還是不行,程序段如下:
TITLE=程序注釋: Modbus 主站讀寫(xiě)程序
//
// 注意:1. Modbus RTU主站功能是通過(guò)指令庫(kù)中預(yù)先編好的程序功能塊實(shí)現(xiàn)的,該庫(kù)只針對(duì)Port 0口有效
// 2. Modbus RTU主站使用了一些用戶中斷,在用戶程序中不能禁止中斷
// 3. 該例程訪問(wèn)的為一個(gè)從站,若訪問(wèn)不同的從站,可通過(guò)改變從站地址來(lái)實(shí)現(xiàn)。
//
Network 1
// 掃秒周期, 復(fù)位各標(biāo)志位和起始位
LD SM0.1
R M2.0, 8
R M4.0, 8
R M0.0, 2
Network 2
// Modbus 主站初始化完成后, 啟動(dòng)讀寫(xiě)指令
LD M0.0
EU
S M0.1, 1
Network 3 // 網(wǎng)絡(luò)標(biāo)題
LD SM0.0
= L60.0
LD SM0.0
= L63.7
LD L60.0
CALL SBR1, L63.7, 9600, 0, 1000, M0.0, MB1
Network 4
LD M0.1
O M2.3
= L60.0
LD M0.1
EU
LD M2.3
EU
OLD
= L63.7
LD L60.0
CALL SBR2, L63.7, 1, 0, 412814, 1, &VB1500, M2.1, MB3
Network 5
// 讀取從站保持寄存器的數(shù)據(jù)完成,復(fù)位請(qǐng)求
LD M2.1
R M2.3, 1
R M0.1, 1
Network 6
// 讀取從站輸入點(diǎn)
LD M2.1
= L60.0
LD M2.1
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 1, 0, 412824, 2, &VB2000, M2.2, MB4
Network 7
// 讀取從站輸入點(diǎn)完成,復(fù)位請(qǐng)求
LD M2.2
R M2.1, 1
Network 8
// 寫(xiě)從站實(shí)際輸出值
LD M2.2
= L60.0
LD M2.2
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 1, 1, 12801, 2, &VB3000, M2.3, MB5
Network 9
// 寫(xiě)從站實(shí)際輸出值完成,復(fù)位請(qǐng)求
LD M2.3
R M2.2, 1
問(wèn)題補(bǔ)充:
關(guān)于地址的講法不太確切,用哪種方式寫(xiě)地址的話,編譯通不過(guò),提示指令操作數(shù)非法!
繼續(xù)求解……
圖片說(shuō)明: 1,地址參數(shù)編址方法 2,通訊指令變量表
佳答案
你的參數(shù)表里
3200H,對(duì)應(yīng)地址為43201或43200你自己試看看吧,其他的都是順序就是了,指令里寫(xiě)w#16#43200
還有你這樣也看不出什么來(lái),你用個(gè)串口監(jiān)視器監(jiān)控下看看有沒(méi)有發(fā)出正確的命令,還有你的485線可能需要交叉互換,你要換下看看。例子程序本身沒(méi)有問(wèn)題,看看線路和變頻設(shè)置對(duì)不對(duì)。