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