本文給大家介紹兩臺西門子S7-200 SMART PLC,CPU ST30如何進(jìn)行modbus tcp以太網(wǎng)通信程序的編寫。
要求如下:
1、將客戶端的VW100開始的10個字寫到服務(wù)器的VW50開始的十個字中。
2、將服務(wù)器的VW100開始的10個字中的數(shù)據(jù)讀取到客戶端的VW50開始的10個字中。
一
首先編寫客戶端的程序,以太網(wǎng)通信屬于全雙工通信模式,通信雙方都可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù),而且發(fā)送和接收都可以同時進(jìn)行,在本例中,發(fā)送數(shù)據(jù)程序和讀取數(shù)據(jù)程序?qū)懙揭粋PLC中。
在MODBUS_CLIENT程序中,
EN:使能;
Req:發(fā)送通信請求,ON允許通信,OFF禁止通信;
Connect:建立連接,ON連接,OFF斷開;
IPAddr1-4設(shè)置的是服務(wù)器的IP地址;
IP_PORT指的是客戶端嘗試連接、且隨后使用 Modbus TCP 進(jìn)行通信的服務(wù)器的端口號;
RW指示該操作是讀還是寫;
Addr指的是要讀或者是寫的服務(wù)器的起始地址;
COUNT:個數(shù);
DataPtr指客戶端的起始地址。
二、服務(wù)器程序如下:
MBUS_SERVER指令說明:
IP_Port:服務(wù)器物理端口號;
MaxIQ:開放可訪問IQ點數(shù)量;
MaxAI:開放可訪問AI數(shù)量;
MaxHold:開放可訪問V區(qū)字?jǐn)?shù),不能與庫存儲區(qū)分配地址產(chǎn)生重疊;
HoldStart:V區(qū)開放起始地址。
Holdstart:保持區(qū)起始地址。即MODBUS地址40001對應(yīng)的VW地址。&VB0則表示40001代表VW0,&VB100則表示40001代表VW100。
注意:一臺服務(wù)器不能連接多臺客戶端,但是服務(wù)器又可以作為客戶端與其它服務(wù)器通信。每臺服務(wù)器只能定義一個端口,不同服務(wù)器的端口可以相同。