加入收藏 在線留言 聯系我們
        關注微信
        手機掃一掃 立刻聯系商家
        全國服務熱線17838383235

        6SL3210-1KE12-3AP2現貨西門子代理

        更新時間
        2024-10-30 14:14:21
        價格
        請來電詢價
        西門子
        G120C
        變頻器
        0.75KW內置A級濾波器
        德國
        3AC 380-480V濾波A級
        聯系電話
        17838383235
        聯系手機
        17838383235
        聯系人
        徐嘉泉
        立即詢價

        詳細介紹

        西門子S7-1200 與S7-200Modbus通訊案例精講


        西門子S7-1200 緊湊型PLC在當前的市場中有著廣泛的應用,由于其,所以常被用作小型自動化控制設備的控制器,這也使得它經常與Modbus儀表(掃描槍、打印機等設備進行通訊。因為沒有第三方Modbus儀表,這里就以S7-200作為第三方的儀表為例介紹Modbus通訊。

        1.控制系統原理



        圖1:通訊系統原理

        2.硬件需求
        S7-1200 PLC目前有3種類型的CPU:
        1)S7-1211C CPU。
        2)S7-1212C CPU。
        3)S7-1214C CPU。
        這三種類型的CPU多都可以連接三個串口通信模版。
        本例中使用的PLC硬件為:
        1)PM1207電源 ( 6EP1 332-1SH71 )
        2) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )
        3) CM1241 RS485 ( 6ES7 241 -1CH30 -0XB0 )
        4)CPU224XP (6ES7 214-2AD23-0XB0)

        3.軟件需求

        1) 編程軟件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)
        2)編程軟件 STEP 7 MicroWIN; Modbus庫軟件選項包


        4.組態

        我們通過下述的實際操作來介紹如何在Step7 Basic V10.5 中組態S7-1214C 和S7-200的Modbus通信。

        4.1 S7-1200作Modbus主站,S7-200作Modbus從站
        S7-1200作為Modbus主站的配置步驟如下:
        點擊桌面上的“Totally Integrated Automation Portal V10”圖標,打開如下圖:



        圖2: 新建S7 -1200項目

        首先需要選擇“Create new project”選項,然后在“Project name:”里輸入Modbus_Master;在“Path:”修改項目的存儲路徑為“C:\”;點擊“Create”,這樣就創建了一個文件Modbus的新項目。創建后的窗口如下圖所示:



        圖3: 新建項目后

        點擊門戶視圖左下角的“Project View”切換到項目視圖下,如下圖:



        圖4: 切換到項目視圖

        打開后,在“Devices”標簽下,點擊“Add new device”,在彈出的菜單中輸入設備名“PLC_1”并在設備列表里選擇CPU的類型。選擇后如下圖:



        圖5: PLC硬件組態

        插入CPU后,點擊CPU左邊的空槽,在右邊的“Catalog ”里找到“Communication”下的RS485模塊,拖拽或雙擊此模塊,這樣就把串口模塊插入到硬件配置里,接下來就需要配置此RS485模塊硬件接口參數,選擇RS485模塊,在其下方會出現該模塊的硬件屬性配置窗口, 在屬性窗口里有下面五個選項, “general”; “Port Configuration”;“Transmit message Configuration”;“Receive Message Configuration”;“IO Address/HW identify”。在“General”里包括了此模塊的“項目信息”;而在“Port Configuration”里可以對端口的進行參數配置,

        波特率為:9600 ;
        校驗方式:無 ;
        數據位為:8 ;
        停止位: 1;
        硬件流控制:無;
        等待時間: 1ms

        設置參數如下圖:



        圖6: RS485端口配置

        在“Transmit message Configuration”和“Receive Message Configuration”里保持默認設置,在“IO Address/HW identify”里確認一下“硬件識別號”為11。

        此時,完成了硬件的組態,接下來需要編寫Modbus通訊程序。

        在PLC中編寫發送程序。在項目管理視圖下雙擊“Device”—》“Program block”—》“Add new block”在彈出的窗口中選擇“Organizations Block(OB)”,然后在其右邊的窗口里選擇“Startup”,去除“Symbolic Access Only”的選項勾。如下圖所示:



        圖7: 添加啟動OB塊

        點擊“OK”后會打開此OB塊,然后在啟動OB塊里用MB_COMM_LOAD(注:MB_COMM_LOAD和MB_MASTER功能塊是在“Project Library”下的“Library”選項卡里,如下圖所示:)



        圖8: Library

        調用后如下圖所示:



        圖9: 調用MB_COMM_LOAD塊

        在調用MB_COMM_LOAD功能塊時 ,都會自動彈出創建相應背景數據塊的界面,如下圖:



        圖10:創建背景數據塊

        按上面的步驟在OB1中插入MB_MASTER功能塊如下圖:



        圖11:調用MB_MASTER塊

        在插入功能塊的過程,相應的生成MB_COMM_LOAD_DB和MB_MASTER_DB,兩個背景數據塊。然后再創建一個發送或接收的數據緩沖區,點擊PLC_1項目下的“Program Block”下的“Add new block”,在彈出的窗口中選擇DB類型為“Global DB”,并去掉“Symbolic access only”選項勾(這樣可以對該DB塊進行直接地址訪問),并取名該DB塊為MB_COMM_DB。建好這個DB塊后,雙擊打開MB_COMM_DB預先定義數據區的大小,如下圖所示:



        圖12:數據區的定義

        完成數據區的定義后,接下來就可以對MB_COMM_LOAD功能塊和MB_Master功能塊進行參數賦值,賦值的參數見圖9和圖11。 在上面的編程塊里需要注意的是,在MB_MASTER功能塊中的參數MB_ADDR參數是從站的Modbus的站地址。這里要讀取的從站的站地址為2;關于MODE、DATA_ADDR、DATA_LEN可在下表中查看,DATA_PTR存放發送或接收到的數據。



        表1:MB_MASTER Modbus功能表

        上面就完成了程序的編寫,對項目進行編譯;右擊PLC_1項目在彈出的菜單里選擇“Complies ALL”選項,這樣就對硬件與軟件進行編譯,如下圖:



        圖13:編譯項目

        編譯且沒有錯誤后就可以下載程序到PLC中,同樣右擊PLC_1項目,在彈出的菜單選擇“Download to Device”。

        S7-200作為Modbus從站的配置步驟如下:

        點擊桌面上的“V4.0 STEP 7 MicroWIN SP6”圖標(因為STEP 7 MicroWIN安裝時并沒有安裝Modbus的庫程序,所以Modbus的庫程序是需要單獨安裝的,安裝后才可以在庫程序中調用Modbus的通訊功能塊,關于庫程序可以咨詢西門子熱線或訪問西門子的guanfangwangzhan),打開后并編寫Modbus從站程序如下圖:



        圖14:S7-200 Modbus從站編程

        在上面調用的是端口0的程序,所以在連接通訊線時,需要連接到端口0上,編譯并下載項目到S7-200的PLC中。下載后運行PLC。

        用DP電纜連接S7-1200與S7-200。

        在線監控S7-200中的程序,并監控變量表,修改VB1000到VB1011的值為1到12(VB1000到VB1011對應的Modbus的地址為40001-40006)。監控到的值如下圖所示:



        圖15:S7-200監控變量值

        在線監控 S7-1200變量表如下圖:



        圖16:S7-1200監控變量值

        4.2 S7-200作Modbus主站,S7-1200作Modbus從站
        S7-1200作為Modbus從站的配置步驟如下:
        點擊桌面上的“Totally Integrated Automation Portal V10”圖標,打開如下圖:



        圖17:S7-1200監控變量值

        首先需要選擇“Create new project”選項,然后在“Project name:”里輸入Modbus_Slave在“Path:”修改項目的存儲路徑為“C:\Backup file”;點擊“Create”,這樣就創建了一個文件Modbus_Slave的新項目。創建后的窗口如下圖所示:



        圖18: 新建項目后

        點擊門戶視圖左下角的“Project View”切換到項目視圖下,如下圖:



        圖19:切換到項目視圖



        圖20: PLC硬件組態

        設置參數如下圖:



        圖21: RS485端口配置

        此時,完成了硬件的組態,接下來需要編寫Modbus通訊程序。



        圖22: 添加啟動OB塊

        點擊“OK”后會打開此OB塊,然后在啟動OB塊里用MB_COMM_LOAD(注:MB_COMM_LOAD和MB_Slave功能塊是在“Project Library”下的“Library”選項卡里,如下圖所示:)



        圖23: Library

        調用后如下圖所示:



        圖24: 調用MB_COMM_LOAD塊

        在調用MB_COMM_LOAD功能塊時 ,都會自動彈出創建相應背景數據塊的界面,如下圖:



        圖25:創建背景數據塊

        按上面的步驟在OB1中插入MB_Slave功能塊如下圖:



        圖26:調用MB_Slave塊

        在插入功能塊的過程,相應的生成MB_COMM_LOAD_DB和MB_Slave_DB,兩個背景數據塊。然后再創建一個發送或接收的數據緩沖區,點擊PLC_1項目下的“Program Block”下的“Add new block”,在彈出的窗口中選擇DB類型為“Global DB”,并去掉“Symbolic access only”選項勾(這樣可以對該DB塊進行直接地址訪問),并取名該DB塊為MB_COMM_DB。建好這個DB塊后,雙擊打開MB_COMM_DB預先定義數據區的大小,如下圖所示:



        圖27:數據區的定義

        完成數據區的定義后,接下來就可以對MB_COMM_LOAD功能塊和MB_SLAVE功能塊進行參數賦值,賦值的參數見圖24和圖26。 在上面的編程塊里需要注意的是,在MB_SLAVE功能塊中的參數MB_ADDR參數是此從站的Modbus站地址。這里定義為此從站的站地址為2;MB_HOLD_REG是指向Modbus保持寄存器DB的指針。保持寄存器DB必須為典型的全局DB。MB_SLAVE所提供給主站的功能見下表:



        表3:MB_SLAVE Modbus功能表A

         



        表4:MB_SLAVE Modbus功能表B



        圖28:編譯項目

        S7-200作為Modbus主站的配置步驟如下:

        點擊桌面上的“V4.0 STEP 7 MicroWIN SP6”圖標(因為STEP 7 MicroWIN安裝時并沒有安裝Modbus的庫程序,所以Modbus的庫程序是需要單獨安裝的,安裝后才可以在庫程序中調用Modbus的通訊功能塊,關于庫程序可以咨詢西門子熱線或訪問西門子的guanfangwangzhan),打開后并編寫Modbus主站程序如下圖:



        圖29:S7-200 Modbus主站編程

        用DP電纜連接S7-1200與S7-200。

        在線監控S7-1200中的程序,并監控變量表,修改DB3.DBB0到DB3.DBB20的值為1到21(DB3.DBB0到DB3.DBB19對應的Modbus的地址為40001-40010)。監控到的值如下圖所示:



        圖30:S7-1200監控變量值

        在線監控 S7-200變量表如下圖:



        圖31:S7-1200監控變量值

        從上面的變量監控表里可以看到VB420中沒有數據,因為在主站的S7-200里的程序里只讀取10個變量(即40001-40010)對應著的VB400-VB419,所以VB420的數據沒有接收。


        聯系方式

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