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