西門子電纜6ES7902-3AB00-0AA0
程序編程
可以通過SFB/FB 14 "GET",從遠程CPU中讀取數據。
S7-300:在REQ的上升沿處讀取數據。在REQ的每個上升沿處傳送參數ID、ADDR_1和RD_1。在每個作業結束之后,可以分配新數值給ID、ADDR_1和RD_1參數。
S7-400:在控制輸入REQ的上升沿處啟動SFB。在此過程中,將要讀取的區域的相關指針(ADDR_i)發送到伙伴CPU。遠程伙伴返回此數據。在 下一個SFB/FB調用處,已接收的數據被復制到組態的接收區(RD_i)中。必須要確保通過參數ADDR_i和RD_i定義的區域在長度和數據類型方面 要相互匹配。
通過狀態參數NDR數值為1來指示此作業已完成。只有在前一個作業已經完成之后,才能重新激活讀作業。遠程CPU可以處于RUN或STOP工作狀態。如果 正在讀取數據時發生訪問故障,或如果數據類型檢查過程中出錯,則出錯和警告信息將通過ERROR和STATUS輸出表示。
通過使用SFB/FB 15 "PUT",可以將數據寫入到遠程CPU。
S7-300:在REQ的上升沿處發送數據。在REQ的每個上升沿處傳送參數ID、ADDR_1和SD_1。在每個作業結束之后,可以給ID、ADDR_1和SD_1參數分配新數值。
S7-400:在控制輸入REQ的上升沿處啟動SFB。在此過程中,將指向要寫入數據的區域(ADDR_i)的指針和數據(SD_i)發送到伙伴CPU。 遠程伙伴將所需要的數據保存在隨數據一起提供的地址下面,并返回一個執行確認。必須要確保通過參數ADDR_i和SD_i定義的區域在編號、長度和數據類 型方面相互匹配。
如果沒有產生任何錯誤,則在下一個SFB/FB調用時,通過狀態參數DONE來指示,其數值為1。只有在最后一個作業完成之后,才能再次激活寫作業。遠程 CPU可以處于RUN或STOP模式。如果正在寫入數據時發生訪問故障,或如果執行檢查過程中出錯,則出錯和警告信息將通過ERROR和STATUS輸出 表示。
打開SIMATIC 315 PN-1的OB1,在OB1中依次調用FB14,FB15如圖12、圖13所示:
圖12 FB14調用
表2.FB14參數說明 :
參數 | 描述 | 數據類型 | 存儲區 | 描述 |
REQ | bbbbb | BOOL | I、Q、M、D、L | 上升沿觸發調用功能塊 |
ID | bbbbb | WORD | M、D、常數 | 地址參數ID |
NDR | OUTPUT | BOOL | I、Q、M、D、L | 為1時,接收數據成功 |
ERROR | OUTPUT | BOOL | I、Q、M、D、L | 接收到新數據 |
STATUS | OUTPUT | WORD | I、Q、M、D、L | 故障代碼 |
S7-300: | IN_OUT | ANY | M、D I、Q、M、D、 | 從S7-200 SMART的數據地址中讀取數據;V區數據對應DB1。 |
S7-300: | IN_OUT | ANY | S7-300:M、D | 本站接收數據地址 |
下載完成后,可點擊“激活連接狀態”按鈕,查看連接狀態,如下圖所示,則表示組態的連接已經成功建立。
圖11.連接已建立
2.11 如果出現如下圖所示的情況,則說明連接沒有建立,請檢查網線的連接、IP地址等。
圖12.連接未建立
3、編寫PLC程序,調用通訊塊
3.1 組態連接建立成功后,需要調用通訊功能塊PUT和GET進行數據交換。S7-300用于通訊連接的功能塊位于標準庫中,如下圖所示:
圖13.PUT GET指令位置
3.2調用PUT指令,本例中本地S7-300 CPU將DB10.DBB0開始的10個字節寫入通信伙伴CPU 的DB11.DBB0開始的10個字節中。
圖14.PUT指令
參數 | 說明 |
REQ | 上升沿觸發,一次上升沿發送一次數據 |
ID | 連接ID(參看圖8) |
ADDR_1 | 指向伙伴CPU接收地址區域 |
SD_1 | 指向本地CPU發送地址區域 |
DONE | 發送完成(上升沿) |
ERROR | 有故障發生(上升沿) |
STATUS | 故障代碼 |
表 3 PUT管腳說明
3.3調用GET指令,本例中將通信伙伴CPU的DB20.DBB0開始的10個字節讀入到本地S7-300 CPU的DB21.DBB0開始的10個字節中。
圖15.GET指令
參數 | 說明 |
REQ | 上升沿觸發,一次上升沿讀取一次數據 |
ID | 連接ID(參看圖8 |
ADDR_1 | 指向伙伴CPU發送地址區域 |
RD_1 | 指向本地CPU接收地址區域 |
DONE | 接收完成(上升沿) |
ERROR | 有故障發生(上升沿) |
STATUS | 故障代碼 |
表 4 GET管腳說明
3.4 S7-300 CPU做S7通訊的客戶端時,伙伴CPU無需組態編程,準備好相應的數據區即可,如本例中的DB10和DB20。如果伙伴方是S7-1200(固件版本V4.0以上)或是S7-1500 CPU,需要在CPU屬性的連接機制中勾選"允許來自遠程對象的PUT/GET通信訪問",如下圖所示:
免責聲明
- 凡本網注明“來源:化工儀器網”的所有作品,均為浙江興旺寶明通網絡有限公司-化工儀器網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:化工儀器網”。違反上述聲明者,本網將追究其相關法律責任。
- 本網轉載并注明自其他來源(非化工儀器網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。