西門(mén)子通訊模塊6ES7541-1AB00-0AB0
數(shù)據(jù)必須自“Data to transmit byte 0"起存儲(chǔ)在數(shù)據(jù)記錄中。因此,,數(shù)據(jù)記錄的大小以及用于傳輸幀的數(shù)據(jù)記錄數(shù)可通過(guò)傳輸介質(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"寫(xiě)入為用戶數(shù)據(jù)的發(fā)送確認(rèn),。 請(qǐng)參見(jiàn)“Querying send acknowledgment - bbbbb user data"一章中的“SEND acknowledgment from module",。
對(duì)于屬于某一幀的最后一個(gè)數(shù)據(jù)記錄,在模塊發(fā)送幀后才寫(xiě)入確認(rèn),。
也就是說(shuō),,必須在寫(xiě)入最后一個(gè)數(shù)據(jù)記錄后才評(píng)估“SEND acknowledgment from module"和“SEND status"。
模塊在啟動(dòng)時(shí)會(huì)將零寫(xiě)入“SEND acknowledgment from module"(請(qǐng)參見(jiàn)“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)換:

1) 標(biāo)準(zhǔn),F(xiàn)-CPU/緊湊型 CPU,,訂貨號(hào) 6ES751x-xxx02-0AB0/6ES751x-1CK01-0AB0:您可使用按鍵(RUN 和 STOP)切換模式
西門(mén)子通訊模塊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ì)跳過(guò),。
6. 每條指令單獨(dú)返回錯(cuò)誤信息。
7. 不必?fù)?dān)心程序塊和數(shù)據(jù)塊多,,支持多重背景,。
8. 程序組態(tài)直觀,簡(jiǎn)單,方便,,靈活,。
9. 指令內(nèi)集成端口配置指令,發(fā)送和接收配置指令,,外部只需簡(jiǎn)單參數(shù)即可,。
10. 在冗余系統(tǒng)上使用通過(guò)。
二,、 硬件網(wǎng)絡(luò)施工
關(guān)于通信網(wǎng)絡(luò)施工,,盡量選擇西門(mén)子485紫皮電纜,你胡弄網(wǎng)絡(luò),,網(wǎng)絡(luò)就胡弄你,,所以質(zhì)量可靠的硬件是保證通信正常的前提。若通信線路過(guò)長(zhǎng),,請(qǐng)使用RS485中繼器,,但請(qǐng)不要西門(mén)子RS485中繼器,因?yàn)椴恢С諱ODBUS通信,。具體接線方式請(qǐng)查閱相關(guān)資料,。
CM PtP RS422/485 BA接線圖:下表顯示了 CM PtP RS422/485 BA 前面板上 15 針 sub-D 型插槽的針腳分配。

三,、 程序說(shuō)明及使用方法
您得到的程序如圖:這是由TIA V16歸檔后文件,,打開(kāi)TIA V16后,打開(kāi)此文件,,會(huì)提示新建文件夾,,恢復(fù)后會(huì)看到項(xiàng)目已經(jīng)打開(kāi)。

2. 程序工作原理

3. 程序塊功能說(shuō)明:
MBrtuMaster1500PointerDB1:用戶數(shù)據(jù)塊,。非優(yōu)化數(shù)據(jù)塊,。可以是單個(gè)數(shù)據(jù)塊,,也可以是多個(gè)數(shù)據(jù)塊,。從站返回的數(shù)據(jù)保存在這個(gè)數(shù)據(jù)里,向從站寫(xiě)入的數(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ù)說(shuō)明
MBrtuMaster1500Crtl

名稱 | 類型 | 數(shù)據(jù)類型 | 說(shuō)明 | 允許值,,說(shuō)明 |
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 = 無(wú)奇偶校驗(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í)間 | 值可以很大,,但沒(méi)有必要 |
iRcvTimeOut | Input | Time | 接收信息超時(shí)時(shí)間 | 值可以很大,,但沒(méi)有必要 |
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) | 詳見(jiàn)Port_Config指令幫助 |
qSendConfigStatus | Output | Word | 組態(tài)PtP發(fā)送方狀態(tài) | 詳見(jiàn)Send_Config指令幫助 |
qReceiveConfigStatus | Output | Word | 組態(tài)PtP接收方狀態(tài) | 詳見(jiàn)Receive_Config指令幫助 |
MBrtuMaster1500Msg

名稱 | 類型 | 數(shù)據(jù)類型 | 說(shuō)明 | 允許值,說(shuō)明 |
iInstructionActive | Input | Bool | 真為激活指令,,假為不激活指令 |
|
iNewRequest | Input | Bool | 讀寫(xiě)請(qǐng)求位 | 每一個(gè)新的讀寫(xiě)請(qǐng)求必須使用脈沖觸發(fā) |
iSlave | Input | USInt | 從站地址 | 1到247 |
iReadWrite | Input | USInt | 0=讀,,1=寫(xiě) | 1. 開(kāi)關(guān)量輸出和保持寄存器支持讀和寫(xiě)功能 2. 開(kāi)關(guān)量輸入和模擬量輸入只支持讀功能 |
iAddress | Input | USInt | 讀寫(xiě)從站的數(shù)據(jù)地址 | 選擇讀寫(xiě)的數(shù)據(jù)類型 00001 至 0xxxx - 開(kāi)關(guān)量輸出 10001 至 1xxxx - 開(kāi)關(guān)量輸入 30001 至 3xxxx - 模擬量輸入 40001 至 4xxxx - 保持寄存器 400001 至 465535 - 保持寄存器 |
iCount | Input | UInt | 數(shù)據(jù)個(gè)數(shù) | 通訊的數(shù)據(jù)個(gè)數(shù)(位或字的個(gè)數(shù)) Modbus主站可讀/寫(xiě)的***大數(shù)據(jù)量為120個(gè)字(是指每一個(gè) MBrtuMasterMsg 指令) |
iBufferDBNumber | Input | UDInt | MODBUS緩沖區(qū)數(shù)據(jù)塊號(hào) | 如:UDINT#3000 |
iPointerDBNumber | Input | UDInt | MODBUS讀寫(xiě)數(shù)據(jù)塊號(hào) | 如:UDINT#2000 |
iPointerByte | Input | UInt | 用戶數(shù)據(jù)塊字節(jié)地址 | 1. 如果是讀指令,,讀回的數(shù)據(jù)放到數(shù)據(jù)區(qū)這個(gè)字節(jié)開(kāi)始的區(qū)域中 2. 如果是寫(xiě)指令,,要寫(xiě)出的數(shù)據(jù)從這個(gè)字節(jié)開(kāi)始的數(shù)據(jù)區(qū)取出 |
qDone | Output | Bool | 完成位 | 此位為脈沖信號(hào),需要保持信號(hào),,用戶自行加起保停程序,,完成位為啟動(dòng),讀寫(xiě)請(qǐng)求位為停止即可,。 |
qBusy | Output | Bool | 指令工作中 | BUSY = 1:作業(yè)尚未完成,。BUSY = 0:作業(yè)完成 |
qError | Output | Word | 通信錯(cuò)誤 | 錯(cuò)誤規(guī)范 0000 命令完成沒(méi)有錯(cuò)誤 7000 指令未執(zhí)行 7001 指令開(kāi)始工作 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ò)誤 | 見(jiàn)發(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ù)塊