<menuitem id="3xnrl"><font id="3xnrl"></font></menuitem>

              <ruby id="3xnrl"><output id="3xnrl"><th id="3xnrl"></th></output></ruby>

              <sub id="3xnrl"><font id="3xnrl"></font></sub>

              西門子200smart modbus rtu通訊實例
              日期:2024年04月18日     新聞分類: 技術中心      瀏覽:646次

              通訊材料:

              1)  plc2臺,分別是200smart 的CR60和SR20;

              2)  2個DP插頭(6ES7972-0BX12-0XA0)

              3)  連接導線若干(plc電源及通訊)

              驗證內容:

              令:CR60 plc為主站,發送plc系統時鐘(8個字節的信息)給SR20從站;SR20從站發送一個雙字的循環移位數據給主站,并由通訊數據VD100接收輸出到QD0。

              在驗證過程中曾經出現一個錯誤,使MSG指令始終顯示為6,表示從站無響應。我驗證時,由于連接2臺plc之間的3+、8-沒有確認,造成接線錯誤,使MSG的error錯誤信息為6,檢查后找到原因,重新接線后仍然報警6。最后檢查為控制程序不完整,主要原因是沒有給MB0一個初始化操作,造成錯誤值沒有得到有效的刷新。于是,在程序段1中加入初始化操作得到解決。  

              從站自VB31開始為讀取主站VB11開始的8個字節主站系統時鐘數據,指定VB31的起始地址是由Addr地址40011定義的,從站循環指令VD11運行結果,將由Mbus_init的Holdstart定義的起始地址發送和接收。自簡而深進行編寫modbus rtu通訊程序,相對從站通訊程序比較簡單,僅僅只是指定通訊種類由Mbus_init管腳指定maxIQ/maxAI/maxHOLD/Holdstart定義,其它管腳根據主站定義匹配進行,相對主站需要根據從站地址偏移量來確定。

              通訊數據:

              Modbus通訊程序相對的難點是通訊映射的地址關系。

              主站讀取從站的數據,起始地址是根據從站Holdstart管腳定義的起始地址開始算,而不是指從站的V區物理地址。在驗證程序中,從站的Mbus_init起始地址為VB11,那么,主站MSG指令的Addr 40001,應該是指從站的VB11地址。

              同理,從站讀取主站系統時鐘,主站的MSG指令的Addr 40011,對應到從站的地址相當于偏移了10個字(偏移量10word + 11byte = 31byte) ,即為VB31開始的8個字節中存放,Modbus通訊地址計算是40001開始的。

              版權所有: 山西科達自控股份有限公司 備案號:晉ICP備09004627號-2   

              郵箱

              keda@sxkeda.com

              電話

              400-0351-150

              微信

              專屬
              客服

              留言

              右側導航

              善良的翁熄日本中文字幕1,哇酷电影网,陈三和白洁奔驰车里弄,康熙艳谭

                  <menuitem id="3xnrl"><font id="3xnrl"></font></menuitem>

                          <ruby id="3xnrl"><output id="3xnrl"><th id="3xnrl"></th></output></ruby>

                          <sub id="3xnrl"><font id="3xnrl"></font></sub>