FB12和FB13的配合問題
劉玉蓉
發(fā)布于2014-10-15 17:05
1670
0
標簽:
我用2套PLC做了個以太網(wǎng)彼此數(shù)據(jù)發(fā)送,在程序中我做了一個采集DONE和NDR信號的程序,可采集信號的數(shù)據(jù)記錄顯示,我這個通訊功能只完成過一次通信,沒找到原因,可能是FB12和FB13的使能順序問題吧,請幫我找找原因,另外我的發(fā)送數(shù)據(jù)區(qū)和接收數(shù)據(jù)區(qū)的字節(jié)數(shù)和內(nèi)部格局完全是一樣的。下面有大量我的程序圖,請幫下忙。
圖片說明: 1,總圖 2,兩個程序的接收和發(fā)送對比1 3,FB12和FB13使能配合圖 4,網(wǎng)絡設置圖 5,兩個程序的接收和發(fā)送對比 6,DB數(shù)據(jù)區(qū)對比1 7,DB數(shù)據(jù)區(qū)對比2
佳答案
其實,這些跟你的編程有關!
我當初就是按照例子自己編寫程序,測試發(fā)送成功的!
請參考以下文檔:
S7400與s7300之間的用于s7連接的通訊功能塊位于標準庫下的系統(tǒng)功能塊:Standard Libary-System Function Blocks-SFB14 GET--SFB15 PUT SFB12 BSEND--SFB13 BRCV這些指令來讀取相互之間的數(shù)據(jù)!具體的編程方法,組態(tài)方法,參數(shù)設定,請參考以下連接:
《PLCSIM仿真s7400之間的S7通訊》
https://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0366
關文檔:
、西門子S7-300和S7-400以太網(wǎng)通信視頻講座(中文):
https://www.chinakong.com/download/listdown.asp?id=6374
兩個S7-400PLC之間的以太網(wǎng)通信主要采用以下網(wǎng)絡協(xié)議:S通信、S5兼容通信(包括ISO傳輸協(xié)議、TCP、ISO_on_TCP、UDP)等。如果你的S7-400本身不帶以太網(wǎng)接口,就需要CP443-1以太網(wǎng)模塊。
S7 通信集成在每一個SIMATIC S7 的系統(tǒng)中,它獨立于各個網(wǎng)絡,可以應用于多種網(wǎng)絡(MPI、PROFIBUS、工業(yè)以太網(wǎng))。S7 通信通過不斷地重復接收數(shù)據(jù)來保證網(wǎng)絡報文的正確。如果兩個PLC-400都掛在以態(tài)網(wǎng)上,S7 通信需要調(diào)用功能塊SFB,大的通信數(shù)據(jù)可達64KB。系統(tǒng)功能塊有:SFB8/9(USEND/URCV)(無確認的高速數(shù)據(jù)傳輸,不慮通信接收方的通信處理時間,因而有可能覆蓋接收方的數(shù)據(jù))、SFB12/13(BSEND/BRCV)(保證數(shù)據(jù)安全性的數(shù)據(jù)傳輸,當接收方確認收到數(shù)據(jù)后,傳輸才完成)、SFB14/15(GET/PUT)(讀寫通信雙方的數(shù)據(jù)而無需對方編程)。如果在組態(tài)硬件S7屬性時選擇“Establish an active connection”(建立有效連接)時,即選擇雙邊通信時,需要在通信雙方都需要調(diào)用SFB12/13編程。如果選擇“One Way’”(單邊通信),只需在本地側CPU調(diào)用SFB14/15,即可向通信對方發(fā)送數(shù)據(jù)或讀取對方的數(shù)據(jù)。
在選擇S5兼容通信時,可以根據(jù)以太網(wǎng)通信模塊所支持的通信協(xié)議,選擇ISO傳輸協(xié)議、TCP、ISO_on_TCP、UDP中之一,在“Insert New Connection”(插入新連接(如ISO transport connection(ISO傳輸協(xié)議)),通過調(diào)用SEND/REVEICE功能塊(FC5 AG_SEND、FC6 AG_RECV)來實現(xiàn)傳輸數(shù)據(jù),該功能塊可以在打開一個塊時出現(xiàn)的LAD/STL/FBD編輯器中,選擇左邊New Network(新網(wǎng)絡)/Libraries(庫)/SIMATIC_NET_CP?CP400中可以找到。
參考資料:https://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=71275&cid=1029