wlmissyou
級別: 探索解密
|
一、 概述 本文描述的程序文件可以在西門子300 400通過CPU本體以太網(wǎng)口,以開放式通信方式實現(xiàn)MODBUS TCP 主站通信。 本程序特點: 1. 無需官方授權(quán)。 2. 實現(xiàn)MODBUS RTU 功能號1、2、3、4、5、6、15、16。 3. 支持單臺CPU下多網(wǎng)口通信,一個連接使用一套程序,互不干擾。 4. 可單條或多條輪詢指令 離線,即從站掉電,可手動讓其離線,減少輪詢時間。 5. 程序量再大也不必擔(dān)心CPU掃描時間,因為未運行的指令會跳過。 6. 每條指令單獨返回錯誤信息。 7. 不必擔(dān)心程序塊和數(shù)據(jù)塊多,支持多重背景。 8. 程序組態(tài)直觀,簡單,方便,靈活。 二、硬件支持 所有支持關(guān)于通信網(wǎng)絡(luò)施工,盡量選擇西門子以太網(wǎng)綠皮電纜及,你胡弄網(wǎng)絡(luò),網(wǎng)絡(luò)就胡弄你,所以質(zhì)量可靠的硬件是保證通信正常的前提。通信網(wǎng)絡(luò)的布線要保證EMA電磁兼容性,遠離強電及強磁場。 三、硬件組態(tài) 現(xiàn)以CPU315-2 PN/DP為例進行硬件組態(tài)說明 1. 添加機架及CPU315-2 PN/DP到機架,雙擊PN-IO-1如圖: 2. 常規(guī)屬性頁,點CPU以太網(wǎng)接口屬性按鈕。 3. 加入子網(wǎng),沒有的話新建。設(shè)置IP地址和子網(wǎng)掩碼,如果需要路由則還需要設(shè)置網(wǎng)關(guān)。單擊確定完成,保存并編譯硬件組態(tài)。 四、 開放式以太網(wǎng)通信組態(tài) 1. 開放式以太網(wǎng)通信向?qū)У陌惭b 開放式以太網(wǎng)通信向?qū)荢TEP7安裝光盤根目錄的Optional ComponentsOC Wizardsetup.exe。正常安裝就可以,此向?qū)к浖恍枰跈?quán)。 2. 運行開放式以太網(wǎng)通信向?qū)В瑝K上右鍵,選OC Wizard 3. 這里點OK 4. 這里可以新建,改變,復(fù)制開放式通信連接,我們選擇新建,點擊Next。 5. 我們這里選擇TCP native,點Next。 6. 我們是與第三方通信,所以我們選擇B設(shè)備為不是S7-CPU。點擊Next。 7. 1.Connection ID:連接ID可以任意,但不能重復(fù),ID號記下來,在程序中會用到。2.Connection name:連接名稱可以任意。3Active:主動,我們這里選擇PLC主動建立連接。4.Used interface:這里選擇使用的接口,我們選擇CPU315/317,5.這里填寫從站IP地址。6.點擊Next。 8. 這里我們要填寫從站的TCP通信端口號,通常從站的端口號為502。點擊Next。 9. 這里是建立開放式通信的連接指針數(shù)據(jù)塊,可以任意。點擊Next。 10. 這里是建立好連接的列表,點擊Next。 11. 這里問你是否還配置其它的連接,點Finish。 12. 點“是”關(guān)閉向?qū)А?br />13. 這是向?qū)Ы⒌耐ㄐ胚B接用的數(shù)據(jù)塊,具體說明見其說明文檔。 五、 程序說明及使用方法 1. 您得到的程序如圖: 這是由STEP7歸檔后文件,應(yīng)使用STEP7恢復(fù)命令,恢復(fù)后會看到項目已經(jīng)打開。 2. 程序工作原理 3. 程序塊功能說明: MbusPointerDB:用戶數(shù)據(jù)塊。可以是單個數(shù)據(jù)塊,也可以是多個數(shù)據(jù)塊。從站返回的數(shù)據(jù)保存在這個數(shù)據(jù)里,向從站寫入的數(shù)據(jù)也在這個數(shù)據(jù)塊里。 MbusBufferDB:緩沖區(qū)數(shù)據(jù)塊。一個緩沖區(qū)數(shù)據(jù)塊對應(yīng)一個通信連接。將要發(fā)送的數(shù)據(jù)在這里進行校驗操作,接收回的數(shù)據(jù)同樣在這里校驗操作。 MBTcpMaserMsg:主站輪詢指令功能塊。可以單個塊運行,也可以多個塊輪流運行。根據(jù)輸入?yún)?shù)決定把哪些用戶數(shù)據(jù)放入緩沖區(qū)數(shù)據(jù)塊,再將從站返回數(shù)據(jù)放回用戶數(shù)據(jù)塊。注意:同一時刻只允許一個主站輪詢指令工作,否同返回06錯誤。 MBTcpMasterCtrl:主站通信控制功能塊。一個通信控制功能塊對應(yīng)一個通信連接。主要功能為發(fā)送和接收與從站的通信的報文。 4. 功能塊參數(shù)說明 MBTcpMasterCtrl MBTcpMasterCtrl
MBTcpMasterMsg MBTcpMasterMsg
緩沖區(qū)數(shù)據(jù)塊是一個400(不可小于400)個字節(jié)數(shù)據(jù)塊,可以復(fù)制,可改符號,可改絕對地址。 MbusPointerDB 用戶數(shù)據(jù)塊用戶可自行定義,無要求。 六、 程序注意 例程內(nèi)有PLC上電初始化脈沖(FirstScanOn),見OB1最下方程序及OB100。指令使用此脈沖初始化。指令內(nèi)使用符號尋址,所以絕對地址可更改。 其它指令的符號地址和絕對地址都可更改。 當功能號為5時,用戶數(shù)據(jù)塊的字節(jié)地址的第0位有效。 當功能號為1,2,15時,用戶數(shù)據(jù)塊的字節(jié)地址的從第0位開始有效。 程序無法在仿真器內(nèi)工作。 七、 程序高級應(yīng)用 1. 當有多臺從站執(zhí)行相同操作時,如讀取相同數(shù)據(jù)寄存器。這時可將指令的完成位連接到讀寫請求位,將從站地址和用戶數(shù)據(jù)塊字節(jié)號做成變量,使用完成位改變這兩個變量,就可以實現(xiàn)單指令輪詢多主站。 2. 當用通信控制設(shè)備啟停等操作時,或多從站時快速刷新單個從站數(shù)據(jù)時,要求響應(yīng)時間快一些,而有些程序沒有這方面考慮。本程序在應(yīng)對此方面可以將單一輪詢指令的激活位置真,其它指令置假(用上升沿,僅一個掃描即可),這時不管其它指令在什么狀態(tài)都會將連接使用權(quán)讓出,優(yōu)先讓激活的指令運行。 八、 不足之處 這里共享出所有已經(jīng)編好的例程,由于硬件有限,只有在winAC和cpu315中經(jīng)過通信驗證,如果網(wǎng)友使用其它通信模塊有問題,我們會根據(jù)問題完善程序。通信程序為全功能24天運行版,24天后可對PLC進行清除復(fù)位,程序繼續(xù)可用。如項目需要無限時版,指令屬性內(nèi)有聯(lián)系方式。 本文未盡事宜,歡迎來電了解。 [ 此帖被wlmissyou在2020-08-16 10:31重新編輯 ] |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
本帖最近評分記錄: |