一区二区三区成人-一区二区三区www-一区二区三区 日韩-一区二区日韩欧美-一区二区日韩精品中文字幕-一区二区日韩

wlmissyou
級別: 探索解密
精華主題: 0
發帖數量: 62 個
工控威望: 165 點
下載積分: 1275 分
在線時間: 97(小時)
注冊時間: 2017-06-11
最后登錄: 2024-11-17
查看wlmissyou的 主題 / 回貼
樓主  發表于: 2020-08-14 18:34
一、 概述
        本文描述的程序文件可以在西門子300 400通過CPU本體以太網口,以開放式通信方式實現MODBUS TCP 主站通信。
本程序特點:
1.     無需官方授權。
2.     實現MODBUS RTU 功能號1、2、3、4、5、6、15、16。
3.     支持單臺CPU下多網口通信,一個連接使用一套程序,互不干擾。
4.     可單條或多條輪詢指令 離線,即從站掉電,可手動讓其離線,減少輪詢時間。
5.     程序量再大也不必擔心CPU掃描時間,因為未運行的指令會跳過。
6.     每條指令單獨返回錯誤信息。
7.     不必擔心程序塊和數據塊多,支持多重背景。
8.     程序組態直觀,簡單,方便,靈活。
二、硬件支持
        所有支持關于通信網絡施工,盡量選擇西門子以太網綠皮電纜及,你胡弄網絡,網絡就胡弄你,所以質量可靠的硬件是保證通信正常的前提。通信網絡的布線要保證EMA電磁兼容性,遠離強電及強磁場。
三、硬件組態
        現以CPU315-2 PN/DP為例進行硬件組態說明
1.     添加機架及CPU315-2 PN/DP到機架,雙擊PN-IO-1如圖:

2.     常規屬性頁,點CPU以太網接口屬性按鈕。

3.     加入子網,沒有的話新建。設置IP地址和子網掩碼,如果需要路由則還需要設置網關。單擊確定完成,保存并編譯硬件組態。

四、   開放式以太網通信組態
1.     開放式以太網通信向導的安裝
開放式以太網通信向導是STEP7安裝光盤根目錄的Optional ComponentsOC Wizardsetup.exe。正常安裝就可以,此向導軟件不需要授權。
2.   運行開放式以太網通信向導,塊上右鍵,選OC Wizard
3.    這里點OK
4. 這里可以新建,改變,復制開放式通信連接,我們選擇新建,點擊Next。
5.    我們這里選擇TCP native,點Next。
6.    我們是與第三方通信,所以我們選擇B設備為不是S7-CPU。點擊Next。
7.    1.Connection ID:連接ID可以任意,但不能重復,ID號記下來,在程序中會用到。2.Connection name:連接名稱可以任意。3Active:主動,我們這里選擇PLC主動建立連接。4.Used interface:這里選擇使用的接口,我們選擇CPU315/317,5.這里填寫從站IP地址。6.點擊Next。
8.    這里我們要填寫從站的TCP通信端口號,通常從站的端口號為502。點擊Next。
9.    這里是建立開放式通信的連接指針數據塊,可以任意。點擊Next。
10.    這里是建立好連接的列表,點擊Next。
11.    這里問你是否還配置其它的連接,點Finish。
12.    點“是”關閉向導。
13.    這是向導建立的通信連接用的數據塊,具體說明見其說明文檔。
五、      程序說明及使用方法
1.     您得到的程序如圖:
這是由STEP7歸檔后文件,應使用STEP7恢復命令,恢復后會看到項目已經打開。
2.     程序工作原理
3.     程序塊功能說明:
MbusPointerDB:用戶數據塊?梢允菃蝹數據塊,也可以是多個數據塊。從站返回的數據保存在這個數據里,向從站寫入的數據也在這個數據塊里。
MbusBufferDB:緩沖區數據塊。一個緩沖區數據塊對應一個通信連接。將要發送的數據在這里進行校驗操作,接收回的數據同樣在這里校驗操作。
MBTcpMaserMsg:主站輪詢指令功能塊?梢詥蝹塊運行,也可以多個塊輪流運行。根據輸入參數決定把哪些用戶數據放入緩沖區數據塊,再將從站返回數據放回用戶數據塊。注意:同一時刻只允許一個主站輪詢指令工作,否同返回06錯誤。
MBTcpMasterCtrl:主站通信控制功能塊。一個通信控制功能塊對應一個通信連接。主要功能為發送和接收與從站的通信的報文。
4.     功能塊參數說明
MBTcpMasterCtrl

