西門子通訊模塊6ES7541-1AB00-0AB0
數(shù)據(jù)必須自“Data to transmit byte 0"起存儲在數(shù)據(jù)記錄中。因此,數(shù)據(jù)記錄的大小以及用于傳輸幀的數(shù)據(jù)記錄數(shù)可通過傳輸介質(zhì)確定,例如,使用 PROFIBUS 時為 240 字節(jié)。
如果待傳輸數(shù)據(jù)的長度不是數(shù)據(jù)記錄長度的倍數(shù),則最后一個數(shù)據(jù)記錄的長度對應(yīng)于待傳輸?shù)氖S鄶?shù)據(jù)的長度。
模塊的發(fā)送確認
模塊會將數(shù)據(jù)記錄中接收到的“Sequence number"寫入為用戶數(shù)據(jù)的發(fā)送確認。 請參見“Querying send acknowledgment - bbbbb user data"一章中的“SEND acknowledgment from module"。
對于屬于某一幀的最后一個數(shù)據(jù)記錄,在模塊發(fā)送幀后才寫入確認。
也就是說,必須在寫入最后一個數(shù)據(jù)記錄后才評估“SEND acknowledgment from module"和“SEND status"。
模塊在啟動時會將零寫入“SEND acknowledgment from module"(請參見“Querying send acknowledgment - bbbbb user data"一章)
如果“SEND acknowledgment from module"等于零,則必須中止正在傳輸?shù)淖鳂I(yè)。
標準機器項目是使用一組創(chuàng)新功能的 STEP 7 項目,它們支持輕松組態(tài)和調(diào)試標準機器或具有模塊化結(jié)構(gòu)的機器的靈活自動化解決方案。
硬件配置包含作為 IO 控制器的 S7-1500 CPU 以及作為“PROFINET IO 系統(tǒng)主站"的已連接 IO 設(shè)備。該主站采用最大配置,可以根據(jù)該最大配置為不同的標準機器派生不同的選項,例如 IO 系統(tǒng)隨配置的不同而異。
全面提升所有級別的靈活性
標準機器項目具有以下集中式特性:
從一個具有最大工程組態(tài)的項目(IO 系統(tǒng)主站),可以加載多個不同的標準機器版本(IO 系統(tǒng)選項)。標準機器項目涵蓋 IO 系統(tǒng)的所有版本(選項)。
IO 系統(tǒng)選項可以使用簡單的工具本地集成到現(xiàn)有網(wǎng)絡(luò)中。
以多種方式提供靈活性:
如果組態(tài)合適,可以使用簡單的工具本地調(diào)整 IO 控制器的 IP 地址參數(shù)。這樣就可以將標準機器輕松集成到不同的工廠中,或者多次連接到網(wǎng)絡(luò)中。
具有這種特性的 IO 系統(tǒng)被稱為“可多次使用的 IO 系統(tǒng)"。
如果組態(tài)和編程合適,就可以本地操作 IO 系統(tǒng)選項的不同設(shè)置(所用 IO 設(shè)備的選擇或 IO 設(shè)備的排列不同)。
由于 IO 系統(tǒng)的特定組態(tài)可由用戶程序控制,因此這被稱為“IO 系統(tǒng)的組態(tài)控制"。
如果組態(tài)和編程合適,您還可以獨立于上述功能,在一個項目中使用集中式設(shè)備或分布式 I/O 設(shè)備的不同站選項。設(shè)備的模塊選擇和排列可以不同。
由于站的具體組態(tài)由用戶程序控制,這也被稱為“組態(tài)控制"。
操作模式的轉(zhuǎn)換:
1) 標準,F(xiàn)-CPU/緊湊型 CPU,訂貨號 6ES751x-xxx02-0AB0/6ES751x-1CK01-0AB0:您可使用按鍵(RUN 和 STOP)切換模式
西門子通訊模塊6ES7541-1AB00-0AB0
本程序特點:
1. 實現(xiàn)MODBUS RTU 功能號1、2、3、4、5、6、15、16。
2. 支持單臺CPU下多臺通信模塊,一臺通信模塊使用一套程序,互不干擾。
3. 可單條或多條 輪詢指令 離線,即從站掉電,可手動讓其離線,減少輪詢時間。
4. 可控制每條指令間的時間間隔。
5. 程序量再大也不必擔心CPU掃描時間,因為未運行的指令會跳過。
6. 每條指令單獨返回錯誤信息。
7. 不必擔心程序塊和數(shù)據(jù)塊多,支持多重背景。
8. 程序組態(tài)直觀,簡單,方便,靈活。
9. 指令內(nèi)集成端口配置指令,發(fā)送和接收配置指令,外部只需簡單參數(shù)即可。
10. 在冗余系統(tǒng)上使用通過。
二、 硬件網(wǎng)絡(luò)施工
關(guān)于通信網(wǎng)絡(luò)施工,盡量選擇西門子485紫皮電纜,你胡弄網(wǎng)絡(luò),網(wǎng)絡(luò)就胡弄你,所以質(zhì)量可靠的硬件是保證通信正常的前提。若通信線路過長,請使用RS485中繼器,但請不要西門子RS485中繼器,因為不支持MODBUS通信。具體接線方式請查閱相關(guān)資料。
CM PtP RS422/485 BA接線圖:下表顯示了 CM PtP RS422/485 BA 前面板上 15 針 sub-D 型插槽的針腳分配。
三、 程序說明及使用方法
您得到的程序如圖:這是由TIA V16歸檔后文件,打開TIA V16后,打開此文件,會提示新建文件夾,恢復后會看到項目已經(jīng)打開。
2. 程序工作原理
3. 程序塊功能說明:
MBrtuMaster1500PointerDB1:用戶數(shù)據(jù)塊。非優(yōu)化數(shù)據(jù)塊??梢允菃蝹€數(shù)據(jù)塊,也可以是多個數(shù)據(jù)塊。從站返回的數(shù)據(jù)保存在這個數(shù)據(jù)里,向從站寫入的數(shù)據(jù)也在這個數(shù)據(jù)塊里。
MBrtuMaster1500BufferDB1:緩沖區(qū)數(shù)據(jù)塊。非優(yōu)化數(shù)據(jù)塊一個緩沖區(qū)數(shù)據(jù)塊對應(yīng)一個串口。將要發(fā)送的數(shù)據(jù)在這里進行校驗操作,接收回的數(shù)據(jù)同樣在這里校驗操作。
MBrtuMaster1500Msg:主站輪詢指令功能塊??梢詥蝹€塊運行,也可以多個塊輪流運行。根據(jù)輸入?yún)?shù)決定把哪些用戶數(shù)據(jù)放入緩沖區(qū)數(shù)據(jù)塊,再將從站返回數(shù)據(jù)放回用戶數(shù)據(jù)塊。注意:同一時刻只允許一個主站輪詢指令工作,否同返回9006錯誤。
MBrtuMaster1500Crtl:主站通信控制功能塊。一個通信控制功能塊對應(yīng)一個串口。主要功能為發(fā)送和接收與從站的通信的報文。
4. 功能塊參數(shù)說明
MBrtuMaster1500Crtl
名稱 | 類型 | 數(shù)據(jù)類型 | 說明 | 允許值,說明 |
iCpuHWID | Input | HW_SUBMODULE | CPU硬件標識符 設(shè)備組態(tài)》CPU》系統(tǒng)常數(shù)》名稱:Local類型:Hw_SubModule的硬件標識符 |
|
iProt | Input | HW_SUBMODULE | 通信模塊硬件標識符 設(shè)備組態(tài)》通信模塊》系統(tǒng)常數(shù)》硬件標識符 |
|
iBaud | Input | UInt | 端口數(shù)據(jù)傳輸速率 | 1 = 300 bps, 2 = 600 bps, 3 = 1200 bps, 4 = 2400 bps, 5 = 4800 bps, 6 = 9600 bps, |
iParity | Input | UInt | 端口的奇偶校驗 | 1 = 無奇偶校驗,2 = 偶校驗, 3 = 奇校驗, 4 = 傳號校驗, 5 = 空號校驗, 6 = 任意 |
iSendTime | Input | Time | 發(fā)送前定時時間 | 值可以很大,但沒有必要 |
iRcvTimeOut | Input | Time | 接收信息超時時間 | 值可以很大,但沒有必要 |
iBufferDBNumber | Input | UDInt | MODBUS緩沖區(qū)數(shù)據(jù)塊號 | 如:UDINT#3000 |
iBuffer | Input | Variant | MODBUS緩沖區(qū)指針 | 如:"MBrtuMaster1500BufferDB1".Buffer |
qLicense | Output | Bool | 授權(quán) |
|
qDone | Output | Bool | 初始化完成標志位 | 指令完成后,一直為真 |
qWorkingSlave | Output | UInt | 正在與從站通信的從站地址 | 可能值為1到247 |
qWortConfigStatus | Output | Word | 組態(tài)PtP端口狀態(tài) | 詳見Port_Config指令幫助 |
qSendConfigStatus | Output | Word | 組態(tài)PtP發(fā)送方狀態(tài) | 詳見Send_Config指令幫助 |
qReceiveConfigStatus | Output | Word | 組態(tài)PtP接收方狀態(tài) | 詳見Receive_Config指令幫助 |
MBrtuMaster1500Msg
名稱 | 類型 | 數(shù)據(jù)類型 | 說明 | 允許值,說明 |
iInstructionActive | Input | Bool | 真為激活指令,假為不激活指令 |
|
iNewRequest | Input | Bool | 讀寫請求位 | 每一個新的讀寫請求必須使用脈沖觸發(fā) |
iSlave | Input | USInt | 從站地址 | 1到247 |
iReadWrite | Input | USInt | 0=讀,1=寫 | 1. 開關(guān)量輸出和保持寄存器支持讀和寫功能 2. 開關(guān)量輸入和模擬量輸入只支持讀功能 |
iAddress | Input | USInt | 讀寫從站的數(shù)據(jù)地址 | 選擇讀寫的數(shù)據(jù)類型 00001 至 0xxxx - 開關(guān)量輸出 10001 至 1xxxx - 開關(guān)量輸入 30001 至 3xxxx - 模擬量輸入 40001 至 4xxxx - 保持寄存器 400001 至 465535 - 保持寄存器 |
iCount | Input | UInt | 數(shù)據(jù)個數(shù) | 通訊的數(shù)據(jù)個數(shù)(位或字的個數(shù)) Modbus主站可讀/寫的***大數(shù)據(jù)量為120個字(是指每一個 MBrtuMasterMsg 指令) |
iBufferDBNumber | Input | UDInt | MODBUS緩沖區(qū)數(shù)據(jù)塊號 | 如:UDINT#3000 |
iPointerDBNumber | Input | UDInt | MODBUS讀寫數(shù)據(jù)塊號 | 如:UDINT#2000 |
iPointerByte | Input | UInt | 用戶數(shù)據(jù)塊字節(jié)地址 | 1. 如果是讀指令,讀回的數(shù)據(jù)放到數(shù)據(jù)區(qū)這個字節(jié)開始的區(qū)域中 2. 如果是寫指令,要寫出的數(shù)據(jù)從這個字節(jié)開始的數(shù)據(jù)區(qū)取出 |
qDone | Output | Bool | 完成位 | 此位為脈沖信號,需要保持信號,用戶自行加起保停程序,完成位為啟動,讀寫請求位為停止即可。 |
qBusy | Output | Bool | 指令工作中 | BUSY = 1:作業(yè)尚未完成。BUSY = 0:作業(yè)完成 |
qError | Output | Word | 通信錯誤 | 錯誤規(guī)范 0000 命令完成沒有錯誤 7000 指令未執(zhí)行 7001 指令開始工作 9003 接收超時 9004 輸入?yún)?shù)錯誤 9005 Modbus未激活 9006 忙 其它指令在工作 9007 功能號不符 9008 CRC校驗錯誤 9009 本指令未啟用 900A 發(fā)送錯誤 900B 發(fā)送超時 900C 接收錯誤 900D 接收的數(shù)據(jù)長度與預計長度不符 900E 簽名錯誤 91XX 從站返回的錯誤 |
qSendStatus | Output | Word | 發(fā)送指令狀態(tài)及錯誤 | 見發(fā)送指令規(guī)范 |
qRevStatus | Output | Word | 接收指令狀態(tài)及錯誤 | 發(fā)接收指令規(guī)范 |
MBrtuMaster1500BufferDB1
非優(yōu)化數(shù)據(jù)塊。緩沖區(qū)數(shù)據(jù)塊是一個400(不可小于400)個字節(jié)數(shù)據(jù)塊