找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
開啟左側

西門子S7-1200 Modbus TCP通信指令塊 MB_SERVER即Modbus TCP服務器從站指令塊使用實例

馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區。

您需要 登錄 才可以下載或查看,沒有帳號?立即注冊

x
西門子S7-1200Modbus TCP 通信指令塊
MB_SERVERModbus TCP服務器(從站)指令塊使用實例
[size=21.3333px]Modbus TCP服務器從站指令塊使用實例編程實例下載地址
詳細操作說明下載地址(回復本帖可見)
游客,如果您要查看本帖隱藏內容請回復
Modbus TCP客戶端主站指令塊編程實例下載地址:http://www.spptfu.buzz/thread-11438-1-1.html
STEP 7 V13 SP1 軟件版本中的Modbus TCP庫指令目前最新的版本已升至V4.0,該版本的使用需要具備以下兩個條件:
1. 軟件版本: STEP 7 V13 SP1及其以上
2. 固件版本: S7-1200 CPU 的固件版本V4.1

圖1.Modbus TCP V4.0 版本指令塊
S7-1200 Modbus TCP 實驗環境
下面以一臺S7-1200作為服務器即從站,Modbus POLL作為客戶端即主站之間進行Modbus TCP 通信為例,詳細闡述客戶端與服務器側如何編程及通信的過程。表格列出了具體的實驗環境:
  
操作系統
  
  
WIN7 SP1 專業版 64位
  
  
編程軟件
  
  
STEP 7 Professional V13 SP1 Update 7
  
  
系統硬件
  
  
1.CPU1214C 6ES7 214-1BG40-0XB0  V4.1
  
表1.Modbus TCP 通信的實驗環境
  
CPU類型
  
  
IP地址
  
  
端口號
  
  
硬件標識符
  
  
客戶端
  
  
Modbus POLL
  
  
192.168.31.228
  
  
0
  
  
64
  
  
服務器
  
  
CPU 1214C
  
  
192.168.31.12
  
  
502
  
  
64
  
表2.Modbus TCP 通信雙方的基本配置
硬件標識符是在“設備組態”中,雙擊 PROFINET 接口,然后在“屬性”中的“硬件標識符”中查看。

圖2.S7-1200設備的PROFINET接口硬件標識符
S7-1200 Modbus TCP 服務器編程
“MB_SERVER”指令將處理 Modbus TCP 客戶端的連接請求、接收并處理 Modbus 請求并發送響應。
1. 在“ 程序塊->OB 1"中調用“MB_SERVER”指令塊,然后會生成相應的背景DB塊,點擊確定,如圖3所示。

圖3.調用MB_SERVER指令塊
該功能塊的各個引腳定義如下:
  
DISCONNET
  
  
為0代表被動建立與客戶端的通信連接;為1代表終止連接。
  
  
MB_HOLD_REG
  
  
指向 Modbus 保持寄存器的指針。
  
  
CONNECT
  
  
指向連接描述結構的指針。TCON_IP_v4(S7-1200)
  
  
NDR
  
  
為0代表無數據;為1代表從 Modbus 客戶端寫入新的數據。
  
  
DR
  
  
為0代表無讀取的數據;為1代表從 Modbus 客戶端讀取的數據
  
  
ERROR
  
  
錯誤位:0:無錯誤;1:出現錯誤,錯誤原因查看STATUS。
  
  
STATUS
  
  
指令的詳細狀態信息。
  
表3.MB_SERVER 各個引腳定義說明
2. CONNECT 引腳的指針類型
第一步,先創建一個新的全局數據塊DB3,并命名為MB_SERVER_TCON,如圖4所示(注:圖中編號可根據實際需要更改,在我們這實例中已經改為DB3):

圖4.創建全局數據塊
第二步,雙擊打開新生成的 DB3 數據塊,定義變量名稱為“sd",數據類型為“TCON_IP_v4”(可以將 TCON_IP_v4 拷貝到該對話框中),然后點擊“回車”按鍵。該數據類型結構創建完畢。如圖5所示:

