S與安科瑞儀表modbus通訊實例_第1頁
S與安科瑞儀表modbus通訊實例_第2頁
S與安科瑞儀表modbus通訊實例_第3頁
S與安科瑞儀表modbus通訊實例_第4頁
S與安科瑞儀表modbus通訊實例_第5頁
已閱讀5頁,還剩59頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、S7-200的通訊口為 RS485 物理口 ( 9 針口),其引腳定義如下圖所示。2接線將端口 0或者端口 1的引腳3接安科瑞儀表的通訊端子的 A+,引腳8接安科瑞儀表的通訊端子的B-。3說明S7-200 CPU上的通信口在電氣上是標準的RS-485半雙工串行通信口,此串行字符通信的格式:1個起始位;7/8位數據位;1位奇/偶/無校驗;1停止位。通信波特率可以設置為 1200、2400、4800、9600、19200、38400、57600 或112500,符合這些格式的串行通訊設備可以和S7-200進行自由口通訊,Modbus RTU指令庫就是使用自由口編程實現的。4 Modbus RTU

2、主站庫使用Modbus主站指令庫時需要注意的幾點:* 需要S7-200的編程軟件是 Micro/WIN V4.0 SP5及以上版本;* Modbus RTU主站庫對 CPU的版本有要求,CPU的版本必須為2.00或者2.01 (即訂貨號為6ES721* *23-0BA* );* Modbus主站可讀/寫的最大數據量為120個字(指每一個 MBUS_MSG 指令);* Modbus 主站庫支持Port0和Port1 (從站庫只支持 Port0 口),本例中用 Port0 ;* 使用Modbus庫時必須對庫存儲區進行分配,見下圖設置,而且分配的空間不能和程序中其它空間沖突,否則編譯調用會報錯。圖4

3、庫存儲區設置Modbus主站庫支持的功能碼和地址對應關系:Modbus?地址讀?/?寫Modbus?從站須支持的功能0000109999?數字量輸出讀功能1:讀輸出點寫功能5:寫單個輸出點功能15:寫多個輸出點1000119999?數字量輸入讀功能2:讀輸入點3000139999?輸入寄存器讀功能4:讀輸入寄存器4000149999?保持寄存器讀功能 3:讀保持奇存器寫功能6:寫單個寄存器功能16:寫多個寄存器表2需要從站支持的功能5S7-200 Modbus 主站編程編程時,使用SM0.0調用MBUS_CTRL完成主站的參數初始化,詳細見下表,參數的說明也可以從子程序的局部 變量表中找到。m

