Modbus RTU通信教程連載(3)-主站的編程
前面的文章我們介紹了Modbus RTU通信例程中主站的配置,今天這篇文章,我們來介紹下主站S7-1200的編程。

新建一個全局數(shù)據(jù)塊"DB_MODBUS_COMM"。在該數(shù)據(jù)塊中新建三個變量:COMM_DONE、COMM_ERROR和COMM_STATUS,用來保存指令“Modbus_Comm_Load”的運行狀態(tài),如下圖:

新建一個全局數(shù)據(jù)塊“DB_MODBUS_MASTER”,用來保存讀取及寫入的數(shù)據(jù)。其中:
-
字數(shù)組“Read_Data_Words”用來保存讀取的40001~40010的數(shù)據(jù);
-
字數(shù)組“Write_Data_Words”是用于寫入到從站Modbus地址40011~40016的數(shù)據(jù);
-
位數(shù)組“Read_Bits”用來保存讀取從站Modbus地址10001~10008的數(shù)據(jù);
-
位數(shù)組“Write_Bits”是用于寫入到從站Modbus地址00001~00008的數(shù)據(jù);
-
無符號短整型(USInt)變量“Step”用來記錄Modbus通信的步驟。
如下圖:

Step變量的值決定通信的步驟,具體定義如下:
1)Step==1時,Modbus主站讀取從站Modbus參數(shù)地址40001開始的10個字長的數(shù)據(jù);
2)Step==2時,Modbus主站將6個字長的數(shù)據(jù)寫入到從站起始Modbus參數(shù)地址40011;
3)Step==3時,Modbus主站讀取從站Modbus參數(shù)地址10001開始的8個位的數(shù)據(jù);
4)Step==4時,Modbus主站將8個位寫入到從站Modbus參數(shù)地址00001;
當Modbus_CommLoad初始化完成時,跳轉到步驟1:

添加Modbus_Master指令,系統(tǒng)會自動提示創(chuàng)建背景數(shù)據(jù)塊,如下圖:

注:該數(shù)據(jù)塊中的“MB_DB”就是指令“Modbus_Comm_Load”的“MB_DB”參數(shù)。
新添加的Modbus_Master指令如下圖:

指令“Modbus_Master”各參數(shù)的定義如下:

步驟1(Step1)的代碼如下:

當步驟1完成或者出錯時,跳轉到步驟2:

步驟2的代碼如下:

同樣的,當步驟2完成或出錯時,跳轉到步驟3;跳轉代碼就不一一列出了,這里僅接觸步驟3和步驟4的代碼,如下圖:


好了,關于Modbus RTU通信的主站S7-1200的編程就先介紹到這里,后續(xù)文章我們介紹從站S7-200 Smart的配置與編程。
-
Origin(Pro):學習版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
OriginPro:學習版申請及過期激活方法【數(shù)據(jù)繪圖】 2020-08-06
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計算焓和比熱容 2020-08-31
-
Aspen Plus安裝過程中RMS License證書安裝失敗的解決方法,親測有效! 2021-10-15
-
CAD外部參照無法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復制到另一張圖中? 2020-07-03
