加入收藏 在線留言 聯系我們
            關注微信
            手機掃一掃 立刻聯系商家
            全國服務熱線17838383235
            公司新聞
            西門子S7-200 SMART PLC之間如何通過指令實現S7通訊
            發布時間: 2024-04-14 10:24 更新時間: 2024-10-30 14:14

            導讀S7-200 SMART CPU 固件版本V2.0 及以上版本的CPU 可實現CPU、編程設備和HMI(觸摸屏)之間的多種通信:CPU與編程設備之間的數據交換。CPU與HMI之間的數據交換。CPU與其他S7-200 SMART CPU之間的PUT/GET通信。S7-200 SMART CPU 以太網連接資源如下:1個連接用于與STEP7 Micro/Win SMART軟件的通信。8個連接用于CPU與HMI之間的通信。8個連接用于CPU與其他S7-200 SMART CPU之間的PUT/GET主動連接8個連接用于CPU與其他S7-200 SMART CPU之間的PUT/GET被動連接CPU1 (192.168.2.1 ) 把VB100~107數據傳輸到CPU2 (192.168.2.2 ) VB0~7CPU1 (192.168.2.1 ) 把VB100~107數據讀取到CPU2 (192.168.2.2 ) VB0~7一、PUT/GET 指令格式S7-200 SMART CPU提供了PUT/GET指令,用于S7-200 SMART CPU之間的以太網通信(PUT/GET指令格式見 表 1)。PUT/GET指令只需要在主動建立連接的CPU 中調用執行,被動建立連接的CPU不需要進行通信編程。PUT/GET指令中TABLE參數用于定義遠程CPU的IP地址、本地CPU和遠程CPU的數據區域以及通信長度(TABLE參數定義見 表 2)。表1 PUT和GET指令LAD/FBDSTL描述PUT TABLEPUT 指令啟動以太網端口上的通信操作,將數據寫入遠程設備。PUT 指令可向遠程設備寫入多 212 個字節的數據。GET TABLEGET 指令啟動以太網端口上的通信操作,從遠程設備獲取數據。GET 指令可從遠程設備讀取多 222 個字節的數據。表2 PUT和GET指令的TABLE參數定義字節偏移量Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 00D1A2E30錯誤代碼41 遠程 CPU的 IP地址2345預留(必須設置為0)6預留(必須設置為0)7 指向遠程 CPU 通信數據區域的地址指針(允許數據區域包括:I、Q、M、V)891011通信數據長度512 指向本地 CPU 通信數據區域的地址指針(允許數據區域包括:I、Q、M、V)1314151 D :通信完成標志位,通信已經成功完成或者通信發生錯誤。2 A :通信已經激活標志位。3 E :通信發生錯誤,錯誤原因需要查詢 錯誤代碼4。4 錯誤代碼 :見表 3 PUT 和GET 指令TABLE參數的錯誤代碼。5 通信數據長度 :需要訪問遠程 CPU通信數據的字節個數,PUT指令可向遠程設備寫入多212 個字節的數據,GET指令可從遠程設備讀取多222 個字節的數據。表3 PUT 和GET指令TABLE參數的錯誤代碼錯誤代碼描述0通信無錯誤1PUT/GET TABLE參數表中存在非法參數:本地CPU通信區域不包括 I、Q、M 或 V。本地CPU不足以提供請求的數據長度。對于 GET指令數據長度為零或大于 222 字節;對于 PUT指令數據長度大于 212 字節。遠程CPU通信區域不包括 I、Q、M 或 V。遠程CPU 的IP 地址是非法的 (0.0.0.0)。遠程CPU 的IP 地址為廣播地址或組播地址。遠程CPU 的IP 地址與本地 CPU的IP 地址相同遠程CPU 的IP 地址位于不同的子網。2同一時刻處于激活狀態的 PUT/GET 指令過多(僅允許 16 個)3無可以連接資源,當前所有的連接都在處理未完成的數據請求(S7-200 SAMRT CPU主動連接資源數為 8 個)。4從遠程 CPU 返回的錯誤:請求或發送的數據過多。STOP 模式下不允許對 Q 存儲器執行寫入操作。存儲區處于寫保護狀態5與遠程 CPU 之間無可用連接:遠程 CPU 無可用的被動連接資源(S7-200 SMART CPU被動連接資源數為 8 個)。與遠程 CPU 之間的連接丟失(遠程 CPU 斷電或者物理斷開)。6-9預留二、通信資源數量S7-200 SMART CPU 以太網端口含有8 個PUT/GET主動連接資源和 8個PUT/GET被動連接資源。例如:CPU1調用 PUT/GET指令與 CPU2 ~ CPU9 建立8主動連接的同時,可以與CPU10 ~ CPU17 建立8被動連接(CPU10 ~ CPU17 調用 PUT/GET指令),這樣的話CPU1 可以同時與16臺CPU(CPU2 ~ CPU17)建立連接。關于主動連接資源和被動連接資源的詳細解釋如下:1.主動連接資源和被動連接資源調用 PUT/GET指令的CPU占用主動連接資源數;相應的遠程CPU 占用被動連接資源。2.8 個PUT/GET 主動連接資源S7-200 SMART CPU 程序中可以包含遠多于8個PUT/GET指令的調用,但是在同一時刻多只能激活8 個PUT/GET 連接資源。同一時刻對同一個遠程CPU 的多個PUT/GET 指令的調用,只會占用本地CPU的一個主動連接資源和遠程CPU的一個被動連接資源。本地CPU 與遠程CPU之間只會建立一條連接通道,同一時刻觸發的多個PUT/GET 指令將會在這條連接通道上順序執行。同一時刻多能對8個不同IP 地址的遠程CPU 進行PUT/GET 指令的調用,第9個 遠程CPU的PUT/GET指令調用將報錯,無可用連接資源。已經成功建立的連接將被保持,直到遠程CPU斷電或者物理斷開。3.8 個PUT/GET 被動連接資源S7-200 SMART CPU 調用PUT/GET指令,執行主動連接的同時也可以被動地被其他遠程CPU 進行通信讀寫。S7-200 SMART多可以與被8個不同IP 地址的遠程CPU 進行 建立被動連接。已經成功建立的連接將被保持,直到遠程CPU斷電或者物理斷開。三、指令編程舉例在下面的例子中,CPU1為主動端,其 IP地址為192.168.0.110,調用PUT/GET 指令;CPU2為被動端,其 IP地址為192.168.0.101,不需調用PUT/GET 指令,網絡配置見圖1 。通信任務是把CPU1 的實時時鐘信息寫入CPU2 中,把CPU2中的實時時鐘信息讀寫到CPU1 中。圖1 CPU通信網絡配置圖CPU1 主動端編程CPU1 主程序中包含讀取CPU 實時時鐘、初始化PUT/ GET 指令的TABLE 參數表、調用PUT 指令和GET 指令等。網絡1:定義PUT 指令TABLE 參數表,用于將CPU1 的VB2000 ~ VB2003 傳輸到遠程CPU2 的VB0 ~ VB3。圖2 定義PUT 指令TABLE 參數表a.定義通信狀態字節b.定義 CPU2 IP 地址c.定義 CPU2 的通信區域 ,從 VB2000 地址開始d.定義通信數據長度e.定義 CPU1 的通信區域,從 VB0 地址開始網絡2:定義GET指令TABLE參數表,用于將遠程CPU2的VB2000 ~ VB2003 讀取到CPU1的VB0 ~ VB3。圖3定義GET指令TABLE參數表a.定義通信狀態字節b.定義 CPU2 IP 地址c.定義 CPU2 的通信區域 ,從 VB0地址開始d.定義通信數據長度e.定義 CPU1 的通信區域,從 VB2000 地址開始網絡3:調用PUT指令和GET指令。圖4調用PUT指令和GET指令四、程序調試CPU1 為主動端,其 IP地址為192.168.0.110,調用PUT/GET 指令;CPU2為被動端,其 IP地址為192.168.0.101,不需調用PUT/GET 指令。程序下載到CPU中進行測試,監控狀態表,數據發送與接收成功。圖5數據發送與接收總結以上就是整個西門子S7-200 SMART PLC之間通過指令實現S7通訊的步驟,文章內容如有錯誤請聯系我們。

            聯系方式

            • 電  話:17838383235
            • 經理:徐嘉泉
            • 手  機:17838383235
            • 微  信:17838383235