Zui近單獨在寫Modbus和現場總線的介紹,都是一些思路性質的介紹,不涉及具體的實例,可能很多童鞋還是覺得不夠具體,因為我現在不做具體的編程調試了,所以直接些實例很費勁。參考了一些網上的和施耐德電氣內部的資料,寫成以下的案例,用了一些其他人的勞動成果,如果原作者在意版權問題,請聯系我,我尊重您的所有權。
我的帖子里提過Modbus的功能碼,常用的沒幾個,這里列出更多的(也不是全部):
功能碼(十進制)十六進制說明
0101讀線圈
0202讀離散量輸入
0303讀保持寄存器
0404讀輸入寄存器
0505寫單個線圈
0606寫單個寄存器
0707讀異常狀態
0808診斷
110B獲得事件計數器
120C獲得事件記錄
150F寫多個線圈
1610寫多個寄存器
1711報告從站ID
2216屏蔽寫寄存器
2317讀/寫多個寄存器
2418讀FIFO隊列
DATA_EXCH功能塊是用于Premium和M340傳輸數據到另外一臺設備,這個功能塊支持Modbus所有的功能碼。
DATA_EXCH用梯形圖表示:
各個引腳定義:
ADR為地址引腳,對于PREMIUM系列需要使用ADDR功能塊連接。
對于M340系列需要使用ADDM功能塊連接。
TYPE為類型引腳,1為接受/發送,2為只接受,3為只發送。
EMIS為要發送表
RECP為接受表
GEST為交換管理表
實例一:讀取N位(功能碼01)
其中在EMIS數組中第一個字,低字節為功能碼01,高字節為讀取位的起始位1
第二個字,低字節為讀取位的起始位1,高字節為讀取位的長度5
第三個字,低字節為讀取位的長度5
Zui后要在交換管理表的第四個字中定義這個報文字節的長度,為1個字節的功能碼,2個字節的數據起始地址,2個字節的讀取位的長度,所以長度為1+2+2=5
在TWIDO中賦值如下:
在RECP中第一個字為返回碼
第二個字為讀取的數據
Modbus通訊編程實例(二)
實例二:讀取N字(功能碼03)
其中在EMIS數組中第一個字,低字節為功能碼03,高字節為讀取字的起始地址1
第二個字,低字節為讀取字的起始地址1,高字節為讀取字的長度6
第三個字,低字節為讀取字的長度6
Zui后要在交換管理表的第四個字中定義這個報文字節的長度,為1個字節的功能碼,2個字節的數據起始地址,2個字節的讀取字的長度,所以長度為1+2+2=5
在TWIDO中賦值如下
在RECP中第一個字為返回碼
第二個字開始為讀取的數據
- 西門子WinCC的報警組態 2024-11-22
- 西門子WinCC報警控件、在線趨勢/表格控件數據查詢 2024-11-22
- 工控協議之西門子ModbusTCP報文功能碼詳解 2024-11-22
- 西門子RS232,RS485,RJ45,以及Modbus協議傻傻分不清楚 2024-11-22
- 西門子S7-200SMART和IFIX通信步驟詳解 2024-11-22
- IFIX與西門子PLC的S7 連接 2024-11-22
- 全面解析西門子S7-1200 PLC編程控制 2024-11-22
- 一文帶你了解西門子S7-200SMART與PID的應用 2024-11-22
- 西門子Smart line系列觸摸屏如何與S7-1200PLC的時間同步 2024-11-22
- 西門子觸摸屏與RS485接口的通信實例 2024-11-22
- 西門子S7-300數字量模塊如何接線 2024-11-22
- 西門子S7-1200PLC的SIM使用入門 2024-11-22
- 西門子PLC編程詳細講解及案例分析 2024-11-22
- 如何學好西門子S7-1200PLC 2024-11-22
- 西門子觸摸屏不通過西門子PLC,直接控制西門子變頻器 2024-11-22
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415