sfb8和sfb9
劉玉蓉
發(fā)布于2014-11-04 17:56
2
0
標(biāo)簽:
初學(xué)400PLC,想請(qǐng)問下SFB8和SFB9中的R-ID是不是只要兩個(gè)塊的數(shù)據(jù)是一樣的就可以了,可以是任何數(shù)。比如SFB8是X,而SFB9也是X就可以???2;為什么塊中的RD和SD都沒有指定數(shù)據(jù)的長(zhǎng)度了,它寫成的是這樣;P#DB18.DBX36.0那我怎樣知道這個(gè)傳輸數(shù)據(jù)的長(zhǎng)度了。??我看別的SFB13就是這樣寫的P#DB18.DBX36.0 BYTE20.??
佳答案
首先SFB8和SFB9是用于S7-400以太網(wǎng)通信時(shí)通過調(diào)用系統(tǒng)功能塊來實(shí)現(xiàn)S7通信,它們是無確認(rèn)的高速數(shù)據(jù)傳輸,不考慮通信接收方通信處理時(shí)間,因而有可能會(huì)覆蓋饑接收方都數(shù)據(jù);
SFB8和SFB9的使用要看你在組態(tài)時(shí)S7-400PLC之間是選擇單邊通信還是雙邊通信。在回答你的問題之前,先來了解幾個(gè)概念:R_ID是連接號(hào),相同連接號(hào)的系統(tǒng)功能塊SFB互相對(duì)應(yīng)發(fā)送/接收數(shù)據(jù);SFB8是發(fā)送系統(tǒng)功能塊,而SFB9是接收系統(tǒng)功能塊,它們兩個(gè)R_ID是沒有聯(lián)系的;如果選擇雙邊通信,一方SFB8(發(fā)送方)對(duì)應(yīng)于另一方的SFB9(接收方),此兩者的R_ID必須一致,因?yàn)橄嗤B接號(hào)的系統(tǒng)功能塊互相對(duì)應(yīng)發(fā)送和接收數(shù)據(jù),同理一方SFB9(接收方)對(duì)應(yīng)于另一方的SFB8(發(fā)送方),此兩者的R_ID必須一致;如果是單邊通信,只須在通信的一方編程,R_ID你選擇何種連接號(hào)是沒有關(guān)系的。所以R_ID只對(duì)雙邊通信時(shí)編程時(shí)調(diào)用SFB8和SFB9時(shí)才有意義。
S7 通信塊的通信數(shù)據(jù)大為64KB,發(fā)送塊SFB8的SD_1和接收塊SFB9的 RD_1必須指定發(fā)送/接收數(shù)據(jù)區(qū),包括數(shù)據(jù)的字節(jié)數(shù),如SD_1: P#DB1.DBX0.0 BYTE 100;另外SFB8中的LEN為實(shí)際發(fā)送數(shù)據(jù)的長(zhǎng)度;而SFB9中的LEN為實(shí)際接收到的數(shù)據(jù)長(zhǎng)度。