




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、功能與樣例:通過TCP協議(利用FC5 “AG_SEND”和FC6“AG_RECV”) 傳送具有可變消息長度的數據顯示訂貨號問題:如何利用通訊功能FC5“AG_SEND”和FC6 “AG_RECV”,通 過TCP協議傳送具有可變消息長度的數據?解答:TCP協議的性能:當通過TCP傳送數據時,該傳送是基于數據流的形式。在這種情況下,不給出與消息長度、開 始和結束有關的信息。發(fā)送消息時,這并不是問題,因為發(fā)送者知道要傳送多少數據字節(jié)。然而,接收者無法分辨消息在數據流中的何處結束,下 一個消息在何處開始。因此,對于通過純TCP建立的鏈接只有兩個選項可選:1. 使用固定消息長度,也就是說,發(fā)送者和接收
2、者都使用預定義的數據長度。這意味著要始終明確定義消息限制。2. 使用可變消息長度。在這種情況下,接收端和發(fā)送端都需要更多的時間,因為在開始字節(jié)中必須輸入起始分隔符和要發(fā)送數據的數據長度。這樣,> 接收者就可以正確地解釋已接收的消息。下面的實例程序包含一個TCP連接,通過該連接,具有可變消息長度的數據可以利用FC5發(fā)送給一個站,并利用FC6接收。實例程序:通過TCP協議(利用FC5“AG_SEND”和FC6“AG_RECV”) 傳送具有可變消息長度的數據常規(guī)描述:STEP 7項目包括兩個S7-300站,它們均具有用于工業(yè)以太網通訊的CPU 315-2DP和CP 343-1。這兩個站之間的通
3、訊基礎是TCP連接。如果在NetPro中通過“右鍵單擊>對象屬性”打 開TCP連接屬性, 則可以查看通訊功能塊的塊參數“ID”。在調用FC5和FC6時,要注意該規(guī)范,以便可以通過TCP連接傳送數據。< /p>圖1:TCP連接的屬性為了利用TCP協議傳送數據,要傳送的數據必須具有指定的結構。消息必須包括起始分隔符(以便接收者可以識別消息從何處開始),數 據長度規(guī)范(定義接收緩沖區(qū))和數據本身。在此實例中,定義了消息的4個字節(jié)的起始分隔符(預置值為:0x11, 0x12, 0x13, 0x14)和一個S7串。該S7串包括兩個字節(jié)的長度信息和實際的數據串。 使用S7串可以傳送所有的
4、ASCII字符。圖2:消息的結構注意事項:該實例程序基于如圖2所示的消息結構,但也可以自行定義消息結構。如果希望使用不同的消息結構(例如,h 起始分隔符只有3個字節(jié)),則可以依照用戶的特定需求 ,簡單地改變該實例程序。因此,希望利用FC5(AG_SEND)傳送的數據,必須在數據塊(DB220)中按照預定義的結構準備好。隨后,該 數據可以利用FC6(AG_RECV)按如下步驟接收:1. 接收起始分隔符(逐字節(jié)地)并識別消息2. 接收S7串的長度信息3. 接收數據STEP 7程序描述STEP 7程序包括如下塊:OB100,OB1,FB100,DB100(FB100的背景DB),F B101(DB1
5、00中的多重背景),DB220,DB221,FC5,FC6。· OB100OB100是啟動OB,當CPU重啟(暖重啟)時,運行該OB。在此OB中,發(fā)送的首個通訊觸發(fā)器 的版本為M1.0和M0.1。圖3:OB100· OB1周期性調用OB1。該OB包括具有M1.0和M0.1的FB100(背景OB:OB100)的調用。一 旦運行FB100,則復位M1.0。-圖4: OB1· FB100:在OB1周期中調用FB100。該FB包括FC5“AG_SEND”和FB101“ AG_RECV_VARIABLE”的調用。發(fā)送塊FC5“AG_SEND”當時鐘標記M10.7為上升沿,且
6、未置位“SND_BUSY”時,輸入參數“ACT”h 可以激活FC5。當作業(yè)運行時,置位“SND_BUSY”,并且,在此期間不能觸發(fā)任何功能。該功能塊特別重要,因為該功能是異步的,且占有多個周期。如果對該功能持續(xù)激活,而不是等待其中止,則會導致通訊過載。輸入參數“ID”和“LADDR”只能從NetPro(圖1)中的TCP連接屬性對話框中獲取。在“SEND”參數中,需 要指定要發(fā)送數據的地址(P#DB220.DBX0.0 BYTE 48)。在“LEN”參數中,輸入要發(fā)送的字節(jié)數(48)。輸出參數“ DONE”,“ERROR”和“STATUS”對于作業(yè)評估是必需的,而且只在同一個周期內有效。圖5:F
7、B100調用FC5如果塊運行無錯誤,則復位“SND_BUSY”,并再次調用FC5。如果該塊因出錯而終止,則保存塊的狀態(tài)字用于錯誤分析,同樣復位“ SND_BUSY”。圖6:FB100FC5調用的評估接收塊FB101“AG_RECV_VARIABLE”當調用FB101“AG_RECV_VARIABLE”時,必須從NetPro(圖1)中的連接屬性對話框中獲取參數“ID”和“LADDR”h 。在“RECV_BUF”中, 需要指定要接收數據的存儲位置(P#DB221.DBX0.0 BYTE50)。輸出參數“NDR”,“ ERROR”和“STATUS”對于作業(yè)評估是必需的,而且只在同一個周期內有效。圖7
8、:FB100調用FB101如果塊運行無錯誤,則保存接收到的數據長度。如果該塊因出錯而終止,則保存塊的狀態(tài)字用于錯誤分析。圖8:FB100 FB101調用的評估· FB101(“AG_RECV_VARIABLE”):狀態(tài)機:通過變量“STATE_CNT”來定義FB101中程序的輸入點。 根據變量“STATE_CNT”的狀態(tài),跳 過與程序的進一步的處理相關的程序段。按照“STATE_CNTP”的程序處理:·"STATE_CNT"描述0已收到起始分隔符的第一個字節(jié)(從NW9 跳至 NW13)1已收到起始分隔符的第二個字節(jié)(從NW10跳至NW14)2已收到起始分
9、隔符的第三個字節(jié)(從NW11跳至NW15)3已收到起始分隔符的第四個字節(jié)(從NW12跳至NW16)4已識別起始分隔符。正在接收數據信息 (從NW3跳至NW17)5已創(chuàng)建接收緩沖區(qū)且數據已接收(從NW4跳至NW20)··接收起始分隔符(逐字節(jié))并識別消息(程序段516)使用FC6“AG_RECV”,逐字節(jié)地接收起始分隔符(4 字節(jié))。·當調用FC6“AG_RECV”時,參數“ID” 和“LADDR”來自FB101的輸入參數。在“RECV”中,需 要指定已接收字節(jié)的存儲位置(SD緩沖區(qū):字節(jié)變量)。輸出參數“NDR”,“ERROR”和“STATUS”對于作業(yè)
10、 評估是必需的,而 且只在同一個周期內有效。·如果塊運行無錯誤,則保存接收的字節(jié),用于進一步的處理。如果該塊因出錯而終止,則保存塊的狀態(tài)字用于錯誤分析。·已接收字節(jié)后,檢驗已定義的起始信息。(Byte0 = 11;Byte1 = 12;Byte2 = 13;Byte3 = 14)。< /p>·圖 9:通過起始分隔符識別消息接收S7串的長度信息(程序段3,1720)如果已接收的信息被識別為起始分隔符,那么利用FC6“AG_RECV”接收S7串的長度信息(兩個字節(jié))。當調用FC6“AG_RECV”時,參數“ID” 和“LADDR”來自FB101的輸入參數。
11、在“RECV”中,需 要指定兩個長度信息字節(jié)的存儲位置(VAR_LEN:由兩個字節(jié)構成)。輸出參數“NDR”,“ERROR”和“STATUS”對于作業(yè) 評估是必需的,而且只在同一個周期內有效。如果塊運行無錯誤,則已接收數據的實際長度用于接收緩沖區(qū)(ANY指針)。如果該塊因出錯而終止,則 塊的狀態(tài)字作為FB101的輸出參數顯示。 圖10:接收長度信息 在創(chuàng)建接收緩沖區(qū)(ANY指針)時,有關串(VAR_LEN.ACT_LEN)的實際長度的信息是必需的。在此,當調用FB101時,使 用數據的實際長度來檢驗已指定的接收緩沖區(qū)(ANY指針),并將其存儲在臨時的ANY指針(
12、VAR_BUF)。圖11:創(chuàng)建接收緩沖區(qū)接收數據(程序段4,2123)隨后,利用FC6接收數據。當調用FC6“AG_RECV”時,參數“ID” 和“LADDR”來自FB101的輸入參數。在“RECV”中,需 要指定數據的存儲位置(VAR_BUF:臨時ANY指針)。輸出參數“NDR”,“ERROR”和“STATUS”對于作業(yè) 評估是必需的,而 且只在同一個周期內有效。如果塊運行無錯誤,則保存已接收數據的長度,并將其作為輸出參數發(fā)送給FB101。如果該塊因出錯而終止, 則塊的狀態(tài)字作為FB101的輸出參數顯示。圖12:接收數據· DB220:與FC5一起使用的數據結構位于DB220。圖13:DB220發(fā)送數據結構· DB221:與FC6一起接收的數據存儲在DB221。該下載包括已描述的實例程序,通 過STEP 7 V5.3和SIMATIC NET V6.2創(chuàng)建。 T_cp_data.exe將“Tcp_data.exe”文件復制到一個單獨的目錄中,然后通過雙擊來啟動該文件。STEP 7項
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高科技新材料在多孔陶瓷過濾膜行業(yè)的發(fā)展前景預測
- 安徽審計職業(yè)學院《大學職業(yè)發(fā)展與就業(yè)指導3》2023-2024學年第一學期期末試卷
- 云南中醫(yī)藥大學《中國古代文學名著導讀》2023-2024學年第一學期期末試卷
- 重慶大學《大學生心理健康教育與輔導》2023-2024學年第一學期期末試卷
- 楚雄師范學院《系統(tǒng)解剖學D》2023-2024學年第一學期期末試卷
- 家長公開課活動方案
- 小學發(fā)明活動方案
- 客戶漢服活動策劃方案
- 家庭節(jié)活動方案
- 家具公司市場策劃方案
- 2024-2025學年人教版一年級下數學期末試卷(含答案)
- 2025山西萬家寨水務控股集團所屬企業(yè)校園招聘82人筆試參考題庫附帶答案詳解
- 中國當代文學專題-003-國開機考復習資料
- 《房屋面積測算技術規(guī)程》DGJ32TJ131-2011
- 管道無損檢測施工專項方案
- 酒店工程部考核表
- 槽鋼樁支護施工方案
- 土石壩剖面圖繪制12.28
- 水利水電工程防滲墻工程質量檢測
- 工程塑料 第六章聚甲醛
- YY_T 0681.2-2010無菌醫(yī)療器械包裝試驗方法 第2部分:軟性屏障材料的密封強度
評論
0/150
提交評論