此范例將向大家介紹如何應(yīng)用S7-200 SMART 的 USS 協(xié)議對(duì)西門子V20 變頻器進(jìn)行通訊控制。使大家更加熟練的掌握和靈活的應(yīng)用S7-200 SMART 的 USS通訊協(xié)議功能。
一、 通訊連接:
用電纜將S7-200 SMART Port 0端口與V20的RS485接口相連(注意端口連接規(guī)則:V20的P+對(duì)3、N-對(duì)8),如下圖所示:
二、 西門子V20系列變頻器通訊參數(shù)設(shè)置
1. 首先對(duì)變頻器恢復(fù)出廠設(shè)置:設(shè)置P0010=30,P0970=21
2. 選擇連接宏 Cn010 -USS控制
3. 選擇設(shè)定好連接宏為CN010后,設(shè)置P0003=3(專家級(jí)),修改P2014=0
三、 程序編寫
S7-200 SMART USS 標(biāo)準(zhǔn)指令庫(kù)包括 USS_INIT、USS_CTRL、USS_RPM_X、USS_WPM_X等指令。調(diào)用這些指令時(shí)會(huì)自動(dòng)增加一些子程序和中斷服務(wù)程序。
選擇 USS_INIT 指令,初始化模塊初始化S7-200 SMART的PORT0端口
EN:初始化程序 USS_INIT 只需在程序中執(zhí)行一個(gè)周期就能改變通信口的功能,以及進(jìn)行其他一些必要的初始設(shè)置,因此可以使用 SM0.1 或者沿觸發(fā)的接點(diǎn)調(diào)用 USS_INIT 指令;
Mode:模式選擇,執(zhí)行 USS_INIT 時(shí) ,Mode 的狀態(tài)決定在通訊端口上是否使用 USS 通信功能;
= | 1 | 設(shè)置為 USS 通信協(xié)議并進(jìn)行相關(guān)初始化 | |
0 | 恢復(fù)為 PPI 協(xié)議并禁用USS通信 |
Baud:USS 通信波特率。此參數(shù)要和變頻器的參數(shù)設(shè)置*;
= | 1200 bit/s | |
2400 bit/s | ||
4800 bit/s | ||
9600 bit/s | ||
19200 bit/s | ||
38400 bit/s | ||
57600 bit/s | ||
115200 bit/s |
Port: 0 = CPU 集成的 RS485 通訊端口;1 = 可選CM 01 信號(hào)板。
Active:指示激活的變頻器站地址。
Done:初始化完成標(biāo)志
Error:初始化錯(cuò)誤代碼
Active參數(shù):USS_INIT 子程序的 Active 參數(shù)用來表示網(wǎng)絡(luò)上哪些 USS 從站要被主站訪問,即在主站的輪詢表中激活。網(wǎng)絡(luò)上作為 USS 從站的驅(qū)動(dòng)裝置每個(gè)都有不同的 USS 協(xié)議地址,主站要訪問的驅(qū)動(dòng)裝置,其地址必須在主站的輪詢表中激活。USS_INIT 指令只用一個(gè) 32 位長(zhǎng)的雙字來映射 USS 從站有效地址表,Active 的無符號(hào)整數(shù)值就是它在指令輸入端的取值。
表 1. 從站地址映射
在這個(gè) 32 位的雙字中,每一位的位號(hào)表示 USS 從站的地址號(hào);要在網(wǎng)絡(luò)中激活某地址號(hào)的驅(qū)動(dòng)裝置,則需要把相應(yīng)位號(hào)的位置設(shè)為二進(jìn)制“1",不需要激活 USS 從站,相應(yīng)的位設(shè)置為”0"。zui后對(duì)此雙字取無符號(hào)整數(shù)就可以得出 Active 參數(shù)的取值。
在表 1 的例子中,如果使用站地址為 1 的 V20變頻器,則須在位號(hào)為 01 的位單元格中填入二進(jìn)制“1"。其他不需要激活的地址 對(duì)應(yīng)的位設(shè)置為”0"。取整數(shù),計(jì)算出的 Active 值為 00000002 h,即 16#00000002,也等于十進(jìn)制數(shù)2。
建議使用 16 進(jìn)制數(shù),這樣可以每 4 位一組進(jìn)行加權(quán)計(jì)算出 16 進(jìn)制數(shù),并組合成一個(gè)整數(shù)。當(dāng)然也可以表示為十進(jìn)制或二進(jìn)制數(shù)值,但有時(shí)會(huì)很麻煩,而且不直觀。
如果一時(shí)難以計(jì)算出有多個(gè) USS 從站配置情況下的 Active 值,可以使用 Windows 自帶的計(jì)算器。將其設(shè)置為科學(xué)計(jì)算器模式,可以方便地轉(zhuǎn)換數(shù)制。
選擇 USS_CTRL指令,用于對(duì)單個(gè)驅(qū)動(dòng)裝置進(jìn)行運(yùn)行控制
EN: 使用 SM0.0 使能 USS_CTRL 指令
RUN:驅(qū)動(dòng)裝置的啟動(dòng)/停止控制
= | 0 | 停止 |
1 | 運(yùn)行 |
此停車是按照驅(qū)動(dòng)裝置中設(shè)置的斜坡減速指電機(jī)停止
OFF2:停車信號(hào) 2。此信號(hào)為“1”時(shí),驅(qū)動(dòng)裝置將鎖主回路輸出,電機(jī)自由停車
OFF3:停車信號(hào) 3。此信號(hào)為“1”時(shí),驅(qū)動(dòng)裝置將快速停車
F_ACK: 故障確認(rèn)。當(dāng)驅(qū)動(dòng)裝置發(fā)生故障后,將通過狀態(tài)字向 USS 主站報(bào)告;如果造成故障的原因排除,可以使用此輸入端清除驅(qū)動(dòng)裝置的報(bào)警狀態(tài),即復(fù)位。注意這是針對(duì)驅(qū)動(dòng)裝置的操作。
DIR: 電機(jī)運(yùn)轉(zhuǎn)方向控制。其“0/1”狀態(tài)決定運(yùn)行方向
Drive:驅(qū)動(dòng)裝置在 USS 網(wǎng)絡(luò)上的站號(hào)。從站必須先在初始化時(shí)激活才能進(jìn)行控制
Type: 向 USS_CTRL 功能塊指示驅(qū)動(dòng)裝置類型
= | 0 | MM 3 系列,或更早的產(chǎn)品 |
1 | MM 4 系列,SINAMICS G 110,SINAMICS V 20 |
Speed_SP:速度設(shè)定值。該速度是全速的一個(gè)百分?jǐn)?shù);“Speed_SP”為負(fù)值將導(dǎo)致變頻器反向運(yùn)行。
Resp_R:從站應(yīng)答確認(rèn)信號(hào)。主站從 USS 從站收到有效的數(shù)據(jù)后,此位將為“1"一個(gè)程序掃描周期,表明以下的所有數(shù)據(jù)都是的
Error: 錯(cuò)誤代碼。0 = 無出錯(cuò)。其他錯(cuò)誤代碼請(qǐng)參考
Status:驅(qū)動(dòng)裝置的狀態(tài)字。此狀態(tài)字直接來自驅(qū)動(dòng)裝置的狀態(tài)字,表示了當(dāng)時(shí)的實(shí)際運(yùn)行狀態(tài)
詳細(xì)的狀態(tài)字信息意義請(qǐng)參考相應(yīng)的驅(qū)動(dòng)裝置手冊(cè)。
Speed:驅(qū)動(dòng)裝置返回的實(shí)際運(yùn)轉(zhuǎn)速度值,實(shí)數(shù)。
Run_EN:運(yùn)行模式反饋,表示驅(qū)動(dòng)裝置是運(yùn)行(為 1)還是停止(為 0)
D_Dir:指示驅(qū)動(dòng)裝置的運(yùn)轉(zhuǎn)方向,反饋信號(hào)
Inhibit: 驅(qū)動(dòng)裝置禁止?fàn)顟B(tài)指示(0 - 未禁止,1 - 禁止?fàn)顟B(tài))。禁止?fàn)顟B(tài)下驅(qū)動(dòng)裝置無法運(yùn)行。要清除禁止?fàn)顟B(tài),故障位必須復(fù)位,并且 RUN, OFF2 和 OFF3 都為 0
Fault:故障指示位(0 - *,1 - 有故障)。表示驅(qū)動(dòng)裝置處于故障狀態(tài),驅(qū)動(dòng)裝置上會(huì)顯示故障代碼(如果有顯示裝置)。要復(fù)位故障報(bào)警狀態(tài),必須先消除引起故障的原因,然后用 F_ACK 或者驅(qū)動(dòng)裝置的端子、或操作面板復(fù)位故障狀態(tài)。
因Speed_SP為速度是全速的一個(gè)百分?jǐn)?shù),即輸入50HZ對(duì)應(yīng)*,轉(zhuǎn)換如下圖:
讀寫參數(shù)
在任一時(shí)刻 USS 主站內(nèi)只能有一個(gè)參數(shù)讀寫功能塊有效,否則會(huì)出錯(cuò)。因此如果需要讀寫 多個(gè)參數(shù)(來自一個(gè)或多個(gè)驅(qū)動(dòng)裝置),必須在編程時(shí)進(jìn)行讀寫指令之間的輪替處理。
輪詢處理方式可以參考下面給出一個(gè)簡(jiǎn)單的例子,方法不是*的。
讀取V20頻率實(shí)際值,讀參數(shù)號(hào)r0021,經(jīng)過濾波的頻率實(shí)際值[Hz]
EN: 要使能讀寫指令此輸入端必須為 1
XMT_REQ: 發(fā)送請(qǐng)求。必須使用一個(gè)沿檢測(cè)觸點(diǎn)以觸發(fā)讀操作,它前面的觸發(fā)條件必須與 EN 端輸入*
Drive: 要讀寫參數(shù)的驅(qū)動(dòng)裝置在 USS 網(wǎng)絡(luò)上的地址
Param: 參數(shù)號(hào)(僅數(shù)字)。此處也可以是變量
Index:參數(shù)下標(biāo)。有些參數(shù)由多個(gè)帶下標(biāo)的參數(shù)組成一個(gè)參數(shù)組,下標(biāo)用來指出具體的某個(gè)參數(shù)。對(duì)于沒有下標(biāo)的參數(shù),可設(shè)置為 0
DB_Ptr: 讀寫指令需要一個(gè) 16 字節(jié)的數(shù)據(jù)緩沖區(qū),用間接尋址形式給出一個(gè)起始地址。此數(shù)據(jù)緩沖區(qū)與“庫(kù)存儲(chǔ)區(qū)”不同,是每個(gè)指令(功能塊)各自獨(dú)立需要的。
此數(shù)據(jù)緩沖區(qū)也不能與其他數(shù)據(jù)區(qū)重疊,各指令之間的數(shù)據(jù)緩沖區(qū)也不能沖突
Done: 讀寫功能完成標(biāo)志位,讀寫完成后置 1
Error:出錯(cuò)代碼。0 = 無錯(cuò)誤
Value:讀出的數(shù)據(jù)值。該數(shù)據(jù)值在 “Done”位為1時(shí)有效。
讀取V20電流實(shí)際值,讀參數(shù)號(hào)r0027,輸出電流實(shí)際值
讀寫實(shí)數(shù)(浮點(diǎn))類型參數(shù)
使用USS_RPM_R讀取參數(shù)P1058的值
注意:
(1)讀參數(shù)P1058,其數(shù)據(jù)類型為實(shí)數(shù)。
(2)只要M10.1接通一個(gè)上升沿,就完成一次P1058參數(shù)的讀操作。
(3)讀入的參數(shù)被放在VD116里。
(4)需要注意的是Index為0時(shí)代表讀Pxxx.0參數(shù)組
使用USS_RPM_R修改參數(shù)P1058的值
注意:
(1)寫參數(shù)P1058.In000,其數(shù)據(jù)類型為浮點(diǎn)數(shù)。
(2)只要給M10.2一個(gè)上升沿,就完成一次參數(shù)P1058.In000的寫操作。
(3)EEPR~的邏輯為0時(shí),寫入的值只保存到RAM中,為1時(shí),寫入得值保存到EEPROM。
(4)EEPROM中寫數(shù)據(jù)是有次數(shù)限制的,V20zui多不超過50000次
分配庫(kù)存儲(chǔ)區(qū)地址
USS 指令庫(kù)需要大概 402 個(gè)字節(jié)的 V 存儲(chǔ)區(qū)用于支持其工作。調(diào)用 USS_INIT 指令后就可以為 USS 指令庫(kù)分配庫(kù)存儲(chǔ)區(qū)。也可以在編程的稍后階段分配存儲(chǔ)區(qū)地址,但這一步是*的,否則程序無法通過編譯。
根據(jù) S7-200 SMART中的數(shù)據(jù)存儲(chǔ)區(qū)分配原則,分配給庫(kù)指令的數(shù)據(jù)區(qū)不能與其他程序使用的數(shù)據(jù)區(qū)有任何重疊。否則會(huì)造成出錯(cuò)。
右擊庫(kù),點(diǎn)擊庫(kù)存儲(chǔ)器
分配庫(kù)存儲(chǔ)器地址
zui后編譯下載整個(gè)項(xiàng)目
打開狀態(tài)圖表,設(shè)定頻率為5HZ,修改點(diǎn)動(dòng)頻率值為8.8HZ,運(yùn)行變頻器
西門子V20 3KW變頻器6SL3210-5BB23-0UV0
西門子V20 3KW變頻器6SL3210-5BB23-0UV0