亚洲永久精品免费www|欧美.日韩.日本中亚网站|91香蕉亚洲精品人人影视|91夜夜夜精品一区二区|91精选日韩综合永久入口|91亚洲永久精品免费www52zcm|91丨国产丨精品入口

報名人數298905
資訊中心 > 課程相關資訊 > 技工技能類 > PLC電工資訊 > PLC資訊 >?西門子小型系列S7-200MODBUS RTU通訊篇

西門子小型系列S7-200MODBUS RTU通訊篇

時間:2019-09-03 15:41 來源:郭晨

                                    MODBUS通訊

基于RS485通訊的基礎,簡化版

1. 單主站的主從通訊

2. 從站地址0-247

3. MODBUS本身帶有指定的通訊地址

00001至0xxxx-開關量輸出                                                                                              10001至1xxxx-開關量輸入                                                                                          30001至3xxxx-模擬量輸入                                                                                          40001至4xxxx-保持寄存器

Xxxx:用戶定義

MODBUS支持PLC于PLC  還有PLC與變頻器 PLC與伺服通訊等


使用S7-200編寫

打開S7-200庫

MODBUS  MASTER   PORT 0   主站通訊庫端口0

將上面的庫展開

MBUS_CTRL初始化MODBUS主站通訊

MBUS_MSG設置MODBUS控制請求(設置發送和接受)

MODBUS SLAVE PORT 0從站通訊庫 (在于PLC與PLC之間才會用從站通訊庫,從站通訊庫寫在從站當中。)

MODBUS_INIT 從站通訊地址設置

MODBUS_slave 從站接受請求


主站初始化MODBUS通訊指令

西門子小型系列S7-200MODBUS RTU通訊篇01 

EN          EN使能:必須保證每一掃描周期都被使能(使用SM0.0)

Mode      模式:常為1,使能 Modbus 協議功能;為0 時恢復為系統 PPI 協議

Baud       波特率:設為9600,要與從站波特率對應

Parity       校驗:0:無 1:奇  2:偶            是一種校驗代碼傳輸正確性的方法,根據被傳輸的一組二進制數據中的1的個數為奇數還是偶數。             

Timeout    超時:主站等待從站響應的時間,以毫秒為單位,典型的設置值為1000毫秒(1秒),

                            允許設置的范圍為1-32767。

                注意:這個值必須設置足夠大以保證從站有時間響應。

Done      完成位:初始化完成,此位會自動置1。可以用該位啟動 MBUS_MSG 讀寫操作

Error       初始化錯誤代碼(只有在 Done 位為1時有效):0= 無錯誤                                                                                                               1= 校驗選擇非法                                                                                                               2= 波特率選擇非法                                                                                                               3= 模式選擇非法

 

2設置通訊的讀寫

西門子小型系列S7-200MODBUS RTU通訊篇02 

EN使能:同一時刻只能有一個讀寫功能(即 MBUS_MSG)使能   

注意:建議每一個讀寫功能(即MBUS_MSG)都用上一個 MBUS_MSG 指令的 Done 完成位來激活,以保證所有讀寫指令循環進行(見程序)。

First讀寫請求位:每一個新的讀寫請求必須使用脈沖觸發

Slave從站地址:可選擇的范圍 1-247

RW讀寫操作:0=讀, 1=寫                 

注意:1. 開關量輸出和保持寄存器支持讀和寫功能

      2. 開關量輸入和模擬量輸入只支持讀功能

Addr讀寫從站的數據地址:選擇讀寫的數據類型

00001至0xxxx-開關量輸出                                                                                              10001至1xxxx-開關量輸入                                                                                          30001至3xxxx-模擬量輸入                                                                                          40001至4xxxx-保持寄存器

Count       通訊的數據個數(位或字的個數)

                 注意:Modbus主站可讀/寫的最大數據量為120個字(是指每一個 MBUS_MSG 指令)

DataPtr數據指針:1. 如果是讀指令,讀回的數據放到這個數據區中

 2. 如果是寫指令,要寫出的數據放到這個數據區中

格式為(&vb0指針格式)

Done讀寫功能完成位

Error錯誤代碼 只有在 Done 位為1時,錯誤代碼才有效

錯誤代碼:0=無錯誤

          1=響應校驗錯誤

          2=未用

          3=接收超時(從站無響應)

          4=請求參數錯誤

          5=Modbus/自由口未使能

          6=Modbus正在忙于其它請求

          7=響應錯誤(響應不是請求的操作)

          8=響應CRC校驗和錯誤

          101= 從站不支持請求的功能

          102= 從站不支持數據地址

          103= 從站不支持此種數據類型

          104= 從站設備故障

          105= 從站接受了信息,但是響應被延遲

          106= 從站忙,拒絕了該信息

          107= 從站拒絕了信息

          108= 從站存儲器奇偶錯誤

常見的錯誤及其錯誤代碼:

1. 如果多個 MBUS_MSG 指令同時使能會造成6號錯誤

2. 從站 delay 參數設的時間過長會造成3號錯誤

3. 從站掉電或不運行,網絡故障都會造成3號錯誤


在從站S7-200PLC中編寫

從站初始化請求

西門子小型系列S7-200MODBUS RTU通訊篇03 

初始化Modbus從站協議

 

Mode:         模式選擇,啟動/停止MODBUS,1=啟動;0=停止

Address:     從站地址,MODBUS從站地址,取值1~247

Baud:         波特率,可選1200,2400,4800,9600,19200,38400,57600,115200

Parity:         奇偶校驗,0=無校驗;1=奇校驗;2=偶校驗

Delay:         延時,附加字符間延時,缺省值為0

MaxIQ:       最大I/Q位,參與通信的最大I/O點數,S7-200的I/O映像區為128/128,缺省值為128

MaxAI:       最大AI字數,參與通信的最大AI通道數,可為16或32

MaxHold:   最大保持寄存器區,參與通信的V存儲區字(VW)

HoldStart:   保持寄存器區起始地址,以&VBx指定(間接尋址方式)

 

Done:        初始化完成標志,成功初始化后置1

Error:         初始化錯誤代碼

 

在本例子中,設置從站地址為12

Port0 通訊波特率為9600

無校驗

可以使用的S7-200最大數字量輸入輸出點數為128

可以使用的S7-200最大模擬量輸入寄存器字數為32

可以使用的V區寄存器地址字數為100, 起始地址為VB1000

智通教育是東莞市專業的PLC編程培訓機構,平時會不定期的在網站發布一些PLC電氣自動化課程相關的知識點,有興趣的同學歡迎大家關注本網站!