上期介紹了西門子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)。主站負責向從站發送指令或數據,而從站則根據主站的要求進行操作或返回數據。單邊通訊具有以下優點:
二 | S7-200 SMART CPU之間的以太網通信 |
S7-200 SMART CPU 固件版本 V2.0 及以上版本的 CPU 可實現CPU、編程設備和HMI(觸摸屏)之間的多種通信:
S7-200 SMART CPU 以太網連接資源如下:
注: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)建立連接。
關于主動連接資源和被動連接資源的詳細解釋如下:
- 主動連接資源和被動連接資源
- 調用 PUT/GET 指令的CPU 占用主動連接資源數;相應的遠程 CPU 占用被動連接資源。
- 8 個PUT/GET 主動連接資源
- S7-200 SMART CPU 程序中可以包含遠多于 8個PUT/GET 指令的調用,但是在同一時刻Zui多只能激活 8 個 PUT/GET 連接資源。
- 同一時刻對同一個遠程 CPU 的多個 PUT/GET 指令的調用,只會占用本地 CPU的一個主動連接資源和遠程 CPU的一個被動連接資源。本地 CPU 與遠程 CPU之間只會建立一條連接通道,同一時刻觸發的多個 PUT/GET 指令將會在這條連接通道上順序執行。
- 同一時刻Zui多能對8個不同 IP 地址的遠程 CPU 進行 PUT/GET 指令的調用,第9個 遠程CPU的PUT/GET 指令調用將報錯,無可用連接資源。已經成功建立的連接將被保持,直到遠程 CPU斷電或者物理斷開。
- 8 個PUT/GET 被動連接資源
- S7-200 SMART CPU 調用 PUT/GET 指令,執行主動連接的同時也可以被動地被其他遠程 CPU 進行通信讀寫。
- 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
STEP 7 Micro/WIN SMART 在“工具” 菜單的“向導”區域單擊“Get/Put”按鈕,啟動 PUT/GET 向導,在彈出的“Get/Put”向導界面中添加操作步驟名稱并添加注釋;
MWSmart_O1yHg3YH7r定義PUT操作
MWSmart_sm7zUl3DWd定義PUT操作:
- 選擇操作類型,PUT(將數據寫入遠端,對應PUT_CPU2)
- 通信數據長度8(時鐘信息占用8個字節)
- 定義遠端CPU的IP地址(192.168.2.101)
- 本地通訊區域和起始地址(時鐘數據存儲在VB100開始的8個字節中)
- 遠斷通訊區域和起始地址(將數據寫入VB0開始的8個字節中)
定義GET操作
image-20240320111444680定義GET操作:
- 選擇操作類型,GET(從遠端獲取數據,對應GET_CPU2)
- 通信數據長度8(時鐘信息占用8個字節)
- 定義遠端CPU的IP地址(192.168.2.101)
- 本地通訊區域和起始地址(將讀取到的數據存儲在VB0開始的8個字節中)
- 遠斷通訊區域和起始地址(讀取遠端從VB100開始的8個字節)
分配存儲器地址
image-20240320111829009注:點擊“建議”按鈕向導會自動分配存儲器地址。需要確保程序中已經占用的地址、PUT/GET 向導中使用的通信區域與不能存儲器分配的地址重復,否則將導致程序不能正常工作。
點擊下一步,顯示向導自動生成的組件,可直接下一步或者生成;
image-20240320112024391點擊“生成”按鈕將自動生成網絡讀寫指令以及符號表。只需用在主程序中調用向導所生成的網絡讀寫指令即可
image-20240320112311078NET_EXE 子程序參數說明:
- Timeout 超時輸入為整數值,以秒為單位定義定時器值。允許范圍為 0(= 無定時器)和 1 - 36767(= 以秒為單位的定時器值)。
- Cycle 輸出是指在每次所有 NET 操作全部完成后被切換的布爾值。允許值為假值 (0) 和真值 (1)。周期輸出在一個周期為假值 (0),下一周期為真值 (1),接下來的第三個周期為假值 (0)。
- Error 輸出是 NET_EXE 子例程返回的布爾值,用于指示執行結果。0=無錯誤;1=錯誤;
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 的年份。
0 | 年 | 00 至 99(BCD 值)20xx 年:其中,xx 是 T 字節 0 中的兩位數 BCD 值 |
1 | 月 | 01 至 12(BCD 值) |
2 | 日 | 01 至 31(BCD 值) |
3 | 小時 | 00 至 23(BCD 值) |
4 | 分 | 00 至 59(BCD 值) |
5 | 秒 | 00 至 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 日。
- 西門子S7-200 SMART Modbus RTU附樣例程序下載 2024-12-02
- 西門子 Zui新西門子 s7-200 smart V2.8產品特性及軟件包下載 2024-12-02
- 西門子 S7-200 SMART 系列一: 產品介紹 2024-12-02
- 西門子 S7-1200 系列五:TIA博圖中OB、DB、FC、FB介紹及應用 2024-12-02
- 西門子s7-200 smart 基本控制庫(LBC)應用 2024-12-02
- 精智面板圖形視圖透明度設置 2024-12-02
- 我這樣使用博途 2024-12-02
- 改進驅動器仿真器模型 2024-12-02
- Modbus和TCP究竟有什么區別? 2024-12-02
- 西門子Zui強大的通訊功能,PROFIBUS通訊,高手必學 2024-12-02
- RS485與Modbus通信協議 2024-12-02
- 硬接線和通訊有什么區別?為什么很多電工排斥通訊方式,喜歡硬接線? 2024-12-02
- 西門子HMI如何傳送授權 2024-12-02
- 圖解:西門子精致屏HMI如何傳送授權 2024-12-02
- 西門子s7-200 smart 基本控制庫(LBC)應用五:理想氣體溫壓補償的實現 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684