CP441-2 使用 TIA Step7 V13 進行 Modbus Slave 通訊
作者:工控自動化老王
關注同名V–X公//衆//號:工控自動化老王獲取更多技術文檔及工控資源,交流、學習,另外老王承接PLC畢業設計,歡迎諮詢!
CP441-2 使用 TIA Step7 V13 進行 Modbus Slave 通訊
- 硬件列表
- 組態和配置
- 新建項目
- 創建CPU400站點
- 組態CP441-2
- 設置協議Modbus Slave
- 編寫通信程序
- 邏輯地址的填寫
- 調用通信功能塊
- 創建通信數據塊DB塊
- 設備連接
- 通信測試
- 設置調試軟件Modscan32
- CP441-2與調試軟件測試通信數據
1 硬件列表
設備名稱 設備型號
RACK-400 6ES7 400-1JA01-0AA0
PS 407 6ES7 407-0KA02-0AA0
400CPU 6ES7 416-3ER05-0AB0
CP441-2 6ES7 441-2AA05-0AE0
(Interface1:RS422/485)
(Interface2: RS232C,本例使用接口)
接口類型的選擇,具體描述見 CP441-2 的 MODBUS Master 通信中的描述;應用CP441-2進行 MODBUS協議通信時需要有Dongle的支持,詳見 CP441-2 的 MODBUS Master 通信中的圖。
2 組態和配置
1、打開軟件TIA PORTAL STEP7 V13,點擊項目->新建…創建一新項目,項目名稱爲441-2_modbusS。
圖1
2、用鼠標點擊“添加新設備”,選擇SIMATIC S7-400->CPU->CPU 416-3PN/DP->6ES7 416-3ER05-0AB0。
圖2
3、雙擊“設備組態”進入硬件組態界面,導軌RACK和CPU 416-3PN/DP已經存在,但是可能RACK型號與實際一致,CPU的插槽位置也不對,這裏需要手動做調整。
圖3
點擊CP441-2模板,在選件目錄中,選擇“通信模塊->點到點->PtP接口”,爲CP441-2模塊指定接口類型。本例中第一個接口選擇RS422/RS485,第二個接口選擇RS232C接口,本例對第二個接口作設置和編程。
圖4
4、雙擊CP441-2模板,進入CP441-2的屬性框,配置CP441-2參數。
圖5
5、本例使用第二個接口,在IF963 RS232中點擊“協議”,在“協議”選項中選擇“Modbus從站”。配置Modbus從站通信參數,設定的通信參數要和通訊夥伴的相同。傳輸率(通信波特率):9600bps,數據位:8位,停止位:1位,奇偶校驗:無,從站站址:2,其他的參數都採用默認設置。
圖6
6、FC01,05,15:讀取、強制輸出位的狀態;分4個範圍,每個範圍前2行地址爲信息傳送地址,後2行對應西門子的PLC地址區,即第1範圍從0~15對應MODBUS地址區爲00001-00016,對應西門子數據區(標記F.)爲M10.0-M11.7;第2範圍從16-31對應MODBUS 地址區爲00017-00032,對應西門子數據區(輸出Q.)爲Q0.0-Q1.7;第3範圍從地址32-64對應Modbus 地址區爲00033-00065,對應西門子數據區(時間T.)爲T0-T2;第4範圍從地址80-112對應Modbus 地址區爲00081-00113,對應西門子數據區(計數器C.)爲C0-C2。
圖7
7、FC02:讀取輸入數據位的狀態,分2個範圍,每個範圍前2行地址爲信息傳送地址,後2行對應西門子的PLC地址區,即第1範圍從0~15對應MODBUS地址區爲10001-10016,對應西門子數據區(標記F.)爲M12.0-M13.7;第2範圍從16-31對應MODBUS 地址區爲10017-10032,對應西門子數據區(輸入I.)爲I0.0-I1.7。
圖8
8、FC03、06、16:組態保持寄存器數據區,對應西門子數據區爲DB塊,即MODBUS保持寄存器地址區的地址40001,對應西門子DB塊的地址DB10.DBW0,依次40002對應DB10.DBW2,往後依次類推。
圖9
9、FC04:組態輸入寄存器數據區,對應西門子數據區同樣是DB塊,即MODBUS輸入寄存器地址區的地址30001,對應西門子DB塊的地址DB11.DBW0,依次30002對應DB11.DBW2,往後依次類推。
圖10
10、設置寫參數的限制值,對寫操作做訪問限制。
圖11
11、如果CP441-2選用的是RS422/485接口時,還需要設置接口類型,如下圖所示,其它參數與RS232的設置一樣。
圖12
12、進入網絡視圖,點擊“連接”,看到之前步驟創建的2個ptp連接,其中PTP_2子網的連接本地ID是16#1001(在本例中)。
圖13
點擊上中的“屬性”,進入PTP_2連接的屬性,將連接路徑修改成“3:本地<->夥伴”。
圖14
3 編寫通信程序
1、在設置功能碼FC03、06、16中,創建DB10滿足設置需要;在設置功能碼FC04中,創建DB11滿足設置需要。這2個數據塊都創建1個數據類型Array的變量,數組元素的數據類型爲Word,數量爲101。
圖15
2、進入主程序OB1,從通信->通信處理器->MODBUS Slave (RTU),調用功能塊MODB_441,MODB_441的背景數據塊爲DB3。
圖16
關於功能塊MODB_441的管腳說明。
ID
Local ID號,在PtP連接屬性中獲得,十六進制輸入。本例中爲16#1001,見圖13
START_TIMER
超時初始化定時器,本例中爲T10
START_TIME
超時初始化時間值,本例中爲S5t#5s
STATUS_TIMER
通訊狀態讀取定時器,本例爲T11
STATUS_TIME
通訊狀態讀取時間值,本例爲S5t#2s
OB_MASK
外設訪問錯誤屏蔽位,本例中爲M100.0
0:不屏蔽IO訪問錯誤
1:屏蔽IO訪問錯誤,並使報警延時
CP_START
FB初始化始能位,該位需要置1。本例中爲M100.1
CP_START_FM
CP_START初始化的上升沿位,本例中爲M100.2
CP_START_NDR
從CP寫操作位,本例中爲M100.3
CP_START_OK
初始化成功標誌,本例中爲M100.4
CP_START_ERROR
初始化失敗標誌,本例中爲M100.5
ERROR_NR
錯誤號,本例中爲MW102
ERROR_INFO
錯誤信息,本例中爲MW104,可以查看Modbus Slave 手冊第10章
4 設備連接
本文檔使用的CP441-2的接口是RS232C,因此需要通過標準的RS232C電纜來連接CP441-2和計算機的串口,具體的電纜連接方法請查看手冊“點對點鏈接CP441安裝和參數分配”(見:第2章節),附錄:B 連接電纜。
如果使用的CP441-2是RS485接口的模塊,需要使用RS232C/RS485轉換器。
5 通信測試
前面使用 TIA Step7 軟件已經將通信CP441-2的通信工作做完,下面進行通信測試。這裏使用串口通訊測試軟件Modscan32軟件來測試CP441-2和計算機的通信,步驟如下
1、將項目程序在線,本示例中手動將M200.1(即:CP_START)置1,M200.2(即:CP_START_FM)和M200.4(即:CP_START_OK)也會爲1。
圖17
2、首先將硬件配置和程序下載到CPU 416-3PN/DP中。在計算機上打開MODBUS主站仿真軟件Modscan32。
圖18
3、點擊Modscan32上的Connection->Connect,顯示畫面如下,選擇計算機和CP341相連的COM口COM1,設好波特率,數據位,停止位,校驗方式,如下圖。
圖19
4、設置完成,點擊OK,顯示畫面如下。
圖20
5、數據顯示區的10個地址的數據對應CPU中DB10的前10個字(Word)的數值(DBW0–DBW10分別爲1-10 ),如下圖。給這10個字賦值1-10。
圖21
6、Modscan32軟件界面03功能碼的地址40001-40010分別顯示1-10的數據。
圖22