6ES7 952-1KL00-0西門子內(nèi)存卡6ES7 952-1KL00-0AA0
參考價(jià): | 面議 |
- 6ES7 135-4MB02-0 產(chǎn)品型號(hào)
- 西門子/SIEMENS 品牌
- 經(jīng)銷商 廠商性質(zhì)
- 上海市 所在地
訪問次數(shù):191更新時(shí)間:2018-03-07 12:48:06
S7-200與V20的MODBUS RTU通訊
1、本例程的系統(tǒng)配置:
(1)安裝Step7 Micro/Win software和Modbus協(xié)議庫,西門子在Micro/WIN V4.0 SP5
中正式推出Modbus RTU主站協(xié)議庫。
(2)PC/PPI電纜、S7-200、電源模塊、通信電纜。
(3)V20驅(qū)動(dòng)裝置和一臺(tái)PC機(jī)。
2、在使用MicroWin software 創(chuàng)建項(xiàng)目之前,確認(rèn)Modbus Master 庫文件已經(jīng)安裝:
3、創(chuàng)建一個(gè)例程:
3.1 設(shè)置通訊接口
本例程使用PC/PPI電纜。
3.2 建立PC和PLC之間的連接
“雙擊刷新”搜索到PLC后,點(diǎn)擊”確認(rèn)”。
3.3 用電纜將S7-200 Port 1端口與V20的RS485接口相連(注意端口連接規(guī)則:V20的
P+對(duì)3、N-對(duì)8),如下圖所示:
3.4 變頻器參數(shù)設(shè)置:
V20 可以通過選擇連接宏Cn011實(shí)現(xiàn)Modbus RTU控制,也可以通過直接更改變頻器參數(shù)的方法來實(shí)現(xiàn)。參數(shù)設(shè)置如下表所示:
參數(shù) | 描述 | Cn011默認(rèn)值 | 實(shí)際設(shè)置 | 備注 |
P0700[0] | 選擇命令源 | 5 | 5 | RS485為命令源 |
P1000[0] | 選擇頻率 | 5 | 5 | RS485為速度設(shè)定值 |
P2023[0] | RS485協(xié)議選擇 | 2 | 2 | MODBUS RTU協(xié)議 |
P2010[0] | USS/MODBUS波特率 | 6 | 6 | 波特率為9600bps |
P2021[0] | MODBUS地址 | 1 | 3 | V20的MODBUS 地址 |
P2022[0] | MODBUS應(yīng)答超時(shí) | 1000 | 2000 | 向主站發(fā)回應(yīng)答的zui大時(shí)間 |
P2014[0] | USS/MODBUS報(bào)文間斷時(shí)間 | 100 | 0 | 接收數(shù)據(jù)時(shí)間 |
3.5 V20常用寄存器說明
寄存器編號(hào) | 描述 | 訪問類型 | 定標(biāo)系數(shù) | 讀取 | 寫入 | |
控制數(shù)據(jù) | 40100 | 控制字 | R/W | 1 | PZD1 | PZD1 |
40101 | 主設(shè)定值 | R/W | 1 | PZD2 | PZD2 | |
狀態(tài)數(shù)據(jù) | 40110 | 狀態(tài)字 | R | 1 | PZD1 | |
40111 | 速度實(shí)際值 | R | 1 | PZD2 | ||
P1120 | 40322 | 斜坡上升時(shí)間 | R/W | 100 | P1120 | P1120 |
P1121 | 40323 | 斜坡下降時(shí)間 | R/W | 100 | P1121 | P1121 |
更多的V20寄存器信息,請(qǐng)?jiān)L問下面鏈接:
67267484
3.6 庫存儲(chǔ)區(qū)分配:在編譯程序之前,選擇 “程序塊” ->“ 庫” 右鍵,選擇“庫存儲(chǔ)區(qū)”。在點(diǎn)擊 “建議地址” 選擇V存儲(chǔ)區(qū)的地址后點(diǎn)擊 “OK”退出。
3.6 初始化Modbus Master端口:
EN 使能: 必須保證每一掃描周期都被使能(使用 SM0.0) 。
Mode 模式: 為 1 時(shí),使能 Modbus 協(xié)議功能;為 0 時(shí)恢復(fù)為系統(tǒng) PPI 協(xié)議 。
Baud 波特率: 支持的通訊波特率為4800,9600,19200 。
Parity 校驗(yàn): 校驗(yàn)方式選擇 (V20采用偶校驗(yàn))
0=無校驗(yàn)
1=奇較驗(yàn)
2=偶較驗(yàn)
Timeout 超時(shí): 主站等待從站響應(yīng)的時(shí)間,以毫秒為單位,典型的設(shè)置值為 1000 毫秒(1 秒),允許設(shè)置的范圍為 1 - 32767。
注意: 這個(gè)值必須設(shè)置足夠大以保證從站有時(shí)間響應(yīng)。
Done 完成位: 初始化完成,此位會(huì)自動(dòng)置1。
Error:初始化錯(cuò)誤代碼。
3.7 調(diào)用 Modbus RTU 主站讀寫功能塊MBUS_MSG,發(fā)送一個(gè)Modbus 請(qǐng)求:
3.7.1 寫入控制字1和速度實(shí)際值:
EN 使能: 同一時(shí)刻只能有一個(gè)讀寫功能(即 MBUS_MSG)使能 。
注意:V20對(duì)于寫指令同一時(shí)刻只運(yùn)行對(duì)一個(gè)保持寄存器操作;讀指令同一時(shí)刻zui大允許操作125 個(gè)保持寄存器。
First 讀寫請(qǐng)求位: 每一個(gè)新的讀寫請(qǐng)求必須使用脈沖觸發(fā)。
Slave 從站地址: 可選擇的范圍 1 - 247 。
RW 請(qǐng)求方式: 0 = 讀, 1 = 寫 。
Count 數(shù)據(jù)個(gè)數(shù) 通訊的數(shù)據(jù)個(gè)數(shù)(位或字的個(gè)數(shù)) 。
注意: Modbus主站可讀/寫的zui大數(shù)據(jù)量為120個(gè)字(是指每一個(gè) MBUS_MSG 指令)。
DataPtr 數(shù)據(jù)指針: 1. 如果是讀指令,讀回的數(shù)據(jù)放到這個(gè)數(shù)據(jù)區(qū)中 ;
2. 如果是寫指令,要寫出的數(shù)據(jù)放到這個(gè)數(shù)據(jù)區(qū)中 。
Done 完成位:讀寫功能完成位 。
Error 錯(cuò)誤代碼: 只有在 Done 位為1時(shí),錯(cuò)誤代碼才有效。
常用的控制字:
047E :運(yùn)行準(zhǔn)備
047F :正轉(zhuǎn)啟動(dòng)
0C7F :反轉(zhuǎn)啟動(dòng)
04FE :故障確認(rèn)
3.7.2 讀取狀態(tài)字1和速度實(shí)際值:
3.7.3 讀取斜坡上升時(shí)間P1120:
3.7.4 寫入斜坡下降時(shí)間P1121:
3.8 通過狀態(tài)表控制和讀取變頻器的狀態(tài):
描述:
下面的 Clock_Integer 庫可以自動(dòng)將傳輸值從十進(jìn)制轉(zhuǎn)換為 BCD 格式,反之也可以從 BCD 格式轉(zhuǎn)換成十進(jìn)制。然后執(zhí)行相應(yīng)的時(shí)間操作 READ_RTC或SET_RTC。這樣當(dāng)傳輸值用操作面板或程序的十進(jìn)制格式保存時(shí),便于時(shí)間函數(shù)的處理 (READ_RTC和SET_RTC)。
注意事項(xiàng):
在條目號(hào):16689345中可以找到關(guān)于將庫插入 STEP 7 Micro/WIN 中的信息。
圖1: Clock_Integer庫
庫的全局存儲(chǔ)區(qū)
庫使用全局存儲(chǔ)區(qū)來保證傳輸?shù)挠脩魯?shù)據(jù)的*性。從 庫中將其中一個(gè)函數(shù) (READ_RTC_I或SET_RTC_I)插入到STEP 7 Micro/Win 項(xiàng)目,然后選中 STEP 7 Micro/Win 菜單“文件”中的條目“Library Memory Allocation (分配庫內(nèi)存)”。系統(tǒng)會(huì)提供一個(gè)地址區(qū),或者您也可以自己選擇一個(gè)地址區(qū)。該庫需要8個(gè)字節(jié)。
圖2:庫存儲(chǔ)區(qū)
從CPU中讀取時(shí)間(READ_RTC_I)
圖3:函數(shù)“READ_RTC_I”
函數(shù)“READ_RTC_I”的參數(shù)
參數(shù) | 變量類型 | 說明 |
EN | [BOOL] | 激活塊 如有需要時(shí)才激活塊,這樣能減輕CPU負(fù)擔(dān) |
地址 | [DWORD] | 用于保存讀取的時(shí)間值的地址 從該偏移量地址開始為其分配8個(gè)字節(jié)。 |
表1:函數(shù)“READ_RTC_I”的參數(shù)
功能:
如果激活輸入信號(hào)“EN”,該塊讀取當(dāng)前時(shí)間,將 所讀取的BCD值轉(zhuǎn)換成十進(jìn)制值,并保存在從給定偏移量地址開始的地址中。
在CPU中設(shè)置時(shí)間(SET_RTC_I)
圖4:函數(shù)“SET_RTC_I”
函數(shù)“SET_RTC_I”的參數(shù)
參數(shù) | 變量類型 | 說明 |
EN | [BOOL] | 激活塊 只有在需要時(shí)才激活該塊,這樣能減輕CPU負(fù)擔(dān)。 |
地址 | [DWORD] | 存儲(chǔ)用戶時(shí)間數(shù)據(jù)的地址,該塊讀取從該偏移量地址開始的8個(gè)字節(jié)。 |
表2:參數(shù)“SET_RTC_I”
功能:
如果激活輸入信號(hào)(EN),該塊讀取所存儲(chǔ)的用戶數(shù)據(jù),將 它們轉(zhuǎn)換成BCD格式并以該格式來設(shè)置CPU時(shí)鐘.
以十進(jìn)制格式讀取CPU時(shí)鐘的實(shí)例:
如果激活V50.0,就讀取時(shí)間。所讀取的數(shù)據(jù)以十進(jìn)制格式存儲(chǔ)在VB10開始的地址中。
圖5:“READ_RTC_I”實(shí)例
在狀態(tài)表中檢查數(shù)值:
該數(shù)值以十進(jìn)制格式存放在時(shí)間函數(shù)所用的結(jié)構(gòu)中。
時(shí)間函數(shù)的存儲(chǔ)區(qū)結(jié)構(gòu)(READ_RTC, SET_RTC):
VB10 = 年份
VB11 = 月份
VB12 = 日期
VB13 = 小時(shí)
VB14 = 分鐘
VB15 = 秒鐘
VB16 = 保留
VB17 = 星期