4、 1初始化Modbus站通訊SMO.OIMBUS.CTRLENModeBwudDoneParityErrorTimeout-MOO f -MB1 gb|(SMQOI1d 2e 1000-圖5 Modbus RTU 主站初始化圖中各參數含義如下編符號/含義說?明號aEN /使能必須保證每一掃描周期都被使能(使用 SM0.0)。bMode /模式為1時使能為Modbus協議;為0時恢復為PPI協議。cBaud /波特率支持的通訊波特率為 1200, 2400, 4800, 9600, 19200, 38400,57600,任200。dParity / 校驗校驗方式選擇:。=無校驗;=奇校驗,2=偶

5、校驗。eTimeout / 超時主站等待從站響應的時間,以毫秒為單位,典型的設置值為1000毫秒,允許設置的范圍為 仁32767。這個值必須設置足夠大以保證從站有時間響應。fDone /完成位初始化完成,此位會自動置1。gError /錯誤位初始化錯誤代碼。表3調用 Modbus RTU 主站讀寫子程序 MBUS_MSG,發送一個Modbus請求。網絡2向從站寫客個寄存誥M21I IaMBIUS. riuMG1 1M2.1II1 n IbFirst1 111c3-SlavsDoned1-RWErrore40001Addrf5CountgIWB2000-DstaPtrh|.242 B M制圖6調

6、用Modbus RTU 主站讀寫子程序圖中各參數含義如下編號符號/含義說?旳?aEN /?使能同一時刻只能有一個讀寫功能使能。bFirst /?讀寫請求位?每一個新的讀寫請求必須使用脈沖觸發。fSlave /?從站地址可選擇的范圍1 247。dRW /?讀寫操作位0 =讀,?1 =寫。eAddr /?讀寫從站的數據地址選擇讀寫的數據類型:00001?至?0xxxx -?開關量輸出 10001?至?1xxxx -?開關量輸入 30001?至?3xxxx -?模擬量輸入 40001?至?4xxxx -?保持寄存器。rCount/?數據的個數通訊的數據個數(位或字的個數)。gDap tPtr /?數

7、據指針如果是讀指令,讀回的數據放到這個數據區中; 如果是寫指令,要寫出的數據放到這個數據區中。hDone /?完成位讀寫功能完成位。Error /?錯誤代碼只有在Done位為1時,錯誤代碼才有效。表4從上圖中可見,S7-200作為Modbus RTU主站,波特率9.6Kb/s,偶校驗,連接從站的站地址是 3,數據存儲區為VB2000開始的區域。4.2 CP341 做Modbus 從站的硬件組態4.2.1硬件組態圖7 S7-300側硬件組態422設置Modbus參數圖8消息楨字符結構按照上述操作設置參數,從上圖可以看岀,本例中的傳輸波特率9.6Kb/s , 1位起始位,8位數據位,偶校驗位,1位

8、停止位,從站站地址是 3,主從通訊設備的字符幀格式和波特率等參數設置需要一致。圖9 RS422/485 接口組態RS422/485接口只能一個有效,接口的選擇只需要組態而不需要在硬件上短接。4.2.3 Modbus驅動的下載當配置好Modbus通信的參數后,保存前需要向 CP341下載Modbus Slave的驅動,一旦下載完成后無需再次下 載。需要注意的是,在下載驅動時(可以在無Dongle情況下下載),需要將CPU停機,然后下載,操作過程如下所示II Ddid DrinrsX圖10下載Dongle時,需要CPU停機圖11從站驅動下載后結果424 CP341做Modbus從站的編程從Step

9、7軟件下的EXAMPLE目錄中,找到項目名“zXX21_05_PtP_Com_MODSL ”的項目,打開,然后將Modbus通訊模塊FB80傳遞到用戶項目中,打開路徑如下所示圖12 Modbus Slave 例程打開路徑OB1中調用FB80編程如下:Exuplft of a call-up of tht coMunication ICALLf "IDB_»DB_341" FB80 / DB30 IffOITTurn : STAKT_TINER : START-TIME : OB.IASK :256 T120 S5Tt&S TRUECP.START:TfCP

10、 STW HI:0Tl11epjnwtMO. 200CP START OK :恥.311 1CPSTART-ERROR:M0.400ERROR_NR:NW216t01610ERROR_INFO:JW416*01640圖13 FB80程序塊調用CP 卡初始化正常后,CP_START , CP_START_FM 禾口 CP_START_OK 為 1 信號,否貝U CP_START_ERROR 為1 ,同時可以從ERROR_NR察看錯誤信息,也可以在硬件組態中在線后的 CP341的診斷緩沖區察看詳細的錯誤信息,錯誤信息對照和處理方式可以參考S7-300以用于PtP CP Modbus 協議RTU格式

11、S7的可裝載驅動程序為從站的手冊FB80的各參數含義如下lADDR硬件組態中CP341的起始邏輯地址,本例中為 256START TIMER初始化超時定時器,本例中為 T120START TIME初始化定時器時間,本例中為5SOB MASKI/O訪問錯誤屏蔽位,本例中為 True( I/O訪問錯誤已屏蔽)CP STARTFB初始化使能位,本例中為M0.0CP START FMCP START?初始化的上升沿位,本例中為 M0.1CP NDR從CP卡寫操作位,本例中為 m0.2CP START OK初始化完成且無錯誤,本例中為 M0.3CP_START_ERROR初始化完成,但有錯誤,本例中為

12、M0.4ERROR NR錯誤號,本例中為MW2ERROR INFO錯誤信息,本例中為MW45.通訊測試Modbus RTU格式通信協議是以主從的方式進行數據傳輸的,在傳輸的過程中主站是主動方,即主站發送數據請求報文到從站,從站返回響應報文。Modbus系統間的數據交換是通過功能碼來控制的,以下對現場常用的功能碼進行分類測試,關于功能碼的詳細信息請參考手冊。5.1 FC01/05/15 功能碼CP341從站的通訊區域配置圖14 FC01/05/15 參數組態界面FC01、FC05、FC15對應的數據區為位輸岀,數據的傳遞以位為單位,可以讀寫操作,用戶地址區為Oxxxx , Modbus 地址在信

13、息傳遞中從0開始。如上圖,左邊為信息傳遞地址(地址區不能沖突),右邊對應的是S7-300的數據區。例如左邊信息傳遞地址從 0 7對應用戶地址區為00001 00008,對應S7-300的M10.0 M10.7,并且以此為 例說明FC01功能碼的通訊。S7-200主站程序調用|初始化主站邇訊SMOO-JrjMBUS_CTRLCdkl1SMO 0=1.MLMiivUMooeBaudMDOMB101000網話2MensfllLNM21>ONl1 r1 rrBHSLsveW222lt1PMM84-01JAddrg -Count16#080007Dt)M2Qr圖15功能碼FC01使用S7-200主

14、站,用功能碼FC01讀取從站8點數字量輸岀,接收的數據存放在 VB2000開始的區域,測試截圖結果 如下。S7300M0STI/FC01讀數字量愉出狀態8個0000P00008對應mlO.010.7KB10EINIT 2#1110_0011200M/t3ML3 * i 1 4 * i * 5 * * 1 6 1 7 * 1 * 8 * i 9 > 101'111 b 123 * i * 14 p15! * 161 '17* > 1 "IS地址|稻式1.當垃值彳新值VE2000二諂制圖16 FC01功能碼數據交換5.2 FC02功能碼CP341從站的通訊區域

15、配置1xxxx,Modbus地址在信息傳遞S7-300的數據區。例如左邊信息M20.7,并且以此為例說明 FC02圖17 FC02參數組態界面FC02對應的數據區為位輸出,數據的傳遞以位為單位,只讀操作,用戶地址區為 中從0開始,如上圖,左邊為信息傳遞地址(地址區不能沖突),右邊對應的是 傳遞地址從07對應用戶地址區為 1000110008,對應S7-300的M20.0 功能碼的通訊。S7-200主站程序調用網萊廠初贈化Modbe主站邇訊SMQO-ONMBUS.CTRLIBIENSMOO=ONTMode9600-BaudMO.O-2tt12-ParityMB1-01000T imeout網貉2

16、圖18功能碼FC02使用S7-200主站,用功能碼FC02讀取從站8點數字量輸入,接收的數據存放在VB2000開始的區域,測試截圖結果如下圖19 FC02功能碼數據交換5.3 FC03/06/16 功能碼CP341從站的通訊區域配置圖20 FC03/06/16參數組態界面FC03/06/16對應的數據區為寄存器,數據的傳遞以字為單位,可以讀寫操作,用戶地址區為4xxxx , Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數據區,左邊傳輸地址不可改,右邊只對應一個數據區。例如用戶地址區為4000140004,對應S7-300數據區為DB1.DBW0D

17、B1.DBW6 ,并且以此為例說明FC03功能碼的通訊。wan棚矗化輛打氐藏主站週訊SMOMBUS_CTRL ENModeI Eiud1 JLL' T TiEoutMO.O . hMB1 0M21= INM2.1- IHM0US_MSGEN3-Slave0-RW0X)1AddrCountlWOaOO07D(iV62O*FitfM2 2 =MB4' i'i圖21功能碼FC03使用S7-200主站,用功能碼FC03讀取從站4個字寄存器,接收的數據存放在VB2000開始的區域,測試截圖結果如下。STGOOtt地址和 2000VW2000VW2002VW2004VW2G06S7

18、-200UH野$ rI8g協I I12|13* "丨苗丨1申丨仃丨館格式 二追制 十亢謚制 十六建劃UW1UV0116U112216it334416H55SE16H77S8TT“FCQ3諸保持寄存器的狀態4個4Q(W1PQQM時應dbl的必石伽 *15DB1.D0V0 "主站_. re«i_holddaU 1 HEXWP1581122DBLDBV2 "主站read_holddata2 HEKW01613344ITDBI.m4 "主站謾易保掙寄存5F*"a<hol(l曲t*3 HEKW0160556617DBI.DBV6 &quo

19、t;主站tea4_holddaU4 HEX_¥*1607788圖22 FC03功能碼數據交換5.4 FC04功能碼CP341從站的通訊區域配置圖23 FC04參數組態界面FC04對應的數據區為寄存器輸入,數據的傳遞也以字為單位,只讀操作,用戶地址區3xxxx , Modbus地址在信息傳送中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數據區,左邊傳輸地址不可改,右邊只對應一個數據區。例如用戶地址區為3000130004,對應S7-300數據區為DB1.DBW0DB1.DBW6 ,并且以此為例說明FC04功能碼的通訊。岡絡2M21-0NMBUS MSGENM21=0

20、NllI Pll1 1 irS!3-SlaveMZ22tt10-RWMB4-030001Addr4-Count16ttO0OOO7DO-8.VB20*圖24功能碼FC04使用S7-200主站,用功能碼FC04讀取從站4個字輸入寄存器,接收的數據存放在VB2000開始的區域,測試截圖結果如下S7<300側DB2.DBV0”主站讀暫入寄SJread_ai譏1HEXWietDlDODE2.DBW2”主站讀輸入寄?TBtead_ai»2HEXWL6t0200DE2.DBW4”主站讀 S?入寄?T«tBad_aiw3HEXW016*0300S7DB2.DEW6”主站讀怕入離存f

21、lT“ad_強4HO016*0400-200M迴狀杏表"FCChl讀知入寄耳誥的狀態 右 3000r30004.1«db2的db(Tdb詬地址梅式VB2X0二逬制VW2000W2002VW.2004W20OE十嵐諼制 十吠謹制ranw16ttO2Q0 ismnoo圖25 FC04功能碼數據交換5.5 Limits 欄ProtocolGeneral | Modbus-Slave | FC 01J5J5 | FC 02 | FC 03,06JE | FC 04 砲.1 rrteiface |OKCancelHelp圖26 Limits參數組態界面對于寫功能碼FC05、06、15

22、、16,可以禁用或限制訪問相關 S7-300存儲區,即使用這些功能碼時,S7-300存儲區需要在設定的最小和最大的范圍之間,如果訪問的區域超岀這個范圍,則訪問會被拒絕,同時輸岀報錯誤信息6.總結本文檔以S7-200為主站和CP341為從站簡單介紹了 Modbus RTU通訊,關于通訊的組態設置,編程以及常用功 能碼的使用,其具體的使用可以作為西門子串行通訊模塊與第三方的儀表、設備等進行串行通信的參考。7.相關參考資料關于西門子串行通信應用的文檔可以參考相關產品手冊,或登錄下載中心網站?,搜索下載如下文檔:A0006 :串口通訊模塊的信息與使用A0081 : CP340/341/440/441

23、通訊及編程A0336 : CP341 Modbus RTU 多站點輪詢A0440 : CP340/341基于ASCII驅動協議的多站點輪詢A0384 : S7-300 CP341 作主 S7-200 作從的 Modbus 通信關鍵詞CP341,Modbus RTU,功能碼,S7-200圖4庫存儲區設置Modbus主站庫支持的功能碼和地址對應關系:Modbus?地址讀?/?寫Modbus?從站須支持的功能0000109999?數字量輸出讀功能1:讀輸出點寫功能5:寫單個輸出點功能15:寫多個輸出點1000119999?數字量輸入讀功能2:讀輸入點3000139999?輸入寄存器讀功能4:讀輸入寄

24、存器4000149999?保持寄存器讀功能 3:讀保持奇存器寫功能6:寫單個寄存器功能16:寫多個寄存器表2需要從站支持的功能4.1.2 S7-200 Modbus 主站編程編程時,使用SM0.0調用MBUS_CTRL完成主站的參數初始化,詳細見下表,參數的說明也可以從子程序的局部變量表中找到麗1初始化Modbu注站通訊SMO.OIMBUS.CTRLENModeBudDoneParityErrorTimeout-MOO f -MB1 gb|rSM0,0I1c 9BOO*d 2E 1000-圖5 Modbus RTU 主站初始化圖中各參數含義如下編號符號/含義說?aEN /使能必須保證每一掃描周

25、期都被使能(使用 SM0.0)。bMode /模式為1時使能為Modbus協議;為0時恢復為PPI協議。cBaud /波特率支持的通訊波特率為 1200, 2400, 4800, 9600, 19200, 38400,57600,任200。dParity / 校驗校驗方式選擇:° =無校驗;=奇校驗,2=偶校驗。eTimeout / 超時主站等待從站響應的時間,以毫秒為單位,典型的設置值為 1000毫秒,允許設置的范圍為1-32767。這個值必須設置足 夠大以保證從站有時間響應。fDone /完成位初始化完成,此位會自動置1。gError /錯誤位初始化錯誤代碼。表3調用 Modbu

26、s RTU 主站讀寫子程序 MBUS_MSG,發送一個Modbus請求。網絡2'向克站上工-I笛十斗M2.1IaMBUS_MSQ|CL|1M2.1IpbCrl1C>die40001-f5962000-r II SISlaveDoneRWErrorAddrCountDataRr« fn .24 2 B MM IL圖6調用Modbus RTU 主站讀寫子程序圖中各參數含義如下編號符號/含義說?T明aEN /?使能同一時刻只能有一個讀寫功能使能。bFirst /?讀寫請求位?每一個新的讀寫請求必須使用脈沖觸發。fSlave /?從站地址可選擇的范圍1 247。dRW /?讀寫

27、操作位0 =讀,?1 =寫。eAddr /?讀寫從站的數據地址選擇讀寫的數據類型:00001?至?0xxxx -?開關量輸出 10001?至?1xxxx -?開關量輸入 30001?至?3xxxx -?模擬量輸入 40001?至?4xxxx -?保持寄存器。FCount /?數據的個數通訊的數據個數(位或字的個數)。gDap tPtr /?數據指針如果是讀指令,讀回的數據放到這個數據區中; 如果是寫指令,要寫出的數據放到這個數據區中。hDone /?完成位讀寫功能完成位。Error /?錯誤代碼只有在Done位為1時,錯誤代碼才有效。從上圖中可見,S7-200作為Modbus RTU主站,波特

28、率9.6Kb/s,偶校驗,連接從站的站地址是 3,數據存儲區為VB2000開始的區域。4.2 CP341 做Modbus 從站的硬件組態4.2.1硬件組態工 HW Config315立dp 341 ilave (Configuration)cp341 end cp340J胸雖咸B Edt insert PlC Vim Option wjndw* He嶺03詁必軌魯 I戲口豐粋<圖7 S7-300側硬件組態4.2.2設置Modbus參數圖8消息楨字符結構按照上述操作設置參數,從上圖可以看岀,本例中的傳輸波特率9.6Kb/s , 1位起始位,8位數據位,偶校驗位,1位停止位,從站站地址是 3

29、,主從通訊設備的字符幀格式和波特率等參數設置需要一致。圖9 RS422/485 接口組態RS422/485接口只能一個有效,接口的選擇只需要組態而不需要在硬件上短接。4.2.3 Modbus驅動的下載當配置好Modbus通信的參數后,保存前需要向 CP341下載Modbus Slave的驅動,一旦下載完成后無需再次下載。需要注意的是,在下載驅動時(可以在無Dongle情況下下載),需要將CPU停機,然后下載,操作過程如下所示Load Dnwi Icud OriwFiOrivei vefiion 創r# an modiJeDmvrww2537Driver mumDcnwlMdng Io irko

30、dJfFI'kiE圖10下載Dongle時,需要CPU停機圖11從站驅動下載后結果424 CP341做Modbus從站的編程從Step7軟件下的EXAMPLE目錄中,找到項目名“zXX21_05_PtP_Com_MODSL ”的項目,打開,然后將Modbus通訊模塊FB80傳遞到用戶項目中,打開路徑如下所示。二OpcnPrajccl器-X % 10 S * i ”E訃門治匸 Progijm Fi=i$«wu$*ep' wwteZjMJl 115 C Mhogwi 知瞇少C Pr啊 Fiti舊ttfTwniSWpTEwvteiWQIQJ1 C Ptoj-m F.03Br

31、twie.«<21_Of«_P*>LCom_as3i»:_QPtP_G»n_CP440 加1.03吃 5CP4MUw CnailC*!LtenetMuhEHQIKtl圖12 Modbus Slave 例程打開路徑OB1中調用FB80編程如下:of a call-up of tht coMunicaticn IpciuwntiCALL "K>DB_341* , *IDB_MODB_341"FBSO / DB80INOUTLADDR:=2EBSTAKT_TIMER:=T120START-TIME尸 S51MSoa.IAS

32、KCP START嚴IK譏廠1fCP STAKT F1產HO*】11CP KDR00CP START OK:=M0>311CP_STAKT_EfifiOft: =U0.40aERROR_NR:=1H216t01610ERROK.INFQ:=MW416t01610圖13 FB80程序塊調用CP 卡初始化正常后,CP_START , CP_START_FM 禾口 CP_START_OK 為 1 信號,否貝U CP_START_ERROR 為1 ,同時可以從ERROR_NR察看錯誤信息,也可以在硬件組態中在線后的 CP341的診斷緩沖區察看詳細的錯誤信息,錯誤信息對照和處理方式可以參考S7-3

33、00以用于PtP CP Modbus 協議RTU格式S7的可裝載驅動程序為從站的手冊。FB80的各參數含義如下lADDR硬件組態中CP341的起始邏輯地址,本例中為 256START TIMER初始化超時定時器,本例中為 T120START TIME初始化定時器時間,本例中為5SOB MASKI/O訪冋錯誤屏蔽位,本例中為 True (I/O訪冋錯誤已屏蔽)CP STARTFB初始化使能位,本例中為M0.0CP START FMCP START?初始化的上升沿位,本例中為 M0.1CP NDR從CP卡寫操作位,本例中為 m0.2CP START OK初始化完成且無錯誤,本例中為 M0.3CP_

34、START_ERROR初始化完成,但有錯誤,本例中為 M0.4ERROR NR錯誤號,本例中為MW2例如左邊信息傳遞地址從 0 7對應用戶地址區為00001 00008,對應S7-300的M10.0 M10.7,并且以此為表55.通訊測試Modbus RTU格式通信協議是以主從的方式進行數據傳輸的,在傳輸的過程中主站是主動方,即主站發送數據請求報文到從站,從站返回響應報文。Modbus系統間的數據交換是通過功能碼來控制的,以下對現場常用的功能碼進行分類測試,關于功能碼的詳細信息請參考手冊。5.1 FC01/05/15 功能碼CP341從站的通訊區域配置圖14 FC01/05/15 參數組態界面

35、S7-300的數據區FC01、FC05、FC15對應的數據區為位輸岀,數據的傳遞以位為單位,可以讀寫操作,用戶地址區為Oxxxx , Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址(地址區不能沖突),右邊對應的是網緡2MZ1«0NweuS_MSGIMI匚MIM2.1 ONTFFirt3-SlaveM222tt10耐MB401Addr8匚 cunt161*08000700WEST例說明FC01功能碼的通訊S7-200主站程序調用SMO O P.MBUSCTRL EMSMOO= ir.Mode96001000B&id ParityT imeoutMOOMB1圖1

36、5功能碼FC01使用S7-200主站,用功能碼FC01讀取從站8點數字量輸岀,接收的數據存放在 VB2000開始的區域,測試截圖結果如下S7300filToj |/FC011SSfc字畫輸出狀態 8個 0000100008 対血 *10. 0*10. 7" "” f ”nj IB 10EIN|T 2#1110.0011S7-200UH« 3 1 i 4 * i * 5i £ * T 7 i 1 I i - 9- I-101 '11'i 2"fT3 1 1 '14- i -15' i -16- 1 -17'

37、 ' 118-mtr格式i出箭借F新值11VB2000二邊制L 圖16 FC01功能碼數據交換5.2 FC02功能碼CP341從站的通訊區域配置圖17 FC02參數組態界面FC02對應的數據區為位輸出,數據的傳遞以位為單位,只讀操作,用戶地址區為 中從0開始,如上圖,左邊為信息傳遞地址(地址區不能沖突),右邊對應的是 傳遞地址從07對應用戶地址區為 1000110008,對應S7-300的M20.0 功能碼的通訊。1xxxx,Modbus地址在信息傳遞S7-300的數據區。例如左邊信息M20.7,并且以此為例說明 FC02S7-200主站程序調用網萊廠初贈化Modbe主站邇訊SMQO-

38、ONMBUS.CTRLIBIENSMOO=ONTMode9600-BaudMO.O-2tt12-ParityMB1-01000T imeout網貉2圖18功能碼FC02使用S7-200主站,用功能碼FC02讀取從站8點數字量輸入,接收的數據存放在VB2000開始的區域,測試截圖結果如下圖19 FC02功能碼數據交換5.3 FC03/06/16 功能碼CP341從站的通訊區域配置圖20 FC03/06/16參數組態界面FC03/06/16對應的數據區為寄存器,數據的傳遞以字為單位,可以讀寫操作,用戶地址區為4xxxx , Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址,右邊對應

39、的是S7-300的數據區,左邊傳輸地址不可改,右邊只對應一個數據區。例如用戶地址區為4000140004,對應S7-300數據區為DB1.DBW0DB1.DBW6 ,并且以此為例說明FC03功能碼的通訊。wan棚矗化輛打氐藏主站週訊SMOMBUS_CTRL ENModeI Eiud1 JLL' T TiEoutMO.O . hMB1 0M21= INM2.1- IHM0US_MSGEN3-Slave0-RW0X)1AddrCountlWOaOO07D(iV62O*FitfM2 2 =MB4' i'i圖21功能碼FC03使用S7-200主站,用功能碼FC03讀取從站4個字

40、寄存器,接收的數據存放在VB2000開始的區域,測試截圖結果如下。STGOOtt地址和 2000VW2000VW2002VW2004VW2G06S7-200UH野$ rI8g協I I12|13* "丨苗丨1申丨仃丨館格式 二追制 十亢謚制 十六建劃UW1UV0116U112216it334416H55SE16H77S8TT“FCQ3諸保持寄存器的狀態4個4Q(W1PQQM時應dbl的必石伽 *15DB1.D0V0 "主站_. re«i_holddaU 1 HEXWP1581122DBLDBV2 "主站read_holddata2 HEKW01613344

41、ITDBI.m4 "主站謾易保掙寄存5F*"a<hol(l曲t*3 HEKW0160556617DBI.DBV6 "主站tea4_holddaU4 HEX_¥*1607788圖22 FC03功能碼數據交換5.4 FC04功能碼CP341從站的通訊區域配置圖23 FC04參數組態界面FC04對應的數據區為寄存器輸入,數據的傳遞也以字為單位,只讀操作,用戶地址區3xxxx , Modbus地址在信息傳送中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數據區,左邊傳輸地址不可改,右邊只對應一個數據區。例如用戶地址區為3000130004

42、,對應S7-300數據區為DB1.DBW0DB1.DBW6 ,并且以此為例說明FC04功能碼的通訊。岡絡2M21-0NMBUS MSGENM21=0NllI Pll1 1 irS!3-SlaveMZ22tt10-RWMB4-030001Addr4-Count16ttO0OOO7DO-8.VB20*圖24功能碼FC04使用S7-200主站,用功能碼FC04讀取從站4個字輸入寄存器,接收的數據存放在VB2000開始的區域,測試截圖結果如下S7<300側DB2.DBV0”主站讀暫入寄SJread_ai譏1HEXWietDlDODE2.DBW2”主站讀輸入寄?TBtead_ai»2HE

43、XWL6t0200DE2.DBW4”主站讀 S?入寄?T«tBad_aiw3HEXW016*0300S7DB2.DEW6”主站讀怕入離存flT“ad_強4HO016*0400-200M迴狀杏表"FCChl讀知入寄耳誥的狀態 右 3000r30004.1«db2的db(Tdb詬地址梅式VB2X0二逬制VW2000W2002VW.2004W20OE十嵐諼制 十吠謹制ranw16ttO2Q0 ismnoo圖25 FC04功能碼數據交換5.5 Limits 欄ProtocolGeneral | Modbus-Slave | FC 01J5J5 | FC 02 | FC 0

44、3,06JE | FC 04 砲.1 rrteiface |OKCancelHelp圖26 Limits參數組態界面對于寫功能碼FC05、06、15、16,可以禁用或限制訪問相關 S7-300存儲區,即使用這些功能碼時,S7-300存儲區需要在設定的最小和最大的范圍之間,如果訪問的區域超岀這個范圍,則訪問會被拒絕,同時輸岀報錯誤信息6.總結本文檔以S7-200為主站和CP341為從站簡單介紹了 Modbus RTU通訊,關于通訊的組態設置,編程以及常用功 能碼的使用,其具體的使用可以作為西門子串行通訊模塊與第三方的儀表、設備等進行串行通信的參考。7.相關參考資料關于西門子串行通信應用的文檔可以

45、參考相關產品手冊,或登錄下載中心網站?,搜索下載如下文檔:A0006 :串口通訊模塊的信息與使用A0081 : CP340/341/440/441 通訊及編程A0336 : CP341 Modbus RTU 多站點輪詢A0440 : CP340/341基于ASCII驅動協議的多站點輪詢A0384 : S7-300 CP341 作主 S7-200 作從的 Modbus 通信關鍵詞CP341,Modbus RTU,功能碼,S7-200圖4庫存儲區設置Modbus主站庫支持的功能碼和地址對應關系:Modbus?地址讀?/?寫Modbus?從站須支持的功能0000109999?數字量輸出讀功能1:讀輸

46、出點寫功能5:寫單個輸出點功能15:寫多個輸出點1000119999?數字量輸入讀功能2:讀輸入點3000139999?輸入寄存器讀功能4:讀輸入寄存器4000149999?保持寄存器讀功能 3:讀保持奇存器寫功能6:寫單個寄存器功能16:寫多個寄存器表2需要從站支持的功能4.1.2 S7-200 Modbus 主站編程編程時,使用SM0.0調用MBUS_CTRL完成主站的參數初始化,詳細見下表,參數的說明也可以從子程序的局部變量表中找到麗1初始化Modbu注站通訊SMO.OIMBUS.CTRLENModeBudDoneParityErrorTimeout-MOO f -MB1 gb|rSM0

47、,0I1c 9BOO*d 2E 1000-圖5 Modbus RTU 主站初始化圖中各參數含義如下編號符號/含義說?aEN /使能必須保證每一掃描周期都被使能(使用 SM0.0)。bMode /模式為1時使能為Modbus協議;為0時恢復為PPI協議。cBaud /波特率支持的通訊波特率為 1200, 2400, 4800, 9600, 19200, 38400,57600,任200。dParity / 校驗校驗方式選擇:° =無校驗;=奇校驗,2=偶校驗。eTimeout / 超時主站等待從站響應的時間,以毫秒為單位,典型的設置值為 1000毫秒,允許設置的范圍為1-32767。這

48、個值必須設置足 夠大以保證從站有時間響應。fDone /完成位初始化完成,此位會自動置1。gError /錯誤位初始化錯誤代碼。表3調用 Modbus RTU 主站讀寫子程序 MBUS_MSG,發送一個Modbus請求。網絡2'向克站上工-I笛十斗M2.1IaMBUS_MSQ|CL|1M2.1IpbCrl1C>die40001-f5962000-r II SISlaveDoneRWErrorAddrCountDataRr« fn .24 2 B MM IL圖6調用Modbus RTU 主站讀寫子程序圖中各參數含義如下編號符號/含義說?T明aEN /?使能同一時刻只能有一個讀寫功能使能。bFirst /?讀寫請求位?每一個新的讀寫請求必須使用脈沖觸發。fSlave /?從站地址可選擇的范圍1 247。dRW /?讀寫操作位0 =讀,?1 =寫。eAddr /?讀寫從站的數據地址選擇讀寫的數據類型:00001?至?0xxxx -?開關量輸出 10001?至?1xxxx -?開關量輸入 30001?至?3xxxx -?模擬量輸入 40001?至?4xxxx -?保持寄存器。FCount /?數據的個數通訊的數據個數(位或字的個數)。gDap tPtr /?數據指針如果是讀指令,讀回的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論