本篇文章的目的在于用實(shí)例說(shuō)明西門(mén)子1200做Server和Client以及AM401做Client和Server相互通信
1200 IP地址 :192.168.1.190
AM401 IP地址 :192.168.1.88
一、 1200做Server AM401做Client
MB_HILD_REG需要用指針型
程序調(diào)用比較簡(jiǎn)單,重點(diǎn)是CONNECT參數(shù)的設(shè)置
Server做被動(dòng)連接,ActiveEstablished為0
IP地址這里設(shè)置為0.0.0.0 RemotePort 設(shè)為0,意味著不指定特定的Client連接,即可以有多個(gè)Client的任意端口連接
AM401 Client 設(shè)置
AM401做Client需要勾選ModbusTCP主站,即AM401做主站,1200為從站 從站端口設(shè)502
然后配置ModbusTCP的數(shù)據(jù)地址
AM401這里簡(jiǎn)單設(shè)置保持寄存器的0X0000-0X000A為讀取1200 Modbus 40001-40010發(fā)送的數(shù)據(jù)
映射到DB數(shù)據(jù)為DB3.DBW0-DB3.DBW18
AM401 0X0010-0X001A為寫(xiě)入數(shù)據(jù)并發(fā)送到1200 映射到DB數(shù)據(jù)塊為 DB3.DBW32-DB3.DBW50
需要注意的是AM401的地址是0X 即16進(jìn)制數(shù)據(jù)
打開(kāi)主站使能SM3001
監(jiān)控的結(jié)果:
二、 1200做Client AM401做Server
這里只做簡(jiǎn)單的1200讀AM401的10個(gè)保持型寄存器,寫(xiě)的類似
這里的MD_DATA_ADDR為了不跟上面的Server沖突把地址放到Modbus地址的40201對(duì)應(yīng)AM401的%MW200,做Client要主動(dòng)連接,ActiveEstablished要設(shè)為T(mén)rue
IP為AM401地址192.168.1.88 端口502
一個(gè)容易忽視的地方是ID,因?yàn)?200即做Server又做Client這里的ID一定不能跟ServerDB數(shù)據(jù)塊里的ID重復(fù),否則會(huì)造成異常,SeverDB的ID設(shè)1,ClientDB的ID設(shè)為10
AM401做Server設(shè)置很簡(jiǎn)單,只需要再硬件選擇ModbusTCP從站即可
監(jiān)控結(jié)果