SIEMENS 長沙豪乾智能科技有限公司
公司帶來銷售的產品全部由西門子直接提供,所有產品保證絕對原裝,每個產品都可以到西門子長沙辦事處去查驗。
我們出售的產品按照西門子質保進行保修,(保修期為一年)《選擇長沙豪乾,是您最明智的決定》。想了解更多內容,請來電,我將為您一一解答。
工作( Q Q ):254598303 136 8731 7079(微信同步)
公司理念:
是專業(yè)從事工業(yè)自動化產品銷售和系統(tǒng)集成的高新技術企業(yè)。在西門子工控領域,公司以精益求精的經營理念,從產品、方案到服務,致力于塑造一個“行業(yè)專家”品牌,以實現(xiàn)可持續(xù)的發(fā)展。
西門子總線電纜分為6XV1830-0EH10通訊屏蔽網線 / 6XV1830-3EH10可拖拽軟線
以上2種電纜均為德國進口電纜,全新原裝正品,假一罰十。質量保證一年!
型號:6XV1830-0EH10
SIMATIC NET, PROFIBUS 快速標準電纜 GP, 2 芯, 屏蔽, 為快速安裝而特殊設計,最大長度: 1000m, 最小訂購數(shù)量: 20m, 按米銷售
型號:6XV1830-3EH10
SIMATIC NET, PROFIBUS FC 拖纜, PROFIBUS 拖纜, 最大加速度:4 m/s2, 至少 3 百萬次 彎曲次數(shù),彎曲半徑: 約 120mm,雙芯屏蔽線,按米銷售,最大長度: 1000m, 最小訂購量: 20 m
【西門子電線電纜簡介】
為了構建 PROFIBUS DP 網絡,提供有不同類型的電纜,可滿足不同類型應用的要求。一般地,應該使用所列出的電纜。有關網絡組態(tài)的詳細信息,請參見 PROFIBUS 網絡手冊。
UL 認證
用于網絡電纜的 UL 列表(安全標準)對于美國和加拿大市場尤為必需。根據(jù)電纜敷設在建筑物中位置來決定適當?shù)恼J證要求。這適用所有電纜,這些電纜從一個機器敷設到一遠程控制柜,位于電纜架上并保護著建筑物。通過 UL 認證的電纜在其名稱后面附加字母“GP”(通用)。
Ex認證
用于本質安全 PROFIBUS DP 應用的電纜在其名稱后面附加字母“IS”(本質安全)
屏蔽的雙絞電纜,圓形截面
Modbus TCP是標準的網絡通信協(xié)議,通過CPU上PN接口進行TCP/IP通信,不需要額外的通信硬件模塊,Modbus TCP使用開放式用戶通信連接作為Modbus通信路徑,所支持的混合客戶機和服務器連接數(shù)最大為CPU所允許的最大開放式用戶通信連接數(shù)8個。
軟件 STEP7 V11 SP1版本開始,S7-1200CPU 從Firmware V1.0.2開始,不再需要安裝Modbus TCP的庫文件,可以直接調用Modbus TCP的庫指令“MB_CLIENT”和“MB_SERVER”使用實現(xiàn)Modbus TCP通信功能,如圖1.所示。
圖1. Modbus TCP的庫指令
MB_CLIENT 進行客戶機和服務器TCP連接、發(fā)送命令消息、接收響應以及控制服務器的斷開。
1.調用MB_CLIENT通信指令,進入 “Program blocks” > “OB1” 主程序中,調用MODBUS TCP客戶機指令,如圖2.所示。
圖2. MB_CLIENT通信指令
功能塊參數(shù)意義如下表1.:
管腳 | 說明 |
REQ | 使能: False-無Modbus通訊請求,True-請求與服務器通訊,Done完成位來后才可以執(zhí)行下次請求,建議采用上升沿觸發(fā)請求; |
DISCONNECT | 控制與服務器建立和終止連接:0-建立與指定IP地址和端口號的通訊連接,默認為0;1-斷開通訊連接,在終止連接的過程中,不執(zhí)行任何其他功能; |
CONNECT_ID | 連接的ID號:每個連接只有一個唯一的ID號; |
IP_OCTET_1~4 | 服務器的IP地址: 如圖2.中通訊對方的IP地址是192.168.0.210; |
IP_PORT | 服務器上使用TCP/IP協(xié)議與客戶端建立通訊的IP端口號,默認值:502; |
MB_MODE | 選擇請求模式(讀取、寫入或診斷),具體對照參照表1.; |
MB_DATA_ADDR | 訪問數(shù)據(jù)的起始地址; |
MB_DATA_LEN | 數(shù)據(jù)長度:數(shù)據(jù)訪問的位數(shù)或字數(shù); |
MB_DATA_PRT | 指向Modbus數(shù)據(jù)寄存器的指針:用于緩存從Modbus服務器接收的數(shù)據(jù)或將發(fā)送到Modbus服務器數(shù)據(jù)的緩沖區(qū),可以是DB塊或M區(qū),如果是DB塊則需要定義為“標準與S7- 300/400兼容”的類型,見下圖3; |
DONE | 完成位:作業(yè)完成,無錯誤,該位置1; |
BUSY | 作業(yè)狀態(tài)位:0-當前沒有正在處理的“MB_CLIENT”作業(yè);1-“MB_CLIENT”作業(yè)正在處理; |
ERROR | 錯誤位:0-無錯誤;1-出現(xiàn)錯誤,錯誤原因查看STATUS; |
STATUS | 錯誤代碼; |
表1. 功能塊參數(shù)意義
2.MB_DATA_PTR數(shù)據(jù)塊的新建
通過“Program blocks”>“Add new block”,選擇“Data block”創(chuàng)建 DB 塊,選擇“標準與S7- 300/400兼容” ,點擊“OK”鍵,定義數(shù)據(jù)區(qū)為100個字的數(shù)組,如圖3.所示。
圖3. 創(chuàng)建MB_DATA_PTR數(shù)據(jù)塊
3. MB_MODE、MB_DATA_ADDR和功能碼的關系
MB_CLIENT指令中,MB_MODE、MB_DATA_ADDR和MB_DATA_LEN三個參數(shù)組合定義了當前Modbus消息中所用的功能代碼,如表2.。
Modbus 功能 | MB_MODE | MB_DATA_ADDR | 操作和數(shù)據(jù)類型 | 數(shù)據(jù)長度 |
FC01 | 0 | 00001~09999 | 讀取輸出位 每個請求1~2000個位 | 1~2000 |
FC02 | 0 | 10001~19999 | 讀取輸入位 每個請求1~2000個位 | 1~2000 |
FC03 | 0 | 40001~49999 或 400001~465535 | 讀取保持寄存器 每個請求1~125個字 | 1~125 |
FC04 | 0 | 30001~39999 | 讀取輸入字 每個請求1~125個字 | 1~125 |
FC05 | 1 | 00001~09999 | 寫一個輸出位 每個請求1個位 | 1 |
FC06 | 1 | 40001~49999 或 400001~465535 | 寫一個保持寄存器 每個請求1個字 | 1 |
FC15 | 1 | 00001~09999 | 寫多個輸出位 每個請求2~1968個位 | 2~1968 |
FC16 | 1 | 40001~49999 或 400001~465535 | 寫多個保持寄存器 每個請求2~123個字 | 2~123 |
FC15 | 2 | 00001~09999 | 寫一個或多個輸出位 每個請求1~1968個位 | 1~1968 |
FC16 | 2 | 40001~49999 或 400001~465535 | 寫一個或多個保持寄存器 每個請求1~123個字 | 1~123 |
FC11 | 11 | 讀取服務器通信狀態(tài)字和事件計數(shù)器:狀態(tài)字反映處理狀態(tài)(0-未處理;0XFFFF-處理中);每次成功發(fā)送一條消息后,事件計數(shù)器都將遞增。執(zhí)行功能時,MB_CLIENT指令的MB_DATA_ADDR和MB_DATA_LEN參數(shù)都將被忽略。 | 0 | |
FC08 | 80 | 通過數(shù)據(jù)診斷代碼0X0000檢查服務器狀態(tài) 每次請求1個字 | 1 | |
FC08 | 81 | 通過數(shù)據(jù)診斷代碼0X000A重新設置服務器事件計數(shù)器 每次請求1個字 | 1 | |
3~10、12~79、82~255 | 保留 |
表2. MB_MODE、MB_DATA_ADDR和功能碼的關系
如上例中S7-1200作客戶機,用FC03功能碼讀取服務器的兩個字,起始從Modbus地址40001開始,接收的數(shù)據(jù)存放在緩沖區(qū)DB3.DBX0.0開始區(qū)域,設置如上:MB_MODE=0,MB_DATA_ADDR=40001,MB_DATA_LEN=2,對應關系為:40001->DB3.DBW0 ,40002->DB3.DBW2。
4.服務器端Modbus Slave 軟件設置
注意:服務器采用Modbus Slave軟件測試,該軟件是第三方軟件,可以從 internet 網絡上下載。
首先將測試電腦的IP地址設置成192.168.0.210,如圖4.所示,打開Modbus Slave 軟件,在Modbus Slave的“Set up->Slave Definition”中設置功能碼、起始地址、長度等,如圖5.所示。
圖4. 電腦的IP地址設置
圖5. 服務器端Modbus Slave軟件設置
創(chuàng)建Modbus TCP/IP連接,在“Connection->connect...”中打開連接屬性對話框,選擇“Modbus TCP/IP” ,TCP/IP Server Port本地服務器端口為502,并可以勾選“Ignore Unit ID”選項,如圖6.所示。
圖6. 連接屬性
注意:圖5.中的Slave ID 是服務器的站地址,和客戶機中“MB_CLIENT” 中的“CONNECT_ID” 不是一個概念,實際上與客戶機中“MB_CLIENT”的背景數(shù)據(jù)塊中的STAT變量“MB_UNIT_ID”需要一致,在1200中該地址默認為16#00FF,如圖7 所示,可以在變量表中修改與實際服務器站地址一致。如果在圖6中勾選“Ignore Unit ID”,則不需要考慮一致情況,如果不勾選,則需要修改一致。
圖7. 客戶機中“MB_CLIENT”的背景數(shù)據(jù)塊中的STAT變量“MB_UNIT_ID”
5.通訊測試
S7-1200作客戶機,用FC03功能碼讀取服務器的兩個字,設置客戶機和服務器的功能、起始地址、端口等參數(shù)相對應,具體設置如上,設置M5.0和M0.0為1,觸發(fā)請求,如圖8.所示。
圖8. S7-1200作客戶機,用FC03功能碼讀取服務器的兩個字
通訊結果如圖9.所示,從服務器讀到數(shù)據(jù)20,30到客戶機的DB3.DBW0和DB3.DBW2區(qū)域。
圖9. 通訊結果
6.MB_CLIENT 參數(shù) STATUS 錯誤代碼查詢參考下面兩個列表3.和表4.。
STATUS(W#16#) | 響應Modbus客戶機的代碼(B#16#) | 錯誤說明 |
8381 | 01 | 不支持功能代碼 |
8382 | 03 | 數(shù)據(jù)長度錯誤 |
8383 | 02 | 數(shù)據(jù)地址錯誤或訪問的數(shù)據(jù)超出MB_DATA_PRT的地址區(qū) |
8384 | 03 | 數(shù)據(jù)值錯誤 |
8385 | 03 | 不支持診斷錯誤代碼(功能代碼08) |
表3. 協(xié)議錯誤代碼
STATUS(W#16#) | 錯誤說明 |
7001 | MB_CLIENT 正在等待Modbus服務器響應指定TCP端口處的連接或斷開連接請求,僅在第一次執(zhí)行連接或斷開操作時才報告此代碼 |
7002 | MB_CLIENT 正在等待Modbus服務器響應指定TCP端口處的連接或斷開連接請求,等待連接或斷開操作完成時,將針對任何后續(xù)執(zhí)行報告此代碼 |
7003 | 斷開操作已成功完成(僅在一個PLC掃描周期內有效) |
80C8 | 服務器在指定的時間內無響應,請檢查與Modbus服務器設備的連接,嘗試過任何組態(tài)的重試操作后,才報告此錯誤 |
8188 | 參數(shù)MB_MODE的值無效 |
8189 | 參數(shù)MB_DATA_ADDR的值無效 |
818A | 參數(shù)MB_DATA_LEN的長度無效 |
818B | 參數(shù)MB_DATA_PTR中的指針無效 |
818C | 參數(shù)MB_DATA_PTR指向優(yōu)化的區(qū)域,必須為“標準與S7- 300/400兼容”的DB或M區(qū) |
8200 | 端口正在處理另一個Modbus請求 |
8380 | 接收到的Modbus楨有缺陷或接收到的字節(jié)太少 |
8387 | 指定的連接ID與用于先前請求的ID不同,只能有一個單個連接ID與每個MB_CLIENT背景數(shù)據(jù)塊配合使用 |
8388 | Modbus服務器返回一些和請求內容不同的數(shù)據(jù),這只適合Modbus功能15或16 |
表4. 參數(shù)錯誤代碼
除了上面列出的MB_CLIENT錯誤外,也可以從底層傳輸通信指令(TCON、TDISCON、TSEND和T
Modbus TCP是標準的網絡通信協(xié)議,通過CPU上PN接口進行TCP/IP通信,不需要額外的通信硬件模塊,Modbus TCP使用開放式用戶通信連接作為Modbus通信路徑,所支持的混合客戶機和服務器連接數(shù)最大為CPU所允許的最大開放式用戶通信連接數(shù)8個。
軟件 STEP7 V11 SP1版本開始,S7-1200CPU 從Firmware V1.0.2開始,不再需要安裝Modbus TCP的庫文件,可以直接調用Modbus TCP的庫指令“MB_CLIENT”和“MB_SERVER”使用實現(xiàn)Modbus TCP通信功能,如圖1.所示。
圖1. Modbus TCP的庫指令
1.調用MB_SERVER通信指令,進入 “Program blocks” > “OB1” 主程序中調用,設置連接ID、IP端口等參數(shù),如下圖2.所示。
圖2.調用MB_SERVER通信指令
功能塊參數(shù)意義如下表5.
管腳 | 說明 |
DISCONNECT | “MB_SERVER”指令建立與客戶機的被動連接:0-建立與指定IP地址和端口號的通訊連接,默認為0;1-斷開通訊連接,在終止連接的過程中,不執(zhí)行任何其他功能; |
CONNECT_ID | 連接的ID號:每個連接只有一個唯一的ID號; |
IP_PORT IP | 端口號將定義Modbus 客戶機連接請求中要監(jiān)控的IP端口號,默認值:502; |
HB_HOLD_REG | 指向“MB_SERVER”指令的Modbus保持寄存器的指針:保持寄存器可以是全局DB塊或M區(qū),如果是DB塊則需要定義為“標準與S7- 300/400兼容”的類型,如圖11.所示,保持寄存器包含Modbus客戶機可通過Modbus功能 FC03(讀取)、FC06(寫入)和FC16(讀?。┰L問的值; |
NDR | 新數(shù)據(jù)就緒:0-沒有新數(shù)據(jù);1-從Modbus客戶機寫入新數(shù)據(jù); |
DR | 數(shù)據(jù)讀取:0-沒有讀取數(shù)據(jù);1-從Modbus客戶機讀取數(shù)據(jù); |
ERROR | 錯誤位:0-無錯誤;1-出現(xiàn)錯誤,錯誤原因查看STATUS; |
STATUS | 錯誤代碼; |
表1. 功能塊“MB_SERVER”參數(shù)
2.MB_DATA_PTR數(shù)據(jù)塊的新建
通過“Program blocks”>“Add new block”,選擇“Data block”創(chuàng)建 DB 塊,選擇“標準與S7- 300/400兼容” ,點擊“OK”鍵,定義數(shù)據(jù)區(qū)為100個字的數(shù)組,如圖3.所示。
圖3.新建MB_DATA_PTR數(shù)據(jù)塊
3.Modbus地址的對應關系
“MB_SERVER”指令允許到達的Modbus功能(FC01、FC02、FC04、FC05、FC15)直接讀取和寫入訪問S7-1200CPU的過程映像輸入/輸出區(qū)(數(shù)據(jù)類型:BOOL和WORD),通過Modbus功能代碼(FC03、FC06和FC16)將到達的Modbus消息寫入Modbus保持寄存器或從寄存器中讀?。赏ㄟ^MB_SERVER指令的參數(shù)“MB_HOLD_REG”指定保持寄存器),保持寄存器的大?。∕B_HOLD_REG參數(shù))必須大于1個字節(jié),詳細參考表2.。
Modbus功能 | S7-1200 | ||||
代碼 | 功能 | 數(shù)據(jù)區(qū) | 地址空間 | 數(shù)據(jù)區(qū) | CPU地址 |
FC01 | 讀取:位 | Output | 00001到08192 | 過程映像輸出 | Q0.0到Q1023.7 |
FC02 | 讀?。何? | Input | 10001到18192 | 過程映像輸入 | I0.0到I1023.7 |
FC04 | 讀取:字 | Input | 30001到30512 | 過程映像輸入 | IW0到IW1022 |
FC05 | 寫入:位 | Output | 00001到08192 | 過程映像輸出 | Q0.0到Q1023.7 |
FC15 | 寫多入:位 | Output | 00001到08192 | 過程映像輸出 | Q0.0到Q1023.7 |
表2.Modbus地址的對應關系
4.客戶機端 Modscan32 軟件設置
注意:客戶機采用Modscan32軟件測試,Modscan32 做 Modbus TCP Client 測試軟件,是第三方軟件,可以從 internet 網絡上下載。
將測試電腦的IP地址設置成192.168.0.210,打開Modscan32 軟件,在Modscan32的“Setup->Data Definition”中設置功能碼、起始地址、長度等,如圖4.所示。
圖4.設置“Data Definition”參數(shù)
在“Connection->connect...”中打開連接屬性對話框,選擇“Remote modbus TCP Server”,設置服務器的IP地址,端口號,如圖5.所示。
圖5.設置連接屬性
注意:用Modsscan32做客戶機不需要考慮Device ID和服務器一致的情況,服務器自動響應客戶機的Device ID。
5.通訊測試
S7-1200作服務器,客戶機Modscan32用FC03功能碼讀取服務器的兩個字,設置客戶機和服務器的功能、起始地址、端口等參數(shù)相對應,具體設置如圖5.和6.所示,
圖6.S7-1200作服務器
通訊結果如下圖7.所示,Modscan32從服務器讀到數(shù)據(jù)10,20到客戶機的DB4.DBW0和DB4.DBW2區(qū)域。
圖7.FC03通訊結果
用功能FC15向服務器的Q0.0~Q0.7寫8位數(shù)據(jù),設置連接參數(shù),Modscan32設置結果如下圖8.所示。
圖8.使用FC15通訊,設置Modscan32
測試結果,服務器側直接對應過程映像輸出區(qū),00001~00008對應Q0.0~Q0.7,如下圖9.所示。
圖9. 使用FC15通訊測試結果
6.HR_Start_Offset背景參數(shù)
HR_Start_Offset是類型為字,用于指定Modbus保持寄存器的起始地址,存儲在MB_SERVER背景數(shù)據(jù)塊中,默認值是0,可以通過編程將值寫入HR_Start_Offset。以上面FC03功能讀2個字為例,將HR_Start_Offset的偏移量設置成2,其他參數(shù)不修改,HR_Start_Offset偏移前后地址對應關系如下表7,編程調用和結果如圖10.和11.所示。
HR_Start_Offset | 地址 | 數(shù)據(jù)1 | 數(shù)據(jù)2 |
0 | Modbus 地址(字) | 40001 | 40002 |
S7-1200地址 | DB4.DBW0 | DB4.DBW2 | |
2 | Modbus 地址(字) | 40003 | 40004 |
S7-1200地址 | DB4.DBW0 | DB4.DBW2 |
表3. HR_Start_Offset偏移前后地址對應關系
編程調用如下圖10.所示
圖10.HR_Start_Offset的偏移量設置
通訊結果如下圖11.所示
圖11. 通訊結果
7.MB_SERVER參數(shù)STATUS的查詢參考下面列表4.
STATUS(W#16#) | 發(fā)送到Modbus服務器的響應代碼(B#16#) | 錯誤說明 |
7001 | MB_SERVER 正在等待Modbus客戶機連接到指定的TCP端口,僅在第一次執(zhí)行連接或斷開操作時才報告此代碼 | |
7002 | MB_SERVER 正在等待Modbus客戶機連接到指定的TCP端口,等待連接或斷開操作完成時,將針對任何后續(xù)執(zhí)行報告此代碼 | |
7003 | 斷開操作已成功完成(僅在一個PLC掃描周期內有效) | |
8187 | 參數(shù)MB_HOLD_REG中的指針無效,數(shù)據(jù)區(qū)過小 | |
818C | 參數(shù)MB_HOLD_REG指向優(yōu)化的區(qū)域(必須為“標準與S7- 300/400兼容”的DB或M區(qū))或因執(zhí)行超時出錯(55秒) | |
8381 | 01 | 不支持此功能代碼 |
8382 | 03 | 數(shù)據(jù)長度錯誤 |
8383 | 02 | 數(shù)據(jù)地址錯誤或訪問了保持寄存器(MB_HOLD_REG參數(shù))地址以外的區(qū)域 |
8384 | 03 | 數(shù)據(jù)值錯誤 |
8385 | 03 | 不支持此數(shù)據(jù)診斷代碼值(功能FC08) |
表4.MB_SERVER參數(shù)STATUS
除了上面列出的錯誤外,也可以從底層傳輸通信指令(TCON、TDISCON、TSEND和TRCV)返回錯誤,參考相應指令的錯誤代碼。
說明:Modbus Slave做 Modbus TCP server 測試軟件,Modscan32 做 Modbus TCP Client 測試軟件,兩者都是第三方軟件,可