MBTcpMasterCtrl





功能腳名稱類型數據類型說明允許值,說明
OpenIEConActiveINPUTBOOL開放式通信連接是否激活真為啟用,假為不啟用
OpenIeIDINPUTWORD開放式通信連接標識符前面向導生成的ID號
SendTimeINPUTTIME發送前定時此值為指令的間隔時間
RcvTimeOutINPUTTIME接收信息時的超時時間,通常為1S值可以很大,但沒有必要
MbusBufferDBINPUTBLOCK_DB緩沖區數據塊如:DB3000
MbusBufferDbNOINPUTINT緩沖區數據塊號如:3000,需與上面一致,但沒有DB字母
OpenIEConConnectIN_OUTANY開放式通信連接指令的連接說明指針見例程
LicenseOUTPUTBOOL

OpenIEConDoneOUTPUTBOOL
建立連接時0: 作業尚未開始或仍在運行 1: 無錯執行作業
OpenIEConBusyOUTPUTBOOL
建立連接時1:作業尚未完成0:作業完成
OpenIEConErrorOUTPUTBOOL
建立連接時1:處理作業期間出現錯誤。STATUS返回有關錯誤類型的詳細信息
OpenIEConStatusOUTPUTWORD
建立連接時錯誤信息
OpenIEDisconDoneOUTPUTBOOL
斷開連接時0: 作業尚未開始或仍在運行 1: 無錯執行作業
OpenIEDisconBusyOUTPUTBOOL
斷開連接時1:作業尚未完成0:作業完成
OpenIEDisconErrorOUTPUTBOOL
斷開連接時1:處理作業期間出現錯誤。STATUS返回有關錯誤類型的詳細信息
OpenIEDisconStatusOUTPUTWORD
斷開連接時錯誤信息
WorkingSlaveOUTPUTINT正在與從站通信的從站地址可能值為1到247
DoneOUTPUTBOOL完成標志位通信連接后,一直為真


MBTcpMasterMsg

