2019手机在线观看国产,国产呦系列毛片视频在线,A级毛片高清APP,好男人在线影院视频2019,全国探花在线视频播放,正在播放露脸老太在线

7*24小時(shí)在線咨詢電話

010-80252861

新聞資訊

contact us

24小時(shí)免費(fèi)咨詢熱線

010-80252861

技術(shù)資訊

當(dāng)前位置: 首頁 >> 新聞資訊 >> 技術(shù)資訊

西門子S7-200做主站S7-300 CP341做從站的Modbus RTU通訊-200plc編程

發(fā)布時(shí)間:2019-08-24 來源:眾智博遠(yuǎn)

S7-200做Modbus主站的設(shè)置
S7-200 CPU上的通信口在電氣上是標(biāo)準(zhǔn)的RS-485半雙工串行通信口,此串行字符通信的格式:1個(gè)起始位;7/8位數(shù)據(jù)位;1位奇/偶/無校驗(yàn);1停止位。通信波特率可以設(shè)置為1200、2400、4800、9600、19200、38400、57600或112500,符合這些格式的串行通訊設(shè)備可以和S7-200進(jìn)行自由口通訊,Modbus RTU指令庫就是使用自由口編程實(shí)現(xiàn)的。

4.1.1 Modbus RTU主站庫

使用Modbus 主站指令庫時(shí)需要注意的幾點(diǎn):

  • 需要S7-200的編程軟件是 Micro/WIN V4.0 SP5及以上版本;

  • Modbus RTU 主站庫對(duì)CPU的版本有要求,CPU 的版本須為 2.00 或者 2.01(即訂貨號(hào)為 6ES721*-***23-0BA*);

  • Modbus主站可讀/寫的大數(shù)據(jù)量為120個(gè)字(指每一個(gè) MBUS_MSG 指令);

  • Modbus 主站庫支持Port0和Port1(從站庫只支持Port0口),本例中用Port0;

  • 使用Modbus 庫時(shí)須對(duì)庫存儲(chǔ)區(qū)進(jìn)行分配,見下圖設(shè)置,而且分配的空間不能和程序中其它空間沖突,否則編譯調(diào)用會(huì)報(bào)錯(cuò)。


圖4 庫存儲(chǔ)區(qū)設(shè)置

  • Modbus主站庫支持的功能碼和地址對(duì)應(yīng)關(guān)系:
     

    Modbus 地址 / Modbus 從站須支持的功能
    00001~09999功能1:讀輸出點(diǎn)
      數(shù)字量輸出功能5:寫單個(gè)輸出點(diǎn)

    功能15:寫多個(gè)輸出點(diǎn)
    10001~19999功能2:讀輸入點(diǎn)
      數(shù)字量輸入
    30001~39999功能4:讀輸入寄存器
      輸入寄存器
    40001~49999功能3:讀保持寄存器
      保持寄存器功能6:寫單個(gè)寄存器

    功能16:寫多個(gè)寄存器

    表2需要從站支持的功能

4.1.2 S7-200 Modbus主站編程
編程時(shí),使用SM0.0調(diào)用MBUS_CTRL完成主站的參數(shù)初始化,詳細(xì)見下表,參數(shù)的說明也可以從子程序的局部變量表中找到。


圖5 Modbus RTU 主站初始化

圖中各參數(shù)含義如下

編號(hào)符號(hào)/含義說                   明
aEN / 使能須保證每一掃描周期都被使能(使用SM0.0)。
bMode / 模式為1時(shí)使能為Modbus協(xié)議;為0時(shí)恢復(fù)為PPI協(xié)議。
cBaud / 波特率支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。
dParity / 校驗(yàn)校驗(yàn)方式選擇:0=無校驗(yàn);1=奇校驗(yàn),2=偶校驗(yàn)。
eTimeout / 超時(shí)主站等待從站響應(yīng)的時(shí)間,以毫秒為單位,典型的設(shè)置值為 1000毫秒,允許設(shè)置的范圍為1-32767。這個(gè)值須設(shè)置足夠大以保證從站有時(shí)間響應(yīng)。
fDone / 完成位初始化完成,此位會(huì)自動(dòng)置1。
gError / 錯(cuò)誤位初始化錯(cuò)誤代碼。

表3

調(diào)用 Modbus RTU 主站讀寫子程序MBUS_MSG,發(fā)送一個(gè)Modbus 請(qǐng)求。


圖6 調(diào)用Modbus RTU 主站讀寫子程序

圖中各參數(shù)含義如下

編號(hào)符號(hào)/含義                   
aEN / 使能同一時(shí)刻只能有一個(gè)讀寫功能使能。
bFirst / 讀寫請(qǐng)求位 每一個(gè)新的讀寫請(qǐng)求須使用脈沖觸發(fā)。
cSlave / 從站地址可選擇的范圍1–247
dRW / 讀寫操作位0=讀, 1=寫。
eAddr / 讀寫從站的數(shù)據(jù)地址選擇讀寫的數(shù)據(jù)類型:
00001  0xxxx - 開關(guān)量輸出
10001  1xxxx - 開關(guān)量輸入
30001  3xxxx - 模擬量輸入
40001  4xxxx - 保持寄存器。
fCount / 數(shù)據(jù)的個(gè)數(shù)通訊的數(shù)據(jù)個(gè)數(shù)(位或字的個(gè)數(shù))。
gDaptPtr / 數(shù)據(jù)指針如果是讀指令,讀回的數(shù)據(jù)放到這個(gè)數(shù)據(jù)區(qū)中;
如果是寫指令,要寫出的數(shù)據(jù)放到這個(gè)數(shù)據(jù)區(qū)中。
hDone / 完成位讀寫功能完成位。
iError / 錯(cuò)誤代碼只有在Done位為1時(shí),錯(cuò)誤代碼才有效。

表4

從上圖中可見,S7-200作為Modbus RTU主站,波特率9.6Kb/s,偶校驗(yàn),連接從站的站地址是3,數(shù)據(jù)存儲(chǔ)區(qū)為VB2000開始的區(qū)域。