圖5.創建 MB_SERVER 中的 TCP 連接結構的數據類型
各個引腳定義說明如下:
  
InterfaceId
  
  
硬件標識符。(設備組態中查詢)
  
  
ID
  
  
連接ID(即從站站號),取值范圍1~4095
  
  
Connection Type
  
  
連接類型。TCP連接默認為:16#0B
  
  
ActiveEstablished
  
  
建立連接。主動為1(客戶端),被動為0(服務器)。
  
  
ADDR
  
  
服務器側的IP地址
  
  
RemotePort
  
  
遠程端口號
  
  
LocalPort
  
  
本地端口號
  
表4.TCON_IP_v4 數據結構的引腳定義
客戶端側的IP地址為192.168.31.228,端口號為0,所以 MB_SERVER 服務器側該數據結構的各項值如圖6所示。

圖6.MB_SERVER 服務器側的 CONNECT 數據結構定義
3. S7-1200 服務器側 MB_SERVER 編程
調用MB_SERVER指令塊,實現被客戶端讀取1000個保持寄存器的值,如圖7所示。

圖7.MB_SERVER 服務器側編程
注意:MB_HOLD_REG 指定的數據緩沖區可以設為 DB 塊或 M 存儲區地址。DB 塊可以為優化的數據塊,也可以為標準的數據塊結構。我們這個測試實例中新建了一個DB2的數據塊,并在數據塊里面建了一個數組,從而實現客戶端能訪問1000個保持寄存器。

圖8.MB_HOLD_REG數據塊
S7-1200 MODBUS TCP 通信調試
S7-1200 MODBUS TCP 服務器側準備數據,因為初始化中配置的一些數據是0,所以在監控的時候需要將一些配置數據在監控表中寫入進去如圖9所示:
圖中的502服務器端口號,16#0040是硬件標示符的16進制表示方式,16#0001是從站號。

圖9配置值寫入
客戶端連接參數配置,選擇TCP/IP,并設定IP地址和端口號,如圖10:

圖10.客戶端連接參數配置
點擊確定之后,再點擊菜單欄中的安裝選擇POLL定義,在彈出來如圖11中的畫面中配置ID號既功能碼、起始地址和長度。

11
之后就顯示如圖12,圖12中已經將4000140002的值更改:

在服務器中顯示的值如圖12

12.服務器數據監視

這個時候只要在客戶端或者服務器段更改數據另外一端就會跟著變化,如此MB_SERVER就測試成功了。

樓主熱帖
分享到:  QQ好友和群QQ好友和群
收藏1
轉播
分享
淘帖0
支持0
反對0
明天會是怎么樣的一天呢》?期待中......

大神點評122

跳轉到指定樓層
沙發
klll 2017-2-6 11:26:04 只看該作者
1231131412313
地板
whyslc 2017-2-19 09:38:20 只看該作者
正需要這個,感謝分享!!
6#
vipvop 2017-2-26 19:24:58 只看該作者
西門子S7-1200 Modbus TCP通信指令塊
7#
cocoon2006 2017-3-4 23:53:50 只看該作者
看著modbus有點頭痛,看看有沒有啟發
8#
hw958 2017-3-27 16:17:38 只看該作者
謝謝,請給予下載這個程序的權限。
9#
Cortex 2017-4-1 11:24:28 只看該作者
也讓讓他揮戈退日忽然
10#
hgb32001 2017-4-17 17:13:21 只看該作者
西門子S7-1200 Modbus TCP通信指令塊 MB_CLIENT即Modbus TCP客戶端主站指令塊實例下載
上海时时乐开奖今天 时时彩缩水手机版下载 4887香港铁算资料开奖小说 广东快乐10分开奖视频 贵州快三开奖走势图 龙王捕鱼可以赚钱吗 河南麻将必胜绝技 炸金花10提现棋牌 马会精准三头中特 河南福彩快三手机版 江西时时彩开奖最快 南京麻将算法 辽宁朝阳麻将下载 博远棋牌客户端 白小姐中特网必选一肖 吉林11选5中奖技巧 单机版手机捕鱼达人