<object id="ayu7o"></object>

      <object id="ayu7o"></object>

    1. <menuitem id="ayu7o"></menuitem>
      <object id="ayu7o"></object>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684
      公司新聞
      西門子實例講解如何實現s7-200 smart cpu 與 cpu之間通訊
      發布時間: 2024-05-23 15:30 更新時間: 2024-12-02 08:00
      通過向導實現s7-200 SMART CPU之間S7通信

      上期介紹了西門子S7-200 samrt 串口通訊中Modbus的應用,實際上s7-200 smart 串口還支持USS通訊(西門子驅動專用通訊協議)、自由口通訊協議,但由于都不太常用,就不再過多介紹,有需要的朋友可以加小編微信私聊,本期開始分享s7-200 smart 的以太網通訊,感謝大家支持;

      圖片003656

      西門子S7通信簡介

      S7通信

      西門子S7通訊是一種用于自動化控制系統的開放式網絡協議。它旨在提供高效、可靠和安全的設備之間通信方式。S7通訊支持各種類型的網絡拓撲結構和連接方式,例如以太網、Profibus和Profinet等。此外,它還支持多種通訊協議和數據格式,包括二進制、ASCII和BMP等。通過S7通訊,不同廠商生產的設備可以相互通信,并實現協同工作。這有助于提高生產效率、降低成本,并促進自動化控制系統的智能化發展。

      S7連接

      S7連接是指建立在西門子S7通訊協議基礎上的設備之間的互聯。它可以通過各種接口(如以太網、串行口等)實現,使不同類型的設備(例如工控機、PLC、觸摸屏等)能夠相互通信和交換數據。在S7連接中,使用了特定的網絡拓撲結構,例如Master-Slave或Peer-to-Peer等。這些拓撲結構可以根據實際應用需求進行調整,以滿足不同場景下對系統效率、可靠性和安全性的要求。

      單邊通訊

      在S7連接中,多使用單邊通訊(即PUT/GET)實現CPU與CPU之間數據通訊。單邊通訊顧名思義就是指只有一端發起的通訊,其它CPU程序無需做任何處理。這種通訊方式也被稱為"主從通訊"或"讀寫通訊"。在單邊通訊中,其中一臺設備作為主站(Master),而另一臺設備則作為從站(Slave)。主站負責向從站發送指令或數據,而從站則根據主站的要求進行操作或返回數據。單邊通訊具有以下優點:

    2. 簡單易用:結構簡單、操作便捷,適合于低功耗和低帶寬的場景。
    3. 高效穩定:主站控制從站工作,可以避免多臺設備之間的干擾和沖突,保證通訊穩定性和效率。
    4. 安全可靠:單向數據流使得主站更容易對從站進行控制和管理,有助于減少系統故障和安全風險。
    5. S7-200 SMART CPU之間的以太網通信

      S7-200 SMART CPU 固件版本 V2.0 及以上版本的 CPU 可實現CPU、編程設備和HMI(觸摸屏)之間的多種通信:

    6. CPU與編程設備之間的數據交換。
    7. CPU與HMI之間的數據交換。
    8. CPU與其他S7-200 SMART CPU之間的PUT/GET通信。
    9. CPU與其它S7系列(s7-1200,s7-300,s7-1500)PLC之間的PUT/GET通信。
    10. S7-200 SMART CPU 以太網連接資源如下:

    11. 1個連接用于與STEP7 Micro/Win SMART軟件的通信。
    12. 8個連接用于CPU與HMI之間的通信。
    13. 8個連接用于CPU與其他S7-200 SMART CPU之間的PUT/GET主動連接
    14. 8個連接用于CPU與其他S7-200 SMART  CPU之間的PUT/GET被動連接
    15. 注:S7-200 SMART 在 V2.5 版本(硬件和軟件)增加標準型 CPU 支持 PROFINET IO  智能設備的功能。后期會為大家分享學習如何使用s7-200 samrt 作為IO設備和智能設備

      通信資源數量

      PLC的通訊能力與該PLC的通訊鏈接資源數有關,鏈接資源越多,通訊能力就越強;

      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. 主動連接資源和被動連接資源
      2. 調用 PUT/GET 指令的CPU 占用主動連接資源數;相應的遠程 CPU 占用被動連接資源。
      3. 8 個PUT/GET 主動連接資源
      4. S7-200 SMART CPU 程序中可以包含遠多于 8個PUT/GET 指令的調用,但是在同一時刻Zui多只能激活 8 個 PUT/GET 連接資源
      5. 同一時刻對同一個遠程 CPU 的多個 PUT/GET 指令的調用,只會占用本地 CPU的一個主動連接資源和遠程 CPU的一個被動連接資源。本地 CPU  與遠程 CPU之間只會建立一條連接通道,同一時刻觸發的多個 PUT/GET 指令將會在這條連接通道上順序執行。
      6. 同一時刻Zui多能對8個不同 IP 地址的遠程 CPU 進行 PUT/GET 指令的調用,第9個 遠程CPU的PUT/GET  指令調用將報錯,無可用連接資源。已經成功建立的連接將被保持,直到遠程 CPU斷電或者物理斷開。
      7. 8 個PUT/GET 被動連接資源
      8. S7-200 SMART CPU 調用 PUT/GET 指令,執行主動連接的同時也可以被動地被其他遠程 CPU 進行通信讀寫。
      9. S7-200 SMARTZui多可以與被8個不同 IP 地址的遠程 CPU 進行 建立被動連接。已經成功建立的連接將被保持,直到遠程  CPU斷電或者物理斷開。
      使用向導完成CPU與CPU之間通訊步驟

      通過S7通信實現CPU與CPU之間通訊,西門子提供了PUT/GET編程指令(通過指令&參數完成,有興趣朋友可以學習學習,參數理解比較困難,本期不做過多介紹),同時也可以使用 PUT/GET 向導以簡化編程步驟。該向導Zui多允許組態 16 項獨立 PUT/GET 操作,并生成代碼塊來協調這些操作。

      在下面的例子中,CPU1 為主動端,其 IP 地址為192.168.2.100,調用 PUT/GET 指令;CPU2 為被動端,其 IP  地址為192.168.2.101,不需調用 PUT/GET 指令。通信任務是把 CPU1 的實時時鐘信息寫入 CPU2 中,把CPU2  中的實時時鐘信息讀寫到 CPU1 中。操作步驟如下:

      圖片image-20240320105435615

      1. STEP 7 Micro/WIN SMART 在“工具” 菜單的“向導”區域單擊“Get/Put”按鈕,啟動 PUT/GET 向導,在彈出的“Get/Put”向導界面中添加操作步驟名稱并添加注釋;

        圖片MWSmart_O1yHg3YH7r
      2. 定義PUT操作

        圖片MWSmart_sm7zUl3DWd

        定義PUT操作:

        1. 選擇操作類型,PUT(將數據寫入遠端,對應PUT_CPU2)
        2. 通信數據長度8(時鐘信息占用8個字節)
        3. 定義遠端CPU的IP地址(192.168.2.101)
        4. 本地通訊區域和起始地址(時鐘數據存儲在VB100開始的8個字節中)
        5. 遠斷通訊區域和起始地址(將數據寫入VB0開始的8個字節中)
      3. 定義GET操作

        圖片image-20240320111444680

        定義GET操作:

        1. 選擇操作類型,GET(從遠端獲取數據,對應GET_CPU2)
        2. 通信數據長度8(時鐘信息占用8個字節)
        3. 定義遠端CPU的IP地址(192.168.2.101)
        4. 本地通訊區域和起始地址(將讀取到的數據存儲在VB0開始的8個字節中)
        5. 遠斷通訊區域和起始地址(讀取遠端從VB100開始的8個字節)
      4. 分配存儲器地址

        圖片image-20240320111829009

        注:點擊“建議”按鈕向導會自動分配存儲器地址。需要確保程序中已經占用的地址、PUT/GET  向導中使用的通信區域與不能存儲器分配的地址重復,否則將導致程序不能正常工作。

      5. 點擊下一步,顯示向導自動生成的組件,可直接下一步或者生成;

        圖片image-20240320112024391
      6. 點擊“生成”按鈕將自動生成網絡讀寫指令以及符號表。只需用在主程序中調用向導所生成的網絡讀寫指令即可

        圖片image-20240320112311078

        NET_EXE 子程序參數說明:

      7. Timeout 超時輸入為整數值,以秒為單位定義定時器值。允許范圍為 0(= 無定時器)和 1 - 36767(= 以秒為單位的定時器值)。
      8. Cycle 輸出是指在每次所有 NET 操作全部完成后被切換的布爾值。允許值為假值 (0) 和真值 (1)。周期輸出在一個周期為假值 (0),下一周期為真值  (1),接下來的第三個周期為假值 (0)。
      9. Error 輸出是 NET_EXE 子例程返回的布爾值,用于指示執行結果。0=無錯誤;1=錯誤;
      10. S7通信本地側配置完成,遠端無需配置,只需要配置需要傳輸的數據即可。

        圖片image-20240320113004146
      補充說明:讀取時鐘指令

      圖片image-20240320114152339

      說明  READ_RTC、SET_RTC 編程提示

      這些指令不接受無效日期。例如,如果輸入 2 月 30 日,則會發生非致命性日時鐘錯誤 (0007H)。 不要在主程序和中斷例程中使用 READ_RTC/SET_RTC 指令。執行另一個 READ_RTC/SET_RTC 指令時,無法執行中斷例程中的  READ_RTC/SET_RTC 指令。在這種情況下,CPU 會置位系統標志位 SM4.3,指示嘗試同時對日時鐘執行二重訪問,導致 T 數據錯誤(非致命錯誤  0007H)。 CPU 中的日時鐘僅使用年份的Zui后兩位數,因此 00 表示為 2000 年。使用年份值的用戶程序必須考慮兩位數的表示法。 2099 年之前的閏年年份,CPU 都能夠正確處理。

      8 字節時間緩沖區的格式,從字節地址 T 開始

      所有日期和時間值必須采用 BCD 格式分配(例如,16#12 代表 2012 年)。00 至 99 的 BCD 值范圍可分配范圍為 2000 至 2099  的年份。

      T 字節說明數據值
      000  至 99(BCD 值)20xx 年:其中,xx 是 T 字節 0 中的兩位數 BCD 值
      101  至 12(BCD 值)
      201  至 31(BCD 值)
      3小時00  至 23(BCD 值)
      400  至 59(BCD 值)
      500  至 59(BCD 值)
      6保留始終設置為  00
      7星期幾使用  SET_RTC/TODW 指令寫入時會忽略值。
      通過 READ_RTC/TODR 指令進行讀取時,值會根據當前年/月/日值報告正確的星期幾。
      1 至 7,1  = 星期日,7 = 星期六(BCD 值)

      注意

      緊湊型串行 (CRs) CPU 型號沒有 RTC(實時時鐘)  可使用 READ_RTC 和 SET_RTC 指令設置緊湊型串行 (CRs) CPU 型號中的年份、日期和時間值,但這些值將在下一次 CPU  斷電通電循環時丟失。上電時,日期和時間將初始化為 2000 年 1 月 1 日。


      聯系方式

      • 電  話:13922889745
      • 經理:向小姐
      • 手  機:18475208684
      • 微  信:18475208684