當前位置:編程學習大全網 - 編程語言 - 西門子plc200與modbus通信。plc做從站,寄存器裏的數值上位機怎麽讀取,地址映射怎麽做

西門子plc200與modbus通信。plc做從站,寄存器裏的數值上位機怎麽讀取,地址映射怎麽做

s7 200有modbus從站庫,看看他的幫助文件就知道了

MBUS_INIT指令被用於啟用和初始化或禁止Modbus通訊。在使用MBUS_SLAVE指令之前,必須正確執行MBUS_INIT指令。指令完成後立即設定"完成"位,才能繼續執行下壹條指令。在每次掃描且EN輸入打開時執行該指令。應當在每次通訊狀態改變時執行MBUS_INIT指令。因此,EN輸入應當通過壹個邊緣檢測元素用脈沖打開,或者僅在首次掃描時執行。"模式"輸入數值選擇通訊協議:輸入數值1將端口0指定給Modbus協議並啟用協議;將輸入數值0則將端口0指定給PPI,並禁用Modbus協議。"波特"參數將波特率設為1200、2400、4800、9600、19200、38400、57600或115200。"地址"參數將地址設為1和247之間(包括1和247)的數值。

"奇偶校驗"參數被設為與Modbus主設備奇偶校驗相匹配。可接受的數值為:

0-無奇偶校驗

1-奇數校驗

2-偶數校驗

"延時"參數通過將指定的毫秒數增加至標準Modbus信息超時的方法延長標準Modbus信息結束超時條件。該參數的典型數值在有線網絡上應為0。如果您在使用帶有糾錯功能的調制解調器,將延時設為50至100毫秒的數值。如果您在使用擴展頻譜無線電,將延時設為10至100毫秒的數值。"延時"數值可以是0至32767毫秒。

MaxIQ參數將供Modbus地址0xxxx和1xxxx使用的I和Q點數設為0至128之間的數值。數值0禁止所有向輸入和輸出的讀取。建議使用的MaxIQ數值是128,該數值可在S7-200

中存取所有的I和Q點。

MaxAI參數將供Modbus地址3xxxx使用的字輸入(AI)寄存器數目設為0至32之間的數值。數值0禁止模擬輸入的讀數。建議使用的MaxAI數值如下,這些數值可允許存取所有的

S7-200模擬輸入:

0用於CPU 221

16用於CPU 222

32用於CPU 224、224XP、226和226XM

MaxHold參數設定供Modbus地址4xxxx使用的V存儲器中的字保持寄存器數目。例如,為了允許主設備存取2000個字節的V存儲器,將MaxHold設為1000個字的數值(保持寄存器)。

HoldStart參數是V存儲器中保持寄存器的起始地址。該數值壹般被設為VB0,因此HoldStart參數被設為&VB0 (VB0地址)。其它V存儲器地址可指定為保持寄存器的起始地址,以便在項目的其它地方使用VB0。Modbus主設備可存取V內存MaxHold個字數,從HoldStart開始。

MBUS_INIT指令完成時,"完成"輸出打開。"錯誤"輸出字節包含執行指令的結果。請參閱Modbus從站協議執行錯誤代碼中可能因執行指令而產生的錯誤條件。

程序舉例

LAD

STL

NETWORK 1 // 首次掃描時初始化Modbus從站協議

// 將從站地址設為1,將端口0設為9600波特,將奇偶校驗設為偶數,

// 允許存取所有的I、Q和AI數值,允許存取1000臺保存寄存器(2000個字節)

// 從VB0開始。

LD SM0.1

CALL MBUS_INIT, 1, 1, 9600, 2, +0, +128, +32, +1000, &VB0, M0.1, MB1

NETWORK 2

// 每次掃描時執行Modbus從站協議

LD SM0.0

CALL MBUS_SLAVE, M0.2, MB2

Modbus 從站尋址

返回頂端

Modbus地址通常被寫為包含數據類型和偏移量的5個字符的數值。第壹個字符決定數據類型,最後四個字符在數據類型中選擇適當的數值。然後,Modbus主設備將地址映射至正確的功能。Modbus從站指令支持下列地址:

00001至00128是映射至Q0.0 - Q15.7的離散輸出

10001至10128是映射至I0.0 - I15.7的離散輸入

30001至30032是映射至AIW0至AIW62的模擬輸入寄存器

40001至4xxxx是映射至V存儲器的保持寄存器。

所有Modbus地址均以1為基位。下表顯示映射至S7-200地址的Modbus地址。

Modbus地址 S7-200地址

00001 Q0.0

00002 Q0.1

00003 Q0.2

... ...

00127 Q15.6

00128 Q15.7

10001 I0.0

10002 I0.1

10003 I0.2

... ...

10127 I15.6

10128 I15.7

30001 AIW0

30002 AIW2

30003 AIW4

... ...

30032 AIW62

40001 Hold Start

40002 HoldStart+2

40003 HoldStart+4

... ...

4xxxx HoldStart+2 x (xxxx-1)

Modbus從站協議允許您限制Modbus主設備可存取的輸入、輸出、模擬輸入和保持寄存器(V存儲器)數量。

MBUS_INIT指令的MaxIQ參數指定Modbus主設備允許存取的離散輸入或輸出(I或Q)的最大數目。

MBUS_INIT指令的MaxAI參數指定Modbus主設備允許存取的輸入寄存器(AIW)的最大數目。

MBUS_INIT指令的MaxHold參數指定Modbus主設備允許存取的保持寄存器(V存儲器字)的最大數目。

請參閱MBUS_INIT指令說明,了解有關為Modbus從站設定存儲器限制的進壹步詳情。

  • 上一篇:妳們覺得網絡小說中誰最強?
  • 下一篇:中專有設計專業有哪些專業課程
  • copyright 2024編程學習大全網