西門子串口通訊08-CP341在STEP7環境中做Modbus從站通訊

西門子串口通訊08-CP341在STEP7環境中做Modbus從站通訊
v—x—公–衆–號:工控自動化老王
1 硬件列表
設備名稱 設備型號
PS 307 6ES7 307-1EA00-0AA0
CPU 315-2DP 6ES7 315-2AG10-0AB0
MMC 6ES7 953-8LG11-0AA0
CP341 6ES7 341-1AH01-0AE0
Dongle 6ES7 870-1AB01-0YA0
應用CP341進行 MODBUS協議通信時需要有Dongle的支持。在使用之前先將Dongle安裝在CP341模塊的背面的Dongle插槽中,Dongle和插入Dongle前後的CP341如下圖所示:
在這裏插入圖片描述
2 組態和配置
1、打開上面創建的項目ptp,用鼠標右鍵點擊項目名稱,選擇Insert New Object-> SIMATIC 300 Station,更改站的名稱爲CP341 Modbus-S。
在這裏插入圖片描述
2、雙擊Hardware進入硬件配置畫面,插入RACK、CPU315-2DP、CP341。
在這裏插入圖片描述
3、 雙擊CP341模板,點擊Parameter…,配置CP341參數。在Protocol選項中選擇MODBUS Slave。
在這裏插入圖片描述
4、雙擊Protocol下的信封圖標,配置MODBUS Slave參數,點擊MODBUS-Slave按鈕。
在這裏插入圖片描述
• 步驟1:設置MODBUS從站地址,本例中設爲2;
• 步驟2:設置MODBUS從站波特率,停止位,校驗位等參數;
• 接下來配置功能代碼所表示的參數,具體參見下4圖
5、FC01,05,15:讀取、強制輸出位的狀態;左邊的地址爲信息傳送地址,右邊對應西門子的PLC地址區,即左邊地址從0-100對應MODBUS地址區爲00001-00101,對應西門子數據區爲M0.0-M12.4;101-200對應MODBUS 地址區爲00102-00201,對應西門子數據區爲Q0.0-Q12.3;從地址201-300,301-400對應Modbus 地址區爲00202-00301,00302-00401,對應西門子數據區爲Timer,Counter。
在這裏插入圖片描述
6、FC02讀取輸入數據位的狀態,地址對應如上文所述。
在這裏插入圖片描述
7、FC03,06,16組態輸出寄存器數據區,對應西門子數據區爲DB塊。
在這裏插入圖片描述
8、FC04組態輸入寄存器數據區,對應西門子數據區同樣是DB塊。
在這裏插入圖片描述
9、設置寫參數的限制值。
在這裏插入圖片描述
10、如果選用的是RS422/485接口的CP341時,還需要設置接口類型,如下圖所示,其它參數均採用默認設置。
在這裏插入圖片描述
11、配置完成後保存時會提示是否裝載驅動。
在這裏插入圖片描述
12、此時必須連接到實際的PLC,點擊Yes按鈕裝載驅動,裝載時CPU必須爲STOP模式。驅動裝載完成後,如果再次裝載,STEP7會提示Driver already exists,配置完成後點擊“編譯保存”按鈕保存編譯硬件組態,並確認沒有錯誤。
在這裏插入圖片描述
3 編寫通信程序
1、將FB7,FB8添加到程序Blocks中,方法爲雙擊OB1,打開OB1編程畫面,從庫Libraries->CP PtP->CP341中調用發送程序塊FB8和接收程序塊FB7,然後再從OB1中刪除。因爲MODBUS從站通訊要用到這兩個功能塊。
2、調用MODBUS從站功能塊FB80,位置在Libraries->Modbus->Modbus ->FB80。分配背景數據塊DB80,將參數LADDR設爲硬件組態中的起始邏輯地址256。
在這裏插入圖片描述
2、調用MODBUS從站功能塊,設置參數。
在這裏插入圖片描述
LADDR 硬件組態中的起始邏輯地址,本例中爲256
START_TIME 超時初始化定時器,本例中爲T1
START_TIME 超時初始化時間值,本例中爲1s
OB_MASK 外設訪問錯誤屏蔽位,本例中爲M100.0
CP_START FB初始化始能位,本例中爲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章
3、創建FC03,06,16功能代碼通訊數據塊DB1。
在這裏插入圖片描述
4、創建FC04功能代碼通訊數據塊DB2。
在這裏插入圖片描述
4 設備連接
本文檔使用的CP341的接口是RS232C,因此需要通過標準的RS232C電纜來連接CP341和計算機的串口,具體的電纜連接方法請查看CP341手冊B章節連接電纜部分(見:手冊、文檔和軟件鏈接部分)。
如果使用的CP341是RS485接口的模塊,需要使用RS232C/RS485轉換器。
5 通信測試
前面使用Step7 V5.5軟件已經將通信CP341的通信工作做完,下面進行通信測試。這裏使用串口通訊測試軟件Modscan32軟件來測試CP341和計算機的通信,步驟如下
1、首先將硬件配置和程序下載到CPU315-2DP中。在計算機上打開MODBUS主站仿真軟件Modscan32。
在這裏插入圖片描述
2、點擊Modscan32上的Connection->Connect,顯示畫面如下,選擇計算機和CP341相連的COM口COM1,設好波特率,數據位,停止位,校驗方式,如下圖:
在這裏插入圖片描述
3、設置完成,點擊OK,顯示畫面如下。
在這裏插入圖片描述
4、數據顯示區的10個地址的數據對應CPU中DB1的前10個字(Word)的數值(DBW0–DBW10分別爲1-10 ),如下圖。
在這裏插入圖片描述
5、其它數據的讀取,只需更改訪問的數據類型,此處不再介紹。
6、但要說明一下對於浮點數的顯示,PLC中浮點數的高16位和低16位與Modscan32顯示的相反,即PLC中浮點數的高16位對應Modscan32顯示浮點數的低16位,PLC中浮點數的低16位對應Modscan32顯示浮點數的高16位,可在程序中做一下處理,如下圖:
在這裏插入圖片描述
此時Modscan32顯示的浮點數40001對應MD200的浮點數值,但MODBUS地址對應DB1.DBD0。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章