MBTcpMasterMsg
功能腳名稱類型數據類型說明允許值,說明
InstructionActiveINPUTBOOL真為激活指令,假為不激活指令
NewRequestINPUTBOOL讀寫請求位每一個新的讀寫請求必須使用脈沖觸發
SlaveINPUTINT從站地址1到247
ReadWriteINPUTINT0=讀,1=寫1. 開關量輸出和保持寄存器支持讀和寫功能
2. 開關量輸入和模擬量輸入只支持讀功能
AddrINPUTDINT讀寫從站的數據地址選擇讀寫的數據類型
00001 至 0xxxx - 開關量輸出
10001 至 1xxxx - 開關量輸入
30001 至 3xxxx - 模擬量輸入
40001 至 4xxxx - 保持寄存器
400001 至 465535 - 保持寄存器
CountINPUTINT數據個數通訊的數據個數(位或字的個數)
Modbus主站可讀/寫的最大數據量為120個字(是指每一個 MBUS_MASTER_MSG 指令)
MbusBufferDBINPUTBLOCK_DB緩沖區數據塊如:DB3000
MbusPointerDBINPUTBLOCK_DB用戶數據塊如:DB2000
MbusPointerBYTEINPUTINT用戶數據塊字節地址1. 如果是讀指令,讀回的數據放到數據區這個字節開始的區域中
2. 如果是寫指令,要寫出的數據從這個字節開始的數據區取出
DoneOUTPUTBOOL完成位此位為脈沖信號,需要保持信號,用戶自行加起保停程序,完成位為啟動,讀寫請求位為停止即可。
ErrorOUTPUTINT通信錯誤0無錯誤
3接收超時
4輸入參數錯誤
5 Modbus通信未激活
6忙,正在處理其它請求
7接收的數據CRC校驗錯誤
8接收的數據長度與預長長度不符
9響應錯誤,響應不是請求的操作
10發送出錯
11接收出錯
14本指令未啟用
101從站不支持請求的功能
102從站不支持數據地址
103從站不支持此種數據類型
104從站設備故障
105從站接收的信息,但響應被延遲
106從站忙,拒絕了該消息
107從站拒絕了消息
108從站存儲器奇偶錯誤
MbusSendStatusOUTPUTWORD
見發送指令規范
MbusRevStatusOUTPUTWORD
發接收指令規范
MbusBufferDB
緩沖區數據塊是一個400(不可小于400)個字節數據塊,可以復制,可改符號,可改絕對地址。
MbusPointerDB
用戶數據塊用戶可自行定義,無要求。
六、      程序注意
例程內有PLC上電初始化脈沖(FirstScanOn),見OB1最下方程序及OB100。指令使用此脈沖初始化。指令內使用符號尋址,所以絕對地址可更改。
其它指令的符號地址和絕對地址都可更改。
當功能號為5時,用戶數據塊的字節地址的第0位有效。
當功能號為1,2,15時,用戶數據塊的字節地址的從第0位開始有效。
程序無法在仿真器內工作。
七、      程序高級應用
1.    當有多臺從站執行相同操作時,如讀取相同數據寄存器。這時可將指令的完成位連接到讀寫請求位,將從站地址和用戶數據塊字節號做成變量,使用完成位改變這兩個變量,就可以實現單指令輪詢多主站。
2.    當用通信控制設備啟停等操作時,或多從站時快速刷新單個從站數據時,要求響應時間快一些,而有些程序沒有這方面考慮。本程序在應對此方面可以將單一輪詢指令的激活位置真,其它指令置假(用上升沿,僅一個掃描即可),這時不管其它指令在什么狀態都會將連接使用權讓出,優先讓激活的指令運行。
八、      不足之處
這里共享出所有已經編好的例程,由于硬件有限,只有在winAC和cpu315中經過通信驗證,如果網友使用其它通信模塊有問題,我們會根據問題完善程序。通信程序為全功能24天運行版,24天后可對PLC進行清除復位,程序繼續可用。如項目需要無限時版,指令屬性內有聯系方式。
 本文未盡事宜,歡迎來電了解。
[ 此帖被wlmissyou在2020-08-16 10:31重新編輯 ]
附件: S7MBTEST.zip (1147 K) 下載次數:260
網站提示: 請不要用迅雷下載附件,容易出錯
附件: 西門子300 400 開放式通信實現MODBUS TCP通信.docx.zip (1057 K) 下載次數:306
網站提示: 請不要用迅雷下載附件,容易出錯
本帖最近評分記錄:
  • 下載積分:+5(yuaiwu) 感謝分享!
  • 下載積分:+1(程宏鵬程萬里) 感謝分享!
    uploader
    級別: 工控俠客
    精華主題: 0
    發帖數量: 230 個
    工控威望: 3102 點
    下載積分: 18374 分
    在線時間: 253(小時)
    注冊時間: 2014-11-24
    最后登錄: 2024-04-26
    查看uploader的 主題 / 回貼
    1樓  發表于: 2020-08-15 23:13
    it's a valuable article, thank you!

    主站蜘蛛池模板: 国产成人在线小视频| 99这里只有精品在线| 欧美作爱福利免费观看视频| 精品99一区二区三区麻豆| 日韩r| 日韩一区二区三区四区不卡| 精品成人一区二区| 久久电影精品久久99久久| 欧美日韩一区二区三区在线观看 | 国产精品久久久久久久久免费观看| 美女被草漫画| 欧美男同videos| 国产成人lu在线视频| 扒开老女人| 乌克兰精品摘花处破| 日韩二三区| 蝴蝶传媒免费安装| 大陆日韩欧美| 95视频在线观看在线分类h片| 亚洲区在线| 四虎国产精品免费久久麻豆| 国产精品不卡高清在线观看| 国产在线99| 国产精品www| 欧美xxxxx性| 男生和女生艹逼| 呜嗯啊野战h呻吟男男双性| 91色爱| 91色在线观看国产| 久久精品123| 97蜜桃网| 欧美肥bb| 美女脱了内裤让男桶爽| 亚洲第一区在线观看| 成人性用品| 2020精品极品国产色在线观看| 99视频久久| 好吊操这里有精品| 91久久99热青草国产| 全肉np巨肉一女np高h双龙| 日本老熟老太hd|