天天看點

#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb

作者:閑下自清

#從今天起記錄我的2023##挑戰30天在頭條寫日記#

今天是記錄學習工控知識的第37天,繼續分享“1200PLC Modbus TCP通信”知識。

一.MODBUS RTU與MODBUS TCP的比較:

1.通信接口不同:

MODBUS RTU采用DB-9針的序列槽,而MODBUS TCP采用RJ45的以太網口;簡單來說就是一個是序列槽,一個是網口。

2.消息幀不同:(參見圖一)

3.通信方式不同:

MODBUS RTU 為以主站多從站結構

MODBUS TCP 為伺服器、用戶端結構

二."TCON_IP_V4"系統資料結構:

1.MODBUS TCP有MB_CLIENT(用戶端)、MB_SERVER(服務端)2個指令,對于指令的調用和管腳代表的含義就不做贅述,不懂的要多按"F1",懂得都懂啊,PS我也是跟大神們學的。

2.硬體辨別符:在PROFINET"屬性的“系統常數”中可以查到。

3.在調用建立一個DB塊,在該DB塊中建立一個名稱為“connect”的變量,資料類型為“TCON_IP_V4”;見圖2 、4所示

InterfaceId:硬體辨別符→64

ConnectionType:TCP→16#0B,ISO_ON_TCP→16#0C UDP→16#13

三.MB_CLIENT(用戶端)指令背景資料塊說明:

1.在MODBUS TCP通信程式設計時,經常會使用到MB_CLIENT指令背景資料塊中的兩個變量,位于背景資料塊的靜态變量中:見圖6所示

MB_Unit_ID:表示MODBUS TCP資訊幀的MBPA報頭中的單元辨別符,該單元辨別符相對于串行通信中的從站位址。

Connected:用于訓示MODBUS TCP的連接配接狀态,設計程式時可通過對該位的判斷來實作是否激活指令上的REQ管腳。(見圖7所示)

四.MB_SERVER(服務端)指令淺析:

1.MB_HOLD_REG:用于指定保持性存儲器的位址

2.NDR: 0表示無新資料,1表示從用戶端寫入了新資料

3.DR: 0表示無資料讀取,1表示有資料被用戶端讀取

4.當作為多個用戶端的伺服器時,MB_SERVER的指令需要調用多次,而且需要使用不同的背景DB和連接配接ID.

對于PLC的通訊大家有什麼好的學習方法嗎?歡迎大家留言讨論!

#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb
#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb
#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb
#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb
#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb
#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb
#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb
#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb
#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb
#從今天起記錄我的2023##挑戰30天在頭條寫日記#今天是記錄學習工控知識的第37天,繼續分享“1200PLCModb

繼續